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

標題: 數字電子鐘 共陽數碼管顯示,帶開啟關閉鍵,調時調分調秒鍵 [打印本頁]

作者: 對著背影說愛你    時間: 2016-11-11 19:19
標題: 數字電子鐘 共陽數碼管顯示,帶開啟關閉鍵,調時調分調秒鍵
數字電子鐘,很基礎的,用得共陽數碼管顯示,四個按鍵,分別是開啟關閉鍵,調時調分調秒鍵。和大家一起學習。

完整的代碼下載:
Practice1--要求1.zip (73.99 KB, 下載次數: 34)

  1. /*******************************************************************
  2. 程 序 名:數字電子時鐘模塊化程序(緩沖數組)

  3. 編 寫 者:龍皓明

  4. 指導老師:王韌

  5. 時   間 :2016.8.12

  6. 功   能 :顯示時分秒,設有四個功能鍵:啟動/停止,調時,調分,調秒
  7.                                                                                   
  8. 使用說明:將單片機的P2口用排線連于J31即73ls573位選(P20對I11),P0口
  9.                       連于J32即數碼管段選(P00對O11),P1口連接J16(P10--P7...S1--S7)
  10.                                                                                                           
  11. ********************************************************************/

  12. #include <reg52.h>
  13. #include "delay.h"                       //延時頭文件
  14. #include "display.h"                           //顯示函數頭文件
  15. #include "set_find_code.h"  //設置緩沖數組文件
  16. #include "key.h"                                //鍵掃描函數文件
  17. uchar find_code[8];
  18. bit sign=0;
  19. uchar i,hour,minute,second,keyzhi,c=0;

  20. /*****************主函數****************/
  21. void main()
  22. {                hour=8;                                                                //設置小時初始值
  23.                 minute=30;                                                        //設置分鐘初始值
  24.                 second=0;                                                        //設置秒鐘初始值
  25.     TMOD=0x01;              //設置定時器0為工作方式1
  26.     TH0=(65536-50000)/256;  //定時50ms高8位求模       
  27.     TL0=(65536-50000)%256;  //定時50ms低8位求模
  28.     EA=1;                   //開總中斷
  29.     ET0=1;                  //開定時器0中斷
  30.     //TR0=1;
  31.                 set_find_code(12,12,12,12,12,12,12,10);//顯示系統提示符“P.”
  32.                 while(1)
  33.                 {               
  34.                         display(find_code);
  35.                         keyzhi=key_scan();                                        //鍵掃函數,提取返回值(即鍵值)
  36.                         if(keyzhi==0x01)
  37.                         {
  38.                                 sign=~sign;                                                        //取反,判定開啟/暫停
  39.                                 if(sign==1)                                                  //判定開啟電子鐘
  40.                                 {
  41.                                         TR0=1;                                                  //開啟定時器0,電子鐘運行                                                       
  42.                                         display(find_code); //電子鐘顯示
  43.                                 }                               
  44.                 if(sign==0)             //判定暫停電子鐘,進入調節模式
  45.                                 {
  46.                     TR0=0;                                                        //關閉定時器0,電子鐘停止運行
  47.                                         keyzhi=key_scan();       
  48.                                         while(keyzhi!=0x01) //如果開啟/暫停鍵沒有按下
  49.                                         {
  50.                                                 keyzhi=key_scan();//讀取鍵值
  51.                                                 switch(keyzhi)                //進入調時/分/秒模式
  52.                                                 {
  53.                                                         case 0x02: hour++;if(hour==24)                 //調時鍵按下并釋放后時鐘+1
  54.                                                                 {
  55.                                                                         hour=0;                        //調到24時時清零
  56.                                                                 }
  57.                                                                 set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);
  58.                                                                 break;
  59.                                                         case 0x04: minute++;if(minute==60)//調分鍵按下并釋放后分鐘+1
  60.                                                                 {
  61.                                                                         minute=0;                //調到60分時清零
  62.                                                                 }
  63.                                                                 set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);                               
  64.                                                                 break;
  65.                                                         case 0x08: second++;if(second==60)//調秒鍵按下并釋放后秒鐘+1
  66.                                                                 {
  67.                                                                         second=0;                //秒調到60時清零
  68.                                                                 }
  69.                                                                 set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);                               
  70.                                                                 break;
  71.                                                                 default : display(find_code);break;                //穩定顯示所有數據                                                                                  
  72.                                                 }
  73.                                         }
  74.                                 }
  75.                         }                                       
  76.                 }
  77. }               
  78. void timer0() interrupt 1   //定時器0中斷入口

  79. {
  80.    TH0=(65536-50000)/256;   //定時器重賦初值
  81.    TL0=(65536-50000)%256;
  82.    c++;                             //中斷次數
  83.          if(c==20)
  84.          {
  85.                                 c=0;
  86.                                 second++;
  87.                                 if(second==60)                          //計時一分鐘后清零
  88.                                 {
  89.                                                 second=0;
  90.                                                 minute++;                                        //秒鐘每計時一分鐘,分鐘自+1
  91.                                                 if(minute==60)          //計時一小時后清零
  92.                                                 {
  93.                                                                 minute=0;
  94.                                                                 hour++;        //分鐘每計時一小時,時鐘自+1
  95.                                                                 if(hour==24)         //24小時倒計時到
  96.                                                                 {
  97.                                                                                         hour=0;         //清零
  98.                                                                 }               
  99.                                                 }
  100.                                 }
  101.                 }
  102.                 set_find_code(hour/10,hour%10,11,minute/10,minute%10,11,second/10,second%10);                                                                         
  103. }                //送顯示數據

復制代碼


作者: songsiyuan    時間: 2017-2-10 09:02
沒有錢下載不下來
作者: 對著背影說愛你    時間: 2017-8-8 11:09
songsiyuan 發表于 2017-2-10 09:02
沒有錢下載不下來

你要的話我可以發給你




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产九九九 | 观看av| 国产精品久久久久久久久免费樱桃 | 91精品久久久久久久久中文字幕 | 日本电影免费完整观看 | av免费网站在线观看 | 国产精品美女在线观看 | 情侣av| 亚洲免费在线 | 91久操视频 | 91亚洲国产成人久久精品网站 | 四虎影视免费观看 | 免费欧美视频 | 成人在线亚洲 | 午夜精品一区二区三区在线观看 | 中文字幕一区在线观看视频 | 懂色av色香蕉一区二区蜜桃 | 久久精品这里 | 99精品久久久久久中文字幕 | 亚洲国产小视频 | 亚洲国产精品视频 | 久久久久久久久99 | 天天天天天操 | 丁香婷婷久久久综合精品国产 | 精品国产91亚洲一区二区三区www | av一级一片 | 亚洲国产黄 | wwwxxx日本在线观看 | 久久久久久高潮国产精品视 | 四虎首页 | 久久久久久高潮国产精品视 | 天天操,夜夜爽 | 国产午夜精品视频 | 国产精品久久久久久久久久久免费看 | xx性欧美肥妇精品久久久久久 | 黄网站涩免费蜜桃网站 | 一级a性色生活片久久毛片 一级特黄a大片 | 午夜国产一区 | 欧美在线综合 | 自拍偷拍亚洲一区 | 亚洲精品乱码久久久久久久久久 |