DZ250多點(diǎn)溫度檢測(cè)控制儀,dz250,多點(diǎn),溫度,檢測(cè),控制,節(jié)制
長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 1 -第一章 概述本設(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) 通過(guò)鍵功能,可以顯示各個(gè)點(diǎn)的溫度值以及給定值;并且使用數(shù)字鍵能修改溫度給定值;2.主要技術(shù)指標(biāo):(1) 溫度控制范圍:20℃~25℃;(2) 控制精度: ±0.5℃;(3) 電源電壓: 220V,50Hz;長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 2 -第二章 系統(tǒng)方案論證與確定2.1、傳感器的選擇: (一)采用 DS1820 作為前端溫度傳感器DS1820 是美國(guó) DALLAS 半導(dǎo)體公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專(zhuān)利技術(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ǔ)償問(wèn)題、多點(diǎn)測(cè)量切換誤差問(wèn)題和放大電路零點(diǎn)漂移誤差問(wèn)題等技術(shù)問(wèn)題,才能夠達(dá)到較高的測(cè)量精度。為了克服上面提到的三個(gè)問(wèn)題,采用了新型數(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í)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn) 9~12 位的數(shù)字值讀數(shù)方式。可以分別在 93.75 ms 和 750 ms 內(nèi)完成 9 位和 12 位的數(shù)字量,并且從 DS18B20 讀出的信息或?qū)懭?DS18B20 的信息僅需要一根口線(單線接口)讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的 DS18B20 供電,而無(wú)需額外電源。(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)通過(guò)編程可實(shí)現(xiàn) 9~12 位的數(shù)字讀數(shù)方式。長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 3 -(6)用戶(hù)可自設(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),給用戶(hù)帶來(lái)了更方便的使用和更令人滿意的效果。(三)傳統(tǒng)的模擬式傳感器傳統(tǒng)的模擬傳感器,例如 AD590 等等很多類(lèi)型的傳感器都需要大量的硬件,例如A/D、變送電路、放大器等等,不僅提高了成本,還會(huì)造成系統(tǒng)的不穩(wěn)定,增加干擾源。所以不是好的選擇。綜合上面的論述 DS18B20 是比較合適的選擇。2.2、控制算法的選擇:本系統(tǒng)的調(diào)節(jié)裝置是采用三位調(diào)節(jié)器,起輸出有三種狀態(tài),當(dāng)溫度超過(guò)上限時(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ī)停止。以此來(lái)控制加熱和制冷裝置。這種調(diào)節(jié)系統(tǒng)屬于斷續(xù)作用的調(diào)節(jié)器。連續(xù)作用的系統(tǒng)屬于一個(gè)閉環(huán)反饋系統(tǒng),需要控制算法來(lái)穩(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è)備的要求盡量少,減少硬件開(kāi)支;(3) 考慮它的應(yīng)用情況和兼容性,有利于硬件的更換;從以上幾個(gè)方面考慮,采用 89C51 作為該系統(tǒng)的核心元件。長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 4 -第三章 系統(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è)備,如鍵盤(pán)、顯示器、打印機(jī)、A/D、D/A 轉(zhuǎn)換器等,要設(shè)計(jì)和市的接口電路。系統(tǒng)硬件框圖如圖.3.1:傳 感 器執(zhí)行機(jī)構(gòu)復(fù)位電路顯 示段譯碼驅(qū)動(dòng)位譯碼驅(qū)動(dòng)地址鎖存器鍵盤(pán)/顯示接口數(shù)據(jù)存儲(chǔ)器220V50Hz電源電磁干擾濾波器+5V 穩(wěn)壓電源鍵 盤(pán)看門(mén)狗電 路CPU89C51圖.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ù)挠嗟兀员氵M(jìn)行二次開(kāi)發(fā);(3) 硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一起考慮??紤]的原則是:軟件能實(shí)現(xiàn)長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 5 -的盡量用軟件實(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ù)擦寫(xiě)的只讀程序存儲(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ī)可為您提供許多高性?xún)r(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。主要性能參數(shù):? 與 MCS-51 產(chǎn)品指令系統(tǒng)兼容? 4K 字節(jié)可重擦寫(xiě) Flash 閃? 1000 次擦寫(xiě)中期? 全靜態(tài)操作:0Hz——24MHz? 三級(jí)加密程序存儲(chǔ)器? 128*8 字節(jié)內(nèi)部 RAM? 32 個(gè)可編程 I/O 口線? 2 個(gè) 16 位定時(shí)/計(jì)數(shù)器? 6 個(gè)中斷源? 可編程串行 UART 通道 長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 6 -圖 .3.2 89C51 引腳功能 3.1.1 引腳功能介紹89C 51 單片機(jī)采用 40 引腳雙列直插封裝方式。如圖.3.2。其引腳功能可分為三部分:(1) I/O 口線:P0,P1,P2,P3 共四個(gè)八位口。? P0 口——8 位準(zhǔn)雙向口。在單片機(jī)外擴(kuò)存儲(chǔ)器或 I/O 接口時(shí),作為地址總線低 8 位 A7~A0 和數(shù)據(jù)總線 D7~D0。? P1 口——8 位準(zhǔn)雙向并行口。? P2 口——8 位準(zhǔn)雙向口。作為地址總線高 8 位 A15~A8,與 P0 口一起構(gòu)成 16 位地址總線。? P3 口——8 位準(zhǔn)雙向口。但每條引腳都有第二功能。見(jiàn)引腳圖3.1。對(duì)于 51 系列單片機(jī)來(lái)說(shuō),P3 口大多作為第二功能使用。(2) 控制口線共有 4 根。? ALE/PROG——外部地址低 8 位鎖存有效信號(hào)輸出線。在 CPU 訪問(wèn)片外存儲(chǔ)器時(shí)用來(lái)鎖存 P0 口輸出的低 8 位地址,它是與地址鎖存器配合工作的一格控制信號(hào)。ALE 在每個(gè)機(jī)器周期輸出兩個(gè)正脈沖,是長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 7 -振蕩器頻率的 1/6,可作為其它芯片的外部時(shí)鐘。PROG 是對(duì)片內(nèi)EPROM 編程脈沖輸入端。? PSEN——片外 ROM 讀選通信號(hào)輸出端。 ? EA/Vpp——片外 ROM 選擇信號(hào)輸入端。EA=0 時(shí),CPU 從片外 ROM 讀取指令;EA=1 時(shí),CPU 從片內(nèi) ROM 讀取指令。Vpp 是對(duì)于內(nèi)有 EPROM來(lái)說(shuō)的為編程電源,應(yīng)接+21V。? RST/Vpd——上電復(fù)位信號(hào)輸入端。當(dāng)它保持兩個(gè)機(jī)器周期高電平是可以完成復(fù)位操作。Vpd 為備用電源輸入端,當(dāng)主電源發(fā)生故障時(shí),Vpd 將為 ROM 提供備用電源,保證信息不丟失。(3)電源及時(shí)鐘? Vcc——芯片電源電壓,+5 伏。? Vss——電源地線,工作時(shí)接地。? XTAL1,XTAL2——振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入、輸出端。內(nèi)部振蕩電路 外部震蕩電路圖.3.3長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 8 -3.1.2 89C51 片內(nèi)結(jié)構(gòu)如圖.3.4 所示。圖. 3.4 89C51 內(nèi)部結(jié)構(gòu)框圖長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 9 -3.1.3 總線結(jié)構(gòu)如圖.3.5控制總線地址總線圖.3.5 89C51 總線結(jié)構(gòu)圖89C51 單片機(jī)的管腳除了電源、復(fù)位、時(shí)鐘接入、用戶(hù) 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)的操I(mǎi)NT0INT1T0T1RST89C51PSEHRDWR地址鎖存A15~A8A7~A0數(shù)據(jù)總線D7~D0長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 10 -作。3.1.4 系統(tǒng)時(shí)鐘89C51 單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種,一是內(nèi)部方式,二是外部方式。本系統(tǒng)采用內(nèi)部方式見(jiàn)圖 3.2。外接石英晶體(或陶瓷諧振器)及電容 C1、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路,對(duì)外電容 C1、C2 雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用 30pF+/-10pF,而如使用陶瓷諧振器建議選擇 40pF+/-10F。3.2 89C51 外擴(kuò)數(shù)據(jù)存儲(chǔ)器 6116MCS-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 指令生成讀和寫(xiě)的有效信號(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)稱(chēng)數(shù)據(jù)總線口,因?yàn)橹挥性摽谀苤苯佑糜陂L(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 11 -對(duì)外部存儲(chǔ)器的讀寫(xiě)操作。P0 口還用以輸出,故應(yīng)在外部加鎖存器,將地址鎖存,以防丟失。再進(jìn)行 D7~D0 數(shù)據(jù)操作,利用鎖存器地址代替 P0 口輸出地址。表-1 6116 引腳功能A10 ~A0 11 地址線IO7 ~IO0 8 位雙向數(shù)據(jù)線CE 片選線WE 寫(xiě)允許線OE 讀允許線3.3 芯片 74LS373 介紹地址鎖存器可使用三態(tài)緩沖輸出的入口存儲(chǔ)器 74LS373,它的引腳如圖.3.7 所示:1 2010 11圖.3.7 74LS373 引腳功能當(dāng)三態(tài)門(mén)的使能信號(hào)線 OE 為低電平時(shí),三態(tài)門(mén)處于導(dǎo)通狀態(tài),允許 Q 端輸出,當(dāng) OE 為高電平時(shí),輸出三態(tài)門(mén)斷開(kāi),輸出端對(duì)外電路呈高阻狀態(tài)。因此 74LS373 用作地址鎖存器時(shí),首先應(yīng)使三態(tài)門(mén)的使能端 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)介:OE VccQ1 Q8D1 D8D2 D7Q2 Q7Q3 Q6D3 D6D4 5Q Q4 D5GND G長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 12 -芯片 8155 是 Intel 公司開(kāi)發(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í),還為用戶(hù)提供了 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)? CE——片選端,低電平有效;? RD、WR——RD 是 8155 的讀/寫(xiě)命令輸入線,WR 為寫(xiě)命令線,當(dāng) RD=0 和WR=1 時(shí),8155 處于讀出數(shù)據(jù)狀態(tài);當(dāng) RD=1 和 WR=0 時(shí),8155 處于寫(xiě)入數(shù)據(jù)狀態(tài);? AD0~AD7——三態(tài)地址數(shù)據(jù)線,即是地址線,又是數(shù)據(jù)線,分時(shí)進(jìn)行工作;? ALE——地址鎖存允許信號(hào);長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 13 -? IO/M——存儲(chǔ)器及 I/O 選擇線,當(dāng) IO/M=1 時(shí) AD7 ~AD0線上地址為 I/O 接口地址。當(dāng) IO/M=0 時(shí),AD 7 ~AD0線上的地址為鎖存器 RAM 的地址,其范圍是 00~FFH;? PA7~0——通用 I/O 線,用于傳送 A 口上的外設(shè)數(shù)據(jù),數(shù)據(jù)的傳送方向由8155 命令字決定;? PB7~0——通用 I/O 線,用于傳送 B 口上的外設(shè)數(shù)據(jù),數(shù)據(jù)的傳送方向由8155 命令字決定; ? PC5~0——為 I/O 數(shù)據(jù)/控制線,共有 6 條,在通用的 I/O 方式下,用作傳送 I/O 數(shù)據(jù);在選通 I/O 方式下,用作傳送命令/狀態(tài)信息; 見(jiàn)表-2;? TIMERIN——是計(jì)數(shù)器輸入線,其脈沖上升沿用于對(duì) 8155 片內(nèi) 14 位計(jì)數(shù)器減 1;? TIMEROUT——是計(jì)數(shù)輸出線,當(dāng) 14 位計(jì)數(shù)器從計(jì)滿回零時(shí)就可以在該線上輸出脈沖或方波,輸出信號(hào)的形狀與計(jì)數(shù)器工作方式有關(guān);表-2 C 口在兩種 I/O 工作方式下各位定義通用 I/O 方式 選通 I/O 方式C 口ALT1 ALT2 ALT3 ALT4PC0 輸入 輸出 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)行讀寫(xiě),若IO/M=0 和 CE=0,則 8155 立即處于本工作方式。此時(shí),CPU 可以通過(guò) AD7~AD0 上的地址選擇 RAM 存儲(chǔ)器上的任一單元讀寫(xiě)。(2)I/O 方式:8155 的 I/O 方式又可分為基本 I/O 和選通 I/O 兩種工作方式。在I/O 方式下,8155 可以選擇片內(nèi)任一寄存器讀寫(xiě),斷口地址由 A2、A1、A0 三位決定。長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 14 -①基本 I/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 寫(xiě)入命令寄存器中的命令字來(lái)確定,命令寄存器只能寫(xiě)入不能讀出。命令寄存器的 4 位用來(lái)設(shè)置 A 口、B 口和 C 口的工作方式。D4、D5 位用來(lái)確定 A 口、B 口以選通輸入輸出方式工作時(shí)是否允許中斷請(qǐng)求。D6、D7 位用來(lái)設(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” —輸出方式。長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 15 -D3,D2 位(PCII,PCI):定義PC0~5 的工作方式。“00”—方式1;“11”—方式2;“01”—方式3;“10”—方式4。方式1~4 時(shí),PC0~5,的各位功能見(jiàn)表-2。D4 位(IEA):在端口C 對(duì)PA0~7,起控制作用的工作方式時(shí),IEA 位用來(lái)定義允許端口A的中斷?!?”—禁止;“1” —允許。D5 位(IEB)。當(dāng)端口C 工作在對(duì)PB0~7 起控制作用的工作方式時(shí),IEB 位用來(lái)定義允許端口B 的中斷?!?” —禁止;“1” —允許。D7,D6 位(TM2,TM1)。用來(lái)定義計(jì)時(shí)器/計(jì)數(shù)器工作的命令。有四種情況,詳細(xì)介紹見(jiàn)表-3。表-3 定時(shí)計(jì)數(shù)器工作方式定義表TM2 TM1 方式0 0 不影響定時(shí)器工作0 1 若計(jì)數(shù)器未啟動(dòng),則無(wú)操作;若計(jì)數(shù)器運(yùn)行,則停止計(jì)數(shù);1 0 達(dá)到當(dāng)前計(jì)數(shù)值后,立即停止;若未啟動(dòng)定時(shí)器則無(wú)操作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)志寄存器,用來(lái)存入 A 口和 B 口的狀態(tài)標(biāo)志。狀態(tài)標(biāo)志寄存器的地址與命令寄存器的地址相同,CPU 只能對(duì)其讀出,不能寫(xiě)入。狀態(tài)寄存器的格式如圖.3-8 所示。CPU 可以直接進(jìn)行查詢(xún)。下面僅對(duì)狀態(tài)字中的 D6位作以說(shuō)明:D6 為定時(shí)器中斷狀態(tài)標(biāo)志位。若定時(shí)器正在計(jì)數(shù)或開(kāi)始計(jì)數(shù)前,則 D6位等于 0;若定時(shí)器計(jì)數(shù)長(zhǎng)度已經(jīng)滿,則 D6 位等于 1。硬件復(fù)位或?qū)λx出后又恢復(fù)為 0。如圖.3.10 所示:3.4.6 8155 的端口電路長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 16 -8155 器件的 I/O 部件由五個(gè)寄存器組成。其中兩個(gè)是命令/狀態(tài)寄存器(C/S)地址為 xxxx000。如前所述,當(dāng)寫(xiě)操作期間選中 C/S 寄存器時(shí),就把一個(gè)命令(按圖圖.3.10 的定義)寫(xiě)入命令寄存器中,并且命令寄存器的狀態(tài)信息不能通過(guò)其引腳來(lá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),詳見(jiàn)表-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位用來(lái)規(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è)長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 17 -字節(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 可編程鍵盤(pán)/顯示器通用芯片Intel8279 是一種通用可編程鍵盤(pán)/顯示器接口芯片,它能鍵盤(pán)輸入和顯示控制兩種功能。鍵盤(pán)部分提供一種掃描工作方式,能對(duì) 64 個(gè)按鍵鍵盤(pán)不斷掃描,自動(dòng)消抖,自動(dòng)識(shí)別出按下的鍵并給出編碼,能對(duì)雙鍵或多鍵同時(shí)按下實(shí)行保護(hù)。顯示部分為發(fā)光二極管及其他顯示器提供了按掃描方式工作的顯示接口,可顯示多達(dá) 16 位的字符或數(shù)字。由于它本身可提供掃描信號(hào),因而可代替微處理器完成鍵盤(pán)和顯示器的控制,從而減輕了主機(jī)的負(fù)擔(dān)。其主要特性如下:(1)與MCS—85,MCS—48,MCS—51 等微處理器兼容;(2)能同時(shí)執(zhí)行鍵盤(pán)與顯示器操作;(3)掃描式鍵盤(pán)工作方式;(4)有8 個(gè)鍵盤(pán)FIFO(先入先出)存儲(chǔ)器;(5)帶觸點(diǎn)去抖動(dòng)的二鍵鎖定或N 鍵巡回功能;(6)兩個(gè)8 位或16 位的數(shù)字顯示器;(7)可左/右輸入的l6 字節(jié)顯示用RAM;(8)由鍵盤(pán)輸入產(chǎn)生中斷信號(hào);(9)掃描式傳感器工作方式;(10)用選通方式送入輸入信號(hào);(11)單個(gè)16 字符顯示器;長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 18 -(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)部總線和外部總線DB 0~7 相連,用于傳送CPU 和8279 之間的命令、數(shù)據(jù)和狀態(tài)。2. 控制邏輯控制與定時(shí)寄存器用以寄存鍵盤(pán)及顯示器的工作方式,鎖存操作命令,通過(guò)譯碼產(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ì)鍵盤(pán)的自動(dòng)掃描,鎖存RL0~RL7 的鍵輸入信息,搜索閉合鍵,去除鍵的抖動(dòng),并將鍵輸入數(shù)據(jù)寫(xiě)入內(nèi)部先進(jìn)先出(FIFO)的RAM 存儲(chǔ)器。5. FIFO/傳感器RAM 和顯示RAM,8279 具有8 個(gè)先進(jìn)先出的鍵輸入緩沖器,并提供16 個(gè)字節(jié)的顯示數(shù)據(jù)緩沖器。長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 19 -CPU 將段數(shù)據(jù)寫(xiě)入顯示緩沖器,8279 自動(dòng)對(duì)顯示器掃描,將其內(nèi)部顯示緩沖器十的數(shù)據(jù)在顯示器上顯示出來(lái)。3.5.2 8279 的引腳與功能8279 具有40 個(gè)引腳,采用雙列直插式封裝,引腳分布圖.3.12所示,圖.3.12 8279引腳與功能其功能定義如下:? DB0~7 是雙向外部數(shù)據(jù)總線。用于傳送8279 與CPU 之間的命令、數(shù)據(jù)和狀態(tài)??芍苯优cMCS—51 系列芯片連接。? CS為選片信號(hào)。當(dāng)CS為低電平時(shí),CPU 才選中8279 芯片,并對(duì)其進(jìn)行操作。? A0 區(qū)分信息的特性位。 當(dāng)A0 為1 時(shí),CPU 寫(xiě)入8279 的信息為命令,CPU 從8279 讀出的信息為8279 的狀態(tài)。當(dāng)A0 為0 時(shí),I/O 信息都為數(shù)據(jù)。? RD,WR是讀、寫(xiě)選通信號(hào),低電平有效。? IRQ 為中斷請(qǐng)求輸出線。高電平有效。 在鍵盤(pán)工作方式下,當(dāng)FIFO/傳感器RAM 中有數(shù)據(jù)時(shí),此中斷線變高電平。在FIFO/傳感器RAM 每次讀出時(shí),中斷線就下降為低電平,若在RAM 中還有信息,則此線又重新變?yōu)楦唠娖健T趥鞲衅鞴ぷ鞣绞街?,每?dāng)傳感器信號(hào)變化時(shí),中斷線就變?yōu)楦唠娖健? RL0~RL7 為反饋輸入線,作為鍵輸入線,由內(nèi)部拉高電阻拉成高電平,也可由鍵盤(pán)上按鍵拉成低電平。? SL0~3 為掃描輸出線,用于對(duì)鍵盤(pán)顯示器掃描。? OUTB0~3,OUTA0~3 為顯示段數(shù)據(jù)輸出線,可分別作為兩個(gè)半字長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 20 -節(jié)輸出,也可作為8位段數(shù)據(jù)輸出口,此時(shí)OUTB0為最低位,OUTA3為最高位。? BD為消隱輸出線,低電平有效,當(dāng)顯示器切換時(shí)或使用顯示消隱 命令時(shí),將顯示消隱。? RESET為復(fù)位輸入線,高電平有效。當(dāng)RESET輸入端出現(xiàn)高電平時(shí),8279被復(fù)位,復(fù)位后8279被置于下列方式:A. 16個(gè)8位字符顯示為左端輸入。B. 編碼的掃描鍵為兩鍵連鎖、與此同時(shí),程序時(shí)鐘前置分頻器被置為31。? SHIFT,CNTL/STB為控制鍵輸入線,由內(nèi)部拉高電阻拉成高電平,也可由外部控制按鍵拉成低電子,SHIFT 為換檔,CNTL 為控制,STB為選通。? CLK為外時(shí)鐘輸入端,CLK信號(hào)由外部振蕩器提供。需說(shuō)明的一點(diǎn)是:CLK是系統(tǒng)來(lái)的外時(shí)鐘,8279靠設(shè)置定時(shí)器將外部時(shí)鐘變?yōu)閮?nèi)時(shí)鐘。其內(nèi)部基頻=外時(shí)鐘/定時(shí)器值。內(nèi)部時(shí)鐘的高低控制著掃描時(shí)間和鍵盤(pán)去抖動(dòng)時(shí)間的長(zhǎng)短,若8279內(nèi)部時(shí)鐘為100kHz,則掃描時(shí)間為5.1ms,去抖動(dòng)時(shí)間為10.3ms。功能說(shuō)明:由于數(shù)據(jù)輸入和顯示乃是許多微處理機(jī)外設(shè)的一個(gè)不可分離部分。系統(tǒng)設(shè)計(jì)者需要—種能夠控制這些功能,而又不致于使CPU負(fù)載過(guò)重的接口。8279為8位微處理機(jī)提供這種功能。8279有兩個(gè)部分,鍵盤(pán)部分和顯示器部分。 鍵盤(pán)部分能夠與通常的打字機(jī)型鍵盤(pán)或隨機(jī)乒乓開(kāi)關(guān),或鈕子開(kāi)關(guān)相聯(lián)接。顯示部分驅(qū)動(dòng)字母數(shù)字顯示或一排指示燈。從而減輕了CPU在掃描鍵盤(pán)和刷新顯示時(shí)的負(fù)擔(dān)。8279按設(shè)計(jì)直接連到微處理機(jī)總線,CPU能夠?yàn)?279的所有操作方式編制程序,這些方式包括:A. 輸入方式:a.掃描鍵盤(pán)——帶有編碼掃描線(8×8鍵鍵盤(pán))或譯碼掃描線(4×8鍵鍵盤(pán))。每按—下按鍵,就產(chǎn)生一個(gè)表示按鍵位置的6位編碼。 按鍵的位置信息以及字型變換和控制狀態(tài),都被存儲(chǔ)在FIFO中。所有按鍵都以?xún)涉I連鎖或N鍵巡回的方式自動(dòng)回跳。b.掃描傳感器陣列——帶有編碼掃描線(8×8陣列開(kāi)關(guān))或譯碼掃描線(4×8陣列開(kāi)關(guān))。c. 按鍵的狀態(tài)(打開(kāi)或閉合)被存儲(chǔ)在可由CPU尋址的RAM 中。d.選通輸入——在控制線選通時(shí),回送線上數(shù)據(jù)被傳送到FIFO中。長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 21 -B. 輸出方式:a. 8字符或16字符的多路切換式顯示器。該顯示器可被組合成雙排4位或單排8位形式(B0=D0,A3=D7)。b. 右端輸入或左端輸入的顯示格式。3.5.3 8279控制字和操作命令8279的操作方式是通過(guò)CPU對(duì)8279送入命令時(shí)來(lái)實(shí)現(xiàn)編程。當(dāng)數(shù)據(jù)選擇端A0 置1時(shí),CPU對(duì)8279寫(xiě)入的數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字。8279 共有八條命令。其功能及命令字定義分述如下。1. 鍵盤(pán)/顯示器方式設(shè)置命令其中:D7D6D0=000 是方式設(shè)置命令的特征位。DD(D4D3)為顯示器方式選擇位,其定義如下:所謂左入口,即顯示位置從最左一位(最高位)開(kāi)始,以后逐次輸入的顯示字符逐個(gè)向右順序排列,所謂右入口,則是顯示位置從最右一位(最低位)開(kāi)始,以后逐次輸入顯示字符時(shí),已有的顯示字符依次向左移動(dòng)。KKK(D2D1D0) 用來(lái)設(shè)定七種鍵盤(pán)、顯示工作,其定義如下:長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 22 -雙鍵鎖定與N 鍵輪回是多鍵按下時(shí)的兩種不同的保護(hù)方式。雙鍵鎖定為兩鍵同時(shí)按下提供的保持方法。在消顫周期里,如果有兩鍵同時(shí)被按下,則只有其中一個(gè)鍵彈起,而另一個(gè)鍵保持在按下位置時(shí),才被認(rèn)可。N 鍵輪回為N 鍵同時(shí)按下的保護(hù)方法。當(dāng)有若干鍵按下時(shí),鍵盤(pán)掃描能夠根據(jù)發(fā)現(xiàn)它們的順序,依次將它們的狀態(tài)送入FIFO RAM 中。編碼掃描方式時(shí),SL0~3 輸出僅有一位為低電平。此時(shí)只能外接4位顯示器和4×8的鍵盤(pán)。譯碼掃描方式時(shí),SL0~3輸出呈計(jì)數(shù)分頻方式??赏饨?6位顯示器和8x8鍵盤(pán)矩陣。選通輸入方式時(shí),RL0~7作為選通輸入口,CINTI/STB作為選通信號(hào)輸入端。這是只選用顯示器沒(méi)有鍵盤(pán)的工作方式。2. 時(shí)鐘編程命令8279的內(nèi)部定時(shí)信號(hào)是由外部的輸入時(shí)鐘經(jīng)過(guò)分頻后產(chǎn)生的,分頻系數(shù)由時(shí)鐘編程命令確定,時(shí)鐘編程命令格式如下:其中:D7D6D5=001 為時(shí)鐘編程命令的特征位,PPPPP(D4~D0) 用來(lái)設(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)容。在鍵盤(pán)工作方式中,由于讀出操作嚴(yán)格按照先入先出順序,因此,不需使用這長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 23 -條命令。4. 讀顯示RAM命令在CPU 讀顯示數(shù)據(jù)(檢查)之前必須先輸出讀顯示緩沖器RAM的命令,命令格式如下:其中:D7D6D5=011是該命令字的特征位。AAAA(D3D2D1D0)用來(lái)尋址顯示RAM中的存儲(chǔ)單元。由于顯示RAM中有16個(gè)節(jié)單元故需要4位地址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次讀出后地址自動(dòng)加1,指向下一地址。5. 寫(xiě)顯示數(shù)據(jù)命令在CPU將顯示數(shù)據(jù)寫(xiě)入8279的顯示緩沖器RAM之前必須先輸出寫(xiě)顯示數(shù)據(jù)緩沖器的命令,命令格式如下:其中:D7D6D5=100為寫(xiě)顯示RAM 命令宇特征位。AAAA(D3D2D1D0)為將要寫(xiě)入的顯示RAM中的存儲(chǔ)單元地址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次寫(xiě)入后地址自動(dòng)加1,指向下一地址。6. 顯示禁止寫(xiě)入/消隱命令命令格式:其中:D7D6D5=101為顯示禁止寫(xiě)入/消陷命令特征位。IWA、IWB(D3D2)為A、B 組顯示RAM寫(xiě)入屏蔽位。由于顯示寄存器分成A、B兩,可以單獨(dú)送數(shù),故用兩位來(lái)分別屏蔽。當(dāng)A組的屏蔽位D3=1時(shí),A組的顯示RAM禁止入。因此,從CPU寫(xiě)入顯示器RAM數(shù)據(jù)時(shí),不會(huì)影響A的顯示。這種情況通常在采用雙立顯示器時(shí)使用。因?yàn)閮蓚€(gè)四位顯示器是相互獨(dú)立的。為了給其中一個(gè)四位顯示器輸入數(shù)據(jù)又不影響另一個(gè)四位顯示器,因此必須對(duì)另一組的輸入實(shí)行屏蔽。長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 24 -BLA、BLB(D3D2)為消隱設(shè)置位。用于對(duì)兩組顯示輸出消隱。若BL=1,對(duì)應(yīng)組的示輸出被消隱。當(dāng)BL=0,則恢復(fù)顯示。7. 消除命令CPU將清除命令寫(xiě)入8279,使顯示緩沖器清成初態(tài)(暗碼),同時(shí)也能清除鍵輸入標(biāo)志和中斷請(qǐng)求標(biāo)志。清除命令的格式如下:其中:D7D6D5=110為清除命令特征位。CDCDCD(D4D3D2)用來(lái)設(shè)定清除顯示RAM方式。共有四種消除方式。CF(D1)用來(lái)置空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操作方式命令控制字長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 25 -清除顯示RAM 大約需100μS時(shí)間,在此期間,CPU不能向顯示RAM 寫(xiě)入數(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)寫(xiě)入傳感器 RAM,并啟動(dòng)中斷邏輯,使 IRQ 變高,向 CPU請(qǐng)求中斷,并且禁止寫(xiě)入傳感器 RAM。此時(shí),若傳感器 RAM 讀出地址的自動(dòng)遞增特征沒(méi)有置位(AI=0),則中斷請(qǐng)求 IRQ 在 CPU 第一次從傳感器 RAM 讀出數(shù)據(jù)時(shí)就被清除。若自動(dòng)遞增特征已置位(AI=0),則 CPU 對(duì)傳感器 RAM 的讀出并不能清除IRQ,而必須通過(guò)給 8279 寫(xiě)入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令才能使 IRQ 變低。因此,在傳感器工作方式中,此命令用來(lái)結(jié)束傳感器 RAM 的中斷請(qǐng)求。(2)作為特定錯(cuò)誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤(pán)掃描N 鍵輪回方式以后,如果CPU給8279又寫(xiě)入結(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)和阻止寫(xiě)入FIFORAM。上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸出8279后能自動(dòng)尋址相應(yīng)的命令寄存器。因此,寫(xiě)入命令時(shí)唯一的要求是使數(shù)據(jù)選擇信號(hào)A0=1。9. 狀態(tài)字節(jié)8279的狀態(tài)字節(jié)用于鍵輸入和選通輸入方式中,指出輸入數(shù)據(jù)緩沖器FIF0 中的字符個(gè)數(shù)和是否出錯(cuò)。狀態(tài)字節(jié)的格式如下:長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 26 -其中:DU(D7)在清除命令執(zhí)行期間該位為“1”,D7為工時(shí)對(duì)顯示RAM寫(xiě)操作無(wú)效。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中沒(méi)有輸入字符時(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ù)值)??刂奇ICNTL,SHIFT,為單獨(dú)的開(kāi)關(guān)鍵。CNTL與其他鍵連用作特殊命令鍵,SHIFT可作為上下檔控制鍵;在傳感器掃描方式或選通輸入方式中,輸入數(shù)據(jù)即為RL0~7的輸入狀態(tài)。3.5.4 8279 接口和編程方法8279的接口方法如引腳圖所示。圖中,89C51 經(jīng)8279 外撥8×8鍵盤(pán),16位顯示器。8279的數(shù)據(jù)總線接89C51的P0口。RD,WR接89C51的讀,寫(xiě)信號(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鍵盤(pán)部分可提供具有二鍵鎖定或N鍵巡回方式的64鍵鍵盤(pán)矩陣。SL0~SL3為長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 27 -8279所提供的行掃描線,假設(shè)它為編碼輸出(高電平有效),這里SL0~SL2 通過(guò)外接三~八譯碼器(74LS138)來(lái)選擇行,譯碼器的輸出(低電平有效)接到鍵盤(pán)的行輸入。列值由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)過(guò)譯碼的鍵值格式如下:8279可通過(guò)選擇二鍵鎖定或N 鍵巡回方式來(lái)解決重鍵問(wèn)題。圖.3.13中A0~A3和B0~B3為段控輸出(高電平有效),外接驅(qū)動(dòng)器后連至LED各段。對(duì)于七段LED來(lái)說(shuō),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ī)專(zhuān)用 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ī)專(zhuān)長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 28 -用小功率 8 位驅(qū)動(dòng)器具有良好的驅(qū)動(dòng)性能,在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。其廣引腳如圖.3.14 所示:BIC87 系列是集電極開(kāi)路高電壓輸出且具有選通端的 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)換器使用。1 2010 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)通過(guò)編程可實(shí)現(xiàn) 9~12 位的數(shù)字讀數(shù)方式。(6)用戶(hù)可自設(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)G Vcc1A 1Y2A 2Y3A 3Y4A 4Y5A 5Y6A 6Y7A 7Y8A 8YGND NC長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 29 -DS18B20 采用 3 腳 PR35 封裝或 8 腳 SOIC 封裝,其內(nèi)部結(jié)構(gòu)框圖如圖.3.15 所示。(1) 64 b 閃速 ROM 的結(jié)構(gòu)如下:開(kāi)始 8 位是產(chǎn)品類(lèi)型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有 48 位,最后8 位是前 56 位的 CRC 校驗(yàn)碼,這也是多個(gè) DS18B20 可以采用一線進(jìn)行通信的原因。 (2) 非易市失性溫度報(bào)警觸發(fā)器 TH 和 TL,可通過(guò)軟件寫(xiě)入用戶(hù)報(bào)警上下限。(3) 高速暫存存儲(chǔ)器圖.3.15 DS1820 內(nèi)部結(jié)構(gòu)框圖DS18B20 溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 RAM 和一個(gè)非易失性的可電擦除的 E2RAM。后者用于存儲(chǔ) TH,T L值。數(shù)據(jù)先寫(xiě)入 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,用戶(hù)不要去改動(dòng),R1 和 R0 決定溫度轉(zhuǎn)換的精度位數(shù),即是來(lái)設(shè)置分辨率,如表-6 所示(DS18B20 出廠時(shí)被設(shè)置為 12 位)。 表-6 R1、R0 模式表長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 30 -由表-6 可見(jiàn),設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長(zhǎng)。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存存儲(chǔ)器除了配置寄存器外,還有其他 8 個(gè)字節(jié)組成,其分配如下所示。其中溫度信息(第 1,2 字節(jié))、T H和 TL值第 3,4 字節(jié)、第 6~8 字節(jié)未用,表現(xiàn)為全邏輯 1;第 9 字節(jié)讀出的是前面所有 8 個(gè)字節(jié)的 CRC 碼,可用來(lái)保證通信正確。當(dāng) DS18B20 接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16 位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第 1,2 字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(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 部分溫度值長(zhǎng)春工業(yè)大學(xué)畢業(yè)設(shè)計(jì)論文 - 31 -DS18B20 完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與 TH,T L作比較,若 T>TH或 T
收藏