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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

arduino+proteus8.6仿真 簡易可調時鐘

[復制鏈接]
跳轉到指定樓層
樓主
其實我看到論壇中已經有許多相似教程了,但我想既然已經做了,那就分享出來吧。
本程序使用延時函數作為時鐘的來源,根本無法保證精度,僅作為演示。
串口傳回的數據為實際刷新一次所需要的時間,從仿真結果來看,時鐘大約每一秒都差50us以上,就是說每33分鐘將慢1秒鐘,24小時將慢48秒以上
通過調節延時的話精度應該還可以提高。
有一篇講產生高精度方波的帖子我覺得可以給大家一些提高時間精度的靈感。
http://www.zg4o1577.cn/bbs/dpj-138357-1.html

當然外接時鐘源也是可行的方案,或者嘗試用中斷應該也是不錯的方法。
如果還有其他方案也歡迎大家分享。

改成萬年歷也是可行的,我就不弄了(懶)。

GIF演示:




代碼如下:


  1. //2018.10.19 QQ:775913024
  2. //1604/1602顯示時間,串口顯示的是實際刷新一次所用的時間,單位us
  3. #include <LiquidCrystal.h>
  4. LiquidCrystal lcd(13,12,11,10,9,8 );
  5. int m,h,s;
  6. int bsel=5;   //buttonSelsect
  7. int bss=4;    //buttonStart/Stop
  8. int bup=6;    //buttonUp
  9. int bdown=7;  //buttonDown
  10. int selflag;  //selectflag
  11. int flag=1;   

  12. void setup()
  13. {
  14. pinMode(bsel,INPUT_PULLUP);//選擇按鈕
  15. pinMode(bss,INPUT_PULLUP);//開始停止按鈕
  16. pinMode(bup,INPUT_PULLUP);//加按鈕
  17. pinMode(bdown,INPUT_PULLUP);//減按鈕
  18. Serial.begin(9600);
  19.   //時間初始化
  20. h=9;//小時
  21. m=59;//分種
  22. s=55;//秒
  23. selflag=0;
  24. flag=1;
  25. lcd.begin(16,4); //使用1602就把4改成2即可
  26. }

  27. void loop() {


  28.      if(digitalRead(bss)==0)//停止開始
  29.    {
  30.     delay(700);
  31.     flag=!flag;
  32.     lcd.setCursor(0,1);
  33.     if(flag==0)
  34.     lcd.print("       stop");
  35.     if(flag==1)
  36.     {lcd.setCursor(0,1);
  37.     lcd.print("runing         ");
  38.      }
  39.     }
  40. else if(flag==1&&digitalRead(5)==1)//正常顯示
  41.    {
  42.   uint32_t start = micros();
  43.   delay(995);//一秒刷新一次的時間
  44.   s++;//秒s
  45.   if(s==60)
  46.   s=0;

  47.   if(s==0)//分m
  48.   m=m+1;
  49.   if(m==60)
  50.   m=0;

  51.   if(m==0&&s==0)//小時h
  52.   h=h+1;
  53.   if(h==24)
  54.   h=0;

  55. delayMicroseconds(800);//細調刷新一次的時間
  56. shownowtime();

  57. Serial.println(micros()-start);
  58. }



  59. if((digitalRead(bsel)==0)&&flag==0)//選擇事件
  60. {delay(300);
  61. lcd.setCursor(0,1);
  62. selflag++;
  63. if(selflag==3)
  64. selflag=0;
  65. if(selflag==0)//小時
  66. lcd.print("hour");//
  67. if(selflag==1)//分鐘
  68. lcd.print("min ");
  69. if(selflag==2)
  70. lcd.print("Sec ");//秒鐘

  71. }

  72. if((digitalRead(bup)==0)&&flag==0)//加事件
  73. {delay(300);
  74. if(selflag==0)//小時
  75. {h++;
  76. if(h==24||h<0)
  77. h=0;
  78. shownowtime();
  79. }

  80. if(selflag==1)//分鐘
  81. {
  82. m++;
  83. if(m==60||m<0)
  84. m=0;
  85. shownowtime();
  86. }
  87. if(selflag==2)//秒鐘
  88. {
  89. s++;
  90. if(s==60||s<0)
  91. s=0;
  92. shownowtime();
  93. }
  94. }

  95. if((digitalRead(bdown)==0)&&flag==0)//減事件
  96. {delay(300);
  97. if(selflag==0)//小時
  98. {h--;
  99. if(h==24||h<0)
  100. h=0;
  101. shownowtime();
  102. }

  103. if(selflag==1)//分鐘
  104. {
  105. m--;
  106. if(m==60||m<0)
  107. m=0;
  108. shownowtime();
  109. }
  110. if(selflag==2)//秒鐘
  111. {
  112. s--;
  113. if(s==60||s<0)
  114. s=0;
  115. shownowtime();
  116. }
  117. }

  118. }


  119. void shownowtime()
  120. {
  121. lcd.setCursor(0,0);
  122. if(h<10)
  123. lcd.print('0');
  124.   lcd.print(h);
  125.     lcd.print(":");
  126.      if(m<10)
  127. lcd.print('0');
  128.       lcd.print(m);
  129.       lcd.print(":");
  130.        if(s<10)
  131. lcd.print('0');
  132.          lcd.print(s);
  133. }
復制代碼

文件在2樓下載

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:284589 發表于 2018-10-19 22:54 | 只看該作者

仿真程序:
showtime.zip (29.57 KB, 下載次數: 54)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区精华 | 国产精品1区2区3区 欧美 中文字幕 | 国产99久久久国产精品 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | www国产成人免费观看视频,深夜成人网 | 91资源在线| 爱综合| 亚洲综合精品 | 亚洲免费人成在线视频观看 | 精品久久久网站 | 91久久国产综合久久91精品网站 | 免费观看一级特黄欧美大片 | 91精品国产乱码久久久久久 | 91九色在线观看 | 免费精品久久久久久中文字幕 | 亚洲精品一区二三区不卡 | 欧美三级免费观看 | av一级一片 | 久久久久久国产精品 | 视频二区| 波多野结衣一区二区 | 日韩中文一区二区三区 | 国产高清视频一区 | 91嫩草精品 | 日韩电影一区二区三区 | 国产高清在线精品 | 成人免费看 | 网站黄色av | 国产福利网站 | 亚洲欧美国产毛片在线 | 欧美日韩免费一区二区三区 | 91视频久久 | 一区二区三区视频在线免费观看 | 免费精品视频一区 | 综合视频在线 | 久久久久久久久99 | 欧美三级三级三级爽爽爽 | 日韩三级在线观看 | 久久99精品久久久久婷婷 | 成人毛片一区二区三区 | 淫片一级国产 |