DZ250多點溫度檢測控制儀,DZ250,多點,溫度,檢測,控制
長春工業(yè)大學畢業(yè)設計論文
第一章 概述
本設計題目為“多點溫度檢測控制儀”,是針對室溫設計的系統(tǒng),能對一個需要恒溫或者溫度變化范圍不是很大的環(huán)境進行多點溫度檢測和控制。該系統(tǒng)可以檢測多個點的溫度,并且進行控制和顯示。
1.本系統(tǒng)的主要性能:
(1) 利用可逆電機構成位式恒速溫度調節(jié)系統(tǒng);
(2) 一臺儀表可以同時檢測和控制多個點的溫度;
(3) 通過鍵功能,可以顯示各個點的溫度值以及給定值;并且使用數(shù)字鍵能修改溫度給定值;
2.主要技術指標:
(1) 溫度控制范圍:20℃~25℃;
(2) 控制精度: ±0.5℃;
(3) 電源電壓: 220V,50Hz;
第二章 系統(tǒng)方案論證與確定
2.1、傳感器的選擇:?
(一)采用DS1820作為前端溫度傳感器
DS1820是美國DALLAS半導體公司生產的可組網數(shù)字式溫度傳感器,在其內部使用了在板(ON-B0ARD)專利技術。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。與其它溫度傳感器相比,DS1820具有以下特性:
(1)獨特的單線接口方式,DS1820在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS1820的雙向通訊
(2)DS1820支持多點組網功能,多個DS1820可以并聯(lián)在唯一的三線上,實現(xiàn)多點測溫。
(3)DS1820在使用中不需要任何外圍元件。
(4)溫范圍-55℃~+125℃,固有測溫分辨率0.5℃。
(5)測量結果以9位數(shù)字量方式串行傳送。
?在傳統(tǒng)的模擬信號遠距離溫度測量系統(tǒng)中,需要很好的解決引線誤差補償問題、多點測量切換誤差問題和放大電路零點漂移誤差問題等技術問題,才能夠達到較高的測量精度。為了克服上面提到的三個問題,采用了新型數(shù)字溫度傳感器DS1820,在對其測溫原理進行詳細分析的基礎上,提出了提高DS1820測量精度的方法,使DS1820的測量精度由0.5℃提高到0.1℃以上,取得了良好的測溫效果。但是由于本系統(tǒng)測量的溫度范圍比較小,由于精度和量程的比值太大,所以不能很好的實現(xiàn)精確測量。盡管可以用軟件計算提高精度,但研發(fā)時間也會比較長。
(二)采用DS18B20作為前端溫度傳感器
DS18B20是美國DALLAS半導體公司繼DS1820之后最新推出的一種改進型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和750 ms內完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。
(1)獨特的單線接口方式:DS18B20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。
??? (2)在使用中不需要任何外圍元件。
??? (3)可用數(shù)據線供電,電壓范圍:+3.0~+5.5 V。
??? (4)測溫范圍:-55~+125 ℃。固有測溫分辨率為0.5 ℃。
??? (5)通過編程可實現(xiàn)9~12位的數(shù)字讀數(shù)方式。
??? (6)用戶可自設定非易失性的報警上下限值。
??? (7)支持多點組網功能,多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫。
??? (8)負壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。
因而使用DS18B20可使系統(tǒng)結構更趨簡單,可靠性更高。他在測溫精度、轉換時間、傳輸距離、分辨率等方面較DS1820有了很大的改進,給用戶帶來了更方便的使用和更令人滿意的效果。
(三)傳統(tǒng)的模擬式傳感器
傳統(tǒng)的模擬傳感器,例如AD590等等很多類型的傳感器都需要大量的硬件,例如A/D、變送電路、放大器等等,不僅提高了成本,還會造成系統(tǒng)的不穩(wěn)定,增加干擾源。所以不是好的選擇。
綜合上面的論述DS18B20是比較合適的選擇。
2.2、控制算法的選擇:
本系統(tǒng)的調節(jié)裝置是采用三位調節(jié)器,起輸出有三種狀態(tài),當溫度超過上限時,啟動正驅動器,電機正轉;當溫度低于下限時,啟動逆驅動器,電機反轉;當溫度在上、下限之間時,兩個驅動器都不工作,電機停止。以此來控制加熱和制冷裝置。這種調節(jié)系統(tǒng)屬于斷續(xù)作用的調節(jié)器。
連續(xù)作用的系統(tǒng)屬于一個閉環(huán)反饋系統(tǒng),需要控制算法來穩(wěn)定給定值與采樣值,利用兩者的偏差使控制對象保持在控制范圍內,而本系統(tǒng)是斷續(xù)作用的,只有三種狀態(tài),因此可直接進行控制,不需要采用控制算法。
2.3、單片機的選擇:
在自動控制系統(tǒng)中,對單片機的要求主要有以下幾方面:
(1) 在滿足系統(tǒng)性能的要求的同時,價格要盡量低;
(2) 對外圍設備的要求盡量少,減少硬件開支;
(3) 考慮它的應用情況和兼容性,有利于硬件的更換;
從以上幾個方面考慮,采用89C51作為該系統(tǒng)的核心元件。
第三章 系統(tǒng)硬件設計
一個單片機應用系統(tǒng)的硬件設計主要包括兩部分內容:一是系統(tǒng)擴展,即單片機內部的功能單元,如ROM、RAM、I/O口、定時/計數(shù)器、中斷系統(tǒng)等容易不滿足應用系統(tǒng)的要求時,必須在片外擴展,選擇適當?shù)男酒O計相應的電路。二是系統(tǒng)配置,即按照系統(tǒng)的功能要求配置外圍設備,如鍵盤、顯示器、打印機、A/D、D/A轉換器等,要設計和市的接口電路。
系統(tǒng)硬件框圖如圖.3.1:
傳 感 器
執(zhí)行機構
復位電路
顯 示
段譯碼驅動
位譯碼驅動
地址鎖存器
鍵盤/顯示接口
數(shù)據存儲器
220V50Hz
電源
電磁干擾濾波器
+5V 穩(wěn)壓電源
鍵 盤
看門狗電 路
CPU
89C51
圖.3.1 系統(tǒng)硬件結構圖
系統(tǒng)的擴展和配置設計應遵循以下原則:
(1) 盡量選擇典型電路,并符合單片機的常規(guī)用法;
(2) 系統(tǒng)的擴展與外圍設備配置的水平應當充分滿足應用系統(tǒng)的功能要求,并留有適當?shù)挠嗟兀员氵M行二次開發(fā);
(3) 硬件結構應結合應用軟件方案一起考慮??紤]的原則是:軟件能實現(xiàn)的盡量用軟件實現(xiàn),以簡化硬件結構,但必須注意的是,由軟件實現(xiàn)硬件功能,其相應時間要比直接用硬件實現(xiàn)的時間長,占用CPU時間,因此,選擇硬件是要考慮這些因素;
(4) 整個系統(tǒng)中相關的器件要盡可能做到性能匹配;
(5) 可靠性及抗干擾設計時硬件系統(tǒng)設計部可缺少的一部分,它包括芯片、器件選擇,光耦濾波,印刷電路板布線,通道隔離等;
(6) 單片機接口電路較多時,必須考慮其驅動能力,驅動能力不足時,系統(tǒng)工作不可靠,解決的辦法是增加其驅動能力,增設驅動器,或者減少驅動功能,降低總線負載;
3.1 89C51芯片簡介
89C51是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機。片內含4K bytes的可反復擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數(shù)據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51 指令系統(tǒng),片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。
主要性能參數(shù):
l 與MCS-51產品指令系統(tǒng)兼容
l 4K字節(jié)可重擦寫Flash閃
l 1000次擦寫中期
l 全靜態(tài)操作:0Hz——24MHz
l 三級加密程序存儲器
l 128*8字節(jié)內部RAM
l 32個可編程I/O口線
l 2個16位定時/計數(shù)器
l 6個中斷源
l 可編程串行UART通道
圖 .3.2 89C51引腳功能
3.1.1引腳功能介紹
89C 51單片機采用40引腳雙列直插封裝方式。如圖.3.2。其引腳功能可分為三部分:
(1) I/O口線:P0,P1,P2,P3共四個八位口。
l P0口——8位準雙向口。在單片機外擴存儲器或I/O接口時,作為地址總線低8位A7~A0和數(shù)據總線D7~D0。
l P1口——8位準雙向并行口。
l P2口——8位準雙向口。作為地址總線高8位A15~A8,與P0口一起構成16位地址總線。
l P3口——8位準雙向口。但每條引腳都有第二功能。見引腳圖3.1。對于51系列單片機來說,P3口大多作為第二功能使用。
(2) 控制口線共有4根。
l ALE/PROG——外部地址低8位鎖存有效信號輸出線。在CPU訪問片外存儲器時用來鎖存P0口輸出的低8位地址,它是與地址鎖存器配合工作的一格控制信號。ALE在每個機器周期輸出兩個正脈沖,是振蕩器頻率的1/6,可作為其它芯片的外部時鐘。PROG是對片內EPROM編程脈沖輸入端。
l PSEN——片外ROM讀選通信號輸出端。
l EA/Vpp——片外ROM選擇信號輸入端。EA=0時,CPU從片外ROM讀取指令;EA=1時,CPU從片內ROM讀取指令。Vpp是對于內有EPROM來說的為編程電源,應接+21V。
l RST/Vpd——上電復位信號輸入端。當它保持兩個機器周期高電平是可以完成復位操作。Vpd為備用電源輸入端,當主電源發(fā)生故障時,Vpd將為ROM提供備用電源,保證信息不丟失。
(3)電源及時鐘
l Vcc——芯片電源電壓,+5伏。
l Vss——電源地線,工作時接地。
l XTAL1,XTAL2——振蕩器反相放大器的及內部時鐘發(fā)生器的輸入、輸出端。
內部振蕩電路 外部震蕩電路
圖.3.3
3.1.2 89C51片內結構
如圖.3.4所示。
圖. 3.4 89C51內部結構框圖
3.1.3 總線結構
如圖.3.5
INT0
INT1
T0
T1
RST
89C51
PSEH
RD
WR
A15~A8
地址鎖存
A7~A0
數(shù)據總線
D7~D0
控制總線
地址總線
圖.3.5 89C51總線結構圖
89C51單片機的管腳除了電源、復位、時鐘接入、用戶I/O、部分P3口外,其余管腳都是為了擴展而設置的,這些管腳構成了三總線形式:
(1)16位地址總線:其尋址范圍是216 =64Kb,地址為0000H~FFFFH。低8位地址A7~A0。由P0口提供,高8位地址A15~A8由P2口提供。由于P0口還要作數(shù)據線使用,所以P0口線輸出的低8位地址必須先用地址鎖存器鎖存,以防丟失。再進行數(shù)據線D7~D0的操作,利用鎖存器輸出的地址代替原P0口輸出的地址。P2口只作為地址線的高8位使用,故不需要外加鎖存器。
(2)8位數(shù)據總線:單片機片外數(shù)據總線D7~D0由P0口提供,用于CPU與外部交換數(shù)據、指令、或命令等。應該連接到對外擴展的ROM、RAM和I/O口等多個外圍芯片的數(shù)據線上。
(3)控制總線:包括片外系統(tǒng)擴展用控制線和片外信號對對單片機的控制線兩部分。
系統(tǒng)擴展用控制線有WR、RD、PSEN。ALE和EA。片外對單片機的控制線有INT0、INT1、T0、T1和RST。控制線一旦有效,單片機相應部件必須做出相應的操作。
3.1.4 系統(tǒng)時鐘
89C51單片機的時鐘產生方法有兩種,一是內部方式,二是外部方式。本系統(tǒng)采用內部方式見圖3.2。外接石英晶體(或陶瓷諧振器)及電容C1、C2接在放大器的反饋回路中構成并聯(lián)振蕩電路,對外電容C1、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF+/-10pF,而如使用陶瓷諧振器建議選擇40pF+/-10F。
3.2 89C51外擴數(shù)據存儲器6116
MCS-51系列單片機內部都有128個字節(jié)RAM。但是在實時數(shù)據存儲器采集系統(tǒng)中,僅靠片內的是不夠的。需外擴RAM。常用的數(shù)據存儲器有靜態(tài)的和動態(tài)的兩種。RAM的擴展性能有兩種:
(1) RAM芯片與其擴展I/O口芯片實行統(tǒng)一編址。
(2) 外部RAM與EPRAOM地址完全重疊,故兩者片外地址于數(shù)據總線可以并聯(lián)使用,用不同控制線和指令區(qū)分。如外擴RAM用MOVX指令生成讀和寫的有效信號。
靜態(tài)RAM 6116是2K×8位,24條引腳,采用+5伏供電,引腳如圖.3.6所示。
圖.3.6 6116引腳功能
靜態(tài)數(shù)據存儲器的管腳功能如表-1。89C51與RAM連接時需要加入地址鎖存器74LS373,原因是P0口是三態(tài)雙向口,統(tǒng)稱數(shù)據總線口,因為只有該口能直接用于對外部存儲器的讀寫操作。P0口還用以輸出,故應在外部加鎖存器,將地址鎖存,以防丟失。再進行D7~D0數(shù)據操作,利用鎖存器地址代替P0口輸出地址。
表-1 6116引腳功能
A10 ~A0
11地址線
IO7 ~IO0
8位雙向數(shù)據線
CE
片選線
WE
寫允許線
OE
讀允許線
3.3芯片74LS373介紹
地址鎖存器可使用三態(tài)緩沖輸出的入口存儲器74LS373,它的引腳如圖.3.7所示:
OE Vcc
Q1 Q8
D1 D8
D2 D7
Q2 Q7
Q3 Q6
D3 D6
D4 5Q
Q4 D5
GND G
1 20
10 11
圖.3.7 74LS373引腳功能
當三態(tài)門的使能信號線OE為低電平時,三態(tài)門處于導通狀態(tài),允許Q端輸出,當OE為高電平時,輸出三態(tài)門斷開,輸出端對外電路呈高阻狀態(tài)。因此74LS373用作地址鎖存器時,首先應使三態(tài)門的使能端OE為低電平,這時當外部輸入端為高電平時,鎖存器輸出(Q1~Q8)狀態(tài)和輸入端(D1~D8)狀態(tài)相同。當G端從高電平返回到低電平(下降沿)時,輸入端(D1~D8)的數(shù)據鎖存入Q1~Q8中。
3.4 8155芯片介紹
3.4.1 8155簡介:
芯片8155是Intel公司開發(fā)的具有以下特點的可編程并行I/O擴展口。
(1) 有兩個可編程8位并行口A、B和6位并行口C。
(2) 256字節(jié)靜態(tài)RAM。
(3) 一個14位減法定時/計數(shù)器。
一片8155在外擴三個I/O口的同時,還為用戶提供了256個字節(jié)的外部RAM和定時/計數(shù)器,不需要一般芯片擴展所要求的地址鎖存器,可以直接與單片機接口。
3.4.2 8155引腳功能
8155是40引腳的芯片,如圖.3.8所示。
圖.3.8 8155引腳功能內部結構
l CE——片選端,低電平有效;
l RD、WR——RD是8155的讀/寫命令輸入線,WR為寫命令線,當RD=0和WR=1時,8155處于讀出數(shù)據狀態(tài);當RD=1和WR=0時,8155處于寫入數(shù)據狀態(tài);
l AD0~AD7——三態(tài)地址數(shù)據線,即是地址線,又是數(shù)據線,分時進行工作;
l ALE——地址鎖存允許信號;
l IO/M——存儲器及I/O選擇線,當IO/M=1時AD7 ~AD0線上地址為I/O接口地址。當IO/M=0時,AD7 ~AD0線上的地址為鎖存器RAM的地址,其范圍是00~FFH;
l PA7~0——通用I/O線,用于傳送A口上的外設數(shù)據,數(shù)據的傳送方向由8155命令字決定;
l PB7~0——通用I/O線,用于傳送B口上的外設數(shù)據,數(shù)據的傳送方向由8155命令字決定;
l PC5~0——為I/O數(shù)據/控制線,共有6條,在通用的I/O方式下,用作傳送I/O數(shù)據;在選通I/O方式下,用作傳送命令/狀態(tài)信息; 見表-2;
l TIMERIN——是計數(shù)器輸入線,其脈沖上升沿用于對8155片內14位計數(shù)器減1;
l TIMEROUT——是計數(shù)輸出線,當14位計數(shù)器從計滿回零時就可以在該線上輸出脈沖或方波,輸出信號的形狀與計數(shù)器工作方式有關;
表-2 C口在兩種I/O工作方式下各位定義
C口
通用I/O方式
選通I/O方式
ALT1
ALT2
ALT3
ALT4
PC0
輸入
輸出
A口中斷
A口中斷
PC1
輸入
輸出
A口緩沖器滿
A口緩沖器滿
PC2
輸入
輸出
A口選通
A口選通
PC3
輸入
輸出
輸出
B口中斷
PC4
輸入
輸出
輸出
B口緩沖器滿
PC5
輸入
輸出
輸出
B口選通
3.4.3 8155的工作方式
(1)存儲器方式: 8155的存儲器方式用于對片內256字節(jié)RAM單元進行讀寫,若IO/M=0和CE=0,則8155立即處于本工作方式。此時,CPU可以通過AD7~AD0上的地址選擇RAM存儲器上的任一單元讀寫。
(2)I/O方式:8155的I/O方式又可分為基本I/O和選通I/O兩種工作方式。在I/O方式下,8155可以選擇片內任一寄存器讀寫,斷口地址由A2、A1、A0三位決定。
①基本I/O方式: 在本方式下,A、B、C三口作用輸入/輸出。其中,A、B兩口的輸入/輸出由D1、D0決定,C口各位由D3、D2狀態(tài)決定。
②選通I/O方式: 由命令字中的D3、D2狀態(tài)設定,A口和B口都可以獨立工作與這種方式。此時,A口和B口用作數(shù)據口,C口用作A口和B口的聯(lián)絡控制。C口的各位聯(lián)絡線的定義是在設計8155時規(guī)定的,其分配和命名如表.2。選通I/O方式又可以分為選通輸入和選通輸出兩種方式:
a.選通輸入:A口和B口都可設定為本工作方式。若命令字中的D0=0和D3、D2=10B(或11B),則A設定在本工作方式;若命令字中D1=0和D3、D2=11B,則B口設定在本工作方式。
b.選通輸出:A口和B口都可設定為本工作方式。若命令字中的D0=1和D3、D2=10B(或11B),則A設定在本工作方式;若命令字中D1=1和D3、D2=11B,則B口設定在本工作方式。
3.4.4 8155命令寄存器格式與功能
在8155的控制邏輯部件中,設置有一個控制命令寄存器。8155工作方式由CPU寫入命令寄存器中的命令字來確定,命令寄存器只能寫入不能讀出。命令寄存器的4位用來設置A口、B口和C口的工作方式。D4、D5位用來確定A口、B口以選通輸入輸出方式工作時是否允許中斷請求。D6、D7位用來設定定時器/計數(shù)器的操作。如圖.3.9。
圖.3.9 8155命令寄存器格式與功能
D0 位(PA):定義PA0~7 數(shù)據信息傳送的方向。
“0” —輸入方式;
“1” —輸出方式。
D1 位(PB):定義PB0~7 數(shù)據信息傳送方向。
“0” —輸入方式;
“1” —輸出方式。
D3,D2 位(PCII,PCI):定義PC0~5 的工作方式。
“00”—方式1;
“11”—方式2;
“01”—方式3;
“10”—方式4。
方式1~4 時,PC0~5,的各位功能見表-2。
D4 位(IEA):在端口C 對PA0~7,起控制作用的工作方式時,IEA 位用來定義允許端口A的中斷。
“0”—禁止;
“1” —允許。
D5 位(IEB)。當端口C 工作在對PB0~7 起控制作用的工作方式時,IEB 位用來定義允許端口B 的中斷。
“0” —禁止;
“1” —允許。
D7,D6 位(TM2,TM1)。用來定義計時器/計數(shù)器工作的命令。有四種情況,詳細介紹見表-3。
表-3 定時計數(shù)器工作方式定義表
TM2
TM1
方式
0
0
不影響定時器工作
0
1
若計數(shù)器未啟動,則無操作;若計數(shù)器運行,則停止計數(shù);
1
0
達到當前計數(shù)值后,立即停止;若未啟動定時器則無操作
1
1
裝入方式和計數(shù)值后,立即啟動定時器,若定時器已運行,則達到當前計數(shù)值后,按新的方式和長度予以啟動;
3.4.5 8155的狀態(tài)寄存器的格式和功能
另外,8155中還設置了一個狀態(tài)標志寄存器,用來存入A口和B口的狀態(tài)標志。狀態(tài)標志寄存器的地址與命令寄存器的地址相同,CPU只能對其讀出,不能寫入。狀態(tài)寄存器的格式如圖.3-8所示。CPU可以直接進行查詢。下面僅對狀態(tài)字中的D6位作以說明:D6為定時器中斷狀態(tài)標志位。若定時器正在計數(shù)或開始計數(shù)前,則D6位等于0;若定時器計數(shù)長度已經滿,則D6位等于1。硬件復位或對它讀出后又恢復為0。如圖.3.10所示:
3.4.6 8155 的端口電路
8155 器件的I/O 部件由五個寄存器組成。其中兩個是命令/狀態(tài)寄存器(C/S)地址為xxxx000。如前所述,當寫操作期間選中C/S寄存器時,就把一個命令(按圖圖.3.10的定義)寫入命令寄存器中,并且命令寄存器的狀態(tài)信息不能通過其引腳來讀取;當讀操作期間選中C/S 寄存器時,將I/O端口和定時器的狀態(tài)信息(按圖.3.10 格式)讀出。
圖.3.10 8155的狀態(tài)寄存器的格式和功能
另外兩個寄存器為PA 和PB。根據C/S 寄存器的內容,分別對PA0~7和PB0~7編程,使相應的I/O電路處于基本的輸入或輸出方式,或選通方式。
最后一個寄存器是PC,該寄存器僅6位,可以對I/O端口電路PC0~5進行編程,或對命令寄存器命令字的D2,D3位(PCI 和PCII)行適當編程,使其成PA和PB的控制信號,詳見表-2。
3.4.7 8155 的定時器
8155 的定時器是一個14 位的減法計數(shù)器,他能對輸入定時器的脈沖進行計數(shù),在達到最后計數(shù)值時,有一個矩形波或脈沖輸出。
其格式定義如下:
為了對定時器進行程序控制,首先裝人計數(shù)長度。由于計數(shù)長度為14位(第0~13位),因每次裝入的長度只能是8位,所以必須分兩次裝入。裝入計數(shù)長度寄存器的值為2H~3FFFH。而第14~l5位用來規(guī)定定時器的輸出方式。
格式中最高兩位(M2,M1)定義的定時器方式如表-4所示。
應該注意,硬件復位信號的到達,會使8155計數(shù)器停止計數(shù)、直至由WS寄存器發(fā)出啟動定時器命令為止。
3.4.8 89C51和8155的接口方法和應用
89C51 單片機可以和8155 直接連接,不需要任何外加電路,對系統(tǒng)增加256個字節(jié)的RAM、22位I/O 線及一個計數(shù)器。8155 中RAM 的地址,因P2.0即A8=0,P2.7=0,所以可選為0111,1110,0000,0000B(7E00H)~0111,1110,1111,1111B(7EFFH);I/O 口地址:7F00H~7F05H。
若A 口定義為基本輸入方式,B 口定義為基本輸出方式,定時器作為方波發(fā)生器,對89C51的晶振頻率進行二十四分頻(但需注意8155 的最高計數(shù)頻率約4MHz)。
表-4 定時器方式定義表
M2
M1
方式
波形
0
0
0
單方波
0
1
1
連續(xù)方波
1
0
2
單脈沖
1
1
3
連續(xù)脈沖
3.5 8279可編程鍵盤/顯示器通用芯片
Intel8279是一種通用可編程鍵盤/顯示器接口芯片,它能鍵盤輸入和顯示控制兩種功能。鍵盤部分提供一種掃描工作方式,能對64個按鍵鍵盤不斷掃描,自動消抖,自動識別出按下的鍵并給出編碼,能對雙鍵或多鍵同時按下實行保護。顯示部分為發(fā)光二極管及其他顯示器提供了按掃描方式工作的顯示接口,可顯示多達16位的字符或數(shù)字。
由于它本身可提供掃描信號,因而可代替微處理器完成鍵盤和顯示器的控制,從而減輕了主機的負擔。其主要特性如下:
(1)與MCS—85,MCS—48,MCS—51 等微處理器兼容;
(2)能同時執(zhí)行鍵盤與顯示器操作;
(3)掃描式鍵盤工作方式;
(4)有8 個鍵盤FIFO(先入先出)存儲器;
(5)帶觸點去抖動的二鍵鎖定或N 鍵巡回功能;
(6)兩個8 位或16 位的數(shù)字顯示器;
(7)可左/右輸入的l6 字節(jié)顯示用RAM;
(8)由鍵盤輸入產生中斷信號;
(9)掃描式傳感器工作方式;
(10)用選通方式送入輸入信號;
(11)單個16 字符顯示器;
(12)工作方式可由CPU 編程;
(13)可編程掃描定時;
3.5.1 8279 的結構
8279 的邏輯框圖如圖.3.11 所示。8279 主要由下列部件組成:
圖.3.11 8279邏輯框圖
1. I/O 控制和數(shù)據緩沖器
雙向的三態(tài)數(shù)據緩沖器將內部總線和外部總線DB0~7 相連,用于傳送CPU 和8279 之間的命令、數(shù)據和狀態(tài)。
2. 控制邏輯
控制與定時寄存器用以寄存鍵盤及顯示器的工作方式,鎖存操作命令,通過譯碼產生相應的控制信號,使8279的各個部件完成一定的控制功能。
定時控制含有一些計數(shù)器,其中有一個可編程的5位計數(shù)器,對外部輸入時鐘信號進行分頻,產生100kHz的內部定時信號。外部時鐘輸入信號周期不小于500ns。
3. 掃描計數(shù)器
掃描計數(shù)器有兩種輸出方式。一種為外部譯碼方式,計數(shù)器以二進制方式計數(shù)。4 位計數(shù)狀態(tài)從掃描線SL0~SL3 輸出,經外部譯碼器譯碼出l6 位掃描線;另一種是掃描計數(shù)器的低.二位譯碼后從SL0~SL2 輸出。
4. 鍵輸入控制
這個部件完成對鍵盤的自動掃描,鎖存RL0~RL7 的鍵輸入信息,搜索閉合鍵,去除鍵的抖動,并將鍵輸入數(shù)據寫入內部先進先出(FIFO)的RAM 存儲器。
5. FIFO/傳感器RAM 和顯示RAM,
8279 具有8 個先進先出的鍵輸入緩沖器,并提供16 個字節(jié)的顯示數(shù)據緩沖器。
CPU 將段數(shù)據寫入顯示緩沖器,8279 自動對顯示器掃描,將其內部顯示緩沖器十的數(shù)據在顯示器上顯示出來。
3.5.2 8279 的引腳與功能
8279 具有40 個引腳,采用雙列直插式封裝,引腳分布圖.3.12所示,
圖.3.12 8279引腳與功能
其功能定義如下:
l DB0~7 是雙向外部數(shù)據總線。用于傳送8279 與CPU 之間的命令、數(shù)據和狀態(tài)。可直接與MCS—51 系列芯片連接。
l CS為選片信號。當CS為低電平時,CPU 才選中8279 芯片,并對其進行操作。
l A0 區(qū)分信息的特性位。 當A0 為1 時,CPU 寫入8279 的信息為命令,CPU 從8279 讀出的信息為8279 的狀態(tài)。當A0 為0 時,I/O 信息都為數(shù)據。
l RD,WR是讀、寫選通信號,低電平有效。
l IRQ 為中斷請求輸出線。高電平有效。 在鍵盤工作方式下,當FIFO/傳感器RAM 中有數(shù)據時,此中斷線變高電平。在FIFO/傳感器RAM 每次讀出時,中斷線就下降為低電平,若在RAM 中還有信息,則此線又重新變?yōu)楦唠娖?。在傳感器工作方式中,每當傳感器信號變化時,中斷線就變?yōu)楦唠娖健?
l RL0~RL7 為反饋輸入線,作為鍵輸入線,由內部拉高電阻拉成高電平,也可由鍵盤上按鍵拉成低電平。
l SL0~3 為掃描輸出線,用于對鍵盤顯示器掃描。
l OUTB0~3,OUTA0~3 為顯示段數(shù)據輸出線,可分別作為兩個半字節(jié)輸出,也可作為8位段數(shù)據輸出口,此時OUTB0為最低位,OUTA3為最高位。
l BD為消隱輸出線,低電平有效,當顯示器切換時或使用顯示消隱 命令時,將顯示消隱。
l RESET為復位輸入線,高電平有效。當RESET輸入端出現(xiàn)高電平時,8279被復位,復位后8279被置于下列方式:
A. 16個8位字符顯示為左端輸入。
B. 編碼的掃描鍵為兩鍵連鎖、與此同時,程序時鐘前置分頻器被置為31。
l SHIFT,CNTL/STB為控制鍵輸入線,由內部拉高電阻拉成高電平,也可由外部控制按鍵拉成低電子,SHIFT 為換檔,CNTL 為控制,STB為選通。
l CLK為外時鐘輸入端,CLK信號由外部振蕩器提供。
需說明的一點是:CLK是系統(tǒng)來的外時鐘,8279靠設置定時器將外部時鐘變?yōu)閮葧r鐘。其內部基頻=外時鐘/定時器值。內部時鐘的高低控制著掃描時間和鍵盤去抖動時間的長短,若8279內部時鐘為100kHz,則掃描時間為5.1ms,去抖動時間為10.3ms。
功能說明:
由于數(shù)據輸入和顯示乃是許多微處理機外設的一個不可分離部分。系統(tǒng)設計者需要—種能夠控制這些功能,而又不致于使CPU負載過重的接口。8279為8位微處理機提供這種功能。
8279有兩個部分,鍵盤部分和顯示器部分。 鍵盤部分能夠與通常的打字機型鍵盤或隨機乒乓開關,或鈕子開關相聯(lián)接。顯示部分驅動字母數(shù)字顯示或一排指示燈。從而減輕了CPU在掃描鍵盤和刷新顯示時的負擔。
8279按設計直接連到微處理機總線,CPU能夠為8279的所有操作方式編制程序,這些方式包括:
A. 輸入方式:
a.掃描鍵盤——帶有編碼掃描線(8×8鍵鍵盤)或譯碼掃描線(4×8鍵鍵盤)。每按—下按鍵,就產生一個表示按鍵位置的6位編碼。 按鍵的位置信息以及字型變換和控制狀態(tài),都被存儲在FIFO中。所有按鍵都以兩鍵連鎖或N鍵巡回的方式自動回跳。
b.掃描傳感器陣列——帶有編碼掃描線(8×8陣列開關)或譯碼掃描線(4×8陣列開關)。
c. 按鍵的狀態(tài)(打開或閉合)被存儲在可由CPU尋址的RAM 中。
d.選通輸入——在控制線選通時,回送線上數(shù)據被傳送到FIFO中。
B. 輸出方式:
a. 8字符或16字符的多路切換式顯示器。該顯示器可被組合成雙排4位或單排8位形式(B0=D0,A3=D7)。
b. 右端輸入或左端輸入的顯示格式。
3.5.3 8279控制字和操作命令
8279的操作方式是通過CPU對8279送入命令時來實現(xiàn)編程。當數(shù)據選擇端A0 置1時,CPU對8279寫入的數(shù)據為命令字,讀出的數(shù)據為狀態(tài)字。
8279 共有八條命令。其功能及命令字定義分述如下。
1. 鍵盤/顯示器方式設置命令
其中:
D7D6D0=000是方式設置命令的特征位。DD(D4D3)為顯示器方式選擇位,其定義如下:
所謂左入口,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個向右順序排列,所謂右入口,則是顯示位置從最右一位(最低位)開始,以后逐次輸入顯示字符時,已有的顯示字符依次向左移動。
KKK(D2D1D0) 用來設定七種鍵盤、顯示工作,其定義如下:
雙鍵鎖定與N 鍵輪回是多鍵按下時的兩種不同的保護方式。雙鍵鎖定為兩鍵同時按下提供的保持方法。在消顫周期里,如果有兩鍵同時被按下,則只有其中一個鍵彈起,而另一個鍵保持在按下位置時,才被認可。N 鍵輪回為N 鍵同時按下的保護方法。當有若干鍵按下時,鍵盤掃描能夠根據發(fā)現(xiàn)它們的順序,依次將它們的狀態(tài)送入FIFO RAM 中。
編碼掃描方式時,SL0~3 輸出僅有一位為低電平。此時只能外接4位顯示器和4×8的鍵盤。
譯碼掃描方式時,SL0~3輸出呈計數(shù)分頻方式??赏饨?6位顯示器和8x8鍵盤矩陣。選通輸入方式時,RL0~7作為選通輸入口,CINTI/STB作為選通信號輸入端。這是只選用顯示器沒有鍵盤的工作方式。
2. 時鐘編程命令
8279的內部定時信號是由外部的輸入時鐘經過分頻后產生的,分頻系數(shù)由時鐘編程命令確定,時鐘編程命令格式如下:
其中:
D7D6D5=001 為時鐘編程命令的特征位,
PPPPP(D4~D0) 用來設定對外部輸入CLK 端的時鐘進行分頻的分頻數(shù)N。N取值為2~31。例如外部時鐘頻率為2MHz,PPPPP被置成10100B(N=20),則對輸入的外部時鐘20分頻,以獲得8279內部要求的100kHz的基本頻率。
3.讀FIFO/傳感器RAM命令
格式如下:
其中:
D7D6D5=010為讀FIFO/傳感器RAM命令的特征位。
AAA(D2~D0)為傳感器RAM 中的八個字節(jié)地址。
AI(D4)為自動增量特征。當AI=l時,每次讀出傳感器RAM后地址自動加1 使地址指針指向下一個存儲單元。這樣,下一個數(shù)據便從下一個地址讀出,而不必重新設置讀FIFO/傳感器RAM 命令。AI=0時僅讀出一個單元內容。
在鍵盤工作方式中,由于讀出操作嚴格按照先入先出順序,因此,不需使用這條命令。
4. 讀顯示RAM命令
在CPU 讀顯示數(shù)據(檢查)之前必須先輸出讀顯示緩沖器RAM的命令,命令格式如下:
其中:
D7D6D5=011是該命令字的特征位。
AAAA(D3D2D1D0)用來尋址顯示RAM中的存儲單元。由于顯示RAM中有16個節(jié)單元故需要4位地址。
AI(D4)為自動增量特征位。AI=1時,每次讀出后地址自動加1,指向下一地址。
5. 寫顯示數(shù)據命令
在CPU將顯示數(shù)據寫入8279的顯示緩沖器RAM之前必須先輸出寫顯示數(shù)據緩沖器的命令,命令格式如下:
其中:
D7D6D5=100為寫顯示RAM 命令宇特征位。
AAAA(D3D2D1D0)為將要寫入的顯示RAM中的存儲單元地址。
AI(D4)為自動增量特征位。AI=1時,每次寫入后地址自動加1,指向下一地址。
6. 顯示禁止寫入/消隱命令
命令格式:
其中:
D7D6D5=101為顯示禁止寫入/消陷命令特征位。
IWA、IWB(D3D2)為A、B 組顯示RAM寫入屏蔽位。由于顯示寄存器分成A、B兩,可以單獨送數(shù),故用兩位來分別屏蔽。當A組的屏蔽位D3=1時,A組的顯示RAM禁止入。因此,從CPU寫入顯示器RAM數(shù)據時,不會影響A的顯示。這種情況通常在采用雙立顯示器時使用。因為兩個四位顯示器是相互獨立的。為了給其中一個四位顯示器輸入數(shù)據又不影響另一個四位顯示器,因此必須對另一組的輸入實行屏蔽。
BLA、BLB(D3D2)為消隱設置位。用于對兩組顯示輸出消隱。若BL=1,對應組的示輸出被消隱。當BL=0,則恢復顯示。
7. 消除命令
CPU將清除命令寫入8279,使顯示緩沖器清成初態(tài)(暗碼),同時也能清除鍵輸入標志和中斷請求標志。清除命令的格式如下:
其中:
D7D6D5=110為清除命令特征位。
CDCDCD(D4D3D2)用來設定清除顯示RAM方式。共有四種消除方式。
CF(D1)用來置空FIFO存儲器,當CF =1時,執(zhí)行清除命令后,F(xiàn)IFORAM被置空,使中斷輸出線復位。同時,傳感器RAM讀出地址也被置為0。
CA (D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CF=1時,對顯示的清除方式由D3、D2的編碼決定
綜上所述,8279操作方式命令控制字如表-5所示。
表-5 8279操作方式命令控制字
清除顯示RAM 大約需100μS時間,在此期間,CPU不能向顯示RAM 寫入數(shù)據。
8. 結束中斷/錯誤方式設置命令
結束中斷/錯誤方式設置命令的格式如下
其中:
D7D6D5=110 為結束中斷/錯誤方式設置命令的特征位。此命令有兩種不同的作用。
(1)作為結束中斷命令。在傳感器工作方式中使用。每當傳感器狀態(tài)出現(xiàn)變化時,掃描檢測電路就將其狀態(tài)寫入傳感器RAM,并啟動中斷邏輯,使IRQ 變高,向CPU請求中斷,并且禁止寫入傳感器RAM。此時,若傳感器RAM 讀出地址的自動遞增特征沒有置位(AI=0),則中斷請求IRQ 在CPU第一次從傳感器RAM 讀出數(shù)據時就被清除。若自動遞增特征已置位(AI=0),則CPU 對傳感器RAM 的讀出并不能清除IRQ,而必須通過給8279 寫入結束中斷/錯誤方式設置命令才能使IRQ變低。因此,在傳感器工作方式中,此命令用來結束傳感器RAM 的中斷請求。
(2)作為特定錯誤方式設置命令。在8279已被設定為鍵盤掃描N 鍵輪回方式以后,如果CPU給8279又寫入結束中斷/錯誤方式設置命令(2=1),則8279將以一種特定的錯誤方式工作。這種方式的特點是:在8279的消顫周期內,如果發(fā)現(xiàn)多個按鍵同時按下,則FIFO狀態(tài)宇中的錯誤特征位S/E將置1,并產生中斷請求信號和阻止寫入FIFORAM。
上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸出8279后能自動尋址相應的命令寄存器。因此,寫入命令時唯一的要求是使數(shù)據選擇信號A0=1。
9. 狀態(tài)字節(jié)
8279的狀態(tài)字節(jié)用于鍵輸入和選通輸入方式中,指出輸入數(shù)據緩沖器FIF0 中的字符個數(shù)和是否出錯。狀態(tài)字節(jié)的格式如下:
其中:
DU(D7)在清除命令執(zhí)行期間該位為“1”,D7為工時對顯示RAM寫操作無效。
S/E(D6)為傳感器信號結束/錯誤特征位。該特征位在讀出FIFO態(tài)狀字時被讀出。而在執(zhí)行CF=1的清除命令時被復位。當8279工作在傳感器工作方式時,若S/E=1,表示傳感器的最后一個傳感器信號已進入傳感器RAM;而當8279工作在特殊錯誤方式時,若S/E=1則表示出現(xiàn)了多鍵同時按下錯誤。
O(D5)當FIFO已滿,又輸入一個字符時發(fā)生溢出置“1”0 位。
U(D4)在FIFORAM中沒有輸入字符時,CFU對FIFORAM讀,則置“1”U 位。
F(D3)在F=1時,表示FIFORAM已滿(存有3個鍵入數(shù)據)。NNN(D2D1D0)表示FIFORAM中數(shù)據的個數(shù)。
10. 輸入數(shù)據格式
在鍵掃描方式中,鍵輸入數(shù)據格式如下:
其中:
CNTL(D7)控制鍵CNTL 的狀態(tài)。
SHIFT(D6)控制鍵SHIFT的狀態(tài)。
D5~D3指出輸入鍵所在的行號(掃描計數(shù)值)。
D2~D0指出輸入鍵所在的列號(回送計數(shù)值)。
控制鍵CNTL,SHIFT,為單獨的開關鍵。CNTL與其他鍵連用作特殊命令鍵,SHIFT可作為上下檔控制鍵;
在傳感器掃描方式或選通輸入方式中,輸入數(shù)據即為RL0~7的輸入狀態(tài)。
3.5.4 8279 接口和編程方法
8279的接口方法如引腳圖所示。圖中,89C51 經8279 外撥8×8鍵盤,16位顯示器。8279的數(shù)據總線接89C51的P0口。RD,WR接89C51的讀,寫信號線。CS,A0接P2.7(A15)和P2.0(A8),89C51的周期輸出信號ALE作8279的時鐘信號,8279 采用加電自身復位方式。8279的中斷請求線反向后接89C51的INT1 。
8279鍵盤部分可提供具有二鍵鎖定或N鍵巡回方式的64鍵鍵盤矩陣。SL0~SL3為8279所提供的行掃描線,假設它為編碼輸出(高電平有效),這里SL0~SL2 通過外接三~八譯碼器(74LS138)來選擇行,譯碼器的輸出(低電平有效)接到鍵盤的行輸入。列值由RL0~7進入8279,這八條返回線的信號經8279緩沖鎖存。并由8279內部邏輯部件對它進行掃描檢查,以尋找選中的行內被按下的按鍵、如果鍵去抖動電路檢測到某鍵被按—下為了去抖動,它等待10ms,然后再重新檢測此鍵是否仍然閉合。如果仍閉合,便將該鍵在陣列中的地址(表示該鍵的六位編碼),及換檔鍵(SHIFT)和控制鍵(CNTL)狀態(tài)送入8279的FIFORAM中。每按一次鍵便送一次,F(xiàn)IFORAM最多可存放八個字符。 進入FIFO的字符數(shù)目由包含F(xiàn)IFO狀態(tài)字節(jié)中的字符計數(shù)(狀態(tài)的低三位)指示,當檢測到某鍵被按下時,8279的中斷請求線變?yōu)楦唠娖剑瑫rFIFO狀態(tài)字改變以反映存放在FIFO中的宇符數(shù)。
當CPU讀入一個數(shù)據后IRQ降為低電平。假如FIFORAM中仍有數(shù)據,則IRQ再次升高,如此反復。存在FIFORAM中經過譯碼的鍵值格式如下:
8279可通過選擇二鍵鎖定或N 鍵巡回方式來解決重鍵問題。
圖.3.13中A0~A3和B0~B3為段控輸出(高電平有效),外接驅動器后連至LED各段。對于七段LED來說,A3為最高位,B0為最低位,SL0~SL3為位控輸出,經譯碼驅動后連至各LED 可控制16位顯示器,其掃描速度(A0~3及B0~3與其同步變化)則由內部定時器決定。
圖.3.13 89C51與8279接口圖
3.6 BIC8708微機專用8位輸出驅動芯片
在單片機應用系統(tǒng)中最常使用的是小功率驅動器件,它將I/O機數(shù)據總線的信號轉換成小功率信號。由北京集成電路設計中心推出的BIC8708/8718/8728微機專用小功率8位驅動器具有良好的驅動性能,在單片機應用系統(tǒng)中得到廣泛應用。其廣引腳如圖.3.14所示:
BIC87系列是集電極開路高電壓輸出且具有選通端的8位驅動器。工作電壓+5V±10%,環(huán)境溫度為0℃~70℃,采用20引腳雙列直插朔料封裝。輸入端和輸出端分別排在兩側,該驅動器社有選通端G,可以方便地進行輸入輸出信號控制。輸出端可以直接驅動繼電器,可控硅,LED顯示器等等,還可以作為電平轉換器使用。
G Vcc
1A 1Y
2A 2Y
3A 3Y
4A 4Y
5A 5Y
6A 6Y
7A 7Y
8A 8Y
GND NC
1 20
10 11
圖.3.14 BIC8708引腳功能
3.7 數(shù)字溫度傳感器DS18B20
3.7.1 DS18B20簡介
??? (1)獨特的單線接口方式:DS18B20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。
??? (2)在使用中不需要任何外圍元件。
??? (3)可用數(shù)據線供電,電壓范圍:+3.0~+5.5 V。
??? (4)測溫范圍:-55~+125 ℃。固有測溫分辨率為0.5 ℃。
??? (5)通過編程可實現(xiàn)9~12位的數(shù)字讀數(shù)方式。
??? (6)用戶可自設定非易失性的報警上下限值。
??? (7)支持多點組網功能,多個DS18B2可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫。
??? (8)負壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。
3.7.2 DS18B20的內部結構
??? DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內部結構框圖如圖.3.15所示。
(1) 64 b閃速ROM的結構如下:
開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前56位的CRC校驗碼,這也是多個DS18B20可以采用一線進行通信的原因。
(2) 非易市失性溫度報警觸發(fā)器TH和TL,可通過軟件寫入用戶報警上下限。
??? (3) 高速暫存存儲器
圖.3.15 DS1820內部結構框圖
?????? DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM。后者用于存儲TH,TL值。數(shù)據先寫入RAM,經校驗后再傳給E2RAM。而配置寄存器為高速暫存器中的第5個字節(jié),他的內容用于確定溫度值的數(shù)字轉換分辨率,DS18B20工作時按此寄存器中的分辨率將溫度轉換為相應精度的數(shù)值。該字節(jié)各位的定義如下:
低5位一直都是1,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動,R1和R0決定溫度轉換的精度位數(shù),即是來設置分辨率,如表-6所示(DS18B20出廠時被設置為12位)。 表-6 R1、R0模式表
由表-6可見,設定的分辨率越高,所需要的溫度數(shù)據轉換時間就越長。因此,在實際應用中要在分辨率和轉換時間權衡考慮。
??? 高速暫存存儲器除了配置寄存器外,還有其他8個字節(jié)組成,其分配如下所示。其中溫度信息(第1,2字節(jié))、TH和TL值第3,4字節(jié)、第6~8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的CRC碼,可用來保證通信正確。
??? 當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節(jié)。單片機可通過單線接口讀到該數(shù)據,讀取時低位在前,高位在后,數(shù)據格式以0.0625 ℃/LSB形式表示。溫度值格式如下:
??
?
對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變換為原碼,再計算十進制值。表-7是對應的一部分溫度值。
表-7 部分溫度值
???
DS18B20完成溫度轉換后,就把測得的溫度值與TH,TL作比較,若T>TH或T
收藏