歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > DOC文檔下載  

溫度測(cè)控儀設(shè)計(jì)畢業(yè)設(shè)計(jì)[共38頁(yè)]

  • 資源ID:47843214       資源大?。?span id="sjynyrk" class="font-tahoma">522.50KB        全文頁(yè)數(shù):38頁(yè)
  • 資源格式: DOC        下載積分:12積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要12積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

溫度測(cè)控儀設(shè)計(jì)畢業(yè)設(shè)計(jì)[共38頁(yè)]

I溫度測(cè)控儀設(shè)計(jì)學(xué)生:XXX 指導(dǎo)教師:XXX內(nèi)容摘要:本文主要介紹了智能溫度測(cè)量?jī)x的設(shè)計(jì),包括硬件和軟件的設(shè)計(jì)。先對(duì)該測(cè)量?jī)x進(jìn)行概括性介紹,然后介紹該測(cè)量?jī)x在硬件設(shè)計(jì)上的主要器件:“Pt100 熱電阻” 、AT89C51 單片機(jī)和 LCD 顯示器以及描述測(cè)量?jī)x的總體結(jié)構(gòu)原理。在本設(shè)計(jì)中,是以鉑電阻 PT100 作為溫度傳感器,采用恒流測(cè)溫的方法,通過(guò)單片機(jī)進(jìn)行控制,用放大器、A/D 轉(zhuǎn)換器進(jìn)行溫度信號(hào)的采集??傮w來(lái)說(shuō),該設(shè)計(jì)是切實(shí)可行的。 關(guān)鍵詞:溫度 Pt100 熱電阻 AT89C51 單片機(jī) LCD 顯示器IIDesignDesign ofof andand controlcontrol instrumentinstrumentAbstract:Abstract: This paper describes the design of the intelligent temperature measuring instrument, including hardware and software design. Be the first general description of the measuring instrument, and then describes the hardware design of the measuring instruments main device: Pt100 thermal resistance, AT89C51 microcontroller and LCD display, and describe the principle of measuring the overall structure. In this design, as is the PT100 platinum resistance temperature sensor, temperature measurement using constant current method, through the microcontroller to control, amplifier, A/D converter for temperature signal acquisition. Overall, the design is feasible. Keywords:Keywords: temperature Pt100 thermal resistance AT89C51 microcontroller LCD monitor.III目 錄前言 .11 總體硬件方案設(shè)計(jì) .11.1 溫度傳感器的放大電路設(shè)計(jì) .21.2 TLC549 模數(shù)轉(zhuǎn)化電路設(shè)計(jì).41.3 顯示電路設(shè)計(jì) .51.4 無(wú)線發(fā)送與接收模塊的選擇與設(shè)計(jì) .51.5 鍵盤(pán)設(shè)計(jì) .62 總體的軟件程序的設(shè)計(jì) .62.1 溫度數(shù)據(jù)采集和數(shù)據(jù)處理子程序的設(shè)計(jì) .62.2 溫度顯示、保存處理的子程序設(shè)計(jì) .72.3 無(wú)線發(fā)送與接受的子程序的設(shè)計(jì) .72.4 十組溫度查詢(xún)的子程序設(shè)計(jì) .93 調(diào)試與結(jié)果分析 .103.1 調(diào)試儀器及方法 .103.3 軟、硬件調(diào)試與故障原因分析 .104 結(jié)束語(yǔ) .10附錄 1:硬件原理圖及 PCB 板.12附錄 2:軟件程序代碼.13參考文獻(xiàn) .34IV1溫度測(cè)控儀的設(shè)計(jì)前言隨著工業(yè)生產(chǎn)效率的不斷提高,自動(dòng)化水平與范圍也不斷擴(kuò)大,因而對(duì)溫度檢測(cè)技術(shù)的要求也愈來(lái)愈高, 現(xiàn)在工業(yè)上通用的溫度檢測(cè)范圍為 200 3000,而今后要求能測(cè)量超高溫度與超低溫度。尤其是液化氣體的極低溫度測(cè)量更為迫切,入 10K 以下溫度測(cè)量為當(dāng)今研究的重要課題。溫度檢測(cè)技術(shù)將會(huì)由點(diǎn)測(cè)溫發(fā)展到線、面,甚至立體的測(cè)溫。應(yīng)用范圍已經(jīng)從土業(yè)領(lǐng)域延伸到環(huán)境保護(hù)、家用電器、汽車(chē)工業(yè)以及航天工業(yè)領(lǐng)域。發(fā)展新型產(chǎn)品利用以前的檢測(cè)技術(shù)生產(chǎn)處適應(yīng)于不同場(chǎng)合、不同工況要求的新型產(chǎn)品,以滿(mǎn)足用戶(hù)需要。同時(shí)利用新的檢測(cè)技術(shù)制造出新的產(chǎn)品。對(duì)許多場(chǎng)合中的溫度檢測(cè)器有特殊要求,入防硫、防爆、耐磨等性能要求;又如移動(dòng)物體和高速旋轉(zhuǎn)物體的測(cè)溫、鋼水的連續(xù)測(cè)溫、火焰溫度檢測(cè)等。因此,本設(shè)計(jì)方向就是在溫度測(cè)量遠(yuǎn)距離傳送和保存方面進(jìn)行有效的探索。1 總體硬件方案設(shè)計(jì)本系統(tǒng)分為兩大部分,一部分為溫度采集模塊、51單片機(jī)及發(fā)送模塊,另一部分為遠(yuǎn)距離數(shù)據(jù)的接收模塊與51單片機(jī)。溫度采集及發(fā)送部分:本設(shè)計(jì)利用AD590進(jìn)行溫度的測(cè)量,在經(jīng)過(guò)電壓跟隨器,放大電路放大、調(diào)整之后通過(guò)A/D轉(zhuǎn)換器TLC549將模擬電壓信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),A/D轉(zhuǎn)換之后的數(shù)據(jù)送到單片機(jī)1進(jìn)行處理,單片機(jī)1控制液晶顯示器,將溫度值在液晶顯示器上進(jìn)行顯示,在通過(guò)PT2262進(jìn)行無(wú)線發(fā)送。接收及顯示部分:用SC2272進(jìn)行無(wú)線接收,接收后的數(shù)據(jù)送到單片機(jī)2,單片機(jī)2控制液晶顯示器進(jìn)行顯示。2單片機(jī) 1顯示模塊A/D 采集模塊AD590溫度測(cè)量PT2262發(fā)送 圖1-1 發(fā)送模塊框架圖 顯示模塊單片機(jī) 2PT2272接收 圖 1-2 接收模塊框架圖1.1 溫度傳感器的放大電路設(shè)計(jì)AD590 是美國(guó)模擬器件公司生產(chǎn)的單片集成兩端感溫電流源,它會(huì)將溫度轉(zhuǎn)換為電流,在 8051 的各種課本中經(jīng)??吹?。其規(guī)格如下: 度每增加 1,它會(huì)增加 1A 輸出電流 可測(cè)量范圍-55至 150 供電電壓范圍+4V 至+30VAD590 的管腳圖及元件符號(hào)如下圖所示: 圖 1.1-1 AD590 管腳圖3AD590 的輸出電流值說(shuō)明如下: 其輸出電流是以絕對(duì)溫度零度(-273)為基準(zhǔn),每增加 1,它會(huì)增加1A 輸出電流,因此在室溫 25時(shí),其輸出電流 Iout=(273+25)=298A。AD590 基本應(yīng)用電路: 圖 1.1-2 基本應(yīng)用電路 AD590 的輸出電流 I=(273+T)uA(T 為攝氏溫度),因此測(cè)量的電壓為(273+T)A10K=(2.73+T/100)V。為了將電壓測(cè)量出來(lái)又務(wù)須使輸出電流 I 不分流出來(lái),我們使用電壓跟隨器其輸出電壓 V2 等于輸入電壓 V。 由于一般電源供應(yīng)教多器件之后,電源是帶雜波的,因此我們使用齊納二極管作為穩(wěn)壓元件,再利用可變電阻分壓,其輸出電壓 V1 需調(diào)整至 2.73V。 接下來(lái)我們使用差動(dòng)放大器其輸出 Vo1 為(100K/10K)(V2-V1)=T/10,如果現(xiàn)在為攝氏 28,輸出電壓為 2.8V,輸出電壓接 AD 轉(zhuǎn)換器,那么 AD 轉(zhuǎn)換輸出的數(shù)字量就和攝氏溫度成線形比例關(guān)系。 通過(guò)R9和R12進(jìn)行分壓,V0=T/20,因?yàn)闇y(cè)試溫度不大于100,使得最終輸出最大Vo為(1/2)10=5V;能在A/D轉(zhuǎn)換器TCL549的輸入電壓范圍輸入0.3VVCC +0.3V之內(nèi)。溫度采集電路圖采用智能化間歇數(shù)據(jù)采集,即首先把溫度變化值分為報(bào)警溫度、預(yù)警溫度、準(zhǔn)預(yù)警溫度、正常溫度四個(gè)檔次。當(dāng)溫度處于正常情況下時(shí),溫度采集周期為30min,若某一點(diǎn)的溫度有變化,當(dāng)接近準(zhǔn)預(yù)警點(diǎn)時(shí),采集周期變化為10min,若溫度仍有提高達(dá)到預(yù)警溫度,則采集周期為3min,一旦出現(xiàn)報(bào)警溫度,系統(tǒng)進(jìn)入實(shí)時(shí)采集狀態(tài),并發(fā)出報(bào)警。4 圖 1-3 溫度采集電路 1.2 TLC549 模數(shù)轉(zhuǎn)化電路設(shè)計(jì)TLC549是8位串行A/D轉(zhuǎn)換器芯片,可與通用微處理器、控制器通過(guò)CLK、CS、DATA OUT三條口線進(jìn)行串行接口。具有4MHz片內(nèi)系統(tǒng)時(shí)鐘和軟、硬件控制電路,轉(zhuǎn)換時(shí)間最長(zhǎng)17s, TLC549為40 000次/s??偸д{(diào)誤差最大為0.5LSB,典型功耗值為6mW。采用差分參考電壓高阻輸入,抗干擾,可按比例量程校準(zhǔn)轉(zhuǎn)換范圍,VREF-接地,VREF+VREF-1V,可用于較小信號(hào)的采樣。 其工作原理為:TLC549均有片內(nèi)系統(tǒng)時(shí)鐘,該時(shí)鐘與I/O CLOCK是獨(dú)立工作的,無(wú)須特殊的速度或相位匹配。其工作時(shí)序如圖2所示。當(dāng)CS為高時(shí),數(shù)據(jù)輸出(DATA OUT)端處于高阻狀態(tài),此時(shí)I/O CLOCK不起作用。這種CS控制作用允許在同時(shí)使用多片TLC549時(shí),共用I/O CLOCK,以減少多路(片)A/D并用時(shí)的I/O控制端口。將V0的電壓值輸入TLC549進(jìn)行AD轉(zhuǎn)換,從芯片的DO腳輸出,然后由單片機(jī)讀取。兩個(gè)4148二極管是進(jìn)行電源穩(wěn)壓的,R7,R8進(jìn)行參考電壓設(shè)置,基本上等于5V。5圖 1.2-1 模數(shù)轉(zhuǎn)換電路1.3 顯示電路設(shè)計(jì)1602 液晶已經(jīng)包括在單片機(jī)學(xué)習(xí)板內(nèi)了,在這里只稍微介紹它的引腳功能。D0D7 是命令/數(shù)據(jù)口,接單片機(jī)的 P1 口,由單片機(jī)讀(寫(xiě))命令(數(shù)據(jù)),RS 是命令/數(shù)據(jù)的選擇端口,RW 是讀/寫(xiě)的選擇端口,E 是 1602 的使能端。1602 有它自己的字庫(kù),用戶(hù)只需寫(xiě)入相應(yīng)的代碼并控制好 1602 給出的時(shí)序就可以在液晶屏上顯示希望得到的字符或圖像了。圖 1.3-1 液晶顯示屏1.4 無(wú)線發(fā)送與接收模塊的選擇與設(shè)計(jì)PT2262 、SC2272 是一種 CMOS 工藝制造的編碼電路。采集的溫度信號(hào)可以通過(guò)PT2262 編碼,通過(guò) 17 腳輸出到射頻發(fā)射模塊的數(shù)據(jù)輸入端發(fā)射出去,與此同時(shí)射頻接收模塊接收后將數(shù)據(jù)送到解碼芯片 SC2272,其地址經(jīng)過(guò)核對(duì)與 SC2272 的地址匹配后,SC2272 的 VT 腳才輸出高電平,與此同時(shí) PT2262 相應(yīng)的數(shù)據(jù)腳也輸出高電平。6圖 1.4-1 PT2262 引腳圖圖 1.4-2 PT2262 時(shí)序圖1.5 鍵盤(pán)設(shè)計(jì)獨(dú)立鍵盤(pán)也包括在單片機(jī)學(xué)習(xí)板內(nèi),P3.2 接單片機(jī)的外部中斷。 圖 1.5-1 獨(dú)立鍵盤(pán)引腳圖2 總體的軟件程序的設(shè)計(jì)2.1 溫度數(shù)據(jù)采集和數(shù)據(jù)處理子程序的設(shè)計(jì)經(jīng) AD590 采集的溫度轉(zhuǎn)化為了電壓值,然后經(jīng)放大電路處理后,使輸出電壓7V=T/20,這樣才能保證 TLC549 的輸入電壓不大于基準(zhǔn)電壓。在硬件調(diào)試時(shí),基準(zhǔn)電壓設(shè)置成 5V,所以在程序處理時(shí)要將從 TLC549 得到的數(shù)字值乘以 5/255 才能得到電壓V,然后再乘以 20 才能得到溫度(此時(shí)的溫度是雙精度型的) 。中值濾波是為了得到很短時(shí)間的溫度平均值,有穩(wěn)定數(shù)值的作用。 圖 2.1-1 溫度采集和處理流程圖2.2 溫度顯示、保存處理的子程序設(shè)計(jì) 圖 2.2-1 溫度顯示和保存流程圖因?yàn)椴杉降拿總€(gè)溫度值都是 0100 攝氏度之間的任意值,為了使精度達(dá)到 0.1,我們只保留一位小數(shù)(在二進(jìn)制表示中只占低 4 位) 。將溫度分解成整數(shù)部分和小數(shù)部分,是為了方便存儲(chǔ)和發(fā)送。本設(shè)計(jì)只保存 10 組溫度。2.3 無(wú)線發(fā)送與接受的子程序的設(shè)計(jì)開(kāi)啟轉(zhuǎn)換將轉(zhuǎn)換的結(jié)果進(jìn)行中值濾波將得到的電壓轉(zhuǎn)換為溫度返回每一次溫度采集后將溫度的整數(shù)部分和小數(shù)(一位)部分分離出來(lái)將得到的整數(shù)和小數(shù)放入 AT24C02 的中相鄰的兩個(gè)單元中,總共分配 20 個(gè)單元,一輪后,放入的數(shù)值將覆蓋前面的數(shù)值。將溫度的百位、十位、個(gè)位、小數(shù)位(一位)分離出來(lái)(一位)部分分離出來(lái)調(diào)用溫度顯示模塊的子程序,寫(xiě)百、十、個(gè)、小數(shù)的地址和它們的值8因?yàn)檫x用的發(fā)送模塊是集成 PT2262 無(wú)線射頻芯片 PC-T2A,所以只能利用其 6 位數(shù)據(jù)口中的 4 位,將溫度分解發(fā)送。經(jīng)計(jì)算每編碼發(fā)送都需要發(fā)送 34 次接收端才能接收到有效數(shù)據(jù),所以在程序中適當(dāng)對(duì)發(fā)送使能端置高進(jìn)行延時(shí)。發(fā)送完 4 位數(shù)據(jù)后也需要延時(shí),給接收端處理數(shù)據(jù)時(shí)間,防止亂碼。圖 2.3-1 無(wú)線發(fā)送流程圖選用的接收模塊是與集成 SC2272 的 PCR1B-2 芯片。當(dāng)接收到的編碼地址與之相匹配的時(shí)候,SC2272 的 VT 端從低電平變?yōu)楦唠娖?,然后馬上恢復(fù)低電平。所以利用其下降沿可以觸發(fā)單片機(jī) 2 的外部中斷 0 進(jìn)行溫度接受處理。SC2272 需要接收三次才能得到一個(gè)完整的溫度值。調(diào)用發(fā)射子程序發(fā)送整數(shù)的高四位延時(shí)給接收端數(shù)據(jù)處理一些時(shí)間防止亂碼發(fā)送整數(shù)的低四位延時(shí)給接收端數(shù)據(jù)處理一些時(shí)間防止亂碼發(fā)送小數(shù)的低四位延時(shí)給接收端數(shù)據(jù)處理一些時(shí)間防止亂碼返回9 1 2 3圖 2.3-2 無(wú)線接收處理流程圖2.4 十組溫度查詢(xún)的子程序設(shè)計(jì)因?yàn)楠?dú)立鍵盤(pán)接的是單片機(jī) 1 的外部中斷 0,所以當(dāng)它按下去時(shí)的產(chǎn)生的下降沿觸發(fā)外部中斷,在中斷處理程序中根據(jù)中斷次數(shù)讀取儲(chǔ)存的溫度。在中斷處理程序中關(guān)中斷是為了消除按鍵抖動(dòng)觸發(fā)另一次中斷。 圖 2.4-1 溫度查詢(xún)流程VT 端的下降沿觸發(fā)外部中斷 0進(jìn)行中斷次數(shù)判斷讀取整數(shù)高四位讀取整數(shù)低四位并和高四位合并讀取小數(shù)低四位重新計(jì)數(shù)返回調(diào)用顯示子程序顯示溫度鍵盤(pán)觸發(fā)中斷根據(jù)中斷次數(shù)讀取相應(yīng)的溫度調(diào)用液晶顯示子函數(shù)顯示溫度返回關(guān)中斷開(kāi)中斷103 調(diào)試與結(jié)果分析3.1 調(diào)試儀器及方法 測(cè)試儀器:數(shù)字萬(wàn)用表,示波器,函數(shù)信號(hào)發(fā)生器測(cè)試方法:硬件調(diào)試時(shí),利用函數(shù)信號(hào)發(fā)生器,與示波器根據(jù)原理調(diào)相應(yīng)的線路的電壓值,達(dá)到與 AD590 采到的溫度,及 TLC549 轉(zhuǎn)化進(jìn)行相對(duì)應(yīng)。根據(jù)理論原理的分析,輸入一信號(hào),利用示波器去跟蹤觀察 PT2262 ,SC2272 各引腳的高低電平是否合理正確,即意味著在無(wú)線傳輸中兩芯片的地址是否匹配?達(dá)到正確的發(fā)送與接受。3.3 軟、硬件調(diào)試與故障原因分析調(diào)試過(guò)程:一開(kāi)始測(cè)試的溫度誤差很大,經(jīng)檢查發(fā)現(xiàn)是采溫部分的 TLC549 的參考電壓與程序處理中的參考電壓不匹配,經(jīng)調(diào)試硬件和程序,得出誤差較小的溫度值。發(fā)送后,發(fā)現(xiàn)接受模塊無(wú)法顯示,經(jīng)檢查發(fā)現(xiàn)接收模塊的 SC-2272 的 VT 端驅(qū)動(dòng)能力較差,不能與單片機(jī)的 TTL 電平匹配,于是我們就用 C9018 三極管增強(qiáng)它的驅(qū)動(dòng)能力,使得接受模塊有溫度顯示,但是發(fā)現(xiàn)接受顯示亂碼,經(jīng)示波器檢查發(fā)現(xiàn)在發(fā)送溫度時(shí)由于 PT2262 芯片的發(fā)送使能端默認(rèn)接地,導(dǎo)致不受單片機(jī)控制,接受模塊無(wú)法正確接收溫度數(shù)據(jù)。所以我們將 PT2262 的發(fā)送使能端與默認(rèn)的地剪斷,讓其受單片機(jī)控制。最終實(shí)現(xiàn)了溫度的無(wú)線傳送。4 結(jié)束語(yǔ)本次課程設(shè)計(jì)完成的是基于集成溫度傳感器 AD590 的溫度測(cè)量及其無(wú)線傳送的設(shè)計(jì),并通過(guò) LCD1602 顯示溫度值,通過(guò)半個(gè)月的不斷努力、克服各種困難,最終實(shí)現(xiàn)了任務(wù)目標(biāo)。本次設(shè)計(jì)主要是對(duì)在溫度測(cè)量的智能化、集成化方面的探索,這也是溫度測(cè)試發(fā)展的趨勢(shì)。同時(shí),也是測(cè)控技術(shù)未來(lái)發(fā)展的趨勢(shì)。設(shè)計(jì)是理論知識(shí)與實(shí)踐的完美結(jié)合,對(duì)于現(xiàn)代大學(xué)生的實(shí)踐能力是個(gè)很好的培養(yǎng)。短短的半個(gè)月的設(shè)計(jì)雖然短暫,但是它給我們的收獲確實(shí)難忘,不僅僅在智能儀器方面有了很大的進(jìn)步,而且在傳感器,單片機(jī)等方面也學(xué)到了不少在上課學(xué)不到的知識(shí)。這段時(shí)間我們查閱到很多關(guān)于課程設(shè)計(jì)的書(shū)籍,對(duì)我們幫助也很大。以前很盲目的東西,現(xiàn)在明白了很多。也對(duì)我們專(zhuān)業(yè)動(dòng)手實(shí)踐的興趣提高了很多。有了這些經(jīng)歷對(duì)于我們?nèi)蘸蠊ぷ饕欢〞?huì)有很大幫助。令我們終身受益。在課程設(shè)計(jì)的過(guò)程中也可以看到我們的不足,如原理知識(shí)掌握不實(shí),曾經(jīng)學(xué)過(guò)的知識(shí)如今卻不會(huì)應(yīng)用,軟件的應(yīng)用也不熟練,希望日后提供給我們更多的鍛煉機(jī)會(huì)來(lái)培養(yǎng)我們的實(shí)踐能力。本設(shè)計(jì)是在 XX 老師的悉心指導(dǎo)下完成的。孫活老師作為一名優(yōu)秀的、經(jīng)驗(yàn)豐富11的教師,具有豐富的知識(shí)和經(jīng)驗(yàn),在整個(gè)論文實(shí)驗(yàn)和論文寫(xiě)作過(guò)程中,對(duì)我進(jìn)行了耐心的指導(dǎo)和幫助,提出嚴(yán)格要求,引導(dǎo)我不斷開(kāi)闊思路,為我答疑解惑,鼓勵(lì)我大膽創(chuàng)新,使我在這一段寶貴的時(shí)光中,既增長(zhǎng)了知識(shí)、開(kāi)闊了視野、鍛煉了心態(tài),又培養(yǎng)了良好的實(shí)驗(yàn)習(xí)慣和科研精神。在此,我向我的指導(dǎo)老師表示最誠(chéng)摯的謝意!附錄 1:硬件原理圖及 PCB 板12附錄 2:軟件程序代碼發(fā)送模塊代碼:13#include#include#define uchar unsigned char#define uint unsigned int/*TLC549 引腳設(shè)置*/sbit SCLK=P20;sbit DO=P21;sbit CS=P22;/*1602 引腳設(shè)置*/sbit RS=P25;sbit RW=P26;sbit E=P27;/*PT2262 引腳設(shè)置*/sbit D1=P10;sbit D2=P11;sbit D3=P12;sbit D4=P13;sbit TE=P23;/*AT24C02 引腳設(shè)置*/sbit scl=P15;sbit sda=P36;/*按鍵設(shè)置*/sbit front=P32;uchar code lie1=NOW T:;uchar code lie2=10PreT:;uchar xdata xiaoshu,zhengshu,cishu,xuhao;/定義兩個(gè)變量,分別存放溫度的整數(shù)部分和小數(shù)部分/* 溫度采集模塊子函數(shù)*/14/* 名稱(chēng) : delay(uint z)* 功能 : 延時(shí),延時(shí)時(shí)間大概為 z 毫秒。* 輸入 : 無(wú)* 輸出 : 無(wú)*/void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);/* 名稱(chēng) : ad549(void)* 功能 : 將 AD590 采集的溫度電壓化為 8 位的數(shù)字量。* 輸入 : 溫度電壓* 輸出 : 對(duì)應(yīng) TLC549 中參考電壓的數(shù)字量*/uint TLC549(void)/把模擬量轉(zhuǎn)換成數(shù)字量,參考的是 REF。僅僅是數(shù)字量,不是真實(shí)電壓值。 uchar temp,i;/定義存放數(shù)據(jù)和變量 CS=1; SCLK=0;/初始化 CS=0;/DO 輸出最高位 _nop_(); _nop_();/兩個(gè)機(jī)器周期滿(mǎn)足了 1.4 微秒 for(i=0;i8;i+)/串行數(shù)據(jù)移位輸入 temp=1;15 temp|=DO; SCLK=1; _nop_();/時(shí)序控制看芯片資料 SCLK=0; _nop_(); CS=1; for(i=0;i17;i+) _nop_(); return(temp);/* 名稱(chēng) : average(void)* 功能 : 將 TLC549 轉(zhuǎn)換完成的數(shù)字量換成電壓值,并通過(guò)一定的關(guān)系,化為溫度值,精度為 0.1。* 輸入 : 溫度電壓對(duì)應(yīng) average(void)* 輸出 : AD590 采集的溫度值*/double average(void)/定義一個(gè)數(shù)組,存放 25 個(gè) AD 采樣的數(shù)據(jù),然后取平均值,這種方法叫做中值濾波,作用是使輸出穩(wěn)定,并把數(shù)據(jù)換成電壓。 uchar i; uint temp; double temp1,j,average125; for(i=0;i25;i+) temp=TLC549(); j=(double)temp)*20*5/255;/根據(jù)電路圖可知 REF=5V,AD 輸出時(shí) 8 位的數(shù)據(jù),所以要分成 255 份。 average1i=j;16 delay(1);/采樣間隔隨要求定。 for(i=0;i25;i+) temp1+=average1i; temp1=temp1/25;/一定要注意不同類(lèi)型間的賦值和計(jì)算必須用強(qiáng)制轉(zhuǎn)換。還有一個(gè)特別重要的 C51FPS.LIB 文件必須要在安裝目錄下的 LIB 文件夾內(nèi)。 return(temp1);/* 液晶顯示模塊子函數(shù)*/* 名稱(chēng) : convert(uchar input)* 功能 : 實(shí)驗(yàn)板上把 D0D7 的位置弄反了!需要轉(zhuǎn)過(guò)來(lái)* 輸入 : 需在液晶屏上顯示的值,或是 1602 的命令值* 輸出 : 對(duì)應(yīng)實(shí)驗(yàn)板上的正常值*/uchar convert(uchar input)/實(shí)驗(yàn)板上把 D0D7 的位置弄反了!需要轉(zhuǎn)過(guò)來(lái) uchar i,temp,output; for(i=0;i=1; output|=temp; if(i7) output=1; return(output);17/* 名稱(chēng) : order(uchar o)* 功能 : 控制 1602 液晶顯示功能* 輸入 : 1602 液晶的命令值或數(shù)據(jù)指針地址* 輸出 : 無(wú)*/void order(uchar o) RS=0; RW=0; P0=convert(o); E=0; delay(5); E=1; delay(5); RS=1;/* 名稱(chēng) : shuju(uchar s)* 功能 : 將需顯示的數(shù)值顯示在 1602 液晶上* 輸入 : 字符* 輸出 : 無(wú)*/void shuju(uchar s) RS=1; RW=0; P0=convert(s);/一定要放在 en=0 前面 否則會(huì)出現(xiàn)亂碼。 。 。 E=0; delay(5);18 E=1; delay(5); RS=0;/* 名稱(chēng) : init()* 功能 : 液晶屏初始化* 輸入 : 無(wú)* 輸出 : 無(wú)*/void init(void) uchar i; order(0 x38);/設(shè)置 16*2 顯示,5*7 點(diǎn)陣,8 位數(shù)據(jù)接口 order(0 x06);/當(dāng)讀寫(xiě)一個(gè)字符后地址指針加 1,光標(biāo)向后移 1 order(0 x0c);/開(kāi)顯示屏,不顯示光標(biāo) order(0 x01);/數(shù)據(jù)指針清零,顯示屏清空 /*在液晶屏上顯示的上行為NOW T: C,下行為10Pre T: C*/ order(0 x80); for(i=0;i6;i+) shuju(lie1i); order(0 x80+0 x40); for(i=0;i7;i+) shuju(lie2i); order(0 x80+0 x0c); shuju(0 xdf);/ shuju(0 x43);/C order(0 x80+0 x40+0 x0e); shuju(0 xdf);/ shuju(0 x43);/C19/* 名稱(chēng) : fasongzhengshu(uchar s)* 功能 : 發(fā)送溫度的整數(shù)部分* 輸入 : 無(wú)* 輸出 : 無(wú)*/void fasongzhengshu(uchar s) P1=s; /1=0 x37; /TE=0; /while(1); P1=_cror_(P1,4);/先發(fā)高四位 TE=0; /允許 PT2262 發(fā)送數(shù)據(jù) delay(300); /經(jīng)計(jì)算發(fā) 45 次需要 80s TE=1; delay(950); P1=_cror_(P1,4);/再發(fā)第四位 TE=0;/允許 PT2262 發(fā)送數(shù)據(jù) delay(300); TE=1; delay(950);/* 名稱(chēng) : fasongxiaoshu(uchar s)* 功能 : 發(fā)送溫度的小數(shù)部分* 輸入 : 無(wú)* 輸出 : 無(wú)*/void fasongxiaoshu(uchar s)/09 只有 4 位20 /P1=0 xaa; /TE=0; /while(1); P1=s; TE=0;/允許 PT2262 發(fā)送數(shù)據(jù) delay(300); TE=1; delay(950);/* AT24C02 斷電保存子函數(shù)*/* 名稱(chēng) : start(void)* 功能 : 啟動(dòng) I2C 總線* 輸入 : 無(wú)* 輸出 : 無(wú)*/void start(void)/I2C 開(kāi)始 sda=1; _nop_(); scl=1; _nop_(); sda=0; _nop_();/* 名稱(chēng) : stop()* 功能 : 停止 I2C 總線21* 輸入 : 無(wú)* 輸出 : 無(wú)*/void stop(void)/I2C 停止 sda=0; _nop_(); scl=1; _nop_(); sda=1; _nop_();/* 名稱(chēng) : write_data(uchar date)* 功能 : 寫(xiě)一個(gè)字節(jié)* 輸入 : date(需要寫(xiě)入的值)* 輸出 : 無(wú)*/void write_data(uchar date)/AT24C02SC 中 I2C 總線寫(xiě)數(shù)據(jù)程序規(guī)則 uchar i; scl=0; for(i=0;i8;i+) _nop_(); _nop_(); date=1; sda=CY; _nop_();22 _nop_(); scl=1; _nop_(); _nop_(); scl=0; _nop_(); _nop_(); sda=1; _nop_(); _nop_();/* 名稱(chēng) : read_data()* 功能 : 讀一個(gè)字節(jié)* 輸入 : 無(wú)* 輸出 : 讀出的值*/uchar read_data(void)/AT24C02SC 中 I2C 總線讀數(shù)據(jù)程序規(guī)則 uchar k,j,i; scl=0; _nop_(); _nop_(); sda=1; for(i=0;i8;i+) _nop_(); _nop_(); scl=1;23 _nop_(); _nop_(); if(sda=1) j=1; else j=0; k=(k1)|j; scl=0; _nop_(); _nop_(); return(k);/* 名稱(chēng) : yingda(void)* 功能 : I2C 總線時(shí)鐘* 輸入 : 無(wú)* 輸出 : 無(wú)*/void yingda(void) uchar i=0; scl=1; _nop_(); _nop_(); _nop_(); _nop_(); while(sda=1&i250) i+; scl=0;24 _nop_(); _nop_(); _nop_(); _nop_();/* 名稱(chēng) : writedata(uchar address,uchar info)* 功能 : 向 24c02 中寫(xiě)值* 輸入 : address(要在這個(gè)地址讀取值)* 輸出 : 無(wú)*/void writedata(uchar address,uchar info) start(); write_data(0 xa0); yingda(); write_data(address); yingda(); write_data(info); yingda(); stop();/* 名稱(chēng) : readdata(uchar address)* 功能 : 從 AT24c02 中讀出數(shù)據(jù)* 輸入 : address(地址)* 輸出 : 地址對(duì)應(yīng)的值*/uchar readdata(uchar address)25 uchar t; start(); write_data(0 xa0); yingda(); write_data(address); yingda(); start(); write_data(0 xa1); yingda(); t=read_data(); stop(); return(t);/* 名稱(chēng) : readwendu()* 功能 : 在按鍵中斷中讀出溫度* 輸入 : address(地址)* 輸出 : 無(wú)*/void readwendu(void) uchar part3,part4,temp1,i; part3=readdata(cishu); part4=readdata(cishu+1); temp1=cishu/2; /*溫度在 1602 上顯示*/ order(0 x80+0 x40+7);/顯示序號(hào) shuju(0 x30+temp1); order(0 x80+0 x40+9);/顯示溫度 百位26 temp1=part3/100; shuju(0 x30+temp1); temp1=part3%100/10;/顯示溫度 十位 shuju(0 x30+temp1); temp1=part3%10;/顯示溫度 個(gè)位 shuju(0 x30+temp1); shuju(0 xa5);/小數(shù)點(diǎn) temp1=part4;/顯示溫度 小數(shù)位 shuju(0 x30+temp1);/* 主函數(shù)*/main() double temperature; uchar temp,s; init();/液晶初始化 EA=1;/開(kāi)中斷 EX0=1; IT0=1;/外部中斷 0 設(shè)置成下降沿觸發(fā) cishu=0; while(1) temperature=average();/可以對(duì) temperature 進(jìn)行適當(dāng)?shù)恼{(diào)節(jié) zhengshu=(uchar)temperature;/需發(fā)送的整數(shù)部分 xiaoshu=(uint)(temperature*10)%10;/需發(fā)送的小數(shù)部分 /*溫度在 1602 上顯示*/ order(0 x80+6); temp=(uchar)temperature)/100; shuju(0 x30+temp);27 temp=(uchar)temperature)%100/10; shuju(0 x30+temp); temp=(uchar)temperature)%10; shuju(0 x30+temp); temp=(uint)(temperature*10)%10; shuju(0 xa5);/小數(shù)點(diǎn) shuju(0 x30+temp); /*將溫度保存在 AT24C02 中*/ writedata(s,zhengshu); s+; delay(100);/給寫(xiě)數(shù)據(jù)一點(diǎn)反應(yīng)時(shí)間 writedata(s,xiaoshu); s+; if(s=20) s=0; /*發(fā)送溫度*/ TE=1; fasongzhengshu(zhengshu); fasongxiaoshu(xiaoshu); void waibu0() interrupt 0 EA=0;/關(guān)中斷 /*10 組溫度查詢(xún)*/ delay(100);/延時(shí)防止抖動(dòng) if(front=0) if(cishu=20) cishu=0; if(xuhao=10);28 xuhao=0; readwendu();/判斷按鍵次數(shù)來(lái)輸出對(duì)應(yīng)的溫度值 /xuhao+; cishu+; cishu+; EA=1;/開(kāi)中斷接收顯示模塊程序:#include#include#define uchar unsigned char#define uint unsigned int/*1602 引腳設(shè)置*/sbit RS=P25;sbit RW=P26;sbit E=P27;/*PT2272 引腳設(shè)置*/sbit D1=P10;sbit D2=P11;sbit D3=P12;sbit D4=P13;sbit VT=P32;uchar code lie1=NOW T:;uchar xiaoshu,zhengshu,x;/定義兩個(gè)變量,分別存放溫度的整數(shù)部分和小數(shù)部分/*液晶顯示模塊子函數(shù)*/* 名稱(chēng) : delay(uint z)29* 功能 : 延時(shí),延時(shí)時(shí)間大概為 z 毫秒。* 輸入 : 無(wú)* 輸出 : 無(wú)*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/* 名稱(chēng) : convert(uchar input)* 功能 : 實(shí)驗(yàn)板上把 D0D7 的位置弄反了!需要轉(zhuǎn)過(guò)來(lái)* 輸入 : 需在液晶屏上顯示的值,或是 1602 的命令值* 輸出 : 對(duì)應(yīng)實(shí)驗(yàn)板上的正常值*/uchar convert(uchar input)/實(shí)驗(yàn)板上把 D0D7 的位置弄反了!需要轉(zhuǎn)過(guò)來(lái)uchar i,temp,output;for(i=0;i=1;output|=temp;if(i7) output=1;return(output);/* 名稱(chēng) : order(uchar o)30* 功能 : 控制 1602 液晶顯示功能* 輸入 : 1602 液晶的命令值或數(shù)據(jù)指針地址* 輸出 : 無(wú)*/void order(uchar o)RS=0;RW=0;P0=convert(o);E=0;delay(5);E=1;delay(5);RS=1;/* 名稱(chēng) : shuju(uchar s)* 功能 : 將需顯示的數(shù)值顯示在 1602 液晶上* 輸入 : 字符* 輸出 : 無(wú)*/void shuju(uchar s)RS=1;RW=0;P0=convert(s);/實(shí)驗(yàn)板的電路接反了,需先對(duì)數(shù)據(jù)進(jìn)行處理E=0;delay(5);E=1;delay(5);31RS=0;/* 名稱(chēng) : init()* 功能 : 液晶屏初始化* 輸入 : 無(wú)* 輸出 : 無(wú)*/void init(void)uchar i;order(0 x38);/設(shè)置 16*2 顯示,5*7 點(diǎn)陣,8 位數(shù)據(jù)接口order(0 x06);/當(dāng)讀寫(xiě)一個(gè)字符后地址指針加 1,光標(biāo)向后移 1order(0 x0c);/開(kāi)顯示屏,不顯示光標(biāo)order(0 x01);/數(shù)據(jù)指針清零,顯示屏清空/*在液晶屏上顯示的上行為NOW T: C,下行為10Pre T: C*/ order(0 x80);for(i=0;i6;i+)shuju(lie1i);order(0 x80+0 x0c);shuju(0 xdf);/shuju(0 x43);/C/* 名稱(chēng) : Outside_Init()* 功能 : 外部中斷 0 的初始化* 輸入 : 無(wú)* 輸出 : 無(wú)*/32void Outside_Init(void)EX0 = 1; /開(kāi)外部中斷 0IT0 = 1; /負(fù)邊沿觸發(fā)EA = 1; /開(kāi)總中斷/* 名稱(chēng) : Outside_Int()* 功能 : 外部中斷 0 的中斷處理* 輸入 : 無(wú)* 輸出 : 無(wú)*/void Outside_Int(void) interrupt 0uchar temp;EX0 = 0;x+;if(x=1)zhengshu=P1&0 x0f; zhengshu=_crol_(zhengshu,4);if(x=2)zhengshu=zhengshu|(P1&0 x0f);if(x=3) x=0;xiaoshu=P1&0 x0f;33/zhengshu=78;/xiaoshu=8;/*溫度在 1602 上顯示*/order(0 x80+6);temp=zhengshu/100;/顯示百位shuju(0 x30+temp);temp=zhengshu%100/10;/顯示十位shuju(0 x30+temp);temp=zhengshu%10;/顯示個(gè)位shuju(0 x30+temp);temp=xiaoshu;shuju(0 xa5);/小數(shù)點(diǎn)shuju(0 x30+temp);/顯示小數(shù)位EX0 = 1;/*主函數(shù)/* 名稱(chēng) : Main()* 功能 : 外部中斷試驗(yàn)主程序* 輸入 : 無(wú)* 輸出 : 無(wú)*34參考文獻(xiàn) :1 李廣弟: 單片機(jī)基礎(chǔ),北京航空航天出版社,2001.7,P3-P7 2 樓然苗: 51 系列單片機(jī)設(shè)計(jì)實(shí)例,北京航空航天出版社,2003.3,P15-P17 3 唐俊翟: 單片機(jī)原理與應(yīng)用,冶金工業(yè)出版社,2003.9,P35-P36 4 劉瑞新: 單片機(jī)原理及應(yīng)用教程,機(jī)械工業(yè)出版社,2003.7,P9-P12 5 吳國(guó)經(jīng): 單片機(jī)應(yīng)用技術(shù),中國(guó)電力出版社,2004.1,P21-P25 6 李全利、遲榮強(qiáng)編著: 單片機(jī)原理及接口技術(shù),高等教育出版社,2004.1,P23-P24 7 張毅剛: MCS-51 單片機(jī)應(yīng)用設(shè)計(jì),哈工大出版社,2004 年第 2 版,P4-P7 8 霍孟友: 單片機(jī)原理與應(yīng)用,機(jī)械工業(yè)出版社,2004.1,P22-P27 9 霍孟友: 單片機(jī)原理與應(yīng)用學(xué)習(xí)概要及題解,機(jī)械工業(yè)出版社,2005.3,P41-P44 10 許泳龍: 單片機(jī)原理及應(yīng)用,機(jī)械工業(yè)出版社,2005.1,P51-P54 11 吳中俊、黃永紅:可編程序控制器原理及應(yīng)用,機(jī)械工業(yè)出版社,2008.8,P52-P5712 夏繼強(qiáng)、單片機(jī)實(shí)驗(yàn)與實(shí)踐教程,北京航空航天大學(xué)出版社,2001.8,P41-P4513 劉侃、張永泰、劉洛琨:?jiǎn)纹瑱C(jī)與嵌入式系統(tǒng)應(yīng)用,機(jī)械工業(yè)出版社,2004.7,P33-P3614 馬忠梅: 單片機(jī)的 C 語(yǔ)言應(yīng)用程序設(shè)計(jì),北京航空航天大學(xué)出版社,2003.1,P9-P1115肖洪兵:跟我學(xué)用單片機(jī),北京航空航天大學(xué)出版社,2002.8, P112-P11316 何立民:?jiǎn)纹瑱C(jī)高級(jí)教程,京航空航天大學(xué)出版社,2001.7, P71-P74 17 趙曉安:MCS-51 單片機(jī)原理及應(yīng)用,天津大學(xué)出版社,2001.3, P9-P18

注意事項(xiàng)

本文(溫度測(cè)控儀設(shè)計(jì)畢業(yè)設(shè)計(jì)[共38頁(yè)])為本站會(huì)員(1528****253)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!