一, 打开模板文件(可以随文下载放置在文档中打开)。(如下图1所示)
图1
二,另存工程文件,添加虚拟仿真Buttons。(如下图2,3所示)
图2
图3
三,点击Source Code标签。(如下图4所示)
图4
四,编辑main.c, key.c, key.h代码。led.c, led.h代码如Proteus8.9 仿真STM32407ZGT6系列001(如
下图5所示)
图5
五,Main.c 代码:
#include \ #include \ #include \ #include \ #include \ #include \
#define Oppsit(A) (A!=0)?0:1 u8 i, k=1, t=0;
u8 str[8][17]={ \红灯亮!!!...\\r\\n\
\红亮灭!!!...\\r\\n\ \黄灯亮!!!...\\r\\n\ \黄亮灭!!!...\\r\\n\ \绿灯亮!!!...\\r\\n\ \绿亮灭!!!...\\r\\n\ \灯闪亮!!!...\\r\\n\ \灯闪灭!!!...\\r\\n\ };
u8 ReadKey(u16 IoBit){
if(0==GPIO_ReadInputDataBit(GPIOC,IoBit)){ return 0; } else{
delay_us(10);
if(1==GPIO_ReadInputDataBit(GPIOC,IoBit)) { return1; } else{
return0; } } }
int main (void) {
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 delay_init(168); //初始化延时函数 uart_init(9600); //串口初始化
LED_Init(); //初始化LED端口
KEY_Init(); //按键初始化
while(1) {
if(1==ReadKey(0x0020))k=0; if(1==k){
for(t=0;t<16;t++){
USART_SendData(USART1,(u16) str[6][t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); }
for(i=0; i<6; i++){
PCout((i/2+1))=Oppsit((i%2)); for(t=0;t<16;t++){
USART_SendData(USART1,(u16) str[ i][t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); }
delay_ms(500); } } else{
for(t=0;t<16;t++){
USART_SendData(USART1,(u16) str[7][t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); }
while(1!=ReadKey(0x0010)); k=1;
delay_ms(50); } } }
key.c 代码:
#include \ #include \ void KEY_Init(void) {
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);//使能GPIOC时钟 GPIO_InitStructure.GPIO_Pin= GPIO_Pin_4| GPIO_Pin_5; //KEY0 对应引脚 GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IN;//普通输入模式 GPIO_InitStructure.GPIO_Speed= GPIO_Speed_100MHz;//100M
GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_DOWN ;//下拉 GPIO_Init(GPIOC,&GPIO_InitStructure);//初始化GPIOE4 }
key.h 代码:
#ifndef __KEY_H #define __KEY_H #include \
#define KEY0 PCin(4) //PC4 #define KEY1 PCin(5) //PC5 void KEY_Init(void); //IO初始化 #endif
六,点击构建工程按钮,编译工程。(如下图6所示)
图6
七,点击窗口左下方仿真按钮,可见红黄绿灯每个0.5s跳闪仿真,按下KEYSTOP键,停止跳闪仿真;按下KEYSTART键,开始跳闪仿真。虚拟串口仿真将单片机红黄绿等亮灭情况打印显示。(如下图7,
8,9所示)