基于單片機的智能溫控儀畢業(yè)設(shè)計_說明_第1頁
基于單片機的智能溫控儀畢業(yè)設(shè)計_說明_第2頁
基于單片機的智能溫控儀畢業(yè)設(shè)計_說明_第3頁
基于單片機的智能溫控儀畢業(yè)設(shè)計_說明_第4頁
基于單片機的智能溫控儀畢業(yè)設(shè)計_說明_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、. . . . 基于AT89C52的智能溫控儀設(shè)計基于AT89C52的智能溫控儀設(shè)計一、設(shè)計任務(wù)與要求1 設(shè)計題目:基于AT89C52的智能溫控儀設(shè)計 2 設(shè)計要求:(1)采用Pt1000溫度傳感器,測溫圍0-100;(2)系統(tǒng)可設(shè)定溫度值;(3)設(shè)定溫度值與測量溫度值可實時顯示;(4)控溫精度:±0.5。3 設(shè)計任務(wù)(1)擬定電路。(2)編制軟件流程圖與給出系統(tǒng)軟件主要部分的源程序二、設(shè)計背景簡介 溫度是科學(xué)技術(shù)中最基本的物理量之一,物理化學(xué)生物等學(xué)科都離不開溫度。在工業(yè)生產(chǎn)和實驗研究中,像電力、化工、石油、冶金、航空航天、機械制造、糧食存儲、酒類生產(chǎn)等領(lǐng)域溫度往往是表征對象和過程

2、狀態(tài)的最重要的參數(shù)之一。本文介紹采用測溫圍寬、精度高的鉑熱電阻進行溫度系統(tǒng)的測量和控制。溫度控制系統(tǒng)具有非線性、時滯以與不確定性。單純依靠傳統(tǒng)的控制方式或現(xiàn)代控制方式都很難以達到高質(zhì)量的控制效果。而智能控制中的模糊控制通過從專家們積累的經(jīng)驗中總結(jié)的控制規(guī)則,對溫度進行控制,可以有效地解決溫度控制系統(tǒng)的非線性、時滯以與不確定性。本節(jié)采用模糊控制對溫度進行控制。三、系統(tǒng)總體框圖框圖說明:本系統(tǒng)共用到兩片AT89C52單片機,即單片機A和單片機B,其中A機用于現(xiàn)場溫度采集和顯示,B機用于控制。A、B機通過max232硬件連接串口實現(xiàn)全雙工通信。A機采用中斷方式將采集的溫度值不停的發(fā)往B機,B機采用查

3、詢方式實時接受A機發(fā)送的溫度數(shù)據(jù)并將處理后的數(shù)據(jù)送往液晶顯示。B機通過按鍵輸入溫度設(shè)定值,并可將設(shè)定溫度值通過按鍵選擇發(fā)送模式發(fā)送到B機,經(jīng)A機簡單處理送數(shù)碼管顯示。A機將接收到的溫度值與當(dāng)前溫度值比較,將比較值作為控制加熱絲和風(fēng)扇風(fēng) 扇控制對象雙向可控繼電器控制輸出LED顯示單片機AA/D采集電路信號調(diào)理電路設(shè)定輸入加熱絲單片機B實時時鐘液晶顯示存儲電路串口通信圖1 系統(tǒng)總體框圖以與PWM占空比的依據(jù),A機通過兩個四位一體的數(shù)碼管現(xiàn)場顯示當(dāng)前溫度和設(shè)定溫度,因此可以在現(xiàn)場可以動態(tài)觀察到當(dāng)前溫度變化和當(dāng)前溫度與設(shè)定溫度之間的差值的大小。由于需要顯示日期、時間、溫度等眾多信息B機采用液晶顯示。B

4、機的日期、時間等信息由實時時鐘芯片DS12887提供,因為DS12887在斷電情況下可長時間運行,且時間誤差極小所以省去時間調(diào)整環(huán)節(jié)。B機的存儲電路采用24C02存儲芯片,每次存儲包括日期、時間和A機發(fā)送來的溫度值在的共5個字節(jié)的信息,每隔一分鐘存儲一次信息,存儲芯片寫滿以后地址指針指向頭地址,覆蓋掉最初的溫度值,由于24C02最多包含256個字節(jié),因此最多可以保留51次存儲記錄,即最多能記錄50分鐘的溫度值。所以在查詢模式下最多可以查詢50分鐘以的溫度。四、電路設(shè)計1.電路設(shè)計整體思路在溫度測量控制系統(tǒng)中,實際溫度值由鉑電阻恒流工作調(diào)理電路進行測量。為了克服鉑電阻的非線性特點,在信號調(diào)理電路

5、加入負(fù)反饋非線性校正網(wǎng)絡(luò);調(diào)理電路的輸出電壓經(jīng)8 通道、多量程雙極性輸入、串行輸出、逐次逼近型12 bit AD 轉(zhuǎn)換器max1270轉(zhuǎn)換后送入單片機AT89C52;對采樣數(shù)據(jù)進行濾波與標(biāo)度變換處理后。由高集成化的串行輸入/輸出的共陰極LED驅(qū)動顯示器max7219連接兩個四位一體數(shù)碼管顯示。輸入的設(shè)定值則有4位的獨立式鍵盤電路進行調(diào)整,可分別對設(shè)定值的十位和個位進行加一減一操作,送入單片機AT89c52后,有另一4位七段數(shù)碼管顯示。本系統(tǒng)的模糊控制由單片機AT89C52的程序來實現(xiàn)。首先有溫度采樣值與設(shè)定值之差求出溫度誤差,進一步求出誤差變化率,經(jīng)量化與限幅程序處理,得到誤差語言變量E和誤差

6、變化率語言變量Ec,直接查詢模糊控制表就可獲的控制量U,然后有定時子程序處理,發(fā)出控制信號,控制加熱片與風(fēng)扇工作。加熱片與風(fēng)扇的控制電路采用晶體管驅(qū)動的直流電磁繼電器的通斷時間,從而達到控制溫度的目的。若系統(tǒng)溫度偏高,則控制風(fēng)扇工作,進行降溫;若溫度未達到設(shè)定值,則輸出溫度控制信號,控制加熱電路,進行加熱。從而實現(xiàn)自動控制溫度的目的。2基本硬件組成(1)鉑電阻測溫調(diào)理電路本系統(tǒng)采用恒流工作調(diào)理電路,鉑電阻選用標(biāo)稱值為1000歐的PT1000作為溫度傳感器,其物理、化學(xué)性能在高溫和氧化性介質(zhì)中非常穩(wěn)定,其靈敏度遠(yuǎn)高于PT100,在-259.34630.74溫域可作為溫度標(biāo)準(zhǔn)。A1、A2和A3采用

7、低溫漂移運放OP07C,由于有電流流經(jīng)鉑電阻傳感器,所以當(dāng)溫度為0時,載波電阻傳感器上有壓降,這個電壓為鉑電阻傳感器的偏置電壓,是運放A1輸出電壓的一部分,是恒流工作調(diào)理電路的輸出實際不為零。所以需要對這個偏置電壓調(diào)零,圖中R1為調(diào)零電阻,其作用是當(dāng)溫度為零度時,將恒流工作調(diào)理電路的輸出調(diào)為零。又因為鉑電阻的電阻特性為非線性,鉑電阻在0100度變化圍的非線性誤差為0.4(0.4),就有可能對A/D量化和數(shù)碼管顯示造成影響,所以加入了線性化電路,圖中運放AR3、與R5、R6和R7一起構(gòu)成了負(fù)反饋非線性化校正化網(wǎng)絡(luò),R3用于調(diào)整運放A2的增益。電路的調(diào)整方法如下(用精密可調(diào)電阻代替鉑電阻進行調(diào)整)

8、: 將精密可調(diào)電阻調(diào)整到相當(dāng)于0的阻值(1000歐),用R1調(diào)零。 將精密可調(diào)電阻調(diào)整到相當(dāng)于50的阻值(1193.971歐),用R3調(diào)整增益。 將精密可調(diào)電阻調(diào)整到相當(dāng)于100的阻值(1385.055歐),用R6或R7調(diào)整線性。 反復(fù)調(diào)整多次,在0100溫度圍適宜為止。圖2 鉑電阻恒流工作調(diào)理電路(2)A/D轉(zhuǎn)換電路目前A/D 轉(zhuǎn)換器的種類繁多,從數(shù)據(jù)輸出形式上可分為串行輸出與并行輸出兩大類。其中串行輸出AD轉(zhuǎn)換器因其硬件接口簡單而得到廣泛應(yīng)用。另外,從可接受的輸入信號極性上看,A/D 轉(zhuǎn)換器又可分為單極性輸入和雙極性輸入。在很多的數(shù)據(jù)采集場合常常面對極性可變的模擬信號。當(dāng)然可將待轉(zhuǎn)換信號進

9、行電位移動以將其轉(zhuǎn)化為單一極性,但如此便增加了電路的復(fù)雜性。串行輸出、雙極性輸入A/D 轉(zhuǎn)換器MAX1270不增加任何硬件電路可實現(xiàn)對雙極性模擬信號A/D 轉(zhuǎn)換。MAX1270 是8 通道、多量程雙極性輸入、串行輸出、逐次逼近型12 bit AD 轉(zhuǎn)換器。其封裝形式有24 腳Narrow PDIP 和28 腳SSOP 兩種。PDIP 封裝的引腳排列如圖4所示。各有用引腳功能如下:1VDD,+5V 電源輸入端;2、4DGND,數(shù)字地;5SCLK,串行時鐘輸入端;6/CS,片選輸入端,低電平有效;7DIN,串行數(shù)據(jù)輸入,即AD 轉(zhuǎn)換控制字輸入端;8SSTRB,串行數(shù)據(jù)輸出選通輸出端;10DOUT,

10、串行數(shù)據(jù)輸出端;11/SHDN,掉電模式控制輸入端,圖3 MAX1270 引腳排列低電平有效;12AGND,模擬地;1320CH0CH7,模擬信號輸入端;21REFADJ,參考電壓輸出/外部調(diào)節(jié)輸入;23REF,參考電壓緩沖輸出/ADC 的參考輸入。 MAX1270 的控制字MAX1270 的8 位控制字與其功能如表1 所示。最高位START 為起始位(高電平),標(biāo)志控制字的開始。/CS 為低電平期間,控制字在時鐘脈沖SCLK 作用下先高位后低位通過DIN 端輸入。表1 控制字格式BIT7(MSB)BIT6BIT5BIT4BIT3BIT2BIT1BIT0(LSB)STARTSEL2SEL1SE

11、L0RNGBIPPD1PD0時鐘模式與轉(zhuǎn)換速率PD1PD0 為掉電/時鐘模式選擇位。PD1PD010、11 時為省電模式。正常工作時MAX1270有外部時鐘與部時鐘兩種工作模式。PD1PD001 時為外部時鐘模式,串行數(shù)據(jù)的移入、移出以與數(shù)據(jù)采集、轉(zhuǎn)換都由SLCK 端的輸入脈沖控制。PD1PD000 時為部時鐘模式,數(shù)據(jù)轉(zhuǎn)換時鐘由芯片自己產(chǎn)生,減輕了微處理器的負(fù)擔(dān),使得轉(zhuǎn)換后的數(shù)據(jù)可在微處理器方便的任何時刻讀取,利于提高微處理器的工作效率。外部時鐘模式分為25SCLK/s(每個數(shù)據(jù)轉(zhuǎn)換需要25 個時鐘周期)和18 SCLK/s 兩種方式,后者轉(zhuǎn)換速率稍快的原因是在全部數(shù)據(jù)轉(zhuǎn)換期間/CS 始終維

12、持有效電平。部時鐘模式也有20、16、13 SCLK/s 等不同轉(zhuǎn)換方式。不同的時鐘模式和轉(zhuǎn)換方式,其轉(zhuǎn)換速率不同。在外部時鐘模式、SCLK 速率為2MHz、18SCLK/s 時MAX1270 轉(zhuǎn)換速率可達110ksps。通道選擇與輸入圍SEL2SEL0 為通道選擇位,000111 分別選擇輸入通道CH0CH7。RNGBIP 為輸入圍選擇位,MAX1270 有4 種輸入圍RNGBIP 置00 時05V 單極性輸入,置01 時0+10V 單極性輸入;置10 時-5+5V 雙極性輸入;置11 時-10+10V 雙極性輸入。傳輸函數(shù)與輸出數(shù)據(jù)格式對單極性輸入,1LSBFS/4096,輸出數(shù)據(jù)為12

13、位二進制碼。對雙極性輸入,1LSBFS/2048,輸出數(shù)據(jù)為12 位二進制補碼。參考電壓MAX1270 可使用芯片的4.096V 參考電壓,也可使用外部參考。圖是使用片外參考和片參考時相關(guān)管腳的接法。圖4 管腳連接圖(a) 使用片參考電壓(b)、(c)使用片外參考電壓圖5 AD轉(zhuǎn)換電路(3)7219顯示電路 MAX721 9功能和設(shè)置簡介MAX7219是串行輸出共陰極顯示性能非常卓越的驅(qū)動芯片。其接口采用流行的同步串行外設(shè)接口SPI,可與任何一種單片機方便接口,并可同時驅(qū)動8位LED,還具有級聯(lián)功能可控制更多的LED。MAX7219為24引腳芯片,除與LED顯示相連的線外,與微控制器只需3根連

14、線相接:芯片端管腳分別為CLK DINLOAD,其中CLK為時鐘輸入端,DIN為數(shù)據(jù)輸入端,LOAD為鎖存信號。其工作時序為:時鐘的上升沿MAX7219把DIN引腳數(shù)據(jù)移入部移位寄存器,在時鐘下降沿MAX7219把數(shù)據(jù)移向DOUT端,而LOAD的上升沿則鎖存最后移入的16位串行數(shù)據(jù)。對MAX7219的控制操作很方便其部具有15×8位RAM 功能控制寄存器,可方便尋址,對每位數(shù)字可單獨控制、刷新,不需要重寫整個顯示器。顯示亮度可數(shù)字控制。MAX7219的這些功能,使系統(tǒng)編程簡單方便,同時節(jié)省IO 口。MAX7219的控制寄存器分別為:不工作方式寄存器、譯碼方式寄存器、亮度控制寄存器、掃

15、描個數(shù)寄存器、關(guān)閉寄存器顯示測試寄存器寄存器的操作格式為2字節(jié)的串行數(shù)據(jù),第一個字節(jié)為寄存器地址,第二個字節(jié)為控制命令或待顯示數(shù)據(jù)。寄存器的地址分配與功能如下所示: 不工作寄存器(0x00):用于MAX7219級聯(lián)控制。 位寄存器(0x01·0x08):8位LED待顯示容。 譯碼方式寄存器(OxOg):決定譯碼方式,分B碼和不譯碼兩種。 亮度控制寄存器(0x0A):LED段電流控制 掃描個數(shù)寄存器(0x0B):決定顯示多少個LED。 關(guān)閉寄存器(0xOC):決定正常工作方式或關(guān)閉LED顯示。 顯示測試寄存器(0x0D):決定正常工作方式或顯示測試 引腳功能和功能框圖: MAX1279

16、 引腳排列如圖7 所示圖6 MAX7219引腳排列圖引腳功能如下: DIN為串行數(shù)據(jù)輸入端。當(dāng)CLK為上升沿時,數(shù)據(jù)被載入16 b部移位寄存器。 CLK為串行時鐘輸入端。其最大工作頻率可達10 MHz。 LOAD為片選端,當(dāng)LOAD為低電平時,芯片接收來自DIN的數(shù)據(jù),接收完畢,LOAD回到高電平時,接收的數(shù)據(jù)將被鎖定。圖7 DIN,CLK和LOAD的工作時序。 DIG0DIG7為吸收顯示器共陰極電流的位驅(qū)動線。其最大值可達500 mA,關(guān)閉狀態(tài)時,輸出VCC。 SEGASEGG,DP為驅(qū)動顯示器7段與小數(shù)點的輸出電流,一般為40 mA左右,可軟件調(diào)整,關(guān)閉狀態(tài)時,接入GND。 DOUT為串行

17、數(shù)據(jù)輸出端,通常直接接入下一片MAX7219的DIN端。圖8 MAX7219 的功能框圖串行輸入數(shù)據(jù)在時鐘上升沿時移入部的16 位移位寄存器, 在裝載的上升沿時數(shù)據(jù)被鎖存在每一位或寄存器中。裝載信號必須在第16 個時鐘上升沿發(fā)生時或之后達到高電平, 但要在下一個時鐘的上升沿和數(shù)據(jù)丟失之前到達。串行輸入數(shù)據(jù)通過移位寄存器傳輸, 在以后數(shù)據(jù)輸出的16. 5 個時鐘循環(huán)出現(xiàn),數(shù)據(jù)在時鐘的下降沿記錄下來。數(shù)據(jù)各位記錄為D0D15 (如表2 所列) , D8D11 為移位寄存器地址, D0D7 為數(shù)據(jù), D12D15 是無關(guān)位。第一位接收到的位是最高位D15。D7 為數(shù)據(jù)最高有效位,D0 為數(shù)據(jù)最低有效

18、位。D15D14D13D12D11D10D9D8D7 D0xxxx地址 數(shù)據(jù) 表2串行數(shù)據(jù)格式(16位) MAX7219 控制字表3 max7219寄存器地址控制字MAX7219 有14 個可尋址的控制字寄存器(如表3) , 控制字寄存器由芯片的8 ×8 雙端口SRAM 識別,SRAM 直接尋址, 這樣單一的位能被更改或保留, 條件是電源電壓明顯大于2V ??刂谱旨拇嫫靼ㄗg碼模式、顯示強度、掃描限制(被掃描位的個數(shù)) 、關(guān)閉模式、顯示測試(點亮所有的L ED) 。另外還有一個空操作寄存器, 該寄存器允許數(shù)據(jù)從DIN 直送DOU T , 在設(shè)備串接情況下, 不會改變顯示或影響任何控制

19、寄存器?;谝陨蟽?yōu)點MAX7219 已用于血氧監(jiān)護儀的脈搏強度柱狀圖顯示與血氧、脈率的L ED 顯示, 節(jié)省了許多鎖存器、譯碼器與驅(qū)動器,大大提高了儀器顯示器部分的集成程度。 在很多嵌入式系統(tǒng)設(shè)計中,都要用到LED顯示驅(qū)動芯片,MAXIM 公司生產(chǎn)的MAX7219串行LED驅(qū)動顯示器具有接口簡單占用資源少、控制靈活方便、LED級聯(lián)擴展便利的優(yōu)點,從而成為很多開發(fā)人員的首選。圖9 max7219驅(qū)動數(shù)碼管顯示電路(4 ) Max232遠(yuǎn)程通信電路AT89C52單片機部的串行接口是全雙工的,即它能同時發(fā)送和接收數(shù)據(jù)。發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入。串行口還有接收緩沖作用,即

20、從接收寄存器中讀出前一個已收到的字節(jié)之前就能開始接收第二字節(jié)。 兩個串行口數(shù)據(jù)緩沖器(實際上是兩個寄存器)通過特殊功能寄存器SBUF來訪問。寫入SBUF的數(shù)據(jù)儲存在發(fā)送緩沖器,用于串行發(fā)送;從SBUF讀出的數(shù)據(jù)來自接收緩沖器。兩個緩沖器共用一個地址99H(特殊功能寄存器SBUF的地址)。 串行口控制寄存器 控制串行口的寄存器有兩個特殊功能寄存器:即串行口控制寄存器SCON和電源控制器PCON。 PCON中的波特率選擇位PCON是一個特殊功能寄存器(如下圖所示),沒有位尋址功能,字節(jié)地址為87H。其中D7位(SMOD)為波特率選擇位。其他均無意義。復(fù)位時的SMOD值為0。可用MOV PCON,#

21、80H或MOV 87H,#80H指令使該位置1。當(dāng)SMOD=1時,在串行口方式1,2或3情況下,波特率提高一倍。2 串行口控制寄存器SCON特殊功能寄存器SCON用于定義串行口的操作方式和控制它的某些功能。其字節(jié)地址為98H。寄存器中各位容如下:D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2RENTB8RB8TIRI SM0,SM1 串行口操作方式選擇位,兩個選擇位對應(yīng)于四種狀態(tài),所以串行口能以四種方式工作,見表4。 SM2 允許方式2和3的多機通信使能位,在方式2或3中,若SM2置為1,且接收到的第9位數(shù)據(jù)(RB8)為0,則接收中斷標(biāo)志RI不會被激活,在方式1中,若SM2=

22、1,則只有收到有效的停止位時才會激活RI。在方式0中,SM2必須置為0。 REN 允許串行接收位。由軟件置位或清零,使允許接收或禁止接收。 TB8 是在方式2和3中要發(fā)送的第9位數(shù)據(jù)可按需要由軟件置位或復(fù)位。 RB8 是方式2和3中已接收到的第9位數(shù)據(jù)。在方式1中,若SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8位。 TI 發(fā)送中斷標(biāo)志。在方式0中當(dāng)串行發(fā)送完第8位數(shù)據(jù)時由硬件置位;在其他方式中,在發(fā)送停止位的開始時由硬件置位。當(dāng)TI=1時,申請中斷,CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何方式中,該位都必須由軟件清0。 RI 接收中斷標(biāo)志。在方式0中串行接收到第8位結(jié)束時由硬件

23、置位。在其他方式中,在接收到停止位的中間時刻由硬件置位。RI=1時申請中斷,要求CPU取走數(shù)據(jù)。但在方式1中,當(dāng)SM2=1時,若未接收到有效的停止位,則不會對RI置位。在任何工作方式中,該位都必須由軟件清0。在系統(tǒng)復(fù)位時,SCON中的所有位都被清0。 串行接口工作方式串行口的操作方式由SM0,SM1定義,編碼和功能如表3所示,表4 串行口方式選擇SM0 SM1方 式功 能 說 明波 特 率0 00移位寄存器方式 fosc/120 118位UART 可變1 029位UARTfosc/64或 fosc/321 139位UART 可變1 方式0 串行口的工作方式0為移位寄存器輸入輸出方式,可外接移位

24、寄存器,以擴展I/O口,也可外接同步輸入輸出設(shè)備。方式0主要用于使用CMOS或TTL移位寄存器進行I/O擴展的場合。2 方式1 串行口工作于方式1時,被控制為波特率可變的8位異步通信接口。傳送一幀信息為10位,即1位起始位(0),8位數(shù)據(jù)位(低位在先)和1位停止位(1)。數(shù)據(jù)位由TXD發(fā)送,由RXD接收。波特率是可變的,取決于定時器1或2的溢出速率。 方式2和方式3 串行工作于方式2和方式3時,被自定義為9位的異步通信接口,發(fā)送(通過TXD)和接收(通過RXD)一幀信息都是11位,1位起始位(0),8位數(shù)據(jù)位(低位在先,)1位可編程位(即第9位數(shù)據(jù))和1位停止位(1)。方式2和方式3的工作原理

25、相似,唯一的差別是方式2的波特率是固定的。為fosc/32或fosc/64;方式3的波特率是可變的,利用定時器1或定時器2作波特率發(fā)生器。 波特率 串行口每秒鐘發(fā)送(或接收)的位數(shù)稱為波特率。假設(shè)發(fā)送一位數(shù)據(jù)所需要的時間為T,則波特率為。 串行口以方式0工作時,波特率固定為振蕩器頻率的1/12。為方式2時波特率為振蕩器頻率的1/64或1/32,它取決于特殊功能寄存器PCON中的SMOD位的狀態(tài)。如果SMOD=0(復(fù)位時SMOD=0)。波特率為振蕩器頻率的1/64,如果SMOD=1,波特率為振蕩器頻率的1/32。方式1和3的波特率由定時器1的溢出率所決定。當(dāng)定時器1作波特率發(fā)生器時,波特率由下式

26、確定: 波特率=(定時器1溢出率)/n式中:定時器1=溢出率+定時1的溢出次數(shù)/秒,n為32或16,取決于特殊功能寄存器PCON中的SMOD位的狀態(tài)。若SMOD=0,則n=32。若SMOD=1,則n=16。 對于定時器的不同工作方式,得到的波特率的圍是不一樣的,這主要由定時器1的計數(shù)位數(shù)不同所決定。對于非常低的波特率,應(yīng)選擇16位定時器方式(即TMOD.5=0,TMOD.4=1),并且在定時器1中斷程序中實現(xiàn)時間常數(shù)重新裝入。在這種情況下,應(yīng)該允許定時器1中斷 (IE.3=1)。圖10 max232遠(yuǎn)程通信電路(5) Ds12887實時時鐘電路DS12887是一款集成了DS12R885裸片、3

27、2.768KHz石英晶體和一個可充電電池的時鐘器件。器件部含有14字節(jié)的實時時鐘/日歷、鬧鐘、控制/狀態(tài)寄存器以與114字節(jié)的非易失、電池備份的的靜態(tài)RAM。少于31天的月份,月末日期可自動調(diào)整,其中包括閏年補償,該器件提供一個定時鬧鐘、三個可屏蔽中斷和一個通用中斷輸出,以與可編程方波輸出,DS12887可以工作于24小時或帶AM/PM指示的12小時格式。一個精密的溫度補償電路用來監(jiān)視VCC的狀態(tài),如果檢測到主電源故障,該器件可以自動切換到備用電源供電。備用電源支持可充電電池或超級電容,器件部包含一個集成的涓流充電器,涓流充電器始終有效,可通過多路復(fù)用的地址/數(shù)據(jù)總線訪問ds12887,總線支

28、持Intel和Motorola模式。DS12887可作為IBM AT 計算機的時鐘和日歷與MC146818和DS1287的管腳兼容在沒有外部電源的情況下可工作10年,可以計算到2100年前的秒、分、小時、星期、日期、月、年七種日歷信息并帶閏年補償,可以編程選擇用二進制碼或BCD碼代表日歷和鬧鐘信息,可以切換到夏令時。 圖 11 實時時鐘電路(6)24c02存儲與讀取電路24C02功能概述24C02是一個2K 位串行CMOS E2PROM 部含有256個字節(jié)的存儲空間。采用I2C總線接口可與400KHz I2C總線兼容,工作電壓圍為1.8 到6.0 V,采用低功耗CMOS 技術(shù)功耗很低。設(shè)有一個

29、專門的寫保護功能:當(dāng)WP為高電平時進入寫保護狀態(tài)??勺远〞r擦寫周期,具有1,000,000 編程/擦除周期,數(shù)據(jù)可保存100 年。 功能描述24WC02支持I2C總線數(shù)據(jù)傳送協(xié)議I2C總線協(xié)議規(guī)定:任何將數(shù)據(jù)傳送到總線的器件作為發(fā)送器,任何從總線接收數(shù)據(jù)的器件作為接收器件。數(shù)據(jù)傳送是由產(chǎn)生串行時鐘和所有起始停止信號的主器件控制的,主器件和從器件都可以作為發(fā)送器或接收器但由主器件控制傳送數(shù)據(jù)發(fā)送或接收的模式通過器件地址輸入端A0 A1 和A2 可以實現(xiàn)將最多8 個24WC01 和24WC02 器件4 個242C04 器件,2 個24WC08 器件和1 個24WC16 器件連接到總線上。 管腳描述

30、 SCL 串行時鐘CAT24WC02串行時鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘,是一個輸入管腳。 SDA 串行數(shù)據(jù)/地址CAT24WC02雙向串行數(shù)據(jù)/地址管腳,用于器件所有數(shù)據(jù)的發(fā)送或接收。SDA是一個開漏輸出管腳可與其它開漏輸出或集電極開路輸出進行線與。 A0 A1 A2 器件地址輸入端這些輸入腳用于多個器件級聯(lián)時設(shè)置器件地址,當(dāng)這些腳懸空時默認(rèn)值為0(24WC01 除外)當(dāng)使用24WC02 時最大可級聯(lián)8個器件如果只有一個24WC02 被總線尋址這三個地址輸入腳A0 A1 A2 可懸空或連接到Vss;如果只有一個24WC01 被總線尋址這三個地址輸入腳A0 A1 A2 必須連接

31、到Vss;當(dāng)使用24WC04 時最多可連接4 個器件該器件僅使用A1 A2地址管腳A0管腳未用,可以連接到Vss 或懸空如果只有一個24WC04 被總線尋址A1和A2地址管腳可懸空或連接到Vss;當(dāng)使用24WC08 時最多可連接2 個器件且僅使用地址管腳A2 A0 A1 管腳未用,可以連接到Vss 或懸空;如果只有一個24WC08 被總線尋址A2 管腳可懸空或連接到Vss;當(dāng)使用24WC16 時最多只可連接1個器件所有地址管腳A0 A1 A2 都未用管腳可以連接到Vss 或懸空。 WP 寫保護如果WP管腳連接到Vcc所有的容都被寫保護只能讀,當(dāng)WP管腳連接到Vss 或懸空允許器件進行正常的讀/

32、寫操作。I2C總線協(xié)議I2C總線協(xié)議定義如下只有在總線空閑時才允許啟動數(shù)據(jù)傳送 在數(shù)據(jù)傳送過程中當(dāng)時鐘線為高電平時數(shù)據(jù)線必須保持穩(wěn)定狀態(tài)不允許有跳變時鐘線為高電平時數(shù)據(jù)線的任何電平變化將被看作總線的起始或停止信號起始信號時鐘線保持高電平期間數(shù)據(jù)線電平從高到低的跳變作為I2C總線的起始信號停止信號時鐘線保持高電平期間數(shù)據(jù)線電平從低到高的跳變作為I2C總線的停止信號圖12 總線時序圖13 寫周期時序圖14 起始/停止時序器件尋址主器件通過發(fā)送一個起始信號啟動發(fā)送過程,然后發(fā)送它所要尋址的從器件的地址,8位從器件地址的高4 位固定為1010,接下來的3 位A2 A1 A0為器件的地址位用來定義哪個器

33、件以與器件的哪個部分被主器件訪問。上述8 個CAT24WC01/02 4 個CAT24WC04 2 CAT24WC081 個CAT24WC16 可單獨被系統(tǒng)尋址,從器件8 位地址的最低位作為讀寫控制位,1表示對從器件進行讀操作,0表示對從器件進行寫操作。在主器件發(fā)送起始信號和從器件地址字節(jié)后,CAT24WC02監(jiān)視總線并當(dāng)其地址與發(fā)送的從地址相符時響應(yīng)一個應(yīng)答信號,通過SDA24WC02 再根據(jù)讀寫控制位R/W 的狀態(tài)進行讀或?qū)懖僮鲬?yīng)答信號I2C總線數(shù)據(jù)傳送時每成功地傳送一個字節(jié)數(shù)據(jù)后接收器都必須產(chǎn)生一個應(yīng)答信號,應(yīng)答的器件在第9 個時鐘周期時將SDA 線拉低表示其已收到一個8 位數(shù)據(jù)。CAT

34、24WC01/02/04/08/16 在接收到起始信號和從器件地址之后響應(yīng)一個應(yīng)答信號,如果器件已選擇了寫操作則在每接收一個8位字節(jié)之后響應(yīng)一個應(yīng)答信號。當(dāng)CAT24WC01/02/04/08/16 工作于讀模式時,在發(fā)送一個8 位數(shù)據(jù)后釋放SDA線并監(jiān)視一個應(yīng)答信號,一旦接收到應(yīng)答信號CAT24WC01/02/04/08/16 繼續(xù)發(fā)送數(shù)據(jù),如主器件沒有發(fā)送應(yīng)答信號器件停止傳送數(shù)據(jù)且等待一個停止信號。圖15 應(yīng)答時序圖16 從器件地址位 寫操作 字節(jié)寫在字節(jié)寫模式下,主器件發(fā)送起始信號和從器件地址信息R/W 位置0 給從器件,在從器件送回應(yīng)答信號后,主器件發(fā)送兩個8 位地址字寫入CAT24W

35、C32/64 的地址指針,主器件在收到從器件的應(yīng)答信號后,再發(fā)送數(shù)據(jù)到被尋址的存儲單元。CAT24WC32/64 再次應(yīng)答,并在主器件產(chǎn)生停止信號后開始部數(shù)據(jù)的擦寫,在部擦寫過程中, 24WC32/64不再應(yīng)答主器件的任何請求。 頁寫在頁寫模式下,單個寫周期CAT24WC32/64 最多可以寫入32 個字節(jié)數(shù)據(jù)。頁寫操作的啟動和字節(jié)寫一樣,不同在于傳送了一字節(jié)數(shù)據(jù)后,主器件允許繼續(xù)發(fā)送31 個字節(jié)。每發(fā)送一個字節(jié)后,CAT24WC32/64 將響應(yīng)一個應(yīng)答位,且部低5 位地址加1,高位地址保持不變。如果主器件在發(fā)送停止信號之前發(fā)送大于32 個字節(jié),地址計數(shù)器將自動翻轉(zhuǎn),先前寫入的數(shù)據(jù)被覆蓋。當(dāng)

36、所有32 字節(jié)接收完畢,主器件發(fā)送停止信號,部編程周期開始。此時所有接收到的數(shù)據(jù)在單個寫周期寫入CAT24WC32/64。 讀操作CAT24WC32/64 讀操作的初始化方式和寫操作時一樣,僅把R/W 位置為1。有三種不同的讀操作方式:立即/當(dāng)前地址讀選擇/隨機讀和連續(xù)讀。 立即/當(dāng)前地址讀CAT24WC32/64 的地址計數(shù)器容為最后操作字節(jié)的地址加1。也就是說,如果上次讀/寫的操作地址為N,則立即讀的地址從地址N+1開始,如果N=E (這里對24WC32 ,E=4095 ,對24WC64, E=8191)則計數(shù)器將翻轉(zhuǎn)到0 且繼續(xù)輸出數(shù)據(jù)。CAT24WC32/64 接收到從器件地址信號后(

37、R/W 位置1),它首先發(fā)送一個應(yīng)答信號,然后發(fā)送一個8 位字節(jié)數(shù)據(jù)。主器件不需發(fā)送一個應(yīng)答信號但要產(chǎn)生一個停止信號。 選擇/隨機讀選擇/隨機讀操作允許主器件對寄存器的任意字節(jié)進行讀操,作主器件首先通過發(fā)送起始信號、從器件地址和它想讀取的字節(jié)數(shù)據(jù)的地址執(zhí)行一個偽寫操作。在CAT24WC32/64 應(yīng)答之后,主器件重新發(fā)送起始信號和從器件地址,此時R/W 位置“1”, CAT24WC32/64 響應(yīng)并發(fā)送應(yīng)答信號,然后輸出所要求的一個8 位字節(jié)數(shù)據(jù),主器件不發(fā)送應(yīng)答信號但產(chǎn)生一個停止信號。 連續(xù)讀連續(xù)讀操作可通過立即讀或選擇性讀操作方式啟動。在CAT24WC32/64 發(fā)送完一個8 位字節(jié)數(shù)據(jù)后

38、,主器件產(chǎn)生一個應(yīng)答信號來響應(yīng),告知CAT24WC32/64 主器件要求更多的數(shù)據(jù),對應(yīng)每個主機產(chǎn)生的應(yīng)答信號CAT24WC32/64 將發(fā)送一個8 位數(shù)據(jù)字節(jié)。當(dāng)主器件不發(fā)送應(yīng)答信號而發(fā)送停止位時結(jié)束此操作。從CAT24WC32/64 輸出的數(shù)據(jù)按順序由N 到N+1 輸出。讀操作時地址計數(shù)器在CAT24WC32/64 整個地址增加,這樣整個寄存器區(qū)域在可在一個讀操作全部讀出。當(dāng)讀取的字節(jié)超過E (對于24WC32,E=4095;對24WC64, E=8191)計數(shù)器將翻轉(zhuǎn)到零并繼續(xù)輸出數(shù)據(jù)字節(jié)。圖17 24C02存儲電路(7)鍵盤與顯示電路圖18 鍵盤與液晶顯示電路在本系統(tǒng)中,采用獨立式鍵盤

39、。本鍵盤完成的功能為輸入控制系統(tǒng)的設(shè)定值,以便與系統(tǒng)的采樣值比較,求出系統(tǒng)的誤差與誤差變化率供以后的模糊控制子程序使用。為了完成預(yù)定值設(shè)置,系統(tǒng)中設(shè)置了4個按鍵,分別為圖中S1、S2、S3和S3,依次代表設(shè)定溫度功能鍵、加1鍵、減1鍵和查看存儲功能鍵。功能鍵以它按下的次數(shù)來區(qū)分它的多種功能。當(dāng)溫度功能鍵第一次被按下時,液晶顯示當(dāng)前溫度值和日期,此時按加1、減1鍵無響應(yīng),再按下功能鍵則進入溫度設(shè)定模式,液晶顯示當(dāng)前時間和設(shè)定默認(rèn)值,按加1減1鍵使該值每次加減0.5,設(shè)定完參數(shù)后,再按一次功能鍵系統(tǒng)將進入設(shè)定值發(fā)送狀態(tài),當(dāng)液晶上顯示“OK”表示設(shè)定溫度已經(jīng)成功發(fā)送到子機。再按一下溫度設(shè)定功能鍵回復(fù)

40、原來狀態(tài)。當(dāng)查看存儲功能鍵按下一次時,液晶顯示系統(tǒng)最后記錄的溫度,和該溫度對應(yīng)的日期和時間。所用的四個鍵全部選用按鈕開關(guān)。在編寫軟件處理子程序時主要注重以下3個問題: 如何減少開關(guān)的使用次數(shù)以提高開關(guān)的使用壽命。 如何更快捷更方便的給出設(shè)定值。 如何更有利于總程序的總體調(diào)度。為此,采用4各按鍵來搭建電路,第一個按鍵用于查看日期、進入設(shè)定溫度模式和發(fā)送設(shè)定溫度到從機。第四個按鍵用于查看存儲的溫度值以與該溫度值所對應(yīng)的時間和日期。在設(shè)定溫度模式下,按鍵二和按鍵三分別用于對設(shè)定值的加減操作;在查看已存儲溫度模式下,按鍵二和按鍵三分別用于向前查看和向后查看。(8)系統(tǒng)電源設(shè)計圖19 系統(tǒng)電源五、系統(tǒng)總

41、體電路圖圖20 系統(tǒng)總體電路圖附件1:A機源程序#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define delay1us _nop_(); /精確延時1微秒#define delay2us delay1us;delay1us; /精確延時2微秒#define delay4us delay2us;delay2us; /精確延時4微秒#define delay12us delay4us;delay4us;delay4us;/精確延時12微

42、秒uchar data table=0,0,0,0; /定義一維數(shù)組緩存區(qū),存取當(dāng)前溫度數(shù)值uchar data table0=0,0,0,0; /定義一維數(shù)組緩存區(qū),存取設(shè)定溫度數(shù)值sbit din=P00; /串行顯示芯片max7219引腳定義sbit clk=P02;sbit load=P01;sbit max1270_clk=P22; /12位ADC,MAX1270引腳定義sbit max1270_cs=P21;sbit max1270_din=P20;sbit max1270_dout=P23;sbit HOT=P12; /溫度控制PWM輸出端口sbit COOL=P13;uint

43、data SET_temp; /設(shè)定溫度變量,用于接受上位機設(shè)定溫度uint data REA_temp,temp,temp0,temp1,temp2; /當(dāng)前溫度變量uint PWM; /脈寬大小調(diào)節(jié)變量 signed int data comp; /當(dāng)前溫度與設(shè)定溫度差值uchar a;/*函數(shù)名稱:延時函數(shù)*功能:含形參,延時長短可調(diào)*說明:z=1時,延時10ms*位置:*/void delay(uchar z)uchar i,j,k;for(k=z;k>0;k-)for(i=20;i>0;i-)for(j=248;j>0;j-);/*函數(shù)名稱:MAX1270_AD轉(zhuǎn)換

44、函數(shù)*功能:max1270 12位的模數(shù)轉(zhuǎn)換芯片*/=MAX1270_AD轉(zhuǎn)換函數(shù)=/-寫入一個字節(jié)-/void Max1270_write(uchar dat)uchart;for(cnt=0;cnt<8;cnt+)max1270_din=(bit)(dat&0x80);dat<<=1;max1270_clk=1;delay1us;max1270_clk=0;delay1us;/-讀出一個字節(jié)-/uint Max1270_read(void)uint dat=0;uchart;for(cnt=0;cnt<16;cnt+)dat<<=1;max127

45、0_clk=1;delay12us;max1270_clk=0;if(max1270_dout) dat+;delay12us;return dat;/-讀取MAX1270某一通道轉(zhuǎn)換的數(shù)值-/uint Max1270_read_data()uint AD_data;max1270_cs=0;delay12us;Max1270_write(0x81);delay12us;AD_data=Max1270_read();max1270_cs=1;delay12us;return AD_data;/*函數(shù)名稱:MAX7219顯示芯片控制函數(shù)*功能:串口8位數(shù)碼管顯示芯片*/-對7219的寫字節(jié)程序-

46、/-功能:實現(xiàn)對控制寄存器的讀寫-/void Write_Max7219_byte(uchar DATA) /LED寫數(shù)據(jù)函數(shù) uchar i; load=0; for(i=8;i>=1;i-) clk=0; din=DATA&0x80; DATA=DATA<<1; clk=1; /*7219寫數(shù)字程序*/功能:先寫LED數(shù)字控制寄存器,再將要顯示的字符送到相應(yīng)的數(shù)字寄存器顯示void Write_Max7219(uchar address,uchar dat) load=0; Write_Max7219_byte(address); Write_Max7219_by

47、te(dat); load=1; /*7219初始化程序*/功能:完成對各個部寄存器的初始化void Init_Max7219(void) Write_Max7219(0x09, 0xff); /譯碼寄存器,寫入0ffH,對0至7位均譯碼 Write_Max7219(0x0a, 0x04); /亮度調(diào)節(jié)寄存器,寫入03H,實現(xiàn)一般的亮度顯示 Write_Max7219(0x0b, 0x07); /掃描界限寄存器,寫入03H,實現(xiàn)對0到3位數(shù)碼管的顯示 Write_Max7219(0x0c, 0x01); /停機寄存器,寫入01H,實現(xiàn)正常工作 Write_Max7219(0x0d, 0x08)

48、; /顯示測試寄存器,寫入0H,實現(xiàn)正常工作/*函數(shù)名稱:當(dāng)前與設(shè)定溫度顯示函數(shù)*功能:顯示當(dāng)前與設(shè)定溫度*/void display()table0=temp0%10;if(table0<5)table0=5;else table0=0;temp0=temp0+10; /小數(shù)位采用四舍五入算法濾抖table1=temp0%100/10;table2=temp0%1000/100;table3=temp0/1000;Write_Max7219(0x01,table0);Write_Max7219(0x02,table1|0x80);Write_Max7219(0x03,table2);W

49、rite_Max7219(0x04,table3); /(三位半)當(dāng)前溫度顯示,精確到0.5°Ctable00=SET_temp%10;table01=SET_temp%100/10;table02=SET_temp%1000/100;table03=SET_temp/1000;Write_Max7219(0x05,table00);Write_Max7219(0x06,table01|0x80);Write_Max7219(0x07,table02);Write_Max7219(0x08,table03); /(三位半)設(shè)定溫度顯示,精確到0.5°C/*函數(shù)名稱:PWM函數(shù)T0&T2初始化*功能:PWM調(diào)節(jié),T0&T2初始化*/void Initimer()PT2=1;TMOD=0x21; / PWM周期20ms RCAP2L=0xff; RCAP2H=0xb7 ; TH0=(65535-PWM)/256

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論