好文档 - 专业文书写作范文服务资料分享网站

Proteus8.9 仿真STM32407ZGT6系列003 - Keys - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

一, 打开模板文件(可以随文下载放置在文档中打开)。(如下图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所示)

Proteus8.9 仿真STM32407ZGT6系列003 - Keys - 图文

一,打开模板文件(可以随文下载放置在文档中打开)。(如下图1所示)图1二,另存工程文件,添加虚拟仿真Buttons。(如下图2,3所示)图2图3三,点击SourceCode标签。(如下图4所示)图4四,编辑m
推荐度:
点击下载文档文档为doc格式
63ur15cjzh99g5n13tny9pg7z7hdvh00tfb
领取福利

微信扫码领取福利

微信扫码分享