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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4123|回復: 0
打印 上一主題 下一主題
收起左側

51單片機+74HC573驅動數碼管實現秒表系統程序仿真設計

[復制鏈接]
跳轉到指定樓層
樓主
基于51單片機的秒表系統設計。包含KEIL工程文件和PROTEUS仿真文件


單片機源程序如下:
  1. #include<reg51.h>

  2. #define uchar unsigned char

  3. sbit dula=P2^6;
  4. sbit wela=P2^7;
  5. sbit beep=P2^3;

  6. sbit key0=P1^0;
  7. sbit key1=P1^1;
  8. sbit key2=P1^2;
  9. sbit key3=P1^3;
  10. sbit led=P1^6;

  11. unsigned char j,k,c5,c4,c3,c2,c1,c0,m,n=255,a,b,c,stop;
  12. unsigned char m1,m2,m3,m4,m5;
  13. unsigned char pp;
  14. unsigned char trigger=5;
  15. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  16.                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

  17. void delay(unsigned char i)
  18. {
  19.   for(j=i;j>0;j--)
  20.     for(k=125;k>0;k--);
  21. }

  22. void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)
  23. {         
  24.          P0=table[a];
  25.    dula=1;
  26.    dula=0;
  27.    
  28.    P0=0xfe;
  29.    wela=1;
  30.    wela=0;
  31.    delay(5);
  32.        
  33.    P0=0;
  34.    dula=1;
  35.    dula=0;
  36.    
  37.    P0=0xfe;
  38.    wela=1;
  39.    wela=0;
  40.        
  41.          P0=table[b];
  42.    dula=1;
  43.    dula=0;
  44.    
  45.    P0=0xfd;
  46.    wela=1;
  47.    wela=0;
  48.    delay(5);
  49.        
  50.    P0=0;
  51.    dula=1;
  52.    dula=0;
  53.    
  54.    P0=0xfd;
  55.    wela=1;
  56.    wela=0;
  57.        
  58.          P0=table[c];
  59.    dula=1;
  60.    dula=0;
  61.    
  62.    P0=0xfb;
  63.    wela=1;
  64.    wela=0;
  65.    delay(5);
  66.        
  67.    P0=0;
  68.    dula=1;
  69.    dula=0;
  70.    
  71.    P0=0xfb;
  72.    wela=1;
  73.    wela=0;
  74.        
  75.    P0=table[d];
  76.    dula=1;
  77.    dula=0;
  78.    
  79.    P0=0xf7;
  80.    wela=1;
  81.    wela=0;
  82.    delay(5);
  83.        
  84.    P0=0;
  85.    dula=1;
  86.    dula=0;
  87.    
  88.    P0=0xf7;
  89.    wela=1;
  90.    wela=0;
  91.        
  92.          P0=table[e];
  93.    dula=1;
  94.    dula=0;
  95.    
  96.    P0=0xef;
  97.    wela=1;
  98.    wela=0;
  99.    delay(5);
  100.        
  101.    P0=0;
  102.    dula=1;
  103.    dula=0;
  104.    
  105.    P0=0xef;
  106.    wela=1;
  107.    wela=0;
  108.    
  109.    P0=table[f];
  110.    dula=1;
  111.    dula=0;
  112.    
  113.    P0=0xdf;
  114.    wela=1;
  115.    wela=0;
  116.    delay(5);
  117.          
  118.          P0=0;
  119.    dula=1;
  120.    dula=0;
  121.    
  122.    P0=0xdf;
  123.    wela=1;
  124.    wela=0;
  125. }

  126. void hurry()//秒聲
  127. {
  128.         uchar i;
  129.         for(i=8;i>0;i--)
  130.           {       
  131.                 beep=1;
  132.                 delay(5);
  133.           beep=0;
  134.                 delay(5);
  135.           }
  136. }

  137. void baojin()//報警
  138. {
  139.         uchar i;
  140.         for(i=100;i>0;i--)
  141.           {       
  142.                 beep=1;
  143.                 delay(5);
  144.           beep=0;
  145.                 delay(5);
  146.           }
  147. }

  148. void main()
  149. {
  150.                 TMOD=0x01;                 //模式設置,00000001,可見采用的是定時器0,工作與模式1(M1=0,M0=1)。
  151. //                TR0=1;                         //打開定時器       
  152.                 TH0=(65536-4608)/256;// 由于晶振為11.0592,故所記次數應為4608,計時器每隔5000微秒發起一次中斷。
  153.                 TL0=(65536-4608)%256;//4608的來歷,為5000*11.0592/12
  154.                 ET0=1;                         //開定時器0中斷
  155.                 EA=1;                         //開總中斷
  156.                 while(1)
  157.                 {
  158.                         //stop-go on
  159.                         if(key0==0)
  160.                         {
  161.                                 delay(5);
  162.                                 if(key0==0)
  163.                                 {
  164.                                         while(!key0);
  165.                                         TR0=~TR0;
  166.                                 }
  167.                         }
  168.                         //clear
  169.                         if(key1==0)
  170.                         {
  171.                                 if(key1==0)
  172.                                 {
  173.                                         while(!key1);
  174.                                         c5=0;c4=0;c3=0;
  175.                                         c2=0;c1=0;c0=0;
  176.                                         m1=0;m2=0;m3=0;m4=0;m5=0;
  177.                                         TR0=0;led=0;
  178.                                 }
  179.                         }
  180.                         //show
  181.                         display(c5,c4,c3,c2,c1,c0);
  182.                 }                       
  183. }
  184.                
  185. void TIME0()interrupt 1            
  186. {
  187.         uchar i;
  188.         TH0=(65535-4608)/256;            
  189.         TL0=(65535-4608)%256;            
  190.         i++;
  191.         if(i==20)
  192.         {                 
  193.                         m1++;                  
  194.                 if(m1==10)
  195.                 {
  196.                         m1=0;
  197.                         m2++;       
  198.                         hurry();                       
  199.                 }
  200.                 if(m2==60)
  201.                 {
  202.                         m2=0;
  203.                         m3++;               
  204.                 }
  205.                 if(m3==60)
  206.                 {
  207.                         m3=0;
  208.                         m4++;
  209.                 }
  210.                 if(m4==10)
  211.                 {
  212.                         baojin();
  213.                 }
  214.                 c0=m2%10;
  215.                 c1=m2/10;
  216.                 c2=m3%10;
  217.                 c3=m3/10;
  218.                 c4=m4%10;
  219.                 c5=m4/10;
  220.                 i=0;
  221.         }
  222. }
復制代碼

所有資料51hei提供下載:
1_秒表系統√.rar (139.5 KB, 下載次數: 86)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费视频在线观看 | 日韩在线不卡 | 我想看国产一级毛片 | 亚洲一区二区免费看 | 啪一啪在线视频 | 久久丝袜视频 | 97精品国产97久久久久久免费 | 久久中文字幕一区 | 亚洲有码转帖 | 欧美日韩国产精品一区 | 成人免费在线观看 | 精品一区二区在线视频 | jizz中国日本| 亚洲精品不卡 | 日本精品一区二区三区在线观看视频 | 国产精品久久久亚洲 | 国产露脸国语对白在线 | 国产特级毛片aaaaaa | 久草.com| 在线成人av | 国产精品伦一区二区三级视频 | 日韩欧美视频 | 国产伦精品 | 亚洲欧美日韩网站 | 久久精品国产v日韩v亚洲 | 北条麻妃国产九九九精品小说 | 久久婷婷国产麻豆91 | 一区中文字幕 | 精品一区二区三区在线视频 | 国产一区二区成人 | 天天干夜夜操 | 午夜免费视频 | a级毛片毛片免费观看久潮喷 | 亚洲精品久久久一区二区三区 | 亚洲视频在线观看 | 欧美精品一二三 | 粉嫩av久久一区二区三区 | 国产日韩在线观看一区 | 亚洲成人毛片 | 国产高清在线精品一区二区三区 | 中文字幕一区二区三区在线视频 |