第35节:带数码管显示的象棋比赛专用计时器
时间:11-22
来源:互联网
点击:
- ,避免一致触发
- break;
- case 7:// 7号键 对应朱兆祺学习板的S7键在第一个窗口下,把计时器的值恢复为开机时的默认值20分钟
- switch(ucWd)//本程序最核心的变量ucWd
- {
- case 1://窗口1,代表刚上电,完成或者复位后的状态
- uiRedTotal=1200; //红棋的总时间
- uiBlackTotal=1200;//黑棋的总时间
- ucDisplayUpdate=1;//更新显示
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- break;
- case 2://窗口2,代表黑棋正在运行中的状态
- break;
- case 3://窗口3,代表黑棋在中途暂停的状态
- break;
- case 4://窗口4,代表红棋正在运行中的状态
- break;
- case 5://窗口5,代表红棋在中途暂停的状态
- break;
- }
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 8:// 8号键 对应朱兆祺学习板的S8键
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 9:// 9号键 对应朱兆祺学习板的S9键
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 10:// 10号键 对应朱兆祺学习板的S10键
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 11:// 11号键 对应朱兆祺学习板的S11键
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 12:// 12号键 对应朱兆祺学习板的S12键
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 13:// 13号键 对应朱兆祺学习板的S13键红棋按下
- switch(ucWd)//本程序最核心的变量ucWd
- {
- case 1://窗口1,代表刚上电,完成或者复位后的状态
- ucRedFlag=0; //红棋暂停计时
- ucBlackFlag=1;//黑棋继续计时
- ucWd=2; //切换到黑棋正在运行中的状态
- ucDisplayUpdate=1;//更新显示
- break;
- case 2://窗口2,代表黑棋正在运行中的状态
- break;
- case 3://窗口3,代表黑棋在中途暂停的状态
- break;
- case 4://窗口4,代表红棋正在运行中的状态
- ucRedFlag=0; //红棋暂停计时
- ucBlackFlag=1;//黑棋继续计时
- ucWd=2; //切换到黑棋正在运行中的状态
- ucDisplayUpdate=1;//更新显示
- break;
- case 5://窗口5,代表红棋在中途暂停的状态
- break;
- }
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 14:// 14号键 对应朱兆祺学习板的S14键
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 15:// 15号键 对应朱兆祺学习板的S15键
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 16:// 16号键 对应朱兆祺学习板的S16键 黑棋按下
- switch(ucWd)//本程序最核心的变量ucWd
- {
- case 1://窗口1,代表刚上电,完成或者复位后的状态
- ucRedFlag=1; //红棋继续计时
- ucBlackFlag=0;//黑棋暂停计时
- ucWd=4; //切换到红棋正在运行中的状态
- ucDisplayUpdate=1;//更新显示
- break;
- case 2://窗口2,代表黑棋正在运行中的状态
- ucRedFlag=1; //红棋继续计时
- ucBlackFlag=0;//黑棋暂停计时
- ucWd=4; //切换到红棋正在运行中的状态
- ucDisplayUpdate=1;//更新显示
- break;
- case 3://窗口3,代表黑棋在中途暂停的状态
- break;
- case 4://窗口4,代表红棋正在运行中的状态
- break;
- case 5://窗口5,代表红棋在中途暂停的状态
- break;
- }
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- }
- }
- void T0_time() interrupt 1
- {
- TF0=0;//清除中断标志
- TR0=0; //关中断
- key_scan(); //放在定时中断里的按键扫描函数
- time_service();//放在定时中断里的时间应用程序
- if(uiVoiceCnt!=0)
- {
- uiVoiceCnt--; //每次进入定时中断都自减1,直到等于零为止。才停止鸣叫
- beep_dr=0;//蜂鸣器是PNP三极管控制,低电平就开始鸣叫。
- }
- else
- {
- ; //此处多
数码管显示象棋比赛专用计时 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)