基于PIC16F877單片機(jī)的溫控系統(tǒng)設(shè)計研究
摘要:以PIC單片機(jī)為核心控制DS18B20溫度傳感器等外圍電路模塊實現(xiàn)了對多路溫度的實時監(jiān)測。論述了系統(tǒng)設(shè)計思路和軟件設(shè)計流程。系統(tǒng)具有溫度監(jiān)測、自動撥號、語音報警功能,有較強的實用價值。
關(guān)鍵詞:單片機(jī);溫度監(jiān)測;自動撥號;語音報警
1系統(tǒng)硬件電路的設(shè)計
1.1系統(tǒng)的功能框圖
系統(tǒng)的主要組成部分包括:溫度傳感器DS18B20、PIC16F877單片機(jī)、可編程鍵盤/顯示器接口芯片8279、OCM4X8C液晶顯示器、MODEM、ISD2560語音芯片和信號音檢測模塊CR6230,系統(tǒng)的功能框圖如圖1所示。
系統(tǒng)選用美國Microchip公司生產(chǎn)的價格低廉、性能優(yōu)良的PIC16F877單片機(jī)作為控制主體,充分利用其提供的軟硬件資源,可使控制系統(tǒng)硬件電路設(shè)計相對簡潔,提高系統(tǒng)的可靠性。但由于系統(tǒng)中的各種功能模塊較多,每個模塊都需要單片機(jī)給出一定數(shù)量的控制線、數(shù)據(jù)線等來完成相應(yīng)的功能,而單片機(jī)的I/O資源有限,所以必須進(jìn)行I/O擴(kuò)展。這里是通過由單片機(jī)的3個I/O引腳(RC1-RC3)控制譯碼器74LS138從而給出8個選通信號,分別選通幾個74LS373和74LS245來實現(xiàn)對各模塊的控制與通信的。
此外,需要給單片機(jī)設(shè)計復(fù)位電路,這里采用RC復(fù)位電路,頻率約為4MHz。
1.2多路溫度采集
針對測量環(huán)境、精度和系統(tǒng)主機(jī)對監(jiān)測點傳輸距離的不同要求,以及考慮元件的成本,選擇美國DALLAS半導(dǎo)體公司最新推出的一種數(shù)字化單總線器件DS18B20。在硬件上,DS18B20與單片機(jī)的連接有兩種方法。一種是將DS18B20的UDD接外部電源,GND接地,其I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時DS18B20的UDD、GND接地,其I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,DS18B20的I/O口線要接5K見左右的上拉電阻。DS18B20有六條控制命令,如表1所示。
CPUCPU對DS18B20的訪問流程是:先對DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對存儲器操作和對數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時序和通信協(xié)議。
1.3信息顯示
采用OCM4X8C液晶顯示模塊作為輸出顯示。可顯示漢字及圖形,采用單片機(jī)8位并行連接方式,通過給定命令和顯示數(shù)據(jù)完成不同界面的顯示。當(dāng)單片機(jī)通過譯碼器對連接液晶顯示模塊的雙向鎖存器74LS245使能,并且相關(guān)引腳通過單片機(jī)傳送適當(dāng)?shù)碾娖綍r,給出一定的指令字。實現(xiàn)顯示的過程是:在傳送命令的狀態(tài)下先選擇指令集清屏,然后指定在資料寫入或讀取時游標(biāo)的移動方向及顯示的移位,開顯示,設(shè)定顯示地址,然后進(jìn)入傳送數(shù)據(jù)的狀態(tài),根據(jù)要顯示的內(nèi)容從中文字庫中找出相應(yīng)的16進(jìn)制代碼并將其依次傳給液晶顯示器(此時要注意每行顯示的字?jǐn)?shù)限制),之后單片機(jī)就可以對液晶顯示模塊進(jìn)行讀寫操作。
關(guān)鍵詞:單片機(jī);溫度監(jiān)測;自動撥號;語音報警
1系統(tǒng)硬件電路的設(shè)計
1.1系統(tǒng)的功能框圖
系統(tǒng)的主要組成部分包括:溫度傳感器DS18B20、PIC16F877單片機(jī)、可編程鍵盤/顯示器接口芯片8279、OCM4X8C液晶顯示器、MODEM、ISD2560語音芯片和信號音檢測模塊CR6230,系統(tǒng)的功能框圖如圖1所示。
系統(tǒng)選用美國Microchip公司生產(chǎn)的價格低廉、性能優(yōu)良的PIC16F877單片機(jī)作為控制主體,充分利用其提供的軟硬件資源,可使控制系統(tǒng)硬件電路設(shè)計相對簡潔,提高系統(tǒng)的可靠性。但由于系統(tǒng)中的各種功能模塊較多,每個模塊都需要單片機(jī)給出一定數(shù)量的控制線、數(shù)據(jù)線等來完成相應(yīng)的功能,而單片機(jī)的I/O資源有限,所以必須進(jìn)行I/O擴(kuò)展。這里是通過由單片機(jī)的3個I/O引腳(RC1-RC3)控制譯碼器74LS138從而給出8個選通信號,分別選通幾個74LS373和74LS245來實現(xiàn)對各模塊的控制與通信的。
此外,需要給單片機(jī)設(shè)計復(fù)位電路,這里采用RC復(fù)位電路,頻率約為4MHz。
1.2多路溫度采集
針對測量環(huán)境、精度和系統(tǒng)主機(jī)對監(jiān)測點傳輸距離的不同要求,以及考慮元件的成本,選擇美國DALLAS半導(dǎo)體公司最新推出的一種數(shù)字化單總線器件DS18B20。在硬件上,DS18B20與單片機(jī)的連接有兩種方法。一種是將DS18B20的UDD接外部電源,GND接地,其I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時DS18B20的UDD、GND接地,其I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,DS18B20的I/O口線要接5K見左右的上拉電阻。DS18B20有六條控制命令,如表1所示。
CPUCPU對DS18B20的訪問流程是:先對DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對存儲器操作和對數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時序和通信協(xié)議。
1.3信息顯示
采用OCM4X8C液晶顯示模塊作為輸出顯示。可顯示漢字及圖形,采用單片機(jī)8位并行連接方式,通過給定命令和顯示數(shù)據(jù)完成不同界面的顯示。當(dāng)單片機(jī)通過譯碼器對連接液晶顯示模塊的雙向鎖存器74LS245使能,并且相關(guān)引腳通過單片機(jī)傳送適當(dāng)?shù)碾娖綍r,給出一定的指令字。實現(xiàn)顯示的過程是:在傳送命令的狀態(tài)下先選擇指令集清屏,然后指定在資料寫入或讀取時游標(biāo)的移動方向及顯示的移位,開顯示,設(shè)定顯示地址,然后進(jìn)入傳送數(shù)據(jù)的狀態(tài),根據(jù)要顯示的內(nèi)容從中文字庫中找出相應(yīng)的16進(jìn)制代碼并將其依次傳給液晶顯示器(此時要注意每行顯示的字?jǐn)?shù)限制),之后單片機(jī)就可以對液晶顯示模塊進(jìn)行讀寫操作。
1.4撥號設(shè)計
采用外置MODEM來實現(xiàn)撥號功能,單片機(jī)與MODEM之間采用串行通信,連接方式見圖2。將電話線接入MODEM后,單片機(jī)按照RS232通信標(biāo)準(zhǔn)與MODEM相連,這里是通過MAX232芯片來實現(xiàn)TTL電平與RS232電平的轉(zhuǎn)換,按照MODEM的工作波特率(9600bps)設(shè)置后,單片機(jī)串口發(fā)出相應(yīng)AT命令可實現(xiàn)對MODEM的控制,同時MO-DEM在執(zhí)行該命令后會返回一定的信息。返回信息對于判斷MODEM是否正常工作以及電話是否撥通和被接聽都有重要的作用。
采用外置MODEM來實現(xiàn)撥號功能,單片機(jī)與MODEM之間采用串行通信,連接方式見圖2。將電話線接入MODEM后,單片機(jī)按照RS232通信標(biāo)準(zhǔn)與MODEM相連,這里是通過MAX232芯片來實現(xiàn)TTL電平與RS232電平的轉(zhuǎn)換,按照MODEM的工作波特率(9600bps)設(shè)置后,單片機(jī)串口發(fā)出相應(yīng)AT命令可實現(xiàn)對MODEM的控制,同時MO-DEM在執(zhí)行該命令后會返回一定的信息。返回信息對于判斷MODEM是否正常工作以及電話是否撥通和被接聽都有重要的作用。
選用4選1模擬開關(guān)4052芯片完成單片機(jī)與MODEM串行通信外和傳感器模塊的MAX485串行通信的控制。當(dāng)單片機(jī)端口C的RC3=1、RC2=0、RC1=1時,譯碼器74LS138的譯碼線Y5有效,使得74LS373有效,因而來自單片機(jī)的RD4位鎖存至4052的INH端,此時RD4的低電平來控制4052的選通。因4051的INH端通過反相器連接4052的INH端,所以不被同時選中。
為了實現(xiàn)MODEM與單片機(jī)的實時通信,將系統(tǒng)板上用于連接MODEM的D型插口的RST與CTS互聯(lián),DTR與DSR互聯(lián)。
1.5語音控制模塊
該部分主要是通過單片機(jī)控制語音芯片ISD2560來實現(xiàn)多段語音存儲和播放。通過給定相應(yīng)段地址和控制信號(錄放音P/R和使能控制CE),ISD2560及其外圍電路即可實現(xiàn)對多段語音的存儲和播放。由于語音的存儲有600個地址,所以要用A0-A9共十位進(jìn)行表示,對ISD2560輸入地址,首先單片機(jī)的端口D通過74LS373輸入A0-A7八位地址,然后再單獨輸入A8、A9兩個高位地址。錄音和放音是單片機(jī)通過RD7控制錄放音引腳P/R實現(xiàn)的。
1.6信號音檢測模塊
信號音檢測模塊CR6230用于實現(xiàn)準(zhǔn)確識別各種電話信號音,包括撥號音、回鈴音、忙音和催掛音等功能。即:若得出某種結(jié)果后,相應(yīng)的信號引腳則輸出有效TTL電平。
接聽的判斷過程是單片機(jī)控制MODEM撥號后,識別回鈴音信號是否有效,若無效則重?fù)芑蚋膿芴柎a;回鈴音信號有效則等待,若其變?yōu)闊o效則判斷此時對方是否接聽,此后還要根據(jù)MODEM的返回值來進(jìn)一步確定是否真被接聽。信號的識別需要一定的周期才可以保證可靠性和準(zhǔn)確率,所以在檢測到信號音后要延時大約1s的時間,以保證準(zhǔn)確的識別結(jié)果;同理,當(dāng)信號消失后也應(yīng)略有延時再清除。硬件設(shè)計是將電話線路經(jīng)通信變壓器CRE變換隔離后接入到CR6230的信號輸入端IN引腳。通信變壓器CRE3用于電話終端產(chǎn)品和中繼線產(chǎn)品的線路接口部分,技術(shù)指標(biāo)符合郵電部入網(wǎng)標(biāo)準(zhǔn)。將CR6230的BS、RS、PS、SS引腳分別通過鎖存器74LS373與單片機(jī)的D3~D0連接,單片機(jī)通過讀取端口D的低四位就能獲得CR6230返回的當(dāng)前信號狀態(tài)。另外,若單片機(jī)通過控制譯碼器的Y2引腳將CR6230的CS引腳設(shè)置為接收低電平時,BS、RS、PS、SS引腳也將被設(shè)置為低電平,這樣,其上的信號被清除以等待接收新的信號。
2系統(tǒng)的軟件設(shè)計流程圖
系統(tǒng)軟件設(shè)計的難點在于對DS18B20的控制(如圖3)。
3結(jié)語
設(shè)計以PIC單片機(jī)系統(tǒng)為核心,由單片機(jī)、溫度傳感器、RS-485串口通信和計算機(jī)組成,利用了DS18B20“一線總線”數(shù)字化溫度傳感器,能夠?qū)Χ帱c的溫度進(jìn)行實時巡檢。各檢測單元(從機(jī))能獨立完成各自功能,同時能夠根據(jù)主控機(jī)的指令對溫度進(jìn)行定時采集,測量結(jié)果不僅能在本地顯示,而且可以利用單片機(jī)串行口,通過RS-485總線及通信協(xié)議將采集的數(shù)據(jù)傳送到主控機(jī),進(jìn)行進(jìn)一步的存檔、處理。主控機(jī)負(fù)責(zé)控制指令的發(fā)送,控制各個從機(jī)進(jìn)行溫度采集,收集測量數(shù)據(jù),并對測量結(jié)果(包括歷史數(shù)據(jù))進(jìn)行整理、顯示和存儲。主控機(jī)與各從機(jī)之間能夠相互聯(lián)系、相互協(xié)調(diào)。本系統(tǒng)運行穩(wěn)定、工作精度高,經(jīng)測試,在-10℃~+70℃間測得誤差為0.25℃,80℃到105℃時誤差為0.5℃,當(dāng)T105℃誤差增大到1℃左右。實踐證明,該控制系統(tǒng)操作方便,維修簡單,運行穩(wěn)定、可靠。
為了實現(xiàn)MODEM與單片機(jī)的實時通信,將系統(tǒng)板上用于連接MODEM的D型插口的RST與CTS互聯(lián),DTR與DSR互聯(lián)。
1.5語音控制模塊
該部分主要是通過單片機(jī)控制語音芯片ISD2560來實現(xiàn)多段語音存儲和播放。通過給定相應(yīng)段地址和控制信號(錄放音P/R和使能控制CE),ISD2560及其外圍電路即可實現(xiàn)對多段語音的存儲和播放。由于語音的存儲有600個地址,所以要用A0-A9共十位進(jìn)行表示,對ISD2560輸入地址,首先單片機(jī)的端口D通過74LS373輸入A0-A7八位地址,然后再單獨輸入A8、A9兩個高位地址。錄音和放音是單片機(jī)通過RD7控制錄放音引腳P/R實現(xiàn)的。
1.6信號音檢測模塊
信號音檢測模塊CR6230用于實現(xiàn)準(zhǔn)確識別各種電話信號音,包括撥號音、回鈴音、忙音和催掛音等功能。即:若得出某種結(jié)果后,相應(yīng)的信號引腳則輸出有效TTL電平。
接聽的判斷過程是單片機(jī)控制MODEM撥號后,識別回鈴音信號是否有效,若無效則重?fù)芑蚋膿芴柎a;回鈴音信號有效則等待,若其變?yōu)闊o效則判斷此時對方是否接聽,此后還要根據(jù)MODEM的返回值來進(jìn)一步確定是否真被接聽。信號的識別需要一定的周期才可以保證可靠性和準(zhǔn)確率,所以在檢測到信號音后要延時大約1s的時間,以保證準(zhǔn)確的識別結(jié)果;同理,當(dāng)信號消失后也應(yīng)略有延時再清除。硬件設(shè)計是將電話線路經(jīng)通信變壓器CRE變換隔離后接入到CR6230的信號輸入端IN引腳。通信變壓器CRE3用于電話終端產(chǎn)品和中繼線產(chǎn)品的線路接口部分,技術(shù)指標(biāo)符合郵電部入網(wǎng)標(biāo)準(zhǔn)。將CR6230的BS、RS、PS、SS引腳分別通過鎖存器74LS373與單片機(jī)的D3~D0連接,單片機(jī)通過讀取端口D的低四位就能獲得CR6230返回的當(dāng)前信號狀態(tài)。另外,若單片機(jī)通過控制譯碼器的Y2引腳將CR6230的CS引腳設(shè)置為接收低電平時,BS、RS、PS、SS引腳也將被設(shè)置為低電平,這樣,其上的信號被清除以等待接收新的信號。
2系統(tǒng)的軟件設(shè)計流程圖
系統(tǒng)軟件設(shè)計的難點在于對DS18B20的控制(如圖3)。
3結(jié)語
設(shè)計以PIC單片機(jī)系統(tǒng)為核心,由單片機(jī)、溫度傳感器、RS-485串口通信和計算機(jī)組成,利用了DS18B20“一線總線”數(shù)字化溫度傳感器,能夠?qū)Χ帱c的溫度進(jìn)行實時巡檢。各檢測單元(從機(jī))能獨立完成各自功能,同時能夠根據(jù)主控機(jī)的指令對溫度進(jìn)行定時采集,測量結(jié)果不僅能在本地顯示,而且可以利用單片機(jī)串行口,通過RS-485總線及通信協(xié)議將采集的數(shù)據(jù)傳送到主控機(jī),進(jìn)行進(jìn)一步的存檔、處理。主控機(jī)負(fù)責(zé)控制指令的發(fā)送,控制各個從機(jī)進(jìn)行溫度采集,收集測量數(shù)據(jù),并對測量結(jié)果(包括歷史數(shù)據(jù))進(jìn)行整理、顯示和存儲。主控機(jī)與各從機(jī)之間能夠相互聯(lián)系、相互協(xié)調(diào)。本系統(tǒng)運行穩(wěn)定、工作精度高,經(jīng)測試,在-10℃~+70℃間測得誤差為0.25℃,80℃到105℃時誤差為0.5℃,當(dāng)T105℃誤差增大到1℃左右。實踐證明,該控制系統(tǒng)操作方便,維修簡單,運行穩(wěn)定、可靠。
本文標(biāo)簽:基于PIC16F877單片機(jī)的溫控系統(tǒng)設(shè)計研究
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《基于PIC16F877單片機(jī)的溫控系統(tǒng)設(shè)計研究》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“基于PIC16F877單片機(jī)的溫控系統(tǒng)設(shè)計研究”的更多資訊










