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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5270|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)溫度報(bào)警器設(shè)計(jì),含源碼,仿真圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:615726 發(fā)表于 2019-9-24 15:57 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是我去年單片機(jī)設(shè)計(jì)的溫度報(bào)警器,proteus仿真過,完美成功請(qǐng)看介紹

1、初始化時(shí)序圖
  圖3 初始化時(shí)序圖
(1)首先將數(shù)據(jù)線置高電平1。
(2)然后進(jìn)行延時(shí)(盡可能短,沒有嚴(yán)格要求)。
(3)然后把數(shù)據(jù)線拉倒低電平0。
(4)再延時(shí)750μs (時(shí)間可以在480μs -960μs中選)
(5)再將數(shù)據(jù)線拉高到電平1。
(6)延時(shí)等待。如果初始化成功則在15-60μs內(nèi)產(chǎn)生一個(gè)由DS18B20返回的低電平0。這個(gè)可以確定它的存在。
(7)假設(shè)是單片機(jī)的CPU讀到數(shù)據(jù)線上的低電平后,還要進(jìn)行延時(shí),那么時(shí)間從發(fā)出高電平算起不能少于480μs。
(8)最后將數(shù)據(jù)線再次拉到低電平后結(jié)束。
2、DS18B20寫數(shù)據(jù)
4 DS18B20
寫時(shí)序圖
(1)首先將數(shù)據(jù)線先置低電平0。
(2)然后延時(shí)確定的時(shí)間為15μs。
(3)再按從低位到高位的順序來發(fā)送數(shù)據(jù)。
(4)其中延時(shí)時(shí)間為45μs。
(5)再把數(shù)據(jù)線拉倒高電平1。
(6)然后再重復(fù)前面五步,直到發(fā)送完整一個(gè)字節(jié)。
(7)最后將數(shù)據(jù)線拉高到1。
3、DS18B20讀數(shù)據(jù)
(1)  首先將數(shù)據(jù)線拉高到1。
(2)  然后延時(shí)2μs。
(3)  再將數(shù)據(jù)線拉低到0。
(4)  然后延時(shí)5μs。(時(shí)間大于1μs)
(5)  再將數(shù)據(jù)線拉高到1。
(6)  延時(shí)4μs。
(7)  讀數(shù)據(jù)線狀態(tài)得到一個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。
(8)  延時(shí)30μs。
(9)  重復(fù)以上所有步驟,直到讀取完一個(gè)字節(jié)。
3.3 LCD1602液晶顯示器
3.3.1功能
1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線15腳的VCC和16腳的GND,本次研究采用16引腳的LCD。專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊,通過驅(qū)動(dòng)模塊與顯示器的有效連接,能直觀的顯示出程序中要求的內(nèi)容。
3.3.2特點(diǎn)
顯示質(zhì)量高:由于液晶顯示器每一個(gè)點(diǎn)在收到信號(hào)后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器畫質(zhì)高且不會(huì)閃爍。
數(shù)字式接口:液晶顯示器都是數(shù)字式的,和單片機(jī)系統(tǒng)的接口更加簡(jiǎn)單可靠,操作更加方便。
體積小、重量輕:液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。
功耗低:相對(duì)而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動(dòng)IC上,因而耗電量比其它顯示器要少得多。
3.3.3引腳
本次實(shí)驗(yàn)采用16引腳LCD1602液晶顯示器
  引腳功能:
第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度。
第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。即電平=0為輸入指令;電平=1為輸入數(shù)據(jù)。
第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。
第6腳:E端為使能端,1時(shí)讀取信息,當(dāng)E端由高電平跳變成低電平時(shí),即當(dāng)1→0(下降沿)液晶模塊執(zhí)行命令。
7~14腳:D0~D7為8位雙向數(shù)據(jù)線。7號(hào)引腳為最低位,14號(hào)引腳為最高位。
第15腳:背光源正極。
第16腳:背光源負(fù)極。

在課題設(shè)計(jì)的溫度控制系統(tǒng)設(shè)計(jì)中,控制核心是STC89C52單片機(jī),該單片  機(jī)為51系列增強(qiáng)型8位單片機(jī),它有32個(gè)I/O口,片內(nèi)含4K FLASH工藝的序存儲(chǔ)器,便于用電的方式瞬間擦除和改寫,而且價(jià)格便宜,其外部晶振為12M一個(gè)指令周期為1μs。使用該單片機(jī)完全可以完成設(shè)計(jì)任務(wù),其最小系統(tǒng)主要包括:復(fù)位電路、震蕩電路以及存儲(chǔ)器選擇模式,報(bào)警時(shí)界面如圖16所示。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <REGX51.H>
  2. #include <intrins.h>

  3. typedef unsigned char u8;                 
  4. typedef unsigned int u16;

  5. sbit beep=P1^5;
  6. sbit Led1=P2^2;           //高溫閃爍
  7. sbit Led2=P2^3;           //低溫閃爍
  8. u8 code t0[]="Temperature is:";

  9. void TempDisplayTest(void);
  10. void delay500us(void);
  11. void BuzzerOnOff(void);

  12. void Lcd1602Init(void);
  13. void Lcd1602SetCursor(u8 x,u8 y);
  14. void Lcd1602ShowStr(u8 x, u8 y, u8 *pStr);
  15. void Lcd1602ShowTempU16(u8 x, u8 y, u16 temp);

  16. void Ds18b20TempConvertCmd(void);
  17. void Ds18b20TempReadCmd(void);
  18. u8 Ds18b20ReadByte(void);

  19. void main(void)
  20. {
  21.         Lcd1602Init();

  22.         while (1)
  23.         {
  24.                 TempDisplayTest();        
  25.         }
  26. }


  27. void TempDisplayTest(void)
  28. {
  29.     u16 tt, i;                                                // 控制蜂鳴器報(bào)警
  30.         u16 temp = 0;                                 // 用來暫存12位的AD值
  31.         u8 tmh = 0, tml = 0;                        // 用來暫存2個(gè)8位的AD值
  32.         u16 tDisp = 0;                                        // 用來存儲(chǔ)乘以100倍后的溫度值
  33.         double t = 0;                                        // 用來存儲(chǔ)轉(zhuǎn)換后以攝氏度為單位的溫度值

  34.         Ds18b20TempConvertCmd();                // 先寫入轉(zhuǎn)換命令
  35.         Ds18b20TempReadCmd();                        // 然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令
  36.         tml = Ds18b20ReadByte();                // 讀取溫度值共16位,先讀低字節(jié)
  37.         tmh = Ds18b20ReadByte();                // 再讀高字節(jié)

  38.         temp = tml | (tmh << 8);                // 默認(rèn)是12位分辨率,前面4個(gè)S位是符號(hào)位
  39.         
  40.         t = temp * 0.0625;        
  41.         tDisp = (u16)(t * 100);                        // 為方便顯示將溫度值乘以100后強(qiáng)轉(zhuǎn)為u16
  42.         tt=tDisp/100;
  43.          

  44.         Lcd1602ShowStr(0, 0, t0);
  45.         Lcd1602ShowTempU16(0, 1, tDisp); // 調(diào)用LCD1602的顯示函數(shù)來顯示乘以100倍后的溫度值
  46.         if(tt>22)
  47.           {        for(i=500;i>0;i--)
  48.                 {
  49.                    BuzzerOnOff();
  50.                    Led1=0;Led2=1;
  51.                    delay500us();
  52.                    Led1=1;Led2=1;
  53.                 }
  54.           }
  55.          else if(tt<18)
  56.           {        for(i=500;i>0;i--)
  57.                 {
  58.                    BuzzerOnOff();
  59.                    Led1=1;Led2=0;
  60.                    delay500us();
  61.                    Led1=1;Led2=1;
  62.                 }
  63.           }
  64.          else {Led1=1;Led2=1;beep=1;}                  
  65. }

  66. void BuzzerOnOff(void)
  67. {
  68.         beep = 1;
  69.         delay500us();
  70.         beep = 0;
  71.         delay500us();
  72. }

  73. void delay500us(void)   //誤差 0us
  74. {
  75.     unsigned char a,b;
  76.     for(b=71;b>0;b--)
  77.         for(a=2;a>0;a--);
  78. }
復(fù)制代碼

Proteus7.5版本的仿真圖下載:
溫度測(cè)量.zip (109.04 KB, 下載次數(shù): 152)

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

使用道具 舉報(bào)

沙發(fā)
ID:632952 發(fā)表于 2019-11-6 17:43 來自手機(jī) | 只看該作者
需要用Proteus7.5打開才可以
回復(fù)

使用道具 舉報(bào)

板凳
ID:647786 發(fā)表于 2019-11-23 21:19 | 只看該作者
有原理圖和PCB嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:673021 發(fā)表于 2019-12-25 12:55 來自手機(jī) | 只看該作者
有總程序嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:701702 發(fā)表于 2020-3-4 08:51 | 只看該作者
非常不錯(cuò),結(jié)構(gòu)清晰容易讀懂。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产一区二区电影 | 日韩视频在线免费观看 | 久久久久国产一区二区三区 | 久久精品日产第一区二区三区 | 性天堂网 | 粉嫩一区二区三区四区公司1 | 亚洲美女av网站 | 日韩中文欧美 | 综合网在线 | 成人妇女免费播放久久久 | 91亚洲国产成人久久精品网站 | 日韩色图在线观看 | 国产在线一区二区 | 久久久www成人免费无遮挡大片 | 国产成人午夜高潮毛片 | 91久久精品一区二区三区 | 中文字幕91av | 欧美一级免费片 | 久久久精品影院 | 婷婷不卡| 日本a∨精品中文字幕在线 亚洲91视频 | 国产精品一区二区免费 | 中文字幕在线网 | 国产一区二区视频免费在线观看 | 欧美日韩亚洲系列 | 黄a在线播放 | 日本中文字幕一区 | www.日日操 | 五月综合激情在线 | 久久久噜噜噜久久中文字幕色伊伊 | 超碰97av | 久久国产精品精品 | av中文字幕在线播放 | 久久国产精品亚洲 | 国产精品久久网 | 羞羞的视频免费观看 | 国内精品视频免费观看 | 91在线一区二区三区 | 亚洲精品一二三 | 综合二区| 天天射色综合 |