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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

DS18B20兩位共陽,兩位共陰數碼管組合顯示程序

[復制鏈接]
跳轉到指定樓層
樓主
第一次發帖。泡論壇一段時間,趁國慶有時間做了一個,程序是湊出來的,再修改。哈哈。共陰跟共陽數碼管亮度不一樣,算不算個性。大于99.9和負溫度沒有弄,畢竟室內不會出現那么極端的氣溫。電路圖有空再補上,還沒畫。上圖,渣渣的焊工。


單片機源程序如下:
  1. #include "CONFIG.H"
  2. #include "DS18B20.H"
  3. #include "SHUMAGUAN.H"
  4. extern uchar LedBuff[3];
  5. sbit RED = P1^5;
  6. sbit YELLOW = P1^7;
  7. sbit GREEN = P1^3;
  8. bit flag1s = 0; //1s 定時標志
  9. //bit SMG_FLAG=0;        //數碼管刷新標志
  10. uchar T0RH = 0; //T0 重載值的高字節
  11. uchar T0RL = 0; //T0 重載值的低字節
  12. void ConfigTimer0(uint ms);
  13. void main()
  14. {
  15. bit res;
  16. int temperature; //讀取到的當前溫度值
  17. int intT, decT; //溫度值的整數和小數部分
  18. EA = 1; //開總中斷
  19. ConfigTimer0(2); //T0 定時 2ms
  20. Start18B20(); //啟動 DS18B20
  21. while (1)
  22. {
  23.    if (flag1s) //每秒更新一次溫度
  24.   {
  25.          flag1s = 0;
  26.          res = Get18B20Temp(&temperature); //讀取當前溫度
  27.          if (res) //讀取成功時,刷新當前溫度顯示
  28.         {
  29.          intT = temperature >> 4; //分離出溫度值整數部分          右移后不用乘精度。
  30.          decT = temperature & 0xF; //分離出溫度值小數部分
  31.          LedBuff[0]=intT/10;
  32.          LedBuff[1]=intT%10;
  33.          LedBuff[2]=(decT*10)/16;
  34.          if ((intT>35)|(intT<10))
  35.          {
  36.            RED=0;
  37.            YELLOW=1;
  38.            GREEN=1;
  39.          }
  40.          else if ((intT>=15)&&(intT<=28))
  41.          {
  42.            RED=1;
  43.            YELLOW=1;
  44.            GREEN=0;
  45.          }
  46.          else if (((intT>=10)&&(intT<15))|((intT>28)&&(intT<=35)))
  47.          {
  48.            RED=1;
  49.            YELLOW=0;
  50.            GREEN=1;
  51.          }
  52.          Start18B20();
  53.     }
  54.          else //讀取失敗時,提示錯誤信息
  55.          {
  56.            Start18B20(); //重新啟動下一次轉換
  57.          }
  58.   }
  59.   /*if (SMG_FLAG)
  60.   {
  61.           LedRefresh();
  62.         SMG_FLAG=0;
  63.    
  64.   }*/
  65. }
  66. }
  67. /* 配置并啟動 T0, ms-T0 定時時間 */
  68. void ConfigTimer0(uint ms)
  69. {
  70. ulong tmp; //臨時變量
  71. tmp = 12000000 / 12; //定時器計數頻率
  72. tmp = (tmp * ms) / 1000; //計算所需的計數值
  73. tmp = 65536 - tmp; //計算定時器重載值
  74. // tmp = tmp + 12; //補償中斷響應延時造成的誤差
  75. T0RH = (uchar)(tmp>>8); //定時器重載值拆分為高低字節
  76. T0RL = (uchar)tmp;
  77. TMOD &= 0xF0; //清零 T0 的控制位
  78. TMOD |= 0x01; //配置 T0 為模式 1
  79. TH0 = T0RH; //加載 T0 重載值
  80. TL0 = T0RL;
  81. ET0 = 1; //使能 T0 中斷
  82. TR0 = 1; //啟動 T0
  83. }
  84. /* T0 中斷服務函數,完成 1 秒定時 */
  85. void InterruptTimer0() interrupt 1
  86. ……………………

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

所有資料51hei提供下載:
DS18B20.rar (43.15 KB, 下載次數: 20)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:82765 發表于 2017-10-6 22:10 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:165276 發表于 2017-10-7 07:59 | 只看該作者
cjjcjj1 發表于 2017-10-6 22:10
不錯不錯,有想法,這個數碼管取模是關鍵

其實是我手頭上只有這兩個在身邊,沒辦法就拼一起。數碼管取模這個挺容易弄的。哈哈
回復

使用道具 舉報

地板
ID:108622 發表于 2018-7-13 05:56 | 只看該作者
分享下電路圖
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线观看 | 成年网站在线观看 | 国产高清一区二区三区 | 久草成人 | 久久久精品视频免费看 | 国产福利91精品 | 999国产精品视频免费 | 国产片侵犯亲女视频播放 | 中文字幕一二三 | 欧美1区| 在线免费91| 亚洲高清视频一区二区 | 久久亚洲视频 | 国产精品一区二区av | 日本精品在线播放 | 日韩欧美国产成人一区二区 | 国产精品毛片一区二区三区 | 国产羞羞视频在线观看 | 国产精品极品美女在线观看免费 | 亚洲成网 | 国产成人精品一区二 | 中文字字幕在线中文乱码范文 | 在线看无码的免费网站 | 亚洲综合无码一区二区 | 特一级黄色毛片 | 欧美一区二区小视频 | 国产成人精品一区二三区在线观看 | 成人在线免费网站 | 亚洲综合视频 | 伊人手机在线视频 | 久久综合久久久 | 午夜精品网站 | 久草在线青青草 | 国产精品久久久爽爽爽麻豆色哟哟 | 一区二区av | 欧洲视频一区 | 91精品国产乱码久久久久久久 | 国产精品黄视频 | 国产成人在线观看免费 | 国产精品毛片 | 久久亚洲一区 |