用数码管(8位)显示的数字时钟程序.docx

用数码管(8位)显示的数字时钟程序.docx

ID:57614322

大小:13.92 KB

页数:6页

时间:2020-08-29

用数码管(8位)显示的数字时钟程序.docx_第1页
用数码管(8位)显示的数字时钟程序.docx_第2页
用数码管(8位)显示的数字时钟程序.docx_第3页
用数码管(8位)显示的数字时钟程序.docx_第4页
用数码管(8位)显示的数字时钟程序.docx_第5页
资源描述:

《用数码管(8位)显示的数字时钟程序.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用数码管(8位)显示的数字时钟程序用数码管(8位)显示的数字时钟,由于是在开发板上写的程序,所以51单片机的一些I/O口设定并不完全一样,以下程序仅供参考#includesbitdula=P2^6;  //段选锁存器sbitwela=P2^7;  //位选锁存器sbitkey1=P3^2;    //INT0  选择键sbitkey2=P3^4;  //T0  时间增加sbitkey3=P3^6;    //S4  时间减少chara=0,hour=0,minute=0,seconed=0;ch

2、arh1,h2,m1,m2,s1,s2;charnum=0;charcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voiddelay(charz){  charx,y;for(x=z;x>0;x--)  for(y=110;y>0;y--);}voiddisplay_hour(charh)  //显示小时{  h1=h/10;h2=h%10;wela=1;P0=0xfe;  //11111110wela=0;P0=0xff;dula

3、=1;P0=table[h1];dula=0;delay(5);wela=1;P0=0xfd;  //11111101wela=0;P0=0xff;dula=1;P0=table[h2];dula=0;delay(5);}voiddisplay_minute(charm)  //显示分钟{  m1=m/10;m2=m%10;wela=1;P0=0xf7;  //11110111wela=0;P0=0xff;dula=1;P0=table[m1];dula=0;delay(5);wela=1;P0=0xef;  /

4、/11101111wela=0;P0=0xff;dula=1;P0=table[m2];dula=0;delay(5);}voiddisplay_seconed(chars)  //显示秒{  s1=s/10;s2=s%10;wela=1;P0=0xbf;  //10111111wela=0;P0=0xff;dula=1;P0=table[s1];dula=0;delay(5);wela=1;P0=0x7f;  //01111111wela=0;P0=0xff;dula=1;P0=table[s2];dula=0

5、;delay(5);}voidinit()    //初始化函数{  TMOD=0x01;    //定时器0工作方式1TH0=(65536-45872)/256;  //装初值晶振11.0592  50ms为45872TL0=(65536-45872)%256;EA=1;    //开总中断ET0=1;    //开定时器0中断TR0=1;    //开启定时器0}voidkey()    //按键函数,功能为对时间进行调整{  if(key1==0)    //key1键按下进入选择并停止定时器{  dela

6、y(10);  while(!key1);  //松手检测  TR0=0;  num++;    //没按一次key1  num自加1}if(num==1)    //key1按一次进行“小时”调整{  if(key2==0)    //key2按下时间增加  {  delay(10);  while(!key2);  hour++;  if(hour==24)  hour=0;  }  if(key3==0)    //key3按下时间减少  {  delay(10);  while(!key3);  hour

7、--;  if(hour<0)  hour=23;  }}if(num==2)    //按下key1两次进行“分钟调整”{  if(key2==0)  {  delay(10);  while(!key2);  minute++;  if(minute==60)  minute=0;  }  if(key3==0)  {  delay(10);  while(!key3);  minute--;  if(minute<0)  minute=59;  }}if(num==3)    //key1按下三次对“秒”进

8、行调节{  if(key2==0)  {  delay(10);  while(!key2);  seconed++;  if(seconed==60)  seconed=0;  }  if(key3==0)  {  delay(10);  while(!key3);  seconed--;  if(seconed<0)  seconed=59;  }}if(num==4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。