微機(jī)原理課程設(shè)計(jì)
《微機(jī)原理課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《微機(jī)原理課程設(shè)計(jì)(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、項(xiàng)目一 8279鍵盤(pán)顯示設(shè)計(jì) 一.要求 編寫(xiě)程序,以8279為鍵盤(pán)顯示核心,按下小鍵盤(pán)0~F,在實(shí)驗(yàn)機(jī)上LED數(shù)碼管上對(duì)應(yīng)顯示0~F,按實(shí)驗(yàn)機(jī)上暫停鍵結(jié)束。 二.目的 1.學(xué)習(xí)在88系統(tǒng)中擴(kuò)展鍵盤(pán)顯示接口的方法。 2.學(xué)習(xí)8279接口芯片的編程。 三.電路連線 8279鍵盤(pán)顯示電路連線圖如圖1所示。 圖1 8279鍵盤(pán)顯示電路連線圖 CS8279已固定接至238H孔,模塊中的十個(gè)短路套都套8279側(cè)。 一、 8279的功能及工作原理 8279是Intel公司生產(chǎn)的通用可編程鍵盤(pán)和顯示器I/O接口部件。利用8279,可實(shí)現(xiàn)對(duì)鍵盤(pán)/顯示器的自動(dòng)掃描,并
2、識(shí)別鍵盤(pán)上閉合鍵的鍵號(hào),不僅可以大大節(jié)省CPU對(duì)鍵盤(pán)/顯示器的操作時(shí)間,從而減輕CPU的負(fù)擔(dān),而且顯示穩(wěn)定,程序簡(jiǎn)單,不會(huì)出現(xiàn)誤動(dòng)作,由于這些優(yōu)點(diǎn),8279芯片日益被設(shè)計(jì)者所采用。 1. 8279的引腳及內(nèi)部結(jié)構(gòu) 8279的引腳如圖1所示。 8279主要由下列部件組成,各部件的作用以及引腳的作用如下: (1) I/O控制和數(shù)據(jù)緩沖器 雙向的三態(tài)數(shù)據(jù)緩沖器將內(nèi)部總線和外部總線DBo —DB7,用于傳送CPU和8279之間的命令,數(shù)據(jù)和狀態(tài)。 為片選信號(hào)。當(dāng)為低電平時(shí),CPU才選中8279讀寫(xiě)。 A。用以區(qū)分信息的特性。當(dāng)A。為1時(shí),CPU寫(xiě)入827
3、9的信息為命令,CPU從 8279讀出的信息為8279的狀態(tài)。當(dāng)A。為0時(shí),I/O信息都為數(shù)據(jù)。 圖1 8279的引腳圖 (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)
4、制方式計(jì)數(shù),4位計(jì)數(shù)狀態(tài)從掃描線SL?!玈L3輸出,經(jīng)外部譯碼器譯碼出16位掃描線,另一種為內(nèi)部譯碼方式(也稱譯碼方式),即掃描計(jì)數(shù)器的低二位經(jīng)片內(nèi)譯碼器譯碼后從SL。一SL3輸出。 (4) 鍵輸入控制 這個(gè)部件完成對(duì)鍵盤(pán)的自動(dòng)掃描,鎖存RL。~RL7的鍵輸入信息,搜索閉合鍵,去除鍵的抖動(dòng),并將鍵輸入數(shù)據(jù)寫(xiě)入內(nèi)部先進(jìn)先出(FIFO)的存儲(chǔ)器RAM。 (5)FIFO RAM和顯示緩沖器RAM 8279具有8個(gè)先進(jìn)先出(FIFO)的鍵輸入緩沖器,并提供16個(gè)字節(jié)的顯示緩沖器RAM。 8279將段碼寫(xiě)入顯示緩沖器RAM,8279自動(dòng)對(duì)顯示器掃描,將其內(nèi)部顯
5、示緩沖器RAM中的數(shù)據(jù)在顯示器上顯示出來(lái)。 IRQ為中斷請(qǐng)求輸出線,高電平有效。當(dāng)FIFO RAM緩沖器中存有鍵盤(pán)上閉合鍵的編碼時(shí),IRQ線升高,向CPU請(qǐng)求中斷,當(dāng)CPU將緩沖器中的輸入鍵的數(shù)據(jù)全部讀取時(shí),中斷請(qǐng)求線下降為低電平; SHIFT、CNTL/STB為控制鍵輸入線,由內(nèi)部拉高電阻拉成高電平,也可由外部控制按鍵拉成低電平。 RL?!玆L7為反饋輸入線,作為鍵輸入線,由內(nèi)部拉高電阻(或稱為上拉電阻)拉成高電平,也可由鍵盤(pán)上按鍵拉成低電平。 SL?!玈L3為掃描輸出線,用于對(duì)鍵盤(pán)顯示器掃描。 OUT B。-3、OUTA。-3為顯示段數(shù)據(jù)輸出
6、線,可分別作為兩個(gè)半字節(jié)輸出,也可作為8位段數(shù)據(jù)輸出口,此時(shí)OUTB。為最低位,OUTA3為最高位。 BD為消隱輸出線,低電平有效,當(dāng)顯示器切換時(shí)或使用顯示消隱命令時(shí),將顯示消隱。 RESET為復(fù)位輸入線,高電平有效。當(dāng)RESET輸入端出現(xiàn)高電平時(shí),8279被初始復(fù)位。 2. 8279的操作命令字 CPU通過(guò)對(duì)8279編程(將命令字寫(xiě)入8279)來(lái)選擇其工作方式。8279的操作命令字簡(jiǎn)述如下: (1) 鍵盤(pán)/顯示器方式設(shè)置命令字 D7 D6 D5 D4 D3 D2
7、 D1 D0 0 0 0 D D K K K 高三位D7D6D5位為特征位000,D4D3兩位用來(lái)設(shè)定顯示方式,其定義如下: D4 D3 顯示方式 0 0 8個(gè)字符顯示—左邊輸入 0 1 16個(gè)字符顯示—左邊輸入 1 0 8個(gè)字符顯示—右邊輸入 1 1 16個(gè)字符顯示—右邊輸入 8279最多可用來(lái)控制LED顯示器顯示16位,當(dāng)顯示位數(shù)超過(guò)8位時(shí),均須設(shè)定為16位字符顯示。顯示器的每一位對(duì)應(yīng)一個(gè)8位的顯示緩沖器RAM單元。CPU將顯示數(shù)據(jù)寫(xiě)入緩沖器時(shí)有左邊輸入和右邊輸入兩種方式。左邊輸入是較簡(jiǎn)單的
8、方式,地址為0~15的顯示緩沖器RAM單元分別對(duì)應(yīng)于顯示器的0(左)位~15(右)位。CPU依次從0地址或某一個(gè)地址開(kāi)始將段數(shù)據(jù)寫(xiě)入顯示緩沖器。 當(dāng)16個(gè)顯示緩沖器都已寫(xiě)滿時(shí)(從0地址開(kāi)始寫(xiě),寫(xiě)了16次),第17次寫(xiě),再?gòu)?地址開(kāi)始寫(xiě)入。 右邊輸入方式是移位輸入方式,輸入數(shù)據(jù)總是寫(xiě)入右邊的顯示緩沖器,數(shù)據(jù)寫(xiě)入顯示緩沖器后,原來(lái)緩沖器的內(nèi)容左移一個(gè)字節(jié),原最左邊顯示器緩沖器的內(nèi)容被移出。 在右邊輸入方式中,顯示器的各位和顯示緩沖器RAM的地址并不是對(duì)應(yīng)的。若選用內(nèi)部譯碼的鍵掃描方式,字符顯示器只接4位。 D2D1D。為鍵盤(pán)工作方式選擇位,如下表, D2 D1 D
9、。 操 作 方 式 0 0 0 外部譯碼鍵掃描方式,雙鍵互鎖 0 0 1 內(nèi)部譯碼鍵掃描方式, 雙鍵互鎖 0 1 0 外部譯碼鍵掃描方式, N鍵依次讀出 0 1 1 內(nèi)部譯碼鍵掃描方式,N鍵依次讀出 1 0 0 外部譯碼掃描傳感器矩陣方式 1 0 1 內(nèi)部譯碼掃描傳感器矩陣方式 1 1 0 選通輸入方式,外部譯碼鍵掃描方式 1 1 1 選通輸入方式,內(nèi)部譯碼鍵掃描方式 當(dāng)設(shè)定為外部譯碼工作方式時(shí),內(nèi)部計(jì)數(shù)器作二進(jìn)制計(jì)數(shù),四位二進(jìn)制計(jì)數(shù)器的狀態(tài)從掃描線SL。-SL3輸出,然后在外部進(jìn)行譯碼,最多可為鍵盤(pán)/顯示器
10、提供16根掃描線(16選1)。 當(dāng)設(shè)定為內(nèi)部譯碼工作方式時(shí),內(nèi)部掃描計(jì)數(shù)器的低2位被譯碼后,再由SLo~SL3輸出,即此時(shí)SLo~SL3已經(jīng)是4選1的譯碼信號(hào)了。顯然當(dāng)設(shè)定為譯碼方式時(shí),掃描位數(shù)最多為4位。 雙鍵互鎖就是當(dāng)鍵盤(pán)中同時(shí)有兩個(gè)以上的按鍵被按下對(duì),任何一個(gè)鍵的編碼信息均不能進(jìn)入FIFO RAM中,直至僅剩下一鍵保持閉合時(shí),該鍵的編碼信息方能進(jìn)入FIFO,這種工作方式可以避免部分誤操作信號(hào)進(jìn)入計(jì)算機(jī)。 N鍵依次讀出的工作方式時(shí),各個(gè)鍵的處理都與其它鍵無(wú)關(guān),按下一個(gè)鍵時(shí),片內(nèi)去抖動(dòng)電路等待兩個(gè)鍵盤(pán)掃描周期,然后檢查該鍵是否仍按著。如果仍按著,則該鍵編碼就送入
11、FIFO RAM中。一次可以按下任意個(gè)鍵,其它的鍵也可被識(shí)別出來(lái)并送入FIFO RAM中。如果同時(shí)按下多個(gè)鍵,則按鍵盤(pán)掃描過(guò)程發(fā)現(xiàn)它們的順序進(jìn)行識(shí)別,并 送入FIFORAM中。 選通輸入的工作方式時(shí),RLo-7作為選通輸入口,CNTL/STB作為選通信號(hào)輸入端。這是只選用顯示器沒(méi)有鍵盤(pán)的工作方式。 掃描傳感器矩陣的工作方式,是指片內(nèi)的去抖動(dòng)邏輯被禁止掉,傳感器的開(kāi)關(guān)狀態(tài)直接輸入FIFO RAM中,雖然這種方式不能提供去抖動(dòng)的功能,但有下述優(yōu)點(diǎn):CPU知道傳感器閉合多久,何時(shí)釋放,在傳感器掃描的工作方式下,每當(dāng)檢測(cè)到傳感器信號(hào)(開(kāi)或閉)改變時(shí),中斷線上的IRQ就變?yōu)楦唠娖?,在外部譯碼
12、掃描時(shí),可對(duì)88矩陣開(kāi)關(guān)狀態(tài)進(jìn)行掃描,在內(nèi)部譯碼掃描時(shí),可對(duì)48矩陣開(kāi)關(guān)的狀態(tài)進(jìn)行掃描。 (2) 時(shí)鐘編程命令字 8279的內(nèi)部定時(shí)信號(hào)由外部的輸入時(shí)鐘經(jīng)過(guò)分頻后產(chǎn)生,分頻系數(shù)由時(shí)鐘編程命令字確定,時(shí)鐘編程命令字格式如下: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P D7 D6D5=001為時(shí)鐘編程命令字的特征位。D4 D3 D2 D1 D0為分頻系數(shù),可在2~31次分頻中進(jìn)行選擇,將進(jìn)入8279的時(shí)鐘頻率進(jìn)行
13、N次分頻后,可獲得8279內(nèi)部所需的100kHz的時(shí)鐘。內(nèi)部時(shí)鐘頻率的高低控制著掃描時(shí)間和鍵盤(pán)去抖動(dòng)時(shí)間的長(zhǎng)短,在8279內(nèi)部時(shí)鐘為100kHz時(shí),則掃描時(shí)間為5.1ms,去抖動(dòng)時(shí)間為10.3ms。如果進(jìn)入 8279的時(shí)鐘頻率為2MHz,要獲得100kHz的內(nèi)部時(shí)鐘信號(hào),則需要20分頻,即 PPPPP=10100B=20 (3) 讀FIFO RAM命令字 D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 AI X A A A 高3位010為特征位,該命令只
14、在傳感器方式時(shí)使用。在CPU讀傳感器RAM之前,必須用這條命令來(lái)設(shè)定傳感器RAM中的8個(gè)地址(每個(gè)地址一個(gè)字節(jié))。 D2 D1 D0 (AAA)為8個(gè)字節(jié)地址的起始地址,D4(AI)為多次讀時(shí)的地址自動(dòng)增量標(biāo)志,在鍵掃描方式中;AI,AAA均被忽略,CPU讀鍵輸入數(shù)據(jù)時(shí),總是按先進(jìn)先出的規(guī)律讀出,直至輸入鍵全部讀出為止。在傳感器矩陣掃描中,若AI=1 CPU則從起始地址開(kāi)始依次讀出,每次讀出后地址自動(dòng)加1,而不必重新設(shè)置讀FIFO/傳感器RAM命令;AI=0時(shí),CPU僅讀出一個(gè)單元的內(nèi)容。 在鍵盤(pán)工作方式中,由于讀出操作嚴(yán)格按照先入先出順序,因此,不需使用這條命令。 (4)
15、寫(xiě)顯示緩沖器RAM命令字 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 AI A A A A 高3位100為該命令字的特征位,該命令給出了顯示緩沖器RAM的地址信息,當(dāng)CPU執(zhí)行寫(xiě)顯示緩沖器RAM時(shí),首先用該命令字給出要寫(xiě)入的顯示緩沖器RAM地址,四位二進(jìn)制代碼AAAA可用來(lái)尋址顯示緩沖器RAM的16個(gè)存儲(chǔ)單元。若AI=1,則CPU在第一次寫(xiě)入時(shí)須給出地址外,以后每次寫(xiě)入,地址自動(dòng)加1,直至所有顯示緩沖器RAM全部寫(xiě)畢。若AI=0,則每次寫(xiě)入時(shí)需要指出一個(gè)地址
16、。 實(shí)際上每一個(gè)顯示緩沖器RAM單元對(duì)應(yīng)著一個(gè)字符顯示位。 (5) 讀顯示緩沖器RAM命令字 D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 A A A A A 在CPU讀顯示數(shù)據(jù)(檢查)之前必須先輸出讀顯示緩沖器RAM的命令。 D7 D6D5= 011是該命令字的特征位。四位二進(jìn)制代碼AAAA用來(lái)尋址顯示緩沖器RAM的一個(gè)緩沖單元。AI為自動(dòng)增量標(biāo)志,若AI=1,則CPU每次讀出后,地址自動(dòng)加1。 (6) 顯示屏蔽消隱命令字
17、 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 X IWA IWB BLA BLB 高3位101為該命令字的特征位。IWA和IWB分別用以屏蔽A組和B組顯示緩沖器RAM。在雙4位顯示器使用時(shí),即OUTA0-3和OUTBo-3獨(dú)立地作為兩個(gè)半字節(jié)輸出時(shí),可改寫(xiě)顯示緩沖器RAM中的低半字節(jié)而不影響高半字節(jié)的狀態(tài)(D3=1),反之 D2=1時(shí)可改寫(xiě)高半字節(jié)而不影響低半字節(jié)。 BL位是消隱特征位,要消隱兩組顯示輸出,必須使D。、Dl同時(shí)為1,BL=0時(shí)則恢復(fù)顯示。 (7)
18、清除命令字 D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 CD CD CD CF CA 該命令字用來(lái)消除FIFO RAM和顯示緩沖器RAM。其中D4 D3 D2 (CD)三位用來(lái)設(shè)定消除顯示緩沖器RAM的方式,其定義如下: CF(D1)位用來(lái)置空FIFO RAM,當(dāng)D1=1時(shí),執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使中斷輸出線IRQ復(fù)位;同時(shí)傳感器RAM的讀出地址也被置0。 D4 D3 D2 消除顯示緩沖器RAM的方式 1 0
19、 X 將顯示RAM全部清0 1 1 0 將顯示RAM全部消20H 1 1 1 將顯示RAM全部置1 0 X X 不清除 CA(Do)是總清除的特征位,它兼有CD和CF的聯(lián)合效用。當(dāng)CA=1時(shí),對(duì)顯示RAM的清除方式由D3和D2的編碼確定。 清除顯示緩沖揣RAM大約需100μs時(shí)間,在此時(shí)間,CPU不能向顯示緩沖器ARM寫(xiě)入數(shù)據(jù)。 (8)結(jié)束中斷/錯(cuò)誤方式設(shè)置命令 3.狀態(tài)字節(jié) 8279的狀態(tài)字節(jié)用于鍵輸入和選通輸入方式中,指出FIFO RAM中的字符個(gè)數(shù)和是否出錯(cuò),狀態(tài)字的格式如下: D7
20、D6 D5 D4 D3 D2 D1 D0 DU S/E O U F N N N D2 D1 D0表示FIFO RAM中數(shù)據(jù)的個(gè)數(shù)。 D3在F=1時(shí),表示FIFORAM已滿(存有8個(gè)鍵入數(shù)據(jù))。 D4在FIFO RAM中沒(méi)有輸入字符時(shí),CPU對(duì)FIFO RAM讀則置“1”。 D5當(dāng)FIFO已滿,又輸入一個(gè)字符時(shí)發(fā)生溢出置“1”。 D6的S/E用于傳感器矩陣輸入方式,幾個(gè)傳感器同時(shí)閉合時(shí)置“1”。 D7在清除命令執(zhí)行期間該位為“1”,D7為1時(shí)對(duì)顯示RAM寫(xiě)操
21、作無(wú)效。 4. 輸入數(shù)據(jù)格式 在鍵掃描方式中,鍵輸入數(shù)據(jù)格式如下: D7 D6 D5 D4 D3 D2 D1 D0 CNHL SHIFT SCAN SCAN SCAN RETURN RETURN RETURN D2~D0指出輸入鍵所在的列號(hào)(RL0-7狀態(tài)確定)。 D5~D3指出輸入鍵所在的行號(hào)(掃描計(jì)數(shù)值)。 D6控制鍵SHIFT的狀態(tài)。(內(nèi)部上拉,按下為0) D7控制鍵CNTL的狀態(tài), (內(nèi)
22、部上拉,按下為0) 控制鍵CNTL,SHIFT為單獨(dú)的開(kāi)關(guān)鍵。CNTL與其它鍵連用作特殊命令鍵,SHIFT可作為上下檔控制鍵。當(dāng)SHIFT接按鍵(對(duì)地),可與鍵盤(pán)(8x 8)配合,使鍵盤(pán)各鍵具有上、下鍵功能,這樣鍵盤(pán)可擴(kuò)充到128個(gè)鍵。CNTL線可接一鍵用作控制鍵,這樣,最多可擴(kuò)充到256鍵。 在傳感器掃描方式或選通輸入方式中,輸入數(shù)據(jù)即為RL0~RL7的輸入狀態(tài)。 D7 D6 D5 D4 D3 D2 D1 D0 RL7 RL6 RL5 RL4 RL3 RL2 RL1
23、 RL。 程序框圖 按程序流程圖2編制實(shí)驗(yàn)程序,輸入源程序, 匯編、鏈接程序,執(zhí)行程序,檢查結(jié)果。 圖2 程序流程圖 Z8279 EQU 239H D8279 EQU 238H LEDMOD EQU 00 ;左邊輸入,八位顯示外部譯碼八位顯示 LEDFEQ EQU 38H ;掃描頻率 CODE SEGMENT ASSUME CS:CODE,DS:CODE START: ;初始化 PUSH CS POP DS
24、 MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL MOV AL,LEDFEQ OUT DX,AL MOV DX,D8279 MOV AL,7FH OUT DX,AL MOV DX,D8279 MOV AL,7FH OUT DX,AL MOV DX,D8279 MOV AL,7DH OUT DX,AL MOV
25、 DX,D8279 MOV AL,7FH OUT DX,AL MOV DX,D8279 MOV AL,70H OUT DX,AL MOV DX,D8279 MOV AL,5EH OUT DX,AL MOV DX,D8279 MOV AL,79H OUT DX,AL MOV DX,D8279 MOV AL,77H
26、OUT DX,AL ;以上為寫(xiě)(AEDK8688) NOP MOV DX,Z8279 MOV AL,0C2H OUT DX,AL ;置空FIFO寄存器 WAIIT: NOP IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H JE WAIIT ;FIFO正在清除期間則跳轉(zhuǎn)等待 MOV AL,BL AND AL,0
27、FH CMP AL,00H JE WAIIT ;無(wú)鍵按下則等待 MOV AL,40H ;寫(xiě) 讀FIFO RAM命令字 OUT DX,AL MOV DX,D8279 ;讀入FIFO RAM內(nèi)容 IN AL,DX NOP CMP AL,15H ;是結(jié)束符則結(jié)束 JE FINI NOP ;查表,將鍵碼放入
28、AL中 LEA BX,LED XLAT MOV DX,D8279 ;將AL中內(nèi)容寫(xiě)到數(shù)碼管上 OUT DX,AL MOV DX,Z8279 ;清FIFO RAM寄存器 MOV AL,0C2H OUT DX,AL JMP WAIIT ;等待下一次鍵輸入 FINI: MOV DX,Z8279 ;清FIFO寄存器并關(guān)蜂鳴器 MOV AL,0C2H OUT DX,AL JMP $ L
29、ED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H DB 5EH,79H,71H CODE ENDS END START 溫度控制程序 CSAD EQU 208H Z8279 EQU 239H D8279 EQU 238H Z8255 EQU 21EH Z8255A EQU 218H Z8255C EQU 21CH LED
30、MOD EQU 00 ;左邊輸入,八位顯示外部譯碼八位顯示 LEDFEQ EQU 38H ;掃描頻率 LEDCLS EQU 0C1H;清除顯示RAM READKB EQU 40H COUNT EQU 8 CODE SEGMENT ASSUME CS:CODE,DS:CODE START: PUSH CS POP DS ;指定SI到8100:1000,存放臨時(shí)溫度值 MOV SI,
31、1000H MOV DX,Z8255 ;設(shè)置A口為輸入,C口為輸出 MOV AL,92H OUT DX,AL MOV DX,Z8255C MOV AL,0FFH OUT DX,AL CALL DELAY CALL DELAY MOV DX,Z8279 ;初始化827
32、9 MOV AL,LEDMOD OUT DX,AL MOV AL,LEDFEQ OUT DX,AL MOV AL,LEDCLS OUT DX,AL MOV AL,0 MOV [SI],AL BEGIN: MOV BX,0 MOV CL,COUNT MOV
33、 CH,0 BB: MOV DX,CSAD ;采樣A/D值 MOV AX,0 OUT DX,AL CALL DELAY IN AL,DX ADC BX,AX ;求平均值 LOOP BB MOV AX,BX RCR AX,1 RCR AX,1
34、 RCR AX,1 CALL CHANGTOBCD ;轉(zhuǎn)化為十進(jìn)制的溫度值 PUSH AX CALL DIS CALL SET_T POP AX MOV BL,[SI] CMP AL,BL JA DOWN ;輸入值與實(shí)際值比較,小于則加熱,大于則停止加熱 MOV AL,0H
35、 JMP UP DOWN: MOV AL,40H UP: MOV DX,Z8255C OUT DX,AL JMP BEGIN SET_T PROC NEAR CALL READ_KEY CMP AL,0 JNZ THE_KEY JMP IN_END THE_KEY: MOV AL
36、,BL CMP AL,0DH ;IF BEING DKEY, START TO SET JZ ST_K JMP IN_END ST_K: CALL READ_KEY CMP AL,0FFH JNZ ST_K %H: MOV AL,BL MOV CH,BL CMP
37、 AL,0AH JNC ST_K CALL DIS_CHAR1 ST_L: CALL READ_KEY CMP AL,0FFH JNZ ST_L %L: MOV AL,BL MOV CL,BL CMP AL,0AH JNC ST_L CALL DIS_CHAR2 RD_E:
38、 CALL READ_KEY CMP AL,0FFH JNZ RD_E MOV AL,BL CMP AL,0EH JNZ RD_E END_ST: MOV AL,CH MOV BL,CL MOV CL,4H ROR AL,CL ADD AL,BL
39、 MOV [SI],AL IN_END: RET SET_T ENDP READ_KEY PROC NEAR MOV DX,Z8279 IN AL,DX ;讀8279狀態(tài) AND AL,07H ;屏蔽D7-D3 JNZ GETVAL ;判斷是否有鍵輸入 MOV AL,0H ;置標(biāo)志(無(wú)鍵輸入) JMP
40、NKBHIT GETVAL: MOV AL,READKB ;讀 FIFO RAM 命令 OUT DX,AL MOV DX,D8279 IN AL,DX ;讀鍵 AND AL,3FH ;屏蔽 SHIFT 和 CTRL 鍵 MOV BL,AL ;置返回鍵值 MOV AL,0FFH ;置標(biāo)志(有鍵輸入) NKBHIT: RET
41、 READ_KEY ENDP DELAY PROC NEAR PUSH CX MOV CX,0F00H LOOP $ POP CX RET DELAY ENDP CHANGTOBCD PROC NEAR ;BCD碼轉(zhuǎn)換子程序 MOV BL,3 MUL BL MOV BL,10 DIV BL AAM
42、 ;非壓縮BCD碼乘法調(diào)整指令 MOV BL,AL MOV AL,AH MOV CL,04H ROR AL,CL XOR AL,BL RET CHANGTOBCD ENDP DIS_CHAR1 PROC NEAR PUSH AX MOV DX,Z8279 MOV AL,91H OUT DX,AL
43、 POP AX LEA BX,LED XLAT MOV DX,D8279 OUT DX,AL RET DIS_CHAR1 ENDP DIS_CHAR2 PROC NEAR PUSH AX MOV DX,Z8279 MOV AL,90H OUT DX,AL POP AX LEA
44、 BX,LED XLAT MOV DX,D8279 OUT DX,AL RET DIS_CHAR2 ENDP DIS PROC NEAR ;顯示子程序 MOV BL,AL ;將AL中內(nèi)容寫(xiě)到數(shù)碼管上 AND AL,0FH PUSH AX MOV DX,Z8279 MOV AL,96H
45、 OUT DX,AL POP AX PUSH BX LEA BX,LED XLAT POP BX MOV DX,D8279 OUT DX,AL CALL DELAY MOV AL,BL MOV CL,04H ROR AL,CL
46、 AND AL,0FH LEA BX,LED XLAT MOV DX,D8279 OUT DX,AL CALL DELAY CALL DELAY RET DIS ENDP LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H CODE ENDS EN
47、D START 小結(jié) 項(xiàng)目二 溫度控制設(shè)計(jì) 要求 編制程序,將溫度控制在某一設(shè)定值。 目的 學(xué)會(huì)溫度控制的一種方法。 電路及連線 溫度控制電路連線圖如圖3所示。 圖3 溫度控制電路連線圖 T-DETECT接0809的IN0 口,T-CON接8255的PC6。 CS0809接208H, CS8279已固定接至238H。,CS8255接218H。 溫度通過(guò)AD590溫度傳感集成芯片,將溫度變化量轉(zhuǎn)換成電壓值變化量,經(jīng)過(guò)OP07一級(jí)跟隨后輸入到電壓放大電路,放大后的信號(hào)輸入到A/D轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),利用CPU采集并存儲(chǔ)采集到的數(shù)據(jù)。 在
48、上圖中,W8為放大倍數(shù)調(diào)節(jié)電位器,系統(tǒng)出廠時(shí)已設(shè)定好,用戶不要隨意調(diào)節(jié);W7(圖中未標(biāo)出)為測(cè)溫系統(tǒng)零點(diǎn)調(diào)節(jié),用戶可以調(diào)節(jié)系統(tǒng)零點(diǎn)。 設(shè)定溫度為0攝氏度時(shí)變換放大電路送出的模擬量為0V,此時(shí)A/D輸出的數(shù)字量為00H;溫度為76.5攝氏度時(shí)變換放大電路送出4.9805V電壓,此時(shí)A/D輸出的數(shù)字量為FFH,即每0.3攝氏度對(duì)應(yīng)1LSB變化量。 編寫(xiě)程序使用八段數(shù)碼管顯示當(dāng)前的溫度??梢詫?duì)比溫度計(jì)的顯示值和數(shù)碼管的顯示值。平臺(tái)出廠時(shí)已依據(jù)標(biāo)準(zhǔn)調(diào)整好了放大器的增益和零位。應(yīng)注意,由于熱慣性的影響及溫度計(jì)顯示的滯后因素,若要精確觀察某溫度點(diǎn)的測(cè)量值,在加熱到觀察溫度點(diǎn)后,應(yīng)停止加熱,等待溫度計(jì)示
49、值穩(wěn)定后,再觀察記錄結(jié)果。若選區(qū)觀察點(diǎn)溫度較高,還應(yīng)相應(yīng)延長(zhǎng)等待時(shí)間。 需要說(shuō)明的是,由于溫度計(jì)和溫度采樣芯片AD590的采樣點(diǎn)不同,理論計(jì)算值同顯示值略有偏差。 平臺(tái)利用IC溫度傳感器AD590作為測(cè)溫器,AD590是AD公司生產(chǎn)的一種精度和線性度較好的雙端集成溫度傳感器,其輸出電流與絕對(duì)溫度有關(guān),對(duì)于電源電壓從5-10V變化只引起1A最大電流的變化或1攝氏度等效誤差。 圖4 溫度傳感部分 圖4給出了用于獲得正比于絕對(duì)溫度的輸出電流的基本溫度敏感電路,當(dāng)溫度有10℃的變化時(shí)輸出電壓變化為20mV,即該電路M點(diǎn)電壓隨溫度變化為2mV/℃。將溫度傳感器輸出的小信號(hào)跟隨放大32倍左右后,送至8位A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字量,編制程序,微控制器采集、顯示和控制溫度。 當(dāng)溫度超過(guò)報(bào)警溫度76.5攝氏度時(shí)報(bào)警,此時(shí),輸出電壓約為5.0V左右。通過(guò)電壓比較器接通硬件報(bào)警電路報(bào)警。輸入A/D的模擬信號(hào)有過(guò)壓保護(hù),不會(huì)損壞A/D轉(zhuǎn)換器。在實(shí)驗(yàn)平臺(tái)硬件中,已有安全設(shè)計(jì),即加熱溫度不會(huì)超過(guò)90℃。 程序框圖 按程序流程圖5編制程序,輸入源程序, 匯編、鏈接程序,執(zhí)行程序,檢查結(jié)果。 開(kāi) 始 初始化子程序 設(shè)置溫度 加 熱 顯示溫度 設(shè)置溫度大于實(shí)際溫度 停止加熱 Y N 圖5程序流程圖
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 植樹(shù)問(wèn)題講課
- 小小圖書(shū)館賈世喜
- 小班數(shù)學(xué):變得一樣多
- 蘇教版三年級(jí)數(shù)學(xué)上冊(cè)教學(xué)ppt課件58:解決問(wèn)題的策略復(fù)習(xí)
- 小學(xué)科學(xué)六下《拓展與應(yīng)用》-公開(kāi)課一等獎(jiǎng)ppt課件
- 高中英語(yǔ)人教版選修七Unit-2-Robots-ppt課件
- 第九章長(zhǎng)期負(fù)債課件
- 皮膚免疫系統(tǒng)課件
- 辦公樓施工現(xiàn)場(chǎng)消防安全管理要求規(guī)范課件
- freeroi在功能磁共振roi分析中的應(yīng)用
- 《永遇樂(lè)·京口北固亭懷古》用典講解課件
- 《秋天的雨》微課課件
- 護(hù)患溝通技巧-課件
- 《高等數(shù)學(xué)B》第十章___微分方程與差分方程__第6節(jié)__差分與差分方程的概念_、……課件
- 英語(yǔ)(人教版)九年級(jí)總復(fù)習(xí)題型訓(xùn)練補(bǔ)全對(duì)話(含最新原創(chuàng)題)課件