1 溫度測量部分方案
DS18B20是DALLAS公司生產的一線式數字溫度傳感器,它具有微型化、低功耗、高性能抗干擾能力、強易配處理器等優點,特別適合用于構成多點溫度測控系統,可直接將溫度轉化成串行數字信號(按9位二進制數字)給單片機處理,且在同一總線上可以掛接多個傳感器芯片,它具有三引腳TO-92小體積封裝形式,溫度測量范圍-55~+125℃,可編程為9~12位A/D轉換精度,測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數字量方式串行輸出,其工作電源既可在遠端引入,業可采用寄生電源方式產生,多個DS18B20可以并聯到三根或者兩根線上,CPU只需一根端口線就能與多個DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。從而可以看出DS18B20可以非常方便的被用于遠距離多點溫度檢測系統。
綜上,在本系統中我采用溫度芯片DS18B20測量溫度。該芯片的物理化學性很穩定,它能用做工業測溫元件,且此元件線形較好。在0—100攝氏度時,最大線形偏差小于1攝氏度。該芯片直接向單片機傳輸數字信號,便于單片機處理及控制。
2 主控制部分方案
AT89S51 是一個低功耗,高性能CMOS 8位單片機,片內含8k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。
此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統可繼續工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。
由于系統控制方案簡單 ,數據量也不大 ,考慮到電路的簡單和成本等因素 ,因此在本設計中選用 A TMEL 公司的 A T89S51單片機作為主控芯片。主控模塊采用單片機最小系統是由于 A T89S51芯片內含有4 kB的 E2PROM ,無需外擴存儲器 ,電路簡單可靠 ,其時鐘頻率為 0~24 MHz ,并且價格低廉 ,批量價在 10元以內。
其主要功能特性:
兼容MCS-51指令系統 4k可反復擦寫(>1000次)ISP Flash ROM
32個雙向I/O口 4.5-5.5V工作電壓
2個16位可編程定時/計數器 時鐘頻率0-33MHz
全雙工UART串行中斷口線 128x8 bit內部RAM
2個外部中斷源 低功耗空閑和省電模式
中斷喚醒省電模式 3級加密位
看門狗(WDT)電路 軟件設置空閑和省電功能
靈活的ISP字節和分頁編程 雙數據寄存器指針
可以看出AT89S51提供以下標準功能:4K字節Flash閃速存儲器,128字節內部RAM,32個I/O口線,看門狗(WDT),兩個數據指針,兩個16位定時器/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘。同時, AT89S51可降至0Hz的靜態邏輯操作,并支持兩種軟件可選的節電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統繼續工作。掉電方式何在RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直接到一個硬件復位。
AT89S51引角功能說明
Vcc:電源電壓
GND:地
P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復用口,作為輸出口用時,每位能驅動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端口。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。
P1口:P1是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號校驗期間,P1接收低8位地址。表4-1為P1口第二功能。
P2口:P2是一個帶有內部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。在訪問8位地址的外部數據存儲器(如執行:MOVX @Ri 指令)時,P2口線上的內(也即特殊功能寄存器,在整個訪問期間不改變。Flash 編程或校驗時,P2也接收高位地址和其它控制信號。)
P3口:P3口是一組帶有內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內部上拉電阻拉高并可作為輸入端口。作輸入端口時,被外部拉低的P3口將用上拉電阻輸出電流I。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,P3口的第二功能如下表4-2。
RST:復位輸入。當振蕩工作時,RST引腳出現兩個機器周期上高電平將使單片機復位。WDT益出將使該引腳輸出高電平,設置SFR AUXR 的 DISRTO 位(地址8EH)可打開或關閉該功能。DISRTO 位缺省為RESET輸出高電平打開狀態。
ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出的正脈沖信號,因此它可對外輸出時鐘或用于定時目地,要注意的是:第當訪問外部數據存儲器時將跳過一個ALE脈沖。如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位禁位后,只有一條MOVX 和MOVC指令ALE才會被激活。此外,該引腳伎被微弱拉高,單片機執行外部程序時,應設置ALE無效。
PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89S51由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。當訪問外部數據存儲器,高有兩次有效的PSEN信號。
EA/VPP:外部訪問允許。欲使CPU公訪問外部程序存儲器(地址0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。如EA端為高電平(接Vcc端),CPU則執行內部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程電壓Vpp。
XTAL1:振蕩器反相放大器及內部時鐘發生器的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
AT89S51單片機內部構造及功能:
特殊功能寄存器:特殊功能寄存器的片內空間分存如下圖3-2所示。這些地址并沒有全部占用,沒有占用的地址不可使用,讀這些地址將得到一個隨意的數值。而寫這些地址單元將不能得到預期的結果。
中斷寄存器:各中斷允許控制位于IE寄存器,5個中斷源的中斷優先級控制位于IP寄存器。圖4-2為AUXR輔助寄存器。
雙時鐘指針寄存器:為方便地訪問內部和外部數據存儲器,提供了兩個16位數據指針寄存儲器:PD0位于SFR區塊中的地址82H、83H和DP1位于地址84H、85H,當SFR中的位DPS=0時選擇DP0,而DPS=1時選擇DP1。在使用前初始化DPS。
電源空閑標志:電源空閑標志(POF)在特殊功能寄存儲器SFR中PCON的第4位(PCON.4),電源打開時POF置“1”,它可由軟件設置睡眠狀態并不為復位所影響。
存儲器結構:MCS-51單片機內核采用程序存儲器和數據存儲器空間分開的結構,均具有64KB外部程序和數據的尋址空間。
程序存儲器:如果EA引腳接地(GND),全部程序均執行外部存儲器。在AT89S51,假如接至Vcc(電源+),程序首先執行從地址0000H-0FFFH(4KB)內部程序存儲器,再執行地址為1000H-FFFFH(60KB)的外部程序存儲器。
數據存儲器:在AT89S51的具有128字節的內部RAM,這128字節可利用直接或間接尋址方式訪問,堆棧操作可利用間接尋址方式進行,128字節均可設置為堆棧區空間。
看門狗定時器(WDT):WDT是為了解決CPU程序運行時可能進入混亂或死循環而設置,它由一個14bit計數器和看狗復位SFR(WDTRST)構成。外部復位時,WDT默認為關閉狀態,要打開WDT,必按順序將01H和0E1H寫到WDTRST寄存器,當啟動了WDT,它會隨晶體振蕩器在每個機器周期計數,除硬件復位或WDT溢出復位外沒有其它方法關閉WDT,當WDT溢出,將使RST引腳輸出高電平的復位脈沖。引腳圖詳見圖4-4