李新建 亓振軍
【摘要】本文設(shè)計的是監(jiān)測機房一套無線多溫度數(shù)據(jù)采集系統(tǒng),主要用于對環(huán)境溫度的采集與監(jiān)控,系統(tǒng)采用基于無線網(wǎng)絡(luò)的設(shè)計思想和溫度采集技術(shù)。
【關(guān)鍵詞】AT89C52;溫度采集
1.單片機主控制電路設(shè)計——AT89C52控制器電路設(shè)計
1.1 主控制器單片機AT89C52單片機控制器電路
圖1為主控制器單片機AT89C52單片機控制器電路。AT89C52單片機片內(nèi)的Flash可允許在線重新編程,也可用通用非易失性存儲編程器編程;片內(nèi)數(shù)據(jù)存儲器內(nèi)含128字節(jié)的RAM;有40個引腳,32個外部雙向輸入/輸出(I/O)端口;具有兩個16位可編程定時器;中斷系統(tǒng)是具有6個中斷源、5個中斷矢量、2級中斷優(yōu)先級的中斷結(jié)構(gòu);震蕩器頻率0到33MHZ,因此我們在此選用12MHZ的晶振是比較合理的;具有片內(nèi)看門狗定時器;具有斷電標(biāo)志POF等等。
圖1 AT89C52單片機控制器電路
1.2 AT89C52引腳說明
P0口:8位、開漏級、雙向I/O口。P0口可作為通用I/O口,但須外接上拉電阻;作為輸出口,每各引腳可吸收8各TTL的灌電流,作為輸入時,首先應(yīng)將引腳置1。P0也可用做訪問外部程序存儲器和數(shù)據(jù)存儲器時的低8位地址/數(shù)據(jù)總線的復(fù)用線。在該模式下,P0口含有內(nèi)部上拉電阻。在FLASH編程時,P0口接收代碼字節(jié)數(shù)據(jù);在編程效驗時,P0口輸出代碼字節(jié)數(shù)據(jù)(需要外接上拉電阻)。
P1口:8位、雙向I/0口,內(nèi)部含有上拉電阻,P1口可作普通I/O口。輸出緩沖器可驅(qū)動四個TTL負(fù)載,用作輸入時,先將引腳置1,由片內(nèi)上拉電阻將其拉到高電平。P1口的引腳可由外部負(fù)載拉到低電平,通過上拉電阻提供電流。在FLASH并行編程和校驗時,P1口可輸入低字節(jié)地址。在串行編程和校驗時,P1.5/MOSI,P1.6/MISO和P1.7/SCK分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。
P2口:具有內(nèi)部上拉電阻的8位雙向I/O口。P2口用做輸出口時,可驅(qū)動4各TTL負(fù)載,用做輸入口時,先將引腳置1,由內(nèi)部上拉電阻將其拉到高電平。若負(fù)載為低電平,則通過內(nèi)部上拉電阻向外部輸出電流。CPU訪問外部16位地址的存儲器時,P2口提供高8位地址,當(dāng)CPU用8位地址尋址外部存儲時,P2口為特殊功能寄存器的內(nèi)容。在FLASH并行編程和校驗時,P2口可輸入高字節(jié)地址和某些控制信號。
P3口:具有內(nèi)部上拉電阻的8位雙向口。P3口用做輸出口時,輸出緩沖器可吸收4各TTL的灌電流,用做輸入口時,首先將引腳置1,由內(nèi)部上拉電阻拉到高電平。若外部的負(fù)載是低電平,則通過內(nèi)部上拉電阻向輸出電流。在與FLASH并行編程和校驗時,P3口可輸入某些控制信號。P3口除了通用I/O口功能外,還有第二功能,如表1所示。
表1 P3口的第二功能
引腳 符號 說明
P3.0 RXD 串行口輸入
P3.1 TXD 串行口輸出
P3.2 /INT0 外部中斷0
P3.3 /INT1 外部中斷1
P3.4 T0 T0定時器的外部的計數(shù)輸入
P3.5 T1 T1定時器的外部的計數(shù)輸入
P3.6 /WR 外部數(shù)據(jù)存儲器的寫選通
P3.7 /RD 外部數(shù)據(jù)存儲器的讀選通
RST:復(fù)位端。當(dāng)振蕩器工作時,此引腳上出現(xiàn)兩個機器周期的高電平將系統(tǒng)復(fù)位。
ALE/:當(dāng)訪問外部存儲器時,ALE(允許地址鎖存)是一個用于鎖存地址的低8位字節(jié)的書粗脈沖。在Flash 編程期間,此引腳也可用于輸入編程脈沖()。在正常操作情況下,ALE以振蕩器頻率的1/6的固定速率發(fā)出脈沖,它是用作對外輸出的時鐘,需要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如果希望禁止ALE操作,可通過將特殊功能寄存器中位地址為8EH那位置的“0”來實現(xiàn)。該位置“1”后。ALE僅在MOVC指令期間激活,否則ALE引腳將被略微拉高。若微控制器在外部執(zhí)行方式,ALE禁止位無效。
:外部程序存儲器讀選取通信號。當(dāng)AT89C52在讀取外部程序時,每個機器周期將其激活兩次。在此期間內(nèi),每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過兩個信號。
/Vpp:訪問外部程序存儲器允許端。為了能夠從外部程序存儲器的0000H至FFFFH單元中取指令,必須接地,然而要注意的是,若對加密位1進(jìn)行編程,則在復(fù)位時,的狀態(tài)在內(nèi)部被鎖存,執(zhí)行內(nèi)部程序應(yīng)接VCC。
XTAL1:振蕩器反向放大器輸入端和內(nèi)部時鐘發(fā)生器的輸入端。
XTAL2:振蕩器反相放大器輸出端。
圖2 DS18B20方框圖
圖3 DS18B20電路原理圖
2.溫度采集模塊DS18B20電路設(shè)計
溫度芯片DS18B20具有3引腳TO-92小體積封裝形式。測溫分辨率可達(dá)0.0625℃,被測溫度用符號擴展的16位數(shù)字量方式串行輸出。測量溫度范圍為 -55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。由于每一個DS18B20都有唯一系列號,因此多個DS18B20可以存在同一條單總線上。這允許多個不同地方放置溫度靈敏器件。DS18B20的內(nèi)部結(jié)構(gòu)如圖2所示,電路原理圖如圖3所示。
DS18B20有4個主要的數(shù)據(jù)部件:
a.64位激光ROM,64位激光ROM從高位到低位依次為8位CRC、48位序列號和8位家族代碼(28H)組成。
b.溫度靈敏元件。
c.非易失性溫度報警觸發(fā)器TH和TL,可通過軟件寫入用戶報警上下限值。
d.配置寄存器,配置寄存器為高速暫存存儲器中的第五個字節(jié),其中R0、R1為溫度計分辨率設(shè)置位,其對應(yīng)四種分辨率如表2所列,出廠時R0=1,R1=1(即12位分辨率),用戶可根據(jù)需要改寫配置寄存器以獲得合適的分辨率。
表2 分辨率關(guān)系表
R0 R1 分辨率/bit 最大轉(zhuǎn)換時間/us
0 0 9 93.75
0 1 10 187.5
1 0 11 375
1 1 12 750
高速暫存存儲器由9個字節(jié)組成,其分配如表3所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。對應(yīng)的溫度計算:當(dāng)符號位S=0時,直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時,先將補碼變?yōu)樵a,再計算十進(jìn)制值。
表3 DS18B20存儲器
溫度LSB 溫度MSB TH TL 保留 保留 計數(shù)寄存器 計數(shù)寄存器 8位CRC
本設(shè)計采用的是單節(jié)點溫度測試,對硬件結(jié)構(gòu)簡單的單線數(shù)字溫度傳感器DS18B20進(jìn)行操作,需要用較為復(fù)雜的程序完成。編寫程序時必須嚴(yán)格按芯片數(shù)據(jù)手冊提供的有關(guān)操作順序進(jìn)行,讀、寫時間片程序要嚴(yán)格按要求編寫。尤其在使用DS18B20的高測溫分辨力時,對時序及電氣特性參數(shù)要求更高。
參考文獻(xiàn)
[1]童詩白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2005.
[2]張毅剛,彭喜元,姜守達(dá),喬立言.新編MCS-51單片機應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2006.
[3]樊明龍,任麗靜.單片機原理與應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2005.
[4]余永權(quán).單片機原理及應(yīng)用[M].北京:電子工業(yè)出版社,1998.
[5]余小平,奚大順.電子系統(tǒng)設(shè)計——基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2010.
[6]黃正謹(jǐn).綜合電子設(shè)計與實踐[M].南京:東南大學(xué)出版社,2002.
作者簡介:
李新建(1961—),男,山東東營人,工程師,現(xiàn)供職于山東省東營市廣播電視監(jiān)測中心,從事廣播電視監(jiān)測技術(shù)方面的工作。
亓振軍(1979—),男,山東濟(jì)南人,工程師,山東省廣播電視監(jiān)測中心科長。