版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、溫度測(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 顯示器 DesignDesign ofof andand controlcon
2、trol instrumentinstrument Abstract: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
3、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
4、 control, amplifier, A/D converter for temperature signal acquisition. Overall, the design is feasible. Keywords:Keywords: temperature Pt100 thermal resistance AT89C51 microcontroller LCD monitor . 目 錄 前言 .1 1 總體硬件方案設(shè)計(jì) .1 1.1 溫度傳感器的放大電路設(shè)計(jì) .2 1.2 TLC549 模數(shù)轉(zhuǎn)化電路設(shè)計(jì).4 1.3 顯示電路設(shè)計(jì) .5 1.4 無(wú)線發(fā)送與接收模塊的選擇與設(shè)計(jì) .5
5、 1.5 鍵盤(pán)設(shè)計(jì) .6 2 總體的軟件程序的設(shè)計(jì) .6 2.1 溫度數(shù)據(jù)采集和數(shù)據(jù)處理子程序的設(shè)計(jì) .6 2.2 溫度顯示、保存處理的子程序設(shè)計(jì) .7 2.3 無(wú)線發(fā)送與接受的子程序的設(shè)計(jì) .7 2.4 十組溫度查詢的子程序設(shè)計(jì) .9 3 調(diào)試與結(jié)果分析 .10 3.1 調(diào)試儀器及方法 .10 3.3 軟、硬件調(diào)試與故障原因分析 .10 4 結(jié)束語(yǔ) .10 附錄 1:硬件原理圖及 PCB 板.12 附錄 2:軟件程序代碼.13 參考文獻(xiàn) .34 溫度測(cè)控儀的設(shè)計(jì) 前言 隨著工業(yè)生產(chǎn)效率的不斷提高,自動(dòng)化水平與范圍也不斷擴(kuò)大,因而對(duì)溫度檢測(cè) 技術(shù)的要求也愈來(lái)愈高, 現(xiàn)在工業(yè)上通用的溫度檢測(cè)范圍
6、為 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ù)、家用電器、汽車工業(yè)以及航天工業(yè)領(lǐng)域。 發(fā)展新型產(chǎn)品 利用以前的檢測(cè)技術(shù)生產(chǎn)處適應(yīng)于不同場(chǎng)合、不同工況要求的新型產(chǎn)品,以滿足 用戶需要。同時(shí)利用新的檢測(cè)技術(shù)制造出新的產(chǎn)品。 對(duì)許多場(chǎng)合中的溫度檢測(cè)器有特殊要求,入防硫、防爆、耐磨等性能要求;又如 移動(dòng)物體和高速旋轉(zhuǎn)物體的測(cè)溫、鋼水的連續(xù)測(cè)溫、火焰溫度檢測(cè)等。因此,本設(shè)計(jì) 方向就是在溫度測(cè)量遠(yuǎn)距離傳送和保存方面
7、進(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)行顯示。 單片機(jī) 1 顯示模塊 A/D 采集 模塊 AD59
8、0 溫度測(cè)量 PT2262 發(fā)送 圖1-1 發(fā)送模塊框架圖 顯示模塊 單片機(jī) 2 PT2272 接收 圖 1-2 接收模塊框架圖 1.1 溫度傳感器的放大電路設(shè)計(jì) AD590 是美國(guó)模擬器件公司生產(chǎn)的單片集成兩端感溫電流源,它會(huì)將溫度轉(zhuǎn)換為電 流,在 8051 的各種課本中經(jīng)常看到。其規(guī)格如下: 度每增加 1,它會(huì)增加 1A 輸出電流 可測(cè)量范圍-55至 150 供電電壓范圍+4V 至+30V AD590 的管腳圖及元件符號(hào)如下圖所示: 圖 1.1-1 AD590 管腳圖 AD590 的輸出電流值說(shuō)明如下: 其輸出電流是以絕對(duì)溫度零度(-273)為基準(zhǔn),每增加 1,它會(huì)增加 1A 輸出電流,因
9、此在室溫 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) =
10、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ù)警溫度,則采集
11、周期為3min,一旦出現(xiàn)報(bào)警溫度,系統(tǒng)進(jìn)入實(shí)時(shí) 采集狀態(tài),并發(fā)出報(bào)警。 圖 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
12、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。 圖 1.2-1 模數(shù)轉(zhuǎn)換電路 1.3 顯示電路設(shè)計(jì) 1602 液晶已經(jīng)包括在單片機(jī)學(xué)習(xí)板內(nèi)了,在這里只稍微介紹它的引腳功能。 D0D7 是命令/
13、數(shù)據(jù)口,接單片機(jī)的 P1 口,由單片機(jī)讀(寫(xiě))命令(數(shù)據(jù)),RS 是命令 /數(shù)據(jù)的選擇端口,RW 是讀/寫(xiě)的選擇端口,E 是 1602 的使能端。 1602 有它自己的字庫(kù),用戶只需寫(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
14、 的地址匹配后, SC2272 的 VT 腳才輸出高電平,與此同時(shí) PT2262 相應(yīng)的數(shù)據(jù)腳也輸出高電平。 圖 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)放大電路處理后,使輸出電壓 V=T/20,這樣才能保證 TLC549 的輸入電壓不大于基準(zhǔn)電壓。在硬件調(diào)試時(shí),基準(zhǔn)電壓 設(shè)置成 5V,所以在程序處理時(shí)要將從 TLC549 得到的數(shù)字
15、值乘以 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)換為溫度
16、 返回 每一次溫度 采集后 將溫度的整數(shù)部 分和小數(shù)(一位) 部分分離出來(lái) 將得到的整數(shù)和小數(shù)放入 AT24C02 的 中相鄰的兩個(gè)單元中,總共分配 20 個(gè) 單元,一輪后,放入的數(shù)值將覆蓋前面 的數(shù)值。 將溫度的百位、 十位、個(gè)位、小 數(shù)位(一位)分 離出來(lái)(一位) 部分分離出來(lái) 調(diào)用溫度顯示模塊的子程序,寫(xiě)百、十、 個(gè)、小數(shù)的地址和它們的值 因?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ù)
17、后也 需要延時(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í)間防止 亂碼 返回 1 2 3 圖 2.
18、3-2 無(wú)線接收處理流程圖 2.4 十組溫度查詢的子程序設(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 溫度查詢流程 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)中斷 3 調(diào)試與結(jié)果分析 3.1 調(diào)試儀器及方法
19、 測(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ú)法顯
20、示,經(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è)月的不斷努力、克服各種困難,
21、最終實(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ì)我們專業(yè)動(dòng)手實(shí)踐的興趣提高了很多。有了這些經(jīng)歷對(duì)于 我們?nèi)蘸蠊ぷ饕欢〞?huì)有很大幫助。令我們終身受益。在課程設(shè)計(jì)的過(guò)程中也可以看到 我們
22、的不足,如原理知識(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)豐富 的教師,具有豐富的知識(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 板 附錄 2:軟件程序代碼 發(fā)送模塊代碼: #inclu
23、de #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;
24、 /*按鍵設(shè)置*/ sbit front=P32; uchar code lie1=NOW T:; uchar code lie2=10PreT:; uchar xdata xiaoshu,zhengshu,cishu,xuhao;/定義兩個(gè)變量,分別存放溫度的 整數(shù)部分和小數(shù)部分 /* 溫度采集模塊子函數(shù) */ /* * 名稱 : 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-); /* * 名稱 : a
25、d549(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ī)器周期滿足了 1.4 微秒 for(i=0;i8;i+)/串行數(shù)據(jù)移位輸入 temp=1; temp|=DO; SCLK=1; _nop_();/時(shí)序控制看
26、芯片資料 SCLK=0; _nop_(); CS=1; for(i=0;i17;i+) _nop_(); return(temp); /* * 名稱 : 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
27、; 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; delay(1);/采樣間隔隨要求定。 for(i=0;i25;i+) temp1+=average1i; temp1=temp1/25;/一定要注意不同類型間的賦值和計(jì)算必須用強(qiáng)制轉(zhuǎn)換。還 有一個(gè)特別重要的 C51FPS.LIB 文件必須要在安裝目錄下的 LIB 文件夾內(nèi)。 return(temp1); /* 液
28、晶顯示模塊子函數(shù) */ /* * 名稱 : 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); /* * 名稱 : order(uchar o) * 功能 : 控制 1602 液晶
29、顯示功能 * 輸入 : 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; /* * 名稱 : 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); E=1; delay(
30、5); RS=0; /* * 名稱 : 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); or
31、der(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);/C /* * 名稱 : fasongzhengshu(uchar s) * 功能 : 發(fā)送溫度的整數(shù)部分 * 輸入 : 無(wú) * 輸出 : 無(wú) */ void fasongzhengshu(uchar s) P1=s; /1=0 x37; /TE=0; /while(1); P1=_cror_(
32、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); /* * 名稱 : fasongxiaoshu(uchar s) * 功能 : 發(fā)送溫度的小數(shù)部分 * 輸入 : 無(wú) * 輸出 : 無(wú) */ void fasongxiaoshu(uchar s)/09 只有 4 位 /P1=0 xaa; /TE=0; /while(1); P1=s;
33、TE=0;/允許 PT2262 發(fā)送數(shù)據(jù) delay(300); TE=1; delay(950); /* AT24C02 斷電保存子函數(shù) */ /* * 名稱 : start(void) * 功能 : 啟動(dòng) I2C 總線 * 輸入 : 無(wú) * 輸出 : 無(wú) * / void start(void)/I2C 開(kāi)始 sda=1; _nop_(); scl=1; _nop_(); sda=0; _nop_(); /* * 名稱 : stop() * 功能 : 停止 I2C 總線 * 輸入 : 無(wú) * 輸出 : 無(wú) * / void stop(void)/I2C 停止 sda=0; _nop_();
34、 scl=1; _nop_(); sda=1; _nop_(); /* * 名稱 : 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_(); _nop_(); scl=1; _nop_(); _nop_(); scl=0; _nop_(); _nop_(); s
35、da=1; _nop_(); _nop_(); /* * 名稱 : 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; _nop_(); _nop_(); if(sda=1) j=1; else j=0; k=(k1)|j; scl=0; _nop_(); _nop_(); retur
36、n(k); /* * 名稱 : yingda(void) * 功能 : I2C 總線時(shí)鐘 * 輸入 : 無(wú) * 輸出 : 無(wú) * / void yingda(void) uchar i=0; scl=1; _nop_(); _nop_(); _nop_(); _nop_(); while(sda=1 scl=0; _nop_(); _nop_(); _nop_(); _nop_(); /* * 名稱 : writedata(uchar address,uchar info) * 功能 : 向 24c02 中寫(xiě)值 * 輸入 : address(要在這個(gè)地址讀取值) * 輸出 : 無(wú) * / vo
37、id writedata(uchar address,uchar info) start(); write_data(0 xa0); yingda(); write_data(address); yingda(); write_data(info); yingda(); stop(); /* * 名稱 : readdata(uchar address) * 功能 : 從 AT24c02 中讀出數(shù)據(jù) * 輸入 : address(地址) * 輸出 : 地址對(duì)應(yīng)的值 * / uchar readdata(uchar address) uchar t; start(); write_data(0 x
38、a0); yingda(); write_data(address); yingda(); start(); write_data(0 xa1); yingda(); t=read_data(); stop(); return(t); /* * 名稱 : readwendu() * 功能 : 在按鍵中斷中讀出溫度 * 輸入 : address(地址) * 輸出 : 無(wú) * / void readwendu(void) uchar part3,part4,temp1,i; part3=readdata(cishu); part4=readdata(cishu+1); temp1=cishu/2;
39、 /*溫度在 1602 上顯示*/ order(0 x80+0 x40+7);/顯示序號(hào) shuju(0 x30+temp1); order(0 x80+0 x40+9);/顯示溫度 百位 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()
40、 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; s
41、huju(0 x30+temp); 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; /*
42、發(fā)送溫度*/ TE=1; fasongzhengshu(zhengshu); fasongxiaoshu(xiaoshu); void waibu0() interrupt 0 EA=0;/關(guān)中斷 /*10 組溫度查詢*/ delay(100);/延時(shí)防止抖動(dòng) if(front=0) if(cishu=20) cishu=0; if(xuhao=10); 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 D
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中語(yǔ)文古詩(shī)詞誦讀《燕歌行并序》(同步教學(xué)課件)
- 2024屆上海市寶山區(qū)建峰附屬高中高考?jí)狠S數(shù)學(xué)試題
- DB11-T 2105-2023 特定地域單元生態(tài)產(chǎn)品價(jià)值核算及應(yīng)用指南
- 5年中考3年模擬試卷初中道德與法治九年級(jí)下冊(cè)07中考道德與法治真題分項(xiàng)精練(七)
- 2024-2025學(xué)年高考聯(lián)考語(yǔ)文試題及參考答案
- 安全知識(shí)課件教學(xué)課件
- 閥門(mén)配件生產(chǎn)線技改項(xiàng)目可行性研究報(bào)告寫(xiě)作模板-備案審批
- 《凝鑄時(shí)光》課件 2024-2025學(xué)年湘美版(2024)初中美術(shù)七年級(jí)上冊(cè)
- (統(tǒng)考版)2023版高考化學(xué)一輪復(fù)習(xí)課時(shí)作業(yè)35分子結(jié)構(gòu)與性質(zhì)
- DB11-T 1901-2021 政務(wù)服務(wù)事項(xiàng)編碼及要素規(guī)范
- 緊固件國(guó)家標(biāo)準(zhǔn)目錄
- 綠色(環(huán)保)施工方案(DOC)
- 《腹部CT》PPT課件(完整版)
- 中小學(xué)智慧課堂教學(xué)評(píng)價(jià)方案
- 寶鋼熱鍍鋅板質(zhì)保書(shū)(共1頁(yè))
- 十二水口吉兇斷法
- 第二章回歸模型PPT課件
- 玻尿酸培訓(xùn)資料PPT幻燈片課件
- 服裝廠作業(yè)指導(dǎo)書(shū)
- 退伍軍人登記表.doc
- 工電聯(lián)整管理手冊(cè)
評(píng)論
0/150
提交評(píng)論