大連計(jì)算機(jī)職業(yè)中專(zhuān) 梁 偉
DS18B20數(shù)字溫度計(jì)提供9至12位的攝氏溫度測(cè)量,并具有易失性的用戶(hù)可編程報(bào)警功能。DS18B20單總線(xiàn)與中央微處理器進(jìn)行通信,溫度測(cè)溫范圍為-55~+125℃。DS18B20消除外部電源需要,能夠直接將溫度轉(zhuǎn)化,從數(shù)據(jù)線(xiàn)導(dǎo)出,可以應(yīng)用于空調(diào)環(huán)境控制,建筑物內(nèi)的溫度監(jiān)控系統(tǒng)和過(guò)程監(jiān)控控制系統(tǒng),具有微型化、低功耗、高性能等優(yōu)點(diǎn)。
運(yùn)用單片機(jī)與計(jì)算機(jī)通信,實(shí)現(xiàn)建筑物內(nèi)溫度監(jiān)控平臺(tái)包括單片機(jī)BST-V51開(kāi)發(fā)板、Keil C51單片機(jī)與C語(yǔ)言軟件、1602液晶顯示模塊、DS18B20數(shù)字溫度計(jì)、計(jì)算機(jī)與VC++ 6.0軟件,下面介紹調(diào)試方法,分四個(gè)步驟。
1602LCD主要技術(shù)參數(shù):顯示容量:16×2個(gè)字符,芯片工作電壓:4.5—5.5V,采用標(biāo)準(zhǔn)的16腳帶背光接口,內(nèi)部的控制器共有11條控制指令,1602液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的,基本操作按照讀寫(xiě)操作時(shí)序圖進(jìn)行,打開(kāi)Keil C51單片機(jī)軟件編寫(xiě)1602LCD初始化函數(shù)void lcdInit()、寫(xiě)指令函數(shù)void lcdWritComm(uchar comm)、寫(xiě)數(shù)據(jù)函數(shù)void lcdWritData(uchar dat)、1602液晶顯示函數(shù)void display(int v)等操作代碼,啟動(dòng)stc-isp-15xx-v6.85F燒寫(xiě)應(yīng)用軟件,燒寫(xiě)代碼,實(shí)現(xiàn)1602液晶顯示字母和數(shù)字。
DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器,溫度傳感器的精度為0.0625℃,在上電狀態(tài)下默認(rèn)的精度為12位。DS18B20啟動(dòng)后保持低功耗等待狀態(tài);當(dāng)需要執(zhí)行溫度測(cè)量和AD轉(zhuǎn)換時(shí),總線(xiàn)控制器發(fā)出[44h] 溫度轉(zhuǎn)換指令,產(chǎn)生的溫度數(shù)據(jù)以?xún)蓚€(gè)字節(jié)的形式被存儲(chǔ)到高速暫存器的溫度寄存器RAM中。編寫(xiě)DS 18B20復(fù)位函數(shù)void dsInit(),溫度轉(zhuǎn)換函數(shù)void tempChangeCmd(),讀RAM溫度數(shù)據(jù)函數(shù)void tempReadCmd()等操作代碼,實(shí)現(xiàn)液晶顯示溫度如圖1所示。
編寫(xiě)單片機(jī)串口通信初始化函數(shù)void serInit(void),串口通信函數(shù)void serComm(char *ptr),打開(kāi)串口調(diào)試助手應(yīng)用軟件,實(shí)現(xiàn)STC89C52單片機(jī)與PC機(jī)串口通信如圖所示。
MSComm是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。MSComm 控件常用的屬性有,CommPort設(shè)置并返回通信端口號(hào); Settings 以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位; PortOpen設(shè)置并返回通訊端口的狀態(tài),也可以打開(kāi)和關(guān)閉端口; Input 從接收緩沖區(qū)返回和刪除字符; Output 向傳輸緩沖區(qū)寫(xiě)一個(gè)字符串等屬性。
在計(jì)算機(jī)打開(kāi)VC,新建文件,建立工程,工程取名為temperature_dis。打開(kāi)“Project->Add To Project->Components and Controls->Registered Activex Controls”,然后選擇控件:Microsoft Communication Control,version 6.0插入到當(dāng)前的工程中。
將CMSComm 的相關(guān)文件 mscomm.cpp 和 mscomm.h加入到工程中。選擇控件工具條中的串口控件,增加OnOn-CommMscomm1() 函數(shù)。選擇控件工具條中的編輯框控件abl,為編輯框和串口選擇關(guān)聯(lián)變量m_tempDat和m_temp-Comm,在OnInitDialog() 函數(shù)加入代碼。
圖1
圖2
可視化PC機(jī)控制界面能夠?qū)崟r(shí)顯示建筑物內(nèi)的當(dāng)前溫度如圖2所示。
在單片機(jī)組成的溫度監(jiān)控系統(tǒng)中,一般由單片機(jī)作為下位機(jī),完成數(shù)據(jù)采集、狀態(tài)判別、輸出控制溫度參數(shù),上位機(jī)PC機(jī)完成采集數(shù)據(jù)信息的存儲(chǔ)與分析,以實(shí)現(xiàn)對(duì)溫度的實(shí)時(shí)監(jiān)控。
[1]郭天祥.數(shù)字電子技術(shù)基礎(chǔ)[M.]電子工業(yè)出版社.
[2]BST-V51單片機(jī)開(kāi)發(fā)板教程. 深圳市亞博智能科技有限公司.
[3]DS18B20中英文數(shù)據(jù)手冊(cè).