找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機實驗程序:LCD1602顯示18b20溫度且蜂鳴器報警

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:205010 發(fā)表于 2017-6-4 13:11 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機實驗5:LCD1602顯示ds18b20測出來的溫度,超溫蜂鳴器就發(fā)出聲音報警.

單片機源程序如下:
  1. /**************************************************************************************
  2. *                                                      溫度警報                                                                                                  *
  3. 實現(xiàn)現(xiàn)象:下載程序后插上LCD1602液晶在開發(fā)板上,上面顯示溫度限值,下邊顯示實時溫度
  4.                   當溫度達到限值時,蜂鳴器發(fā)聲
  5. ***************************************************************************************/

  6. #include<reg52.h>
  7. #include "main.h"
  8. #include "lcd1.h"
  9. #include "delay.h"
  10. #include "ds18b20.h"
  11. #include "color.h"

  12. uchar CNCHAR[6] = "0";
  13. char i, buf[] = {0, 0, 0}; //定義數(shù)組

  14. /***********************************************
  15. 函數(shù)名:        mydisplay(uint x)
  16. 函數(shù)功能:        LCD顯示溫度
  17. **********************************************/
  18. void LcdDisplay(uint temp)         /*LCD顯示溫度*/
  19. {       
  20.         buf[0] = temp/100;
  21.         buf[1] = temp%100/10;
  22.         buf[2] = temp%100%10;

  23.         write_com(0x80+0x42);
  24.         write_date('0'+buf[0]);                        //十位
  25.         SBUF = '0'+buf[0];//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
  26.         while (!TI);                                 //等待發(fā)送數(shù)據(jù)完成
  27. //        TI = 0;
  28.        
  29.         write_com(0x80+0x43);
  30.         write_date('0'+buf[1]);                        //個位
  31.         SBUF = '0'+buf[1];//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
  32.         while (!TI);                                 //等待發(fā)送數(shù)據(jù)完成
  33. //        TI = 0;

  34.         write_com(0x80+0x45);
  35.         write_date('0'+buf[2]);                        //小數(shù)點后一位
  36.         SBUF = '0'+buf[2];//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
  37.         while (!TI);                                 //等待發(fā)送數(shù)據(jù)完成
  38. //        TI = 0;
  39.        
  40.         for(i=0; i<6; i++)
  41.         {
  42.                  SBUF = CNCHAR[i];//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
  43.                 while (!TI);                                 //等待發(fā)送數(shù)據(jù)完成
  44. //                TI = 0;
  45.         }
  46. }
  47. void guding()                                //固定顯示
  48. {
  49.         //顯示  T:
  50.         write_com(0x80+0x40);        //寫地址 80表示初始地址
  51.         write_date('T');
  52.         write_com(0x80+0x41);        //寫地址 80表示初始地址
  53.         write_date(':');
  54.         //顯示 ‘.’
  55.         write_com(0x80+0x44);                //寫地址 80表示初始地址
  56.         write_date('.');                 //顯示 ‘.’
  57.         //顯示攝氏度
  58.         write_com(0x80+0x46);                //寫地址 80表示初始地址
  59.         write_date(0xdf);                 //顯示 ‘.’
  60.         write_com(0x80+0x47);                //寫地址 80表示初始地址
  61.         write_date('C');                 //顯示 ‘.’


  62. //        write_charstr( 1,1," TEMPmax=30'C");          //第   行,第   列  
  63.        
  64. }
  65. void main(void)                                                                                                                          //0xdf
  66.     initlcd();                    //lcd初始化
  67.     guding();                  //固定顯示
  68.     while(1)
  69.     {
  70.         read1();
  71.         warn(tempwarn);
  72.          LcdDisplay(get());
  73. ……………………

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

所有資料51hei提供下載:
實驗5:LCD1602顯示18b20溫度.rar (42.29 KB, 下載次數(shù): 138)


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

使用道具 舉報

沙發(fā)
ID:166322 發(fā)表于 2017-6-10 12:03 | 只看該作者
謝謝分享
回復

使用道具 舉報

板凳
ID:215238 發(fā)表于 2017-10-24 20:24 | 只看該作者
謝謝 資料很好
回復

使用道具 舉報

地板
ID:257992 發(fā)表于 2018-1-4 22:27 | 只看該作者
謝謝分享
回復

使用道具 舉報

5#
ID:464476 發(fā)表于 2019-1-11 14:36 | 只看該作者
謝謝分享
回復

使用道具 舉報

6#
ID:435575 發(fā)表于 2019-9-12 22:54 | 只看該作者
沒看到顯示溫度限制
回復

使用道具 舉報

7#
ID:605963 發(fā)表于 2019-10-1 07:30 | 只看該作者
編譯后主程序第79行報錯,把79行去除后能顯示溫度T:25.4*c。沒報警功能,程序不是很完整,能做個參考吧
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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