欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2482|回復: 1
打印 上一主題 下一主題
收起左側(cè)

基于51單片機做的一個24小時時鐘程序 內(nèi)含清零和暫停功能

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:435958 發(fā)表于 2018-11-29 18:50 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
內(nèi)含清零和暫停功能

單片機源程序如下:
  1. #include<reg51.h>
  2. unsigned char seg_data[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};  //8段數(shù)碼管顯示代碼,最后一位0xbf為橫線

  3. unsigned char position[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};                                          //選位端循環(huán)
  4. int sum_position=0;       

  5. int text=0;

  6. int s1=0,s2=0,m1=0,m2=0,h1=0,h2=0;                                                                                        //定義秒、分、時
  7. sbit pause=P3^3;                                                                                                                        //清零鍵
  8. unsigned int sum;

  9. void delaytime(unsigned int x);                                                                                                          //聲明調(diào)用函數(shù)‘延時’
  10. void diaplayscreen(unsigned int n);                                                                                                         //聲明調(diào)用函數(shù)‘顯示’
  11.                                                                                                  
  12. void main()
  13. {
  14. //打開中斷(暫停)
  15. EA=1;EX0=1;IT0=1;


  16. while(1)
  17. {
  18.         if(s1==9&&s2==5&&m1==9&&m2==5&&h1==3&&h2==2)
  19.         {s1=0;s2=0;m1=0;m2=0;h1=0;h2=0;        }                                                                                                //清零

  20.         s1++;                                                                                                                                                        //秒+1
  21.         if(s1>9)                                                                                                                                                //計時‘秒’
  22.         {
  23.                 s1=0;
  24.                 s2++;
  25.         }
  26.         if(s2>5)
  27.         {
  28.                 s2=0;
  29.                 m1++;
  30.         }

  31.         if(m1>9)                                                                                                                                                //計時‘分’
  32.         {
  33.                 m1=0;
  34.                 m2++;
  35.         }
  36.         if(m2>5)
  37.         {
  38.                 m2=0;
  39.                 h1++;
  40.         }

  41.         if(h1>9)                                                                                                                                                //計時‘時’
  42.         {
  43.                 h1=0;
  44.                 h2++;
  45.         }
  46.         /******8位LED顯示******/
  47.         if(text==0)
  48.         {
  49.                 for(sum=0;sum<62;sum++)                                                                         //‘sum’調(diào)節(jié)1s時長(可加變量x調(diào)節(jié))
  50.                 {                                                                                                                 //顯示時間
  51.                         diaplayscreen(s1);
  52.                         diaplayscreen(s2);
  53.                         diaplayscreen(10);
  54.                         diaplayscreen(m1);
  55.                         diaplayscreen(m2);
  56.                         diaplayscreen(10);
  57.                         diaplayscreen(h1);
  58.                         diaplayscreen(h1);
  59.                
  60.                        
  61.                         if(sum_position==8)                                                                  //置零選位端
  62.                         sum_position=0;
  63.                 }
  64.         }
  65.         else
  66.         {
  67.                 while(1)                                        //無限循環(huán)顯示
  68.                 {       
  69.                         diaplayscreen(s1);
  70.                         diaplayscreen(s2);
  71.                         diaplayscreen(10);
  72.                         diaplayscreen(m1);
  73.                         diaplayscreen(m2);
  74.                         diaplayscreen(10);
  75.                         diaplayscreen(h1);
  76.                         diaplayscreen(h1);
  77.                
  78.                        
  79.                         if(sum_position==8)
  80.                         sum_position=0;
  81.                         if(text==0)                                 //暫停結(jié)束
  82.                         break;                                         
  83.                 }
  84.         }
  85.         if(pause==0)
  86.         {s1=-1;s2=0;m1=0;m2=0;h1=0;h2=0;}

  87.         }
  88. }

  89.                      
  90. void diaplayscreen(unsigned int n)                                                                           //顯示函數(shù)
  91. {         
  92.          P2=position[sum_position];//先選位在輸入
  93.          P0=seg_data[n];
  94.          delaytime(1);
  95.          sum_position++;
  96. }



  97. void delaytime(unsigned int x)                                                           //延時函數(shù),最小精度1毫秒
  98. {
  99. unsigned char j;
  100. while(x--)
  101. {
  102.   for(j=0;j<200;j++)
  103.   {;}
  104. }
  105. }

  106. void zero() interrupt 0                                                                                                        //暫停
  107. {
  108. //s1=0;s2=0;m1=0;m2=0;h1=0;h2=0;
  109. text=~text;
  110.        
  111. }
復制代碼

所有資料51hei提供下載:
24小時計時器.rar (83.56 KB, 下載次數(shù): 19)


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

使用道具 舉報

沙發(fā)
ID:575093 發(fā)表于 2019-7-3 12:21 來自觸屏版 | 只看該作者
挺好啊
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表