基于串口的溫度檢測數(shù)據(jù)單片機(jī)仿真
摘要:隨著單片機(jī)系統(tǒng)的廣泛應(yīng)用和計算機(jī)網(wǎng)絡(luò)技術(shù)的普及,單片機(jī)的通信功能愈來愈顯得重要。單片機(jī)通信是指單片機(jī)與計算機(jī)或單片機(jī)與單片機(jī)之間的信息交換,通常單片機(jī)與計算機(jī)之間的通信用的較多。本文以溫度檢測數(shù)據(jù)為基礎(chǔ),研究了單片機(jī)與PC 機(jī)的通信原理及電路的設(shè)計。
本文引用地址:http://2s4d.com/article/170815.htm0 引言
本文研究的是一種基于串口的溫度檢測數(shù)據(jù)收發(fā)模塊。利用DS18B20 溫度傳感器設(shè)計溫度監(jiān)測模塊,精確到0.1℃,用液晶顯示當(dāng)前溫度,然后通過串口調(diào)試助手向單片機(jī)發(fā)送指令。當(dāng)單片機(jī)收到十六進(jìn)制指令01時,將當(dāng)前溫度值以1s 為間隔傳回PC 機(jī)顯示,同時PC 機(jī)顯示Turn on temp;當(dāng)單片機(jī)收到十六進(jìn)制指令02 時,停止溫度值的回傳,PC 機(jī)顯示Turn off temp;當(dāng)單片機(jī)收到其它指令時,PC 機(jī)顯示Error。
1 總體設(shè)計
本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調(diào)完成,硬件部分主要完成信息的顯示;軟件主要完成信號的處理及控制功能等。
本系統(tǒng)的硬件采用模塊化設(shè)計,以AT89C52 單片機(jī)為核心,與LCD 顯示電路、串行口通信電路及DS18B20 溫度檢測電路組成控制系統(tǒng)。該系統(tǒng)硬件主要包括以下幾個模塊:
AT89C52 主控模塊、LCD 顯示模塊、串行口通信模塊、DS18B20 溫度檢測模塊等。其中AT89C52 主要完成外圍硬件的控制以及一些運算功能,LCD 顯示模塊完成字符、數(shù)字的顯示功能、串行口通信模塊主要完成單片機(jī)和PC 機(jī)之間的通信功能,DS18B20 溫度檢測模塊主要完成環(huán)境溫度檢測功能。系統(tǒng)組成方框圖如圖1.1 所示。
圖1.1系統(tǒng)硬件組成方框圖
應(yīng)用軟件采用模塊化設(shè)計方法。該系統(tǒng)軟件主要由主程序、串口接收發(fā)送數(shù)據(jù)中斷子程序、LCD 顯示子程序等模塊組成,系統(tǒng)軟件結(jié)構(gòu)框圖如圖1.2 所示。
圖1.2系統(tǒng)軟件設(shè)計框圖。
2 系統(tǒng)工作原理
MCS-51 單片機(jī)串行口發(fā)送/接收數(shù)據(jù)時,通過2 個串行緩沖器SBUF 進(jìn)行,這2 個緩沖器采用一個地址(98H),但在物理上是獨立的。其中接收緩沖器只能讀出不能寫入,50 發(fā)送緩沖器只能寫入不能讀出。
1. 發(fā)送過程
當(dāng)數(shù)據(jù)被寫入SBUF 寄存器后,單片機(jī)自動開始從起始位發(fā)送數(shù)據(jù),發(fā)送到停止位的開始時,由內(nèi)部硬件將TI 置1,向CPU 申請中斷,接下來可在中斷服務(wù)程序中做相應(yīng)處理,也可選擇不進(jìn)入中斷。
2. 接收過程
串行口的接收與否受制于允許接收位REN 的狀態(tài),當(dāng)REN 被軟件置1后,允許接收器接收。串口的接收器以所選波特率的16 倍速對RXD 線進(jìn)行監(jiān)視。當(dāng)1到0跳變時,檢測器連續(xù)采樣到RXD 線上低電平時。便認(rèn)定RXD 端出現(xiàn)起始位,繼而接收控制器開始工作。在每位傳送時間的第7、8、9 三個脈沖狀態(tài)采樣RXD 線,決定所接收的值為0或1.當(dāng)接收完停止位后,控制電路使中斷標(biāo)志R1置為1.
3. 溫度檢測
溫度檢測采用DALLAS 最新單線數(shù)字溫度傳感器DS18B20,DS18B20 是一種新型的一線器件,其體積更小,更適用于多種場合,且適用電壓更寬、更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20 是世界上第一片支持一線總線接口的溫度傳感器。
溫度測量范圍為-55℃~+125℃,可編程為9 位~12位轉(zhuǎn)換精度,可分辨溫度分別為0.5℃,0.25℃,0.125℃和0.0625℃。在9 位分辨率時,最多在93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字;在12 位分辨率時,最多在750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字。
3 溫度傳感器
3.1 溫度傳感器特性
DALLAS 最新單線數(shù)字溫度傳感器DS18B20[2]是一種新型的一線器件,其體積更小,更適用于多種場合,且適用電壓更寬、更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20 是世界上第一片支持一線總線接口的溫度傳感器。溫度測量范圍為-55℃~+125℃,可編程為9 位~12 位轉(zhuǎn)換精度,可分辨溫度分別為0.5℃,0.25℃,0.125℃和0.0625℃。在9 位分辨率時,最多在93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字;在12 位分辨率時,最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字。DS18B20的性能特點如下:
1. 獨特的單線接口僅需要一個端口引腳進(jìn)行通信;
2. 多個 DS18B20 可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能
3. 無須外部器件;
4. 可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;
5. 零待機(jī)功耗;
6. 溫度以 9 或12 位數(shù)字;
7. 用戶可定義報警設(shè)置;
8. 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;
9. 負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;
DS18B02 可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1 腳接地,2 腳作為信號線,3 腳接電源。另一種是寄生電源供電方式,單片機(jī)端口接單線總線,為保證在有效的DS18B20 時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET 管來完成對總線的上拉。
當(dāng) DS18B20 處于寫存儲器操作和溫度A/D 轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us.采用寄生電源供電方式時VDD 端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。
圖 3.1 DS18B20 引腳圖
3.2 工作時序圖
1. 初始化
圖 3.2 初始化時序圖
1)先將數(shù)據(jù)線置高電平1;2) 延時(該時間要求不是很嚴(yán)格,但是要盡可能短一些);3) 數(shù)據(jù)線拉到低電平0;4) 延時 750us(該時間范圍可以在480~960us);5) 數(shù)據(jù)線拉到高電平1;6)延時等待。如果初始化成功則在15~60ms內(nèi)產(chǎn)生一個由DS18B20 返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是要注意,不能無限地等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時判斷;7) 若 CPU 讀到數(shù)據(jù)線上的低電平0 后,還要進(jìn)行延時,其延時時間從發(fā)出高電平算起最少要480us;8)將數(shù)據(jù)線再次拉到高電平后結(jié)束。
2. DS18B20 寫數(shù)據(jù)
圖3.3 寫數(shù)據(jù)時序圖
1) 數(shù)據(jù)線先置低電平0;
2)延時確定的時間為15us;
3) 按從低位到高位的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位);
4) 延時時間為 45us;
5) 將數(shù)據(jù)線拉到高電平1;
6) 重復(fù) 1)到5)步驟,直到發(fā)送完整個字節(jié);
7)最后將數(shù)據(jù)線拉高到1.
3. DS18B20 讀數(shù)據(jù)
圖3.4 讀數(shù)據(jù)時序圖
1)將數(shù)據(jù)線拉高為1;
2) 延時 2us ;
3) 將數(shù)據(jù)線拉低0 ;
4) 延時 6us ;
5) 將數(shù)據(jù)線拉高1 ;
6)延時 4us ;
7) 讀數(shù)據(jù)線的狀態(tài)得到1 個狀態(tài)位,并且進(jìn)行數(shù)據(jù)處理;
8) 延時 30us ;
9) 重復(fù) 1)到7)步,知道讀取完一個字節(jié)。
4 硬件設(shè)計
4.1 時鐘電路及復(fù)位電路
1.時鐘電路
時鐘電路可以產(chǎn)生CPU 校準(zhǔn)時序,是單片機(jī)的控制核心,本次設(shè)計是通過外接12MHz的晶振來實現(xiàn)時鐘電路的時序控制。在使用片內(nèi)振蕩器時,XTAL1 和XTAL2 分別為反向放大器的輸入端和輸出端。外接晶體以及電容C3 和C5 構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。當(dāng)用外部時鐘驅(qū)動時,XTAL2引腳應(yīng)懸空,而由XTAL1引腳上的信號驅(qū)動,外部振蕩器通過一個2 分頻的觸發(fā)器而成為內(nèi)部時鐘信號,故對外部信號的占空比沒有什么要求,但最小和最大的高電平持續(xù)時間和低電平持續(xù)時間應(yīng)符合技術(shù)要求。電路如圖4.1 所示。
電流變送器相關(guān)文章:電流變送器原理 溫濕度控制器相關(guān)文章:溫濕度控制器原理
評論