新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)和PC機(jī)的實(shí)時(shí)溫度控制系統(tǒng)設(shè)計(jì)

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

        作者: 時(shí)間:2012-05-25 來(lái)源:網(wǎng)絡(luò) 收藏

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

        3.2 接口設(shè)計(jì)

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

        基于單片機(jī)和PC機(jī)的實(shí)時(shí)溫度控制系統(tǒng)設(shè)計(jì)
        圖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 ' .打開(kāi)串口
        MSComm1.InputLen = 4 ' 設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù)為4
        MSComm1.InputMode = comInputModeText ' 設(shè)置接收方式為文本方式
        Me.Caption = " 實(shí)時(shí)" ' 設(shè)置標(biāo)題為" 實(shí)時(shí)"
        End Sub
        Private Sub Command1_Click( ) '. .自動(dòng)讀取按鈕
        Timer1.Enabled = True ' . . . . . . . .開(kāi)啟定時(shí)器
        MSComm 1 . RThreshold = 1 ' . . . . . . . . 開(kāi)啟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)功能包括,通過(guò)下位機(jī)(單片機(jī))將DS18B20所測(cè)溫度值實(shí)時(shí)傳輸給上位機(jī)(PC機(jī)),通過(guò)上位機(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ī)顯示部分。

        基于單片機(jī)和PC機(jī)的實(shí)時(shí)溫度控制系統(tǒng)設(shè)計(jì)
        圖4 產(chǎn)生報(bào)警時(shí)上位機(jī)顯示部分

        6 結(jié)束語(yǔ)

        運(yùn)用能直接得到數(shù)字信號(hào)的溫度傳感器DS18B20采集溫度,將溫度值通過(guò)單片機(jī)I/O口傳遞給單片機(jī)進(jìn)行處理,傳輸和控制,當(dāng)溫度值達(dá)到所設(shè)溫度極限時(shí)產(chǎn)生報(bào)警,通過(guò)串口數(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)容易,使用方便。

        蜂鳴器相關(guān)文章:蜂鳴器原理

        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 西藏| 伊宁市| 冀州市| 琼结县| 禹州市| 始兴县| 金溪县| 尤溪县| 余姚市| 嘉峪关市| 和龙市| 赞皇县| 巢湖市| 寿光市| 襄城县| 奉新县| 于都县| 勃利县| 阿拉善左旗| 贵定县| 阳东县| 齐河县| 额尔古纳市| 昌乐县| 广灵县| 西宁市| 双桥区| 灯塔市| 玉溪市| 资溪县| 砚山县| 邳州市| 天水市| 沙坪坝区| 林口县| 郧西县| 旺苍县| 申扎县| 托克逊县| 霍林郭勒市| 桂阳县|