久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4075|回復: 0
收起左側

單片機電子時鐘設計文檔+仿真+源碼

[復制鏈接]
ID:280268 發表于 2018-1-29 21:12 | 顯示全部樓層 |閱讀模式
系統性能測試與功能說明
走時:默認走時狀態,按24小時制分別小時“時時-分分-秒秒”,時間會按實際時間以秒為最小單位變化。
走時調整:按K1、K2和K3可以調整時分秒,第一次按下K1選擇調整小時數,按下K2,小時數加1,按下K3,小時數減1。第二次按下K1選則調整分鐘數,按下K2,分鐘數加1,按下K3,分鐘數減1。第三次按下K1選擇調整秒數,按下K2,秒數加1,按下K3,秒數減1。第四次按下K1選擇退出調試。


預覽:
0.jpg
0.jpg
0.png

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit _led=P2^7;
  5. sbit key1=P2^0;
  6. sbit key2=P2^1;
  7. sbit key3=P2^2;
  8. uchar num=0,temp=0,count=0;
  9. uchar aa;
  10. uchar hour,min,sec;
  11. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  12. void delay(uint z);
  13. void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa);
  14. void read_key();
  15. void led();
  16. void time_change();
  17. void main()        //主函數
  18. {
  19.         P2=0xff;
  20.         hour=12;
  21.         min=0;
  22.         sec=0;
  23.         TMOD=0x11;
  24.         TH0=(65536-50000)/256;
  25.         TL0=(65536-50000)%256;
  26.         TH1=(65536-50000)/256;
  27.         TL1=(65536-50000)%256;
  28.         EA=1;
  29.         ET0=1;
  30.         ET1=1;
  31.         TR0=1;
  32.         TR1=1;
  33.         aa=0xff;
  34.         while(1)
  35.         {
  36.                 time_change();
  37.                 display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0xff);
  38.         }
  39. }
  40. void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa)        //顯示函數
  41. {
  42.          if(num==1){P1=0x01&aa;P0=a;delay(2);}else{P1=0x01;P0=a;delay(2);}   //hour  
  43.             if(num==1){P1=0x02&aa;P0=b;delay(2);}else{P1=0x02;P0=b;delay(2);}  //hour  
  44.      if(num==2){P1=0x04&aa;P0=c;delay(2);}else{P1=0x04;P0=c;delay(2);} //min   
  45.      if(num==2){P1=0x08&aa;P0=d;delay(2);}else{P1=0x08;P0=d;delay(2);} //min     
  46.      if(num==3){P1=0x10&aa;P0=e;delay(2);}else{P1=0x10;P0=e;delay(2);} //sec
  47.      if(num==3){P1=0x20&aa;P0=f;delay(2);}else{P1=0x20;P0=f;delay(2);} //sec
  48. }
  49. void timer0() interrupt 1        //定時器0中斷函數
  50. {
  51.         TH0=(65536-50000)/256;
  52.         TL0=(65536-50000)%256;
  53.         temp++;
  54. }
  55. void timer1() interrupt 3        //定時器1中斷函數
  56. {
  57.         TH1=(65536-50000)/256;
  58.         TL1=(65536-50000)%256;
  59.         count++;
  60.         if(count>=20)
  61.         count=0;
  62. }
  63. void delay(uint z)        //延時函數
  64. {
  65.         uint j,k;
  66.         for(j=z;j>0;j--)
  67.         for(k=120;k>0;k--);
  68. }
  69. void read_key()        //讀按鍵函數
  70. {
  71.         if(key1==0)
  72.         {
  73.                 _led=0;
  74.                 delay(100);
  75.                 if(key1==0)
  76.                 {
  77.                         delay(100);
  78.                         _led=1;
  79.                         num++;
  80.                         if(num>3)
  81.                         {
  82.                                 num=0;
  83.                         }
  84.                         while(1)
  85.                         {
  86.                                 if(key1==0)
  87.                                 {
  88.                                         _led=0;
  89.                                         delay(10);
  90.                                         if(key1==0)
  91.                                         {
  92.                                                 num++;
  93.                                                 if(num>3)
  94.                                                 {
  95.                                                         num=0;
  96.                                                         break;
  97.                                                 }
  98.                                         }
  99.                                                 while(!key1);
  100.                                                 delay(10);
  101.                                                 while(!key1);
  102.                                                 _led=1;

  103.                                         }
  104.                                         if(key2==0)
  105.                                         {
  106.                                                 _led=0;
  107.                                                 delay(80);
  108.                                                 if(key2==0)
  109.                                                 {
  110.                                                           if(num==1){hour++;if(hour==24)hour=0;}
  111.                                                           if(num==2){min++;if(min==60)min=0;}
  112.                                                           if(num==3){sec++;if(sec==60)sec=0;}
  113.                                                 }
  114.                                                 while(!key1);
  115.                                                 delay(10);
  116.                                                 while(!key1);
  117.                                                 _led=1;

  118.                                         }
  119.                                         if(key3==0)
  120.                                         {
  121.                                                 _led=0;
  122.                                                 delay(80);
  123.                                                 if(key3==0)
  124.                                                 {
  125.                                                         if(num==1)
  126.                                                         {
  127.                                                                 hour--;
  128.                                                                 if(hour==0)
  129.                                                                 {
  130.                                                                         hour=23;
  131.                                                                 }
  132.                                                         }
  133.                                                         if(num==2)
  134.                                                         {
  135.                                                                 min--;
  136.                                                                 if(min==0)
  137.                                                                 {
  138.                                                                         min=59;
  139.                                                                 }
  140.                                                         }
  141.                                                         if(num==3)
  142.                                                         {
  143.                                                                 sec--;
  144.                                                                 if(sec==59)
  145.                                                                 {
  146.                                                                         sec=59;
  147.                                                                 }
  148.                                                         }
  149.                                                         while(!key1);
  150.                                                         delay(10);
  151.                                                         while(!key1);
  152.                                                         _led=1;
  153.                                                 }
  154.                                                 if(count<=15)
  155.                                                 display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0xff);
  156.                                                 if(count>15)
  157.                                                 display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0x00);
  158.                                         }
  159.                                 }
  160.                                 while(!key1);
  161.                                 delay(10);
  162.                                 while(!key1);
  163.                                 _led=1;
  164.                         }
  165.                 }
  166. }
  167. void time_change()        //時間調整函數
  168. {
  169. ……………………

  170. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
資料.7z (127.21 KB, 下載次數: 66)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99久久精品免费 | 操操操操操 | 天天夜夜操 | 成年人视频在线免费观看 | 久久精品国产一区二区三区不卡 | 亚洲一一在线 | 黄色成人av | 国产伦精品一区二区三区精品视频 | 中文字幕一区二区三区不卡在线 | 成人免费在线播放视频 | 亚洲毛片在线观看 | 91精品一区 | 91在线观看 | 国产视频1区2区 | 国产精品揄拍一区二区久久国内亚洲精 | 999久久久久久久 | 91影院| 日韩另类 | 国产精久久久久久久妇剪断 | 在线看av的网址 | 欧美激情在线精品一区二区三区 | 免费av在线网站 | 视频在线一区二区 | 国产精品视频在线观看 | 欧美日韩成人一区二区 | 国产亚洲精品综合一区 | 久久大陆 | 欧美伦理一区 | 亚洲精品久久久一区二区三区 | 久草视频网站 | 成人久久网 | 日本不卡一区二区三区 | 人人叉| 国产乱码久久久久久一区二区 | av一二三区 | 日韩在线不卡视频 | 国产精品久久久久免费 | 欧美一区不卡 | 精品久久久久久久久久 | 我爱操| 蜜月aⅴ国产精品 |