評(píng)分系統(tǒng)課程設(shè)計(jì)微機(jī)接口課程設(shè)計(jì)報(bào)告_第1頁
評(píng)分系統(tǒng)課程設(shè)計(jì)微機(jī)接口課程設(shè)計(jì)報(bào)告_第2頁
評(píng)分系統(tǒng)課程設(shè)計(jì)微機(jī)接口課程設(shè)計(jì)報(bào)告_第3頁
評(píng)分系統(tǒng)課程設(shè)計(jì)微機(jī)接口課程設(shè)計(jì)報(bào)告_第4頁
評(píng)分系統(tǒng)課程設(shè)計(jì)微機(jī)接口課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)報(bào)告20082009 學(xué)年 第 1 學(xué)期課程 微機(jī)原理與接口技術(shù) 課程設(shè)計(jì)名稱競(jìng)賽評(píng)分系統(tǒng)學(xué)生姓名張進(jìn)學(xué)號(hào)05專業(yè)班級(jí)06網(wǎng)工(2)班指導(dǎo)教師 肖連軍 評(píng) 分 系 統(tǒng)一、題義分析及解決方案1 題意需求分析題目要求是用8086接口芯片設(shè)計(jì)一個(gè)四評(píng)委使用的評(píng)分系統(tǒng),接受四個(gè)評(píng)委的打分,輸出的是平均得分。由題目要求分析如下:(1)題目要求四個(gè)評(píng)委給出自己的打分,可知設(shè)計(jì)的第一步就是主持人給出一個(gè)開始打分的指令,否則任何打分都是無效的;(2)評(píng)委們接到打分指令后即可為選手輸入分?jǐn)?shù), 先設(shè)想用通用可編程鍵盤/顯示接口芯片INTEL8279與小鍵盤結(jié)合實(shí)現(xiàn)該步;(3)接收所有評(píng)委

2、的打分到指定緩沖區(qū)后,開始對(duì)數(shù)據(jù)進(jìn)行處理,求出平均分;(4)將(3)步求出的平均分顯示出來。綜合題目要求分析提出以下四個(gè)問題:(1)如何實(shí)現(xiàn)主持人發(fā)出指令表示評(píng)分結(jié)束? (2)用什么來作為外設(shè)讓評(píng)委進(jìn)行打分?(3)怎樣求平均分? (4)采用什么設(shè)備將平均分顯示出來? 2 問題解決方法及思路基于以上問題分析此評(píng)分系統(tǒng)是由四個(gè)評(píng)委組成的一個(gè)評(píng)分系統(tǒng)。對(duì)每位評(píng)委給出的分?jǐn)?shù)進(jìn)行累加,并求出平均分。評(píng)委分?jǐn)?shù)范圍是010的整數(shù),將4位評(píng)委給出的分?jǐn)?shù)累加,由于最高分為10分,則用4位二進(jìn)制就可以表示每位評(píng)委的分?jǐn)?shù),用8279的RL0RL7八位連接小鍵盤,將評(píng)委的分?jǐn)?shù)保存到8279的緩沖寄存器中,可同時(shí)將4位

3、評(píng)委的分?jǐn)?shù)同時(shí)輸入。對(duì)求得平均分進(jìn)行分析,將4位評(píng)委累加后除以4即得到平均分?jǐn)?shù),除以4后將會(huì)出現(xiàn)小數(shù)部分如:0.0、0.25、0.50、0.75這4種情況,要將最后得分顯示在LED上,就要用4個(gè)LED顯示,其中第二個(gè)LED存在小數(shù)點(diǎn),故用八段LED顯示,3個(gè)顯示要分別進(jìn)行輸出,通過位選碼對(duì)每一位的顯示進(jìn)行控制,還要通過段選碼對(duì)每一個(gè)LED的每一段進(jìn)行控制。這樣,就能將整個(gè)最后得分顯示出來了,還要考慮在顯示后一位時(shí)前一位會(huì)不會(huì)消失的情況。以上四個(gè)問題解決其中(1)、(2)、(4)可以用硬件完成,而(3)即數(shù)據(jù)處理部分需由軟件來完成。2.1 硬件部分問題(1)可以利用小鍵盤上的任意一位輸入或邏輯開

4、關(guān)的一位來實(shí)現(xiàn)。問題(2)評(píng)委可通過很多設(shè)備進(jìn)行數(shù)據(jù)輸入,如小鍵盤、邏輯開關(guān)等,小鍵盤做輸入設(shè)備其電路簡(jiǎn)單,但對(duì)其編程接受輸入數(shù)據(jù)相對(duì)復(fù)雜。邏輯開關(guān)的電路相對(duì)復(fù)雜,但編程接受輸入數(shù)據(jù)的程序簡(jiǎn)單,且兼于實(shí)驗(yàn)室設(shè)備,故選擇小鍵盤作為輸入設(shè)備。輸入數(shù)據(jù)會(huì)很方便。問題(4)輸出設(shè)備既可用發(fā)光二極管也可用LED顯示器,但相對(duì)于前者,后者對(duì)結(jié)果的顯示一目了然,故本設(shè)計(jì)選擇LED顯示器作輸出設(shè)備。2.2 軟件部分 (1)讀數(shù)據(jù)程序:采用小鍵盤與8279芯片相結(jié)合,故可8279的相應(yīng)端口進(jìn)行合適的參數(shù)設(shè)置,數(shù)據(jù)端口地址為0B0H,控制端口的地址為0B1H。RLrr5RL7八位中最高位作為指令開關(guān)。(2)數(shù)據(jù)處

5、理:每次讀數(shù)據(jù)累加求和,并取數(shù)據(jù)整數(shù)和小數(shù)部分,從OUTA0OUTA3輸出到LED顯示器.當(dāng)四個(gè)評(píng)委均輸入完畢,將累加和采用邏輯右移2位的方式求平均分.在計(jì)算輸入的時(shí)候,用兩位輸入來控制一位數(shù)的輸入,將AL的值賦給中間變量TEMP,然后將TEMP*10,然后累加,求出輸入的數(shù),進(jìn)行和的累加。(3)數(shù)據(jù)輸出:平均分整數(shù)和小數(shù)部分分別輸出到LED.分析整數(shù)0-40之間的數(shù)除以4的小數(shù)部分, 平均分處理方法,(也可采用四舍五入的方法保留一位小數(shù))。 十進(jìn)制和二進(jìn)制和右移二位平均值十進(jìn)制整數(shù)二進(jìn)制整數(shù)小數(shù)部分00000001100.2500321000.500531100.75008410011110

6、510111.25113611011.5115711111.7511881000102210091001102.252103十進(jìn)制和二進(jìn)制和右移二位平均值十進(jìn)制整數(shù)二進(jìn)制整數(shù)小數(shù)部分101010102.52105111011102.752108151111113.253113201010010155101035100011401010001010101010100 表1-1:小數(shù)部分的求解方法見上表二、硬件設(shè)計(jì)2.1 選擇芯片8279 圖2-18279內(nèi)部邏輯框圖2.1.1 芯片8279在本設(shè)計(jì)中的作用8279連接4*4的鍵盤及8位顯示器的電路,即可顯示按下鍵對(duì)應(yīng)的鍵值。2.1.2 芯片827

7、9的功能分析生產(chǎn)廠家:Intel公司特性:Intel8279芯片是一種通用的可編程序的鍵盤、顯示接口器件,單個(gè)芯片就能完成鍵盤輸入和LED顯示控制兩種功能。其內(nèi)部結(jié)構(gòu)如圖6-10-1所示。8279包括鍵盤輸入和顯示輸出兩個(gè)部分。 鍵盤部分提供的掃描方式,可以和64個(gè)按鍵或傳感器的陣列相連。能自動(dòng)消除開關(guān)抖動(dòng)以及N個(gè)鍵同時(shí)按下的保護(hù)。 顯示部分按掃描的方式工作??梢燥@示8或16位LED顯示塊。 一、8279電路工作原理 根據(jù)結(jié)構(gòu)框圖,分別介紹各部分電路工作原理。 1.I/O控制及數(shù)據(jù)緩沖器 數(shù)據(jù)緩沖器是雙向緩沖器,連接內(nèi)、外總線,用于傳送CPU和8279之間的命令或數(shù)據(jù);I/O控制線是CPU對(duì)8

8、279進(jìn)行控制的引線。CS是8279的片選信號(hào),CS=0時(shí),8279才被允許讀出或?qū)懭胄畔?。WR、RD為來自CPU的控制信號(hào)。 A0用于區(qū)別信息特性:A0=1時(shí),表示數(shù)據(jù)緩沖器輸入為指令、輸出為狀態(tài)字;A=0時(shí),輸入、輸出皆為數(shù)據(jù)。 2.控制與定時(shí)寄存器及定時(shí)控制 控制與定時(shí)寄存器用來寄存鍵盤及顯示的工作方式,以及由CPU編程的其它操作方式。這些寄存器一旦接受并鎖存送來的命令,就通過譯碼產(chǎn)生相應(yīng)的信號(hào),從而完成相應(yīng)的控制功能。 定時(shí)控制包含基本記數(shù)鍵。首級(jí)計(jì)數(shù)器是一個(gè)可編程的N級(jí)計(jì)數(shù)器。N可以231之間由軟件編程,以便從外界時(shí)鐘CLK分頻得到內(nèi)部所需要的100KHZ時(shí)鐘。然后再經(jīng)過分頻為鍵盤掃

9、描提供適當(dāng)?shù)闹鹦袙呙桀l率和顯示掃描時(shí)間。 3.掃描計(jì)數(shù)器 掃描計(jì)數(shù)器有兩種工作方式。按編碼方式工作時(shí),計(jì)數(shù)器作二進(jìn)制記數(shù)。4位記數(shù)狀態(tài)從掃描線SL0SL3輸出,經(jīng)外部譯碼器譯碼后,為鍵盤和顯示器提供掃描線;按譯碼方式工作時(shí),掃描計(jì)數(shù)器的最低二位被譯碼后,從SL0SL3輸出。因此,SL0SL3提供了4中取1的掃描譯碼。 4.回復(fù)緩沖器、鍵盤去抖及控制 來自RL0RL3的8根回復(fù)線的回復(fù)信號(hào),由回復(fù)緩沖器緩沖并鎖存。 在鍵盤工作方式中,回復(fù)線作為行列式鍵盤的行列輸入線。在逐行列輸入時(shí),在逐行列掃描時(shí),回復(fù)線用來搜索每一行列中閉合的鍵。當(dāng)某一鍵閉合時(shí),去抖電路被置位,延時(shí)等待10ms后,再檢驗(yàn)該鍵是

10、否繼續(xù)閉和,并將該鍵的地址和附加的移位、控制狀態(tài)一起形成鍵盤數(shù)據(jù)被送入8279內(nèi)部FIFO(先進(jìn)先出)存儲(chǔ)器。鍵盤數(shù)據(jù)格式如下: D7 D6 D5 D4 D3 D2 D1 D0 控制移位掃描回復(fù) 控制和移位(D6、D7)的狀態(tài)由兩個(gè)獨(dú)立的附加開關(guān)決定,而掃描(D5、D4、D3)和回復(fù)(D2、D1、D0)則是被按鍵置位的數(shù)據(jù)。D5、D4、D3來自動(dòng)掃描計(jì)數(shù)器,是按下鍵的行列編碼,而(D7D7D7)則來自行/列計(jì)數(shù)器,它們是根據(jù)回復(fù)信號(hào)而確定的行/列編碼。 在傳感器開關(guān)狀態(tài)矩陣方式中,回復(fù)線的內(nèi)容直接被送往和相應(yīng)的傳感器RAM(即FIFO存儲(chǔ)器)。在選通輸入方式中,回復(fù)線的內(nèi)容在CNTL/STB線

11、的脈沖上升沿被送入FIFO存儲(chǔ)器。 5.FIFO/傳感器及其狀態(tài)寄存器FIFO/傳感器RAM是一個(gè)雙重功能的88RAM。 在鍵盤或選通方式工作時(shí),它是FIFO存儲(chǔ)器,其輸入或讀出遵循先入先出的原則。FIFO狀態(tài)寄存器用于存放FIFO的工作狀態(tài)。例如,RAM是滿還是空;其中存有多少數(shù)據(jù);是否操作出錯(cuò)等。當(dāng)FIFO存儲(chǔ)器不空,狀態(tài)邏輯將產(chǎn)生IRQ=1信號(hào)向CPU申請(qǐng)中斷。 在傳感器矩陣方式工作時(shí),這個(gè)存儲(chǔ)器以是傳感器不是存儲(chǔ)器。它存放著傳感器矩陣中的每一個(gè)傳感器狀態(tài)。在此方式中,若檢索出傳感器的變化,IRQ信號(hào)變?yōu)楦唠娖?,向CPU申請(qǐng)中斷。 6.顯示RAM和顯示地址寄存器 顯示RAM用來存儲(chǔ)顯示數(shù)

12、據(jù)。容量為168位。在顯示過程中,存儲(chǔ)的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分別為A、B兩組,OUTA03和OUTB03可以單獨(dú)送數(shù),也可以組成一個(gè)8位的字。顯示寄存器的輸出與顯示掃描配合,不斷從顯示RAM中讀出顯示數(shù)據(jù),同時(shí)輪流驅(qū)動(dòng)被選中的顯示器件,以達(dá)到多路復(fù)用的目的,使顯示器件呈現(xiàn)穩(wěn)定的顯示狀態(tài)。 顯示地址寄存器用來寄存由CPU進(jìn)行讀/寫顯示RAM的地址,它可以由命令設(shè)定,也可以設(shè)置成每次讀寫或?qū)懭胫笞詣?dòng)遞減。 二.管腳、引線與功能 8279采用40引腳封裝,其管腳、引線功能如圖6-10-2所示。其引腳功能如下: D0D7(數(shù)據(jù)總線):雙向、三態(tài)總線,和系統(tǒng)數(shù)據(jù)總線相連;用于CPU

13、和8279間的數(shù)據(jù)/命令傳遞。 CLK(系統(tǒng)時(shí)鐘):輸入線,為8279提供內(nèi)部時(shí)鐘的輸入端。 RESET(復(fù)位):輸入線,當(dāng)RESET=1時(shí),8279復(fù)位,其復(fù)位狀態(tài)為: 16個(gè)字符顯示; 編碼掃描鍵盤-雙鍵鎖定; 程序時(shí)鐘編碼為31。 CS(片選):輸入線,當(dāng)CS=0時(shí)8279被選中,允許CPU對(duì)其讀、寫,否則被禁止。 A0(數(shù)據(jù)選擇):輸入線。當(dāng)A0=1時(shí)CPU寫入數(shù)據(jù)為命令字,讀出數(shù)據(jù)為狀態(tài)字;A0=0時(shí)CPU讀、寫的字節(jié)均為數(shù)據(jù)。 RD、WR(讀、寫信號(hào)):輸入線。低電平有效,來自CPU的控制信號(hào),控制8279的讀、寫操作。 IRQ(中斷請(qǐng)求):輸出線。高電平有效。 在鍵盤工作方式中,

14、當(dāng)FIFO/傳感器RAM存有數(shù)據(jù)時(shí),IRQ為高電平。CPU每次從RAM中讀出數(shù)據(jù)時(shí),IRQ變?yōu)榈碗娖?。若RAM中仍有數(shù)據(jù),則IRQ再次恢復(fù)高電平。 在傳感器工作方式中,每當(dāng)檢測(cè)到傳感器狀態(tài)變化時(shí),IRQ就出現(xiàn)高電平。 SL0SL3(掃描線):輸出線。用來掃描鍵盤和顯示器。它們可以編程設(shè)定為編碼(4中取1)或譯碼輸出(16取1)。 RL0RL7(回復(fù)線):輸入線。它們是鍵盤矩陣或傳感矩陣的列(或行)信號(hào)輸入線。 SHIFT(移位信號(hào)):輸入線、高電平有效。該輸入信號(hào)是鍵盤數(shù)據(jù)的最高位(D7),通常用來擴(kuò)充鍵開關(guān)的功能,作為控制功能鍵用。 在選通輸入方式時(shí),該信號(hào)的上升沿可將來自RL0RL7的數(shù)據(jù)

15、存入FIFO RAM中。 在傳感器輸入下,該信號(hào)無效。 OUTA0OUTA3(A組顯示信號(hào)):輸出線。 OUTB0OUTB3(B組顯示信號(hào)):輸出線。 這兩組引線都是顯示數(shù)據(jù)輸出線,與多位數(shù)字顯示的掃描線SL0SL3同步,兩組可以獨(dú)立使用,也可以合并使用。 BD(顯示消隱):輸出線。低電平有效。該信號(hào)在數(shù)字切換顯示或使用消隱命令時(shí),將顯示消隱。 三、命令格式與命令字 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è)置命令字 命令

16、格式: D7 D6 D5 D4 D3 D2 D1 D0 000DDKKK 其中: D7、D6、D5=000方式設(shè)置命令特征位。 D D(D4、D3):來設(shè)定顯示方式,其定義如下: 00:8個(gè)字符顯示,左入口 00:16個(gè)字符顯示,左入口 00:8個(gè)字符顯示,右入口 00:16個(gè)字符顯示,右入口 所謂左入口,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個(gè)向右順序排列; 所謂右入口,即顯示位置從最右一位(最低位)開始,以后逐次輸入的顯示字符時(shí),已有的顯示字符逐個(gè)向左順序移動(dòng)。 KKK(D2、 D1、 D0):用來設(shè)定七種鍵盤、顯示工作方式: 000 編碼掃描鍵盤,雙鍵鎖定 001

17、譯碼掃描鍵盤,雙鍵鎖定 010 編碼掃描鍵盤,N鍵輪回 011 譯碼掃描鍵盤,N鍵輪回 100 編碼掃描傳感器矩陣 101 譯碼掃描傳感器矩陣 110 選通輸入,編碼顯示掃描 111 選通輸入,譯碼顯示掃描 雙鍵鎖定與N鍵輪回是多鍵按下時(shí)的兩種不同的保護(hù)方式。雙鍵鎖定為兩鍵同時(shí)按下提供的保護(hù)方法。再消顫周期里,如果有兩鍵同時(shí)按下,則只有其中一個(gè)鍵彈起,而另一個(gè)鍵保持在按下位置時(shí),才被認(rèn)可。N鍵輪回為N鍵同時(shí)按下的保護(hù)方法。當(dāng)有若干鍵按下時(shí),鍵盤掃描能夠根據(jù)發(fā)現(xiàn)他們的順序,依次將它們的狀態(tài)送入FIFO RAM中。 2.程序時(shí)鐘命令 命令格式: D7 D6 D5 D4 D3 D2 D1 D0 00

18、1PPPPP 其中: D7、D6、D5=001為時(shí)鐘命令特征位。 PPPPP( D4、D3、D2、D1、D0)用來設(shè)定外部輸入CLK端的時(shí)鐘進(jìn)行分頻的分頻數(shù)N。N取值為231。例如外部時(shí)鐘頻率為2MHZ,PPPPP被置為10100(N=20),則對(duì)輸入的外部時(shí)鐘20分頻,以獲得8279內(nèi)部要求的100KMZ的基本頻率。 3.讀FIFO/傳感器RAM命令 命令格式: D7 D6 D5 D4 D3 D2 D1 D0 010AIXAAA 其中: D7D6D5 =010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式時(shí)使用。在CPU讀傳感器RAM之前,必須使用這條命令來設(shè)定傳感器RAM中的

19、8個(gè)地址(每個(gè)地址一個(gè)字節(jié))。 AAA(D2、D1、D0)為傳感器RAM中的八個(gè)字節(jié)地址。 AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出傳感器RAM后地址自動(dòng)加1使地址指針指向下一個(gè)存儲(chǔ)單元。這樣,下一個(gè)數(shù)據(jù)便從下一個(gè)地址讀出,而不必重新設(shè)置讀FIFO/傳感器RAM命令。 在鍵盤工作方式中,由于讀出操做嚴(yán)格按照先入先出順序,因此,不需使用此命令。 4.讀顯示RAM命令 命令格式: D7 D6 D5 D4 D3 D2 D1 D0 011AIAAAA 其中: D7D6D5 =011為讀顯示RAM命令字的特征位。該命令用來設(shè)定將要讀出的顯示RAM地址。 AAAA(D3、D2、D1、D0)用來

20、尋址顯示RAM命令字的特征位。由位顯示RAM中有16個(gè)字節(jié)單元故需要4位尋址。 AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出后地址自動(dòng)加1指向下一地址。 5.寫顯示RAM命令 命令格式: D7 D6 D5 D4 D3 D2 D1 D0 100AIAAAA 其中: D7D6D5 =100為寫顯示RAM命令字的特征位。在寫顯示器RAM之前用該命令用來設(shè)定將要寫入的顯示RAM地址。 AAAA(D3、D2、D1、D0)為將要寫入的存儲(chǔ)單元地址。 AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次寫入后地址自動(dòng)加1指向下一次寫入地址。 6.顯示禁止寫入/消隱命令特征位 命令格式: D7 D6 D5

21、 D4 D3 D2 D1 D0 101XIW AIW BBL ABL B 其中: D7D6D5 =101為顯示禁止寫入/消隱命令特征位。 IW/A、IW/B(D3、D2)為A、B組顯示RAM寫入屏蔽位。由于顯示寄存器分成A、B兩組,可以單獨(dú)送數(shù),故用兩位來分別屏蔽。當(dāng)A組的屏蔽位D3=1時(shí),A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時(shí),不會(huì)影響A的顯示。這種情況通常在采用雙4位顯示器時(shí)使用。因?yàn)閮蓚€(gè)雙四位顯示器是相互獨(dú)立的。為了給其中一個(gè)雙四位顯示器輸入數(shù)據(jù)而又不影響另一個(gè)四位顯示器,因此必須對(duì)另一組的輸入實(shí)行屏蔽。 BL/A、BL/B(D1、D0)為消隱顯示位。用于對(duì)兩組顯

22、示輸出消隱。若BL=1時(shí),對(duì)應(yīng)組的顯示輸出被消隱。當(dāng)BL=0時(shí),則恢復(fù)顯示。 7.清除命令 命令格式: D7 D6 D5 D4 D3 D2 D1 D0 110CDCDCDCFCA 其中: D7D6D5 =110清除命令特征位。 CDCDCD(D4D3D2)用來設(shè)定清除顯示RAM方式。共有四種消除方式,見表6-10-1。 CF(D1)用來置空FIFO存儲(chǔ)器,當(dāng)=1時(shí),執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使中斷輸出線復(fù)位。同時(shí),傳感器RAM的讀出地址也被置0。 CA(D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CD=1時(shí),對(duì)顯示的清除方式由D3、D2的編碼決定。 清除顯示RAM約需16

23、0S。在此期間FIFO狀態(tài)時(shí)的最高位DU=1,表示顯示無效。CPU不能向顯示RAM寫入數(shù)據(jù)。 8.結(jié)束中斷/錯(cuò)誤方式設(shè)置命令 命令格式: D7 D6 D5 D4 D3 D2 D1 D0 111E 其中: D7D6D5 =111為該命令的特征位。此命令有兩種不同的作用。 (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)遞增特征已

24、置位(AI=1),則CPU對(duì)傳感器RAM的讀出并不能清除IRQ,而必須通過給8279寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令才能使IRQ變低。因此在傳感器工作方式中,此命令用來結(jié)束傳感器RAM的中斷請(qǐng)求。 (2)作為特定錯(cuò)誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令(E=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)和阻止寫入FIFO RAM。 上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確

25、定,輸入8279后能自動(dòng)尋址相應(yīng)的命令寄存器。因此,寫入命令字時(shí)唯一的要求是使數(shù)據(jù)選擇信號(hào)A0=1。 四、狀態(tài)格式與狀態(tài)字 8279的FIFO狀態(tài)字,主要用于鍵盤和選通工作方式,以指示FIFO RAM中的字符數(shù)和有無錯(cuò)誤發(fā)生。其格式為: D7 D6 D5 D4 D3 D2 D1 D0 DUS/EOUFNNN 其中: DU( D7)為顯示無效特征位。當(dāng)DU=1表示顯示無效。當(dāng)顯示RAM由于清除顯示或全清命令尚未完成時(shí),DU=1。 表6-10-1 CD位定義的清除方式 D4 D3 D2 清除方式 0將顯示RAM全部清零 10將顯示RAM清成20H(A組=0010;B組=0000) 11將顯示RAM

26、全部置1 0不清除(若CA=1,則D3、D2仍有效) 4、芯片8279的技術(shù)參數(shù) 表 2-10 2.2 選擇芯片LED 2.2.1 LED在本設(shè)計(jì)中的作用顯示最后得分,共三塊,一塊用來顯示其整數(shù)部分的十位,一塊用來顯示其整數(shù)部分個(gè)位,另一塊用來顯示其小數(shù)部分(保留一位小數(shù))。2.2.2 LED的功能分析LED顯示電路較為簡(jiǎn)單,成本也較低,在功能單一的儀器儀表與機(jī)電設(shè)備中應(yīng)用較廣。但當(dāng)設(shè)備顯示的點(diǎn)或位較多時(shí),就需要采用一定的驅(qū)動(dòng)電路與相應(yīng)的驅(qū)動(dòng)方式。利用專用接口芯片如8255作為計(jì)算機(jī)芯片的端口擴(kuò)展,并通過軟件編程加外部驅(qū)動(dòng)實(shí)現(xiàn)。數(shù)字dpgfedcba二進(jìn)制編碼011000000C0H11111

27、1001F9H 210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91000011090H表2-2. LED顯示管段選碼編碼表2.2.3 LED數(shù)碼管的顯示方式(1)靜態(tài):數(shù)碼管顯示過程持續(xù)得到信號(hào),與數(shù)碼管接口的I/O口線為專用。特點(diǎn)是無閃爍,元器件多,占I/O線多,無須掃描,節(jié)省CPU時(shí)間,編程簡(jiǎn)單。(2)動(dòng)態(tài):數(shù)碼管顯示過程輪流得到信號(hào),與各數(shù)碼管接口的I/O口線為共用。特點(diǎn)是有閃爍,元器件少,占I/O線少,必須掃描,花費(fèi)CPU時(shí)間,編程復(fù)雜 (有多個(gè)LED時(shí)尤為突出)。

28、2.2.4 芯片LED的技術(shù)參數(shù) PcwIfVrIrIfp對(duì)應(yīng)型號(hào)散射顏色BT2352702551.52.5200SEL-10紅色BT14415291004050.52.5565綠色BT13415291004050.52.5585藍(lán)色消耗功率 PM150mW 最大工作電流 IFM100mA 正常工作電流 IF40mA 正向壓降 VF 1.8V 燃亮電壓為5v共陰極LED的PM300mW,IFM200 mA,IF60mA,VF 1.8V,VR5V,發(fā)紅光。LED的技術(shù)參數(shù)分析LED發(fā)光二極管的壓降一般為1.5-2.0V,其工作電流一般取10-20Ma,發(fā)光二極管可應(yīng)用于直流驅(qū)動(dòng)電路、交流驅(qū)動(dòng)電路

29、和脈沖驅(qū)動(dòng)電路。共陽極公共端接陽極,低電平有效(燈亮), 共陽極數(shù)碼管內(nèi)部發(fā)光二極管的陽極(正極)都聯(lián)在一起,此數(shù)碼管陽極(正極)在外部只有一個(gè)引腳共陰極公共端接陰極,高電平有效(燈亮),共陰極數(shù)碼管內(nèi)部發(fā)光二極管的陰極(負(fù)極)都聯(lián)在一起,此數(shù)碼管陰極(負(fù)極)在外部只有一個(gè)引腳2.3 小鍵盤2.3.1 小鍵盤在本設(shè)計(jì)中的作用評(píng)委通過小鍵盤置數(shù),輸入分?jǐn)?shù)。四個(gè)評(píng)委各個(gè)依次打分,系統(tǒng)讀取開關(guān)量,再將處理后的數(shù)據(jù)在LED上顯示出來。 圖2-32.3.2 小鍵盤的邏輯圖 如右圖: 2.4 選擇芯片74LS2402.4.1 74LS240芯片引腳圖2.4.2 74LS240技術(shù)參數(shù) 表2-13 74LS

30、240技術(shù)參數(shù)2.5 芯片比較 邏輯開關(guān) 小鍵盤連線較簡(jiǎn)單,以邏輯開關(guān)的上下切換來表示,易實(shí)現(xiàn),易觀察所輸入的是哪8位二進(jìn)制數(shù)據(jù)。用時(shí)短連線較復(fù)雜,實(shí)現(xiàn)需編程實(shí)現(xiàn)CPU對(duì)鍵盤電路的掃描,察看是否有鍵按下,是哪個(gè)鍵。掃描占用大量CPU時(shí)間,是CPU的效率大大降低。 表2-148255芯片74LS240和74LS2448279芯片可編程的并行接口芯片,有多種與外設(shè)及CPU的連接方法,來滿足不同應(yīng)用要求,減少器件數(shù)量支持字節(jié)數(shù)據(jù)的并行傳送,有3個(gè)8位I/O端口成本:通用且廉價(jià)以鎖存器接受和輸出數(shù)據(jù),不可編程。八緩沖器/線驅(qū)動(dòng)器/線接收器(反碼三態(tài)輸出)通用可編程鍵盤/顯示接口芯片,能同時(shí)完成鍵盤輸入

31、和顯示控制兩種功能。鍵盤接口電路可最多控制64個(gè)按鍵或傳感器組成的陣列,可自動(dòng)消除開關(guān)抖動(dòng)、自動(dòng)識(shí)別鍵碼并具有多鍵同時(shí)按下保護(hù)功能。顯示接口電路采用自動(dòng)掃描方式工作,最多可連接16位LED顯示器。采用該芯片設(shè)計(jì)鍵盤與顯示接口電路可簡(jiǎn)化程序,從而減少CPU運(yùn)行時(shí)間 表2-152.6 硬件總邏輯圖及其說明圖 2-5 實(shí)驗(yàn)硬件原理圖說明:由于實(shí)驗(yàn)室設(shè)備中很多芯片已經(jīng)集成,故給連線帶來很大方便性,使的連線簡(jiǎn)單了許多。8279的RL0RL7連接4*4鍵盤,SL0SL2三位用來74L138的輸入,輸出的8位作為L(zhǎng)ED的段選,OUTA0OUTA3四位作為芯片4511的輸入,輸出的7位作為L(zhǎng)ED的位選,827

32、9的數(shù)據(jù)DB0DB7與PCI卡的數(shù)據(jù)線連接,其中A0連接A0,CS連接CS0,讀寫信號(hào)的連接如圖。 三、程序流程圖3.1 主程序流程圖:開始初始化8279掃描按鍵KEYCOUNT+KEYCOUNT?=9按鍵轉(zhuǎn)換為鍵號(hào)CX加1CX?=2SUM=TEMP+ALCX=0TEMP=TEMP*10取最后兩位(小數(shù))存入AH將前6位移位(除4)存入AL輸出整數(shù)部分調(diào)用小數(shù)部分過程結(jié)束 N Y Y NN Y 3.2 處理小數(shù)子程序:3.3 掃描按鍵子過程:讀入數(shù)據(jù)后3位為1讀FIFO RAMCF=1返回CF=0進(jìn)入讀狀態(tài) 進(jìn)入設(shè)置清除命令清除顯示RAM清除完畢嗎?返回3.4 清除子過程:3.5 程序清單及注

33、釋:3 / 39文檔可自由編輯打印 .MODEL TINYPCIBAR3 EQU 1CH ;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址,也為DMA & 32 BIT+RAM板卡上的8237提供基地址)Vendor_ID EQU 10EBH ;廠商ID號(hào)Device_ID EQU 8376 ;設(shè)備ID號(hào) .STACK 100 .DATAIO_Bit8_BaseAddress DW ?msg0 DB BIOS不支持訪問PCI $msg1 DB 找不到Star PCI9052板卡 $msg2 DB 讀8位I/O空間基地址時(shí)出錯(cuò)$SUM DB 0H ;分?jǐn)?shù)和TEMP DB 0H ;中間變量 KEYCO

34、UNT DB ? ;按鍵數(shù)目COUNT DB ? ;乘10的時(shí)候,保存AL所用的中間變量LED_TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;不帶小數(shù)點(diǎn)的整數(shù) DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH LED_TBB DB 040H,079H,024H,030H,19H,12H,02H,078H ;帶小數(shù)點(diǎn)的整數(shù) DB 000H,10H,08H,03H,046H,021H,06H,0EHCMD_8279 DW 00B1H ;8279命令字、狀態(tài)字地址DATA_8279 DW 00B0H ;8279讀寫數(shù)據(jù)口的地址,由

35、于偏移地址則CS接PCI卡的CS5! .CODESTART: MOV AX,DATA MOV DS,AX NOP CALL InitPCI CALL ModifyAddress ;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址 CALL INIT8279 ;初始化子程序 MOV KEYCOUNT,0 MOV CX,0 ;-;主程序START1: CALL IfExit JZ START11 JMP ExitSTART11: CALL SCAN_KEY ;鍵掃描 JNC START1 ;沒有按鍵 XCHG AL,KEYCOUNT INC AL CMP AL,9 JNZ START2 MOV CX

36、,0 ;在進(jìn)入下一個(gè)數(shù)的輸入的時(shí)候,由于CX是判斷兩位輸入是一個(gè)數(shù),故要清零! MOV KEYCOUNT,0 CALL INIT8279_1 ;8個(gè)數(shù)碼塊全有字符顯示后,再按鍵,清除顯示 MOV AL,SUM ;計(jì)算部分 CMP AL,28H JNE NOTSHI MOV AL,01H LEA BX,LED_TAB ;字型碼表 XLAT CALL WRITE_DATA MOV AL,0H LEA BX,LED_TBB ;字型碼表 XLAT CALL WRITE_DATA MOV AL,0H CALL XIAOSHU JMP HUAN NOTSHI: ;上面處理等于10的情況,下面的分支是小于1

37、0的情況 PUSH AX MOV AL,0H LEA BX,LED_TAB ;字型碼表 XLAT CALL WRITE_DATA POP AX MOV BL,AL AND AL,00000011B ;將小數(shù)的兩位取出 MOV BH,AL MOV AL,BL AND AL,1111100B ;將整數(shù)的六位取出 MOV CL,2 SHR AL,CL ;AL里保存整數(shù)部分 MOV AH,BH ;AH里保存小數(shù)部分 MOV CL,00H ;主程序需要CL進(jìn)行循環(huán),所以在計(jì)算以后將CL清零 AND AL,3FH LEA BX,LED_TBB ;帶小數(shù)點(diǎn)的字型碼表 XLAT CALL WRITE_DATA

38、 MOV AL,AH CALL XIAOSHU ;計(jì)算部分HUAN: MOV SUM,0 CALL INIT8279_1 JMP START1START2: XCHG AL,KEYCOUNT CALL KEY_NUM ;鍵值轉(zhuǎn)換為鍵號(hào)CMP AL,09H ;輸入的鍵值不在09范圍內(nèi),及輸入錯(cuò)誤,重新輸入 JG CHULI INC CL CMP CL,2 JNE NO10 MOV CL,0 ;主程序需要CL進(jìn)行循環(huán),所以在計(jì)算以后將CL清零 ADD TEMP,AL ;求TEMP+AL的值 MOV AH,TEMP CMP AH,0AH ;輸入的值大于10的話,重新輸入 JG CHULI ADD S

39、UM,AH MOV TEMP,0H JMP NO9 NO10: MOV COUNT,AL ;求TEMP*10的值 MOV AH,0AH MUL AH MOV TEMP,AL MOV AL,COUNT NO9: LEA BX,LED_TAB ;字型碼表 XLAT CALL WRITE_DATA JMP START1 CHULI: LEA BX,LED_TAB ;字型碼表 XLAT CALL WRITE_DATA CALL INIT8279_1 MOV SUM,0 MOV KEYCOUNT,0 JMP START1 START_EXIT: JMP $ ;-;處理小數(shù)部分 XIAOSHU PROC NEA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論