基于單片機(jī)和PC機(jī)的實(shí)時(shí)溫度控制系統(tǒng)設(shè)計(jì)[圖]

相關(guān)專題: 芯片

摘要:設(shè)計(jì)了一種利用單片機(jī)和PC機(jī)來實(shí)現(xiàn)的實(shí)時(shí)溫度控制系統(tǒng),包括硬件設(shè)計(jì)和軟件設(shè)計(jì)。系統(tǒng)采用STC89C52單片機(jī)作為主芯片,DS18B20數(shù)字溫度傳感器作為溫度采集器件,運(yùn)用蜂鳴器作為報(bào)警器,VB6.0制作上位機(jī)軟件,通過串口實(shí)現(xiàn)單片機(jī)與PC機(jī)的通信。系統(tǒng)能實(shí)時(shí)監(jiān)控環(huán)境溫度,并具有報(bào)警功能,具有一定的實(shí)用性。

1 引言

溫度是日常生活中非常重要的物理量,其測(cè)量包括接觸式和非接觸式兩種,前者需要感溫元件與被測(cè)物體接觸,會(huì)產(chǎn)生滯后現(xiàn)象,后者則是通過接收被測(cè)介質(zhì)發(fā)出的輻射來實(shí)現(xiàn)的。實(shí)時(shí)溫度控制系統(tǒng)運(yùn)用數(shù)字溫度傳感器DS18B20采集溫度,單片機(jī)作為主控芯片來對(duì)溫度值進(jìn)行處理,控制和傳輸,通過蜂鳴器實(shí)現(xiàn)報(bào)警功能,運(yùn)用VB編程制作上位機(jī)管理軟件。整個(gè)系統(tǒng)設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單,連接方便,易于管理,可以應(yīng)用于人不宜或者不易接觸的地方,達(dá)到自動(dòng)讀取環(huán)境溫度,并具有報(bào)警功能,節(jié)省人力和物力。

2 系統(tǒng)基本原理

系統(tǒng)結(jié)構(gòu)框圖如圖1所示,數(shù)字溫度傳感器DS18B20將待測(cè)介質(zhì)溫度值傳遞給單片機(jī),單片機(jī)對(duì)溫度值進(jìn)行處理,當(dāng)溫度超出所設(shè)范圍(本系統(tǒng)所設(shè)溫度極限為31℃)則通過報(bào)警電路實(shí)現(xiàn)報(bào)警。通過RS232串口實(shí)現(xiàn)PC機(jī)與單片機(jī)的通信,單片機(jī)將采集到的溫度值傳遞給PC機(jī)。

圖1 系統(tǒng)結(jié)構(gòu)框圖

通過使用Visual Basic中的通信控件MSComm(Microsoft Communication Control),可以在Windows環(huán)境下輕松實(shí)現(xiàn)串口數(shù)據(jù)交換,MSComm是Microsoft提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,通過對(duì)此控件的屬性和事件進(jìn)行編程,可以方便地發(fā)送和接收數(shù)據(jù)。利用MSComm控件制作上位機(jī)軟件,可以實(shí)時(shí)顯示環(huán)境溫度值和提示信息。

3 硬件設(shè)計(jì)

3.1 單片機(jī)控制設(shè)計(jì)

本設(shè)計(jì)采用STC公司的STC89C52單片機(jī)作為主要控制芯片,此單片機(jī)具有4組8位I/O口(DIP-40封裝),3個(gè)16位定時(shí)/計(jì)數(shù)器,8個(gè)中斷源,8KB Flash程序存儲(chǔ)器,512Byte片內(nèi)RAM數(shù)據(jù)存儲(chǔ)器,一個(gè)全雙工串行通信接口。STC單片機(jī)性價(jià)比高,功能多,抗干擾能力很強(qiáng),串口編程很方便,保密性很強(qiáng)。

圖2 單片機(jī)控制電路idan;lai電路

采用數(shù)字溫度傳感器DS18B20測(cè)量環(huán)境溫度,DS18B20是美國(guó)Dallas公司生產(chǎn)的單線數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可以直接將溫度值轉(zhuǎn)換為串行數(shù)字信號(hào)供處理器處理,特別適合多點(diǎn)溫度測(cè)控系統(tǒng),每片DS18B20都有惟一的產(chǎn)品號(hào)并可存入其ROM中,以便在構(gòu)成大型溫度測(cè)控系統(tǒng)時(shí)在單線上掛接任意多個(gè)DS18B20芯片。從DS18B20讀出或?qū)懭隓S18B20信息僅需要一根端口線,其讀寫及溫度變換功率來源于數(shù)據(jù)總線,該總線本身也可以將所掛接的DS18B20供電,而無需額外電源。DS18B20能提供9位溫度讀數(shù),它無需任何外圍器件即可方便地構(gòu)成溫度檢測(cè)系統(tǒng)。如圖2所示,只需將DS18B20的第4腳(DQ)和單片機(jī)的一個(gè)I/O口(P2.2)相連,另外還需接一個(gè)上拉電阻即可。單片機(jī)通過其I/O口獲得溫度值,很方便地進(jìn)行處理, 傳輸和控制。

報(bào)警電路采用蜂鳴器作為報(bào)警器件,如圖2所示,只需很少的器件,就能實(shí)現(xiàn)單片機(jī)與蜂鳴器的連接。當(dāng)與蜂鳴器所連單片機(jī)的I/O口輸出低電平時(shí),蜂鳴器則能發(fā)出聲音,系統(tǒng)設(shè)計(jì)中,當(dāng)溫度超過31℃時(shí),蜂鳴器則發(fā)出聲音,實(shí)現(xiàn)報(bào)警功能。

3.2 單片機(jī)與PC機(jī)接口設(shè)計(jì)

單片機(jī)要和PC機(jī)實(shí)現(xiàn)串口通信,需要進(jìn)行電平轉(zhuǎn)換,因?yàn)閱纹瑱C(jī)使用的是TTL電平,而PC機(jī)串口使用的是RS232電平。運(yùn)用MAXIM公司生產(chǎn)的MAX232芯片實(shí)現(xiàn)TTL電平和RS232電平轉(zhuǎn)換,如圖3所示,通過其第11腳和第12腳分別與單片機(jī)的第11腳和第10腳連接,通過第13腳,第14腳分別與PC機(jī)串口的第2腳,第3腳進(jìn)行連接,就能實(shí)現(xiàn)單片機(jī)和PC機(jī)的電平轉(zhuǎn)換、連接、和通信。單片機(jī)與PC機(jī)接口電路原理圖如圖3所示。

圖3 單片機(jī)與PC機(jī)串口通信接口電路

4 軟件設(shè)計(jì)

系統(tǒng)單片機(jī)程序采用C51進(jìn)行編程,主要完成對(duì)DS18B20的調(diào)用中斷管理、測(cè)量溫度值的計(jì)算以及單片機(jī)與PC機(jī)的串口通信。上位機(jī)軟件采用VBMSComm控件制作,由于C51程序較長(zhǎng),此處只介紹上位機(jī)軟件編寫程序,VB程序如下:

Private Sub Form_Load( ) ' . . . . . . . . 初始化設(shè)置

MSComm1.CommPort = 1 '……使用Com1口

MSComm1.Settings = "9600,n,8,1" '. 設(shè)置通訊參數(shù)

MSComm1.InBufferSize = 4 ' 設(shè)置接收寄存器等待讀取的字符數(shù)為4

MSComm1.RThre shold = 0 ' 初始化為不產(chǎn)生OnComm事件

MSComm1.PortOpen = True ' .打開串口

MSComm1.InputLen = 4 ' 設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù)為4

MSComm1.InputMode = comInputModeText ' 設(shè)置接收方式為文本方式

Me.Caption = " 實(shí)時(shí)溫度控制系統(tǒng)" ' 設(shè)置標(biāo)題為" 實(shí)時(shí)溫度控制系統(tǒng)"

End Sub

Private Sub Command1_Click( ) '. .自動(dòng)讀取按鈕

Timer1.Enabled = True ' . . . . . . . .開啟定時(shí)器

MSComm 1 . RThreshold = 1 ' . . . . . . . . 開啟OnComm事件觸發(fā)

End Sub

Private Sub Command2_Click( ) '. .清空內(nèi)容按鈕

Timer1.Enabled = False ' . . . . . . . . 關(guān)閉定時(shí)器

MSComm1.RThre shold = 0 ' . . . . . . . .停止產(chǎn)生OnComm事件

Shape1 . FillColor = RGB(255,255,255)

' . . . . . . . . 設(shè)置信號(hào)指示燈的顏色為白色

Text1. Text = " " ' . . . . . . . .清空文本框1的內(nèi)容

Text2. Text = " " ' . . . . . . . .清空文本框2的內(nèi)容

Text3. Text = " " ' . . . . . . . .清空文本框3的內(nèi)容

End Sub

Private Sub Command3_Click( ) '. .關(guān)閉窗口按鈕

Unload Me ' . . . . . . . . 卸載窗體

End Sub

Private Sub MSComm1_OnComm( ) '. . . . . .事件觸發(fā)

Dim rec As String

Select Case MSComm1.CommEvent

Case comEvReceive

rec = MSComm1. Input

Text3.Text = rec

MyResult = (Text3.Text< "31")

' . . . . . . . . 判斷當(dāng)前溫度是否達(dá)到31℃

If MyResult = False Then ' . . . .達(dá)到31℃

Shape1.FillColor = RGB(255,0 ,0 ) ' . . . . . . . . 信號(hào)燈為紅色

Text1 . Text = " 產(chǎn)生報(bào)警"' . . . . . . . . 同時(shí)信息提示顯示" 產(chǎn)生報(bào)警"

Else ' . . . . . . . . 未達(dá)到31℃

Shape1.FillColor = RGB(0,128,0 ) ' . . . . . . . . 信號(hào)燈為綠色

Text1 . Text = " 溫度正常"' . . . . . . . . 同時(shí)信息提示顯示" 溫度正常"

End If

Text3.Te xt = " "

Text3.Text = rec + "℃"

MSComm1. InBufferCount = 0 ' 清空接收緩沖區(qū)

End Select

End Sub

Private Sub Timer1_Timer()

Text2 . Text = Now ' . . . . . . . . 設(shè)置定時(shí)器產(chǎn)生時(shí)鐘,顯示當(dāng)前時(shí)間

End Sub

5 系統(tǒng)調(diào)試

系統(tǒng)實(shí)現(xiàn)功能包括,通過下位機(jī)(單片機(jī))將DS18B20所測(cè)溫度值實(shí)時(shí)傳輸給上位機(jī)(PC機(jī)),通過上位機(jī)(PC機(jī))監(jiān)控環(huán)境溫度,并具有報(bào)警功能。

1.在上位機(jī)軟件中點(diǎn)擊"自動(dòng)讀取"按鈕實(shí)現(xiàn)自動(dòng)讀取當(dāng)前時(shí)間,溫度值。當(dāng)正常溫度情況下,信號(hào)指示燈為綠色,同時(shí)信息提示為"溫度正常"。

2.當(dāng)溫度達(dá)到所設(shè)溫度極限時(shí)(本系統(tǒng)所設(shè)溫度極限為31℃) ,信號(hào)燈變?yōu)榧t色,信息提示為"產(chǎn)生報(bào)警",同時(shí)硬件部分的蜂鳴器會(huì)報(bào)警,如圖4所示為產(chǎn)生報(bào)警時(shí)上位機(jī)顯示部分。

圖4 產(chǎn)生報(bào)警時(shí)上位機(jī)顯示部分

6 結(jié)束語

運(yùn)用能直接得到數(shù)字信號(hào)的溫度傳感器DS18B20采集溫度,將溫度值通過單片機(jī)I/O口傳遞給單片機(jī)進(jìn)行處理,傳輸和控制,當(dāng)溫度值達(dá)到所設(shè)溫度極限時(shí)產(chǎn)生報(bào)警,通過串口數(shù)據(jù)線實(shí)現(xiàn)下位機(jī)(單片機(jī))與上位機(jī)(PC機(jī))通信,并運(yùn)用VBMSComm控件制作上位機(jī)軟件,達(dá)到實(shí)時(shí)顯示環(huán)境溫度和提示信息。系統(tǒng)設(shè)計(jì)連接簡(jiǎn)單,實(shí)現(xiàn)容易,使用方便。

作者:熊永中 王文劍 陳金鷹 唐良義 成都理工大學(xué) 來源:《自動(dòng)化技術(shù)與應(yīng)用》2010年03期


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):5G網(wǎng)絡(luò)AI應(yīng)用典型場(chǎng)景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費(fèi)領(lǐng)取《5G_6G毫米波測(cè)試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費(fèi)領(lǐng)取《中國(guó)移動(dòng):6G至簡(jiǎn)無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費(fèi)領(lǐng)取《《中國(guó)聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費(fèi)領(lǐng)取《中國(guó)電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費(fèi)領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費(fèi)領(lǐng)取《中國(guó)移動(dòng)算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費(fèi)領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點(diǎn)本月熱點(diǎn)

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息