前言:
今天各位老铁们对“动态数码管显示程序流程图”大概比较关注,我们都想要学习一些“动态数码管显示程序流程图”的相关内容。那么小编在网上汇集了一些对于“动态数码管显示程序流程图””的相关知识,希望咱们能喜欢,咱们一起来学习一下吧!按键开关小练习,实现功能:
按下key1加一,按下key2减一,按下key3 置 0,按下key4在数码管上显示88
第一次尝试画流程图,瞎画
Key.c
#include "Key.h"u8 Key_Scan() //按键底层功能:按键扫描{ u8 KeyNum = 0; key1 =1;key2=1;key3=1;key4=1;//默认高电平 if(!key1 || !key2 || !key3 ||!key4)//1.判断是否有按键按下 { DelayXms(10);//2.延时消抖 10ms if(!key1 || !key2 || !key3 ||!key4)//3.再次判断按键是否按下 { if(!key1) KeyNum = 1; //4.给按键开关赋一个键值 if(!key2) KeyNum = 2; if(!key3) KeyNum = 3; if(!key4) KeyNum = 4; while(!key1 || !key2 || !key3 ||!key4);//5.松手等待 } } return KeyNum;}
main.c
#include <reg51.h>#include "Key.h"#include "display.h"u16 CountNum;void Dis_Service();void Key_Service();void main(){ while(1) { Dis_Service(); Key_Service(); Display(); //底层数码管动态显示 }}void Dis_Service() //赋值:数据缓冲区数据{ LEDBuf[0]=CountNum/1000; //千位--第一个数码管 LEDBuf[1]=CountNum/100%10;//百位--第二个数码管 LEDBuf[2]=CountNum/10%10;//十位--第三个数码管 LEDBuf[3]=CountNum%10;//个位--第四个数码管}void Key_Service() //按键功能{ switch(Key_Scan()) { case 0: break; case 1: CountNum++; if(CountNum>9999) CountNum = 0; break; case 2: CountNum--; if(CountNum>9999) CountNum = 9999; break; case 3: CountNum=0;break; case 4: CountNum=88; break; default: break; }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #动态数码管显示程序流程图