标题:
51单片机数字时钟按键程序设计 求思路
[打印本页]
作者:
叶小星
时间:
2020-2-18 17:33
标题:
51单片机数字时钟按键程序设计 求思路
共阳极数码管 只显示时间不显示日期和星期
一共三个按键 按键1每按一次分别切换时、分、秒闪烁,表示要修改时间的部分,第四次按下则恢复到正常,按键2加时间,按键3减时间
三个按键接口为P3.0 P3.1 P3.2
定时精度要求:每天误差十秒以内
作者:
叶小星
时间:
2020-2-18 17:38
#include<reg51.h> unsigned char i, disp_buf[6] ={1,2,3,4,5,6},hour,min,sec,k; unsigned char yima[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//十个数 void main(){ TMOD=0X01; //T0中断,方式一,定时功能 TH0=(65536-2000)/256; TL0=(65536-2000)%256; EA=1;ET0=1;TR0=1; while(1){ } } void T0_INT()interrupt 1{ TH0=(65536-2000)/256; TL0=(65536-2000)%256; if(++i>5)i=0; P2=0; P0=yima[disp_buf[i] ]; P2=0x01<<i; if(++k==500){ //1second=1000ms k=0; if(++sec==60){ sec=0; if(++min==60){ min=0; if(++hour==24){ hour=0; } } } disp_buf[0]=hour/10; //时针十位数 disp_buf[1]=hour%10; //时针个位数 disp_buf[2]=min/10; //分钟十位数 disp_buf[3]=min%10; //分钟个位数 disp_buf[4]=sec/10; //秒钟十位数 disp_buf[5]=sec%10; //秒钟个位数 } }
作者:
叶小星
时间:
2020-2-18 17:38
部分程序 麻烦哪位大神可以完善一下
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1