第36节:带数码管显示的加法简易计算器
时间:11-22
来源:互联网
点击:
- uiKeyTimeCnt++;
- if(uiKeyTimeCnt>1)
- {
- uiKeyTimeCnt=0;
- ucKeyStep++; //切换到下一个运行步骤
- }
- break;
- case 3:
- if(key_sr1==1&&key_sr2==1&&key_sr3==1&&key_sr4==1)
- {
- ucKeyStep=1;//如果没有按键按下,返回到第一个运行步骤重新开始扫描
- ucKeyLock=0;//按键自锁标志清零
- uiKeyTimeCnt=0; //按键去抖动延时计数器清零,此行非常巧妙
- ucRowRecord++;//输出下一列
- if(ucRowRecord>4)
- {
- ucRowRecord=1; //依次输出完四列之后,继续从第一列开始输出低电平
- }
- }
- else if(ucKeyLock==0)//有按键按下,且是第一次触发
- {
- if(key_sr1==0&&key_sr2==1&&key_sr3==1&&key_sr4==1)
- {
- uiKeyTimeCnt++;//去抖动延时计数器
- if(uiKeyTimeCnt>const_key_time)
- {
- uiKeyTimeCnt=0;
- ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零
- if(ucRowRecord==1)//第一列输出低电平
- {
- ucKeySec=1;//触发1号键 对应朱兆祺学习板的S1键
- }
- else if(ucRowRecord==2)//第二列输出低电平
- {
- ucKeySec=2;//触发2号键 对应朱兆祺学习板的S2键
- }
- else if(ucRowRecord==3)//第三列输出低电平
- {
- ucKeySec=3;//触发3号键 对应朱兆祺学习板的S3键
- }
- else //第四列输出低电平
- {
- ucKeySec=4;//触发4号键 对应朱兆祺学习板的S4键
- }
- }
- }
- else if(key_sr1==1&&key_sr2==0&&key_sr3==1&&key_sr4==1)
- {
- uiKeyTimeCnt++;//去抖动延时计数器
- if(uiKeyTimeCnt>const_key_time)
- {
- uiKeyTimeCnt=0;
- ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零
- if(ucRowRecord==1)//第一列输出低电平
- {
- ucKeySec=5;//触发5号键 对应朱兆祺学习板的S5键
- }
- else if(ucRowRecord==2)//第二列输出低电平
- {
- ucKeySec=6;//触发6号键 对应朱兆祺学习板的S6键
- }
- else if(ucRowRecord==3)//第三列输出低电平
- {
- ucKeySec=7;//触发7号键 对应朱兆祺学习板的S7键
- }
- else //第四列输出低电平
- {
- ucKeySec=8;//触发8号键 对应朱兆祺学习板的S8键
- }
- }
- }
- else if(key_sr1==1&&key_sr2==1&&key_sr3==0&&key_sr4==1)
- {
- uiKeyTimeCnt++;//去抖动延时计数器
- if(uiKeyTimeCnt>const_key_time)
- {
- uiKeyTimeCnt=0;
- ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零
- if(ucRowRecord==1)//第一列输出低电平
- {
- ucKeySec=9;//触发9号键 对应朱兆祺学习板的S9键
- }
- else if(ucRowRecord==2)//第二列输出低电平
- {
- ucKeySec=10;//触发10号键 对应朱兆祺学习板的S10键
- }
- else if(ucRowRecord==3)//第三列输出低电平
- {
- ucKeySec=11;//触发11号键 对应朱兆祺学习板的S11键
- }
- else //第四列输出低电平
- {
- ucKeySec=12;//触发12号键 对应朱兆祺学习板的S12键
- }
- }
- }
- else if(key_sr1==1&&key_sr2==1&&key_sr3==1&&key_sr4==0)
- {
- uiKeyTimeCnt++;//去抖动延时计数器
- if(uiKeyTimeCnt>const_key_time)
- {
- uiKeyTimeCnt=0;
- ucKeyLock=1;//自锁按键置位,避免一直触发,只有松开按键,此标志位才会被清零
- if(ucRowRecord==1)//第一列输出低电平
- {
- ucKeySec=13;//触发13号键 对应朱兆祺学习板的S13键
- }
- else if(ucRowRecord==2)//第二列输出低电平
- {
- ucKeySec=14;//触发14号键 对应朱兆祺学习板的S14键
- }
- else if(ucRowRecord==3)//第三列输出低电平
- {
- ucKeySec=15;//触发15号键 对应朱兆祺学习板的S15键
- }
- else
数码管显示加法简易计算 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)