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