《数码管计时-倒计时》由会员分享,可在线阅读,更多相关《数码管计时-倒计时(7页珍藏版)》请在金锄头文库上搜索。
1、/*计时与倒计时功能转换 设置秒初值 4 位数码管显示 */#include #include /*程序头文件*/ #define uchar unsigned char #define uint unsigned int #define BIT(x)(1 1)set=0; else P2|=BIT(3); if(set=0) /1 键按下一次后,进入倒计时模式 if(KEY=2) /2 键按下秒加 1second+; if(KEY=3) /3 键按下秒减 1if(second0)second-; if(KEY=4) jishi=1;Enable_Time0(); /开始 暂停 if(set=
2、1) /1 按键按下两次后,进入计时模式 if(KEY=2) /设置计时起始数值second+; if(KEY=3) if(second0)second-; if(KEY=4) jishi=2;Enable_Time0(); /开始 暂停 void Enable_Time0(void) /计时停止计时 TR0=TR0; void System_Init(void) /系统初始化 P0=0XFF; P3=0XF0; jishi=0; void Time0_Init() / 定时器 0 初始化 TMOD|=0X01; /工作模式选择TH0=0X3C;TL0=0XB0;IE|=0X82; /配置 I
3、E 寄存器 void main( ) System_Init(); /初始化端口Time0_Init();while(1)Display(); /正常显示 if(key_press() /如果有按键按下 change_time(); /修改时间函数 void TIME1_OVF_ISR(void) interrupt 1 /定时计数器 0 溢出服务程序 TH0=0X3C;TL0=0XB0;if(+num=20)num=0; if(jishi=2) /计时 if(+second=60)second=0;if(+minute=60)minute=0;second=0; P2 else P2|=BIT(3); if(jishi=1)else if(second=0|minute0)second=59;minute-;if(second=0P2|=BIT(3);jishi=0; if(jishi=1)elseP2|=BIT(3);