版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
微機原理課程設(shè)計PAGEPAGE9計算機科學(xué)與技術(shù)系課程設(shè)計報告學(xué)年第1學(xué)期課程微機原理與接口技術(shù)課程設(shè)計名稱競賽評分系統(tǒng)學(xué)生姓名學(xué)號專業(yè)班級網(wǎng)工(2)班指導(dǎo)教師評分系統(tǒng)一、題義分析及解決方案1題意需求分析題目要求是用8086接口芯片設(shè)計一個四評委使用的評分系統(tǒng),接受四個評委的打分,輸出的是平均得分。由題目要求分析如下:(1)題目要求四個評委給出自己的打分,可知設(shè)計的第一步就是主持人給出一個開始打分的指令,否則任何打分都是無效的;(2)評委們接到打分指令后即可為選手輸入分數(shù),先設(shè)想用通用可編程鍵盤/顯示接口芯片INTEL8279與小鍵盤結(jié)合實現(xiàn)該步;(3)接收所有評委的打分到指定緩沖區(qū)后,開始對數(shù)據(jù)進行處理,求出平均分;(4)將(3)步求出的平均分顯示出來。綜合題目要求分析提出以下四個問題:(1)如何實現(xiàn)主持人發(fā)出指令表示評分結(jié)束?(2)用什么來作為外設(shè)讓評委進行打分?(3)怎樣求平均分?(4)采用什么設(shè)備將平均分顯示出來?2問題解決方法及思路基于以上問題分析此評分系統(tǒng)是由四個評委組成的一個評分系統(tǒng)。對每位評委給出的分數(shù)進行累加,并求出平均分。評委分數(shù)范圍是0~~10的整數(shù),將4位評委給出的分數(shù)累加,由于最高分為10分,則用4位二進制就可以表示每位評委的分數(shù),用8279的RL0~RL7八位連接小鍵盤,將評委的分數(shù)保存到8279的緩沖寄存器中,可同時將4位評委的分數(shù)同時輸入。對求得平均分進行分析,將4位評委累加后除以4即得到平均分數(shù),除以4后將會出現(xiàn)小數(shù)部分如:0.0、0.25、0.50、0.75這4種情況,要將最后得分顯示在LED上,就要用4個LED顯示,其中第二個LED存在小數(shù)點,故用八段LED顯示,3個顯示要分別進行輸出,通過位選碼對每一位的顯示進行控制,還要通過段選碼對每一個LED的每一段進行控制。這樣,就能將整個最后得分顯示出來了,還要考慮在顯示后一位時前一位會不會消失的情況。以上四個問題解決其中(1)、(2)、(4)可以用硬件完成,而(3)即數(shù)據(jù)處理部分需由軟件來完成。2.1硬件部分問題(1)可以利用小鍵盤上的任意一位輸入或邏輯開關(guān)的一位來實現(xiàn)。問題(2)評委可通過很多設(shè)備進行數(shù)據(jù)輸入,如小鍵盤、邏輯開關(guān)等,小鍵盤做輸入設(shè)備其電路簡單,但對其編程接受輸入數(shù)據(jù)相對復(fù)雜。邏輯開關(guān)的電路相對復(fù)雜,但編程接受輸入數(shù)據(jù)的程序簡單,且兼于實驗室設(shè)備,故選擇小鍵盤作為輸入設(shè)備。輸入數(shù)據(jù)會很方便。問題(4)輸出設(shè)備既可用發(fā)光二極管也可用LED顯示器,但相對于前者,后者對結(jié)果的顯示一目了然,故本設(shè)計選擇LED顯示器作輸出設(shè)備。2.2軟件部分(1)讀數(shù)據(jù)程序:采用小鍵盤與8279芯片相結(jié)合,故可8279的相應(yīng)端口進行合適的參數(shù)設(shè)置,數(shù)據(jù)端口地址為0B0H,控制端口的地址為0B1H。RLrr5~RL7八位中最高位作為指令開關(guān)。(2)數(shù)據(jù)處理:每次讀數(shù)據(jù)累加求和,并取數(shù)據(jù)整數(shù)和小數(shù)部分,從OUTA0~OUTA3輸出到LED顯示器.當(dāng)四個評委均輸入完畢,將累加和采用邏輯右移2位的方式求平均分.在計算輸入的時候,用兩位輸入來控制一位數(shù)的輸入,將AL的值賦給中間變量TEMP,然后將TEMP*10,然后累加,求出輸入的數(shù),進行和的累加。(3)數(shù)據(jù)輸出:平均分整數(shù)和小數(shù)部分分別輸出到LED.分析整數(shù)0-40之間的數(shù)除以4的小數(shù)部分,平均分處理方法,(也可采用四舍五入的方法保留一位小數(shù))。十進制和二進制和右移二位平均值十進制整數(shù)二進制整數(shù)小數(shù)部分00000001100.2500321000.500531100.75008410011110510111.25113611011.5115711111.7511881000102210091001102.252103十進制和二進制和右移二位平均值十進制整數(shù)二進制整數(shù)小數(shù)部分101010102.52105111011102.752108……151111113.253113……2010100101551010……35100011……401010001010101010100表1-1:小數(shù)部分的求解方法見上表二、硬件設(shè)計2.1選擇芯片8279圖2-18279內(nèi)部邏輯框圖2.1.1芯片8279在本設(shè)計中的作用8279連接4*4的鍵盤及8位顯示器的電路,即可顯示按下鍵對應(yīng)的鍵值。2.1.2芯片8279的功能分析生產(chǎn)廠家:Intel公司
特性:Intel8279芯片是一種通用的可編程序的鍵盤、顯示接口器件,單個芯片就能完成鍵盤輸入和LED
顯示控制兩種功能。其內(nèi)部結(jié)構(gòu)如圖6-10-1所示。8279包括鍵盤輸入和顯示輸出兩個部分。
鍵盤部分提供的掃描方式,可以和64個按鍵或傳感器的陣列相連。能自動消除開關(guān)抖動以及N個鍵
同時按下的保護。
顯示部分按掃描的方式工作。可以顯示8或16位LED顯示塊。
一、8279電路工作原理
根據(jù)結(jié)構(gòu)框圖,分別介紹各部分電路工作原理。
1.I/O控制及數(shù)據(jù)緩沖器
數(shù)據(jù)緩沖器是雙向緩沖器,連接內(nèi)、外總線,用于傳送CPU和8279之間的命令或數(shù)據(jù);I/O控制線是
CPU對8279進行控制的引線。CS是8279的片選信號,CS=0時,8279才被允許讀出或?qū)懭胄畔?。WR、RD為來自
CPU的控制信號。
A0用于區(qū)別信息特性:A0=1時,表示數(shù)據(jù)緩沖器輸入為指令、輸出為狀態(tài)字;A=0時,輸入、輸出皆為數(shù)據(jù)。
2.控制與定時寄存器及定時控制
控制與定時寄存器用來寄存鍵盤及顯示的工作方式,以及由CPU編程的其它操作方式。這些寄存器一旦接受并鎖存送來的命令,就通過譯碼產(chǎn)生相應(yīng)的信號,從而完成相應(yīng)的控制功能。
定時控制包含基本記數(shù)鍵。首級計數(shù)器是一個可編程的N級計數(shù)器。N可以2~31之間由軟件編程,以便
從外界時鐘CLK分頻得到內(nèi)部所需要的100KHZ時鐘。然后再經(jīng)過分頻為鍵盤掃描提供適當(dāng)?shù)闹鹦袙呙桀l率和顯示掃描時間。
3.掃描計數(shù)器
掃描計數(shù)器有兩種工作方式。按編碼方式工作時,計數(shù)器作二進制記數(shù)。4位記數(shù)狀態(tài)從掃描線SL0~SL3
輸出,經(jīng)外部譯碼器譯碼后,為鍵盤和顯示器提供掃描線;按譯碼方式工作時,掃描計數(shù)器的最低二位被譯碼后,從SL0~SL3輸出。因此,SL0~SL3提供了4中取1的掃描譯碼。
4.回復(fù)緩沖器、鍵盤去抖及控制
來自RL0~RL3的8根回復(fù)線的回復(fù)信號,由回復(fù)緩沖器緩沖并鎖存。
在鍵盤工作方式中,回復(fù)線作為行列式鍵盤的行列輸入線。在逐行列輸入時,在逐行列掃描時,回復(fù)線用來搜索每一行列中閉合的鍵。當(dāng)某一鍵閉合時,去抖電路被置位,延時等待10ms后,再檢驗該鍵是否繼續(xù)閉和,并將該鍵的地址和附加的移位、控制狀態(tài)一起形成鍵盤數(shù)據(jù)被送入8279內(nèi)部FIFO(先進先出)存儲器。鍵盤數(shù)據(jù)格式如下:
D7
D6
D5
D4
D3
D2
D1
D0
控制
移位
掃描
回復(fù)
控制和移位(D6、D7)的狀態(tài)由兩個獨立的附加開關(guān)決定,而掃描(D5、D4、D3)和回復(fù)(D2、D1、D0)則是被按鍵置位的數(shù)據(jù)。D5、D4、D3來自動掃描計數(shù)器,是按下鍵的行列編碼,而(D7D7D7)則來自行/列計數(shù)器,它們是根據(jù)回復(fù)信號而確定的行/列編碼。
在傳感器開關(guān)狀態(tài)矩陣方式中,回復(fù)線的內(nèi)容直接被送往和相應(yīng)的傳感器RAM(即FIFO存儲器)。
在選通輸入方式中,回復(fù)線的內(nèi)容在CNTL/STB線的脈沖上升沿被送入FIFO存儲器。
5..FIFO/傳感器及其狀態(tài)寄存器
FIFO/傳感器RAM是一個雙重功能的88RAM。
在鍵盤或選通方式工作時,它是FIFO存儲器,其輸入或讀出遵循先入先出的原則。FIFO狀態(tài)寄存器用于存放FIFO的工作狀態(tài)。例如,RAM是滿還是空;其中存有多少數(shù)據(jù);是否操作出錯等。當(dāng)FIFO存儲器不空,狀態(tài)邏輯將產(chǎn)生IRQ=1信號向CPU申請中斷。
在傳感器矩陣方式工作時,這個存儲器以是傳感器不是存儲器。它存放著傳感器矩陣中的每一個傳感器狀態(tài)。在此方式中,若檢索出傳感器的變化,IRQ信號變?yōu)楦唠娖?,向CPU申請中斷。
6.顯示RAM和顯示地址寄存器
顯示RAM用來存儲顯示數(shù)據(jù)。容量為168位。在顯示過程中,存儲的顯示數(shù)據(jù)輪流從顯示寄存器輸出。顯示寄存器分別為A、B兩組,OUTA0~3和OUTB0~3可以單獨送數(shù),也可以組成一個8位的字。顯示寄存器的輸出與顯示掃描配合,不斷從顯示RAM中讀出顯示數(shù)據(jù),同時輪流驅(qū)動被選中的顯示器件,以達到多路復(fù)用的目的,使顯示器件呈現(xiàn)穩(wěn)定的顯示狀態(tài)。
顯示地址寄存器用來寄存由CPU進行讀/寫顯示RAM的地址,它可以由命令設(shè)定,也可以設(shè)置成每次讀寫或?qū)懭胫笞詣舆f減。
二.管腳、引線與功能
8279采用40引腳封裝,其管腳、引線功能如圖6-10-2所示。其引腳功能如下:
D0~D7(數(shù)據(jù)總線):雙向、三態(tài)總線,和系統(tǒng)數(shù)據(jù)總線相連;用于CPU和8279間的數(shù)據(jù)/命令傳遞。
CLK(系統(tǒng)時鐘):輸入線,為8279提供內(nèi)部時鐘的輸入端。
RESET(復(fù)位):輸入線,當(dāng)RESET=1時,8279復(fù)位,其復(fù)位狀態(tài)為:
16個字符顯示;
編碼掃描鍵盤--雙鍵鎖定;
程序時鐘編碼為31。
CS(片選):輸入線,當(dāng)CS=0時8279被選中,允許CPU對其讀、寫,否則被禁止。
A0(數(shù)據(jù)選擇):輸入線。當(dāng)A0=1時CPU寫入數(shù)據(jù)為命令字,讀出數(shù)據(jù)為狀態(tài)字;A0=0時CPU讀、寫的字節(jié)均為數(shù)據(jù)。
RD、WR(讀、寫信號):輸入線。低電平有效,來自CPU的控制信號,控制8279的讀、寫操作。
IRQ(中斷請求):輸出線。高電平有效。
在鍵盤工作方式中,當(dāng)FIFO/傳感器RAM存有數(shù)據(jù)時,IRQ為高電平。CPU每次從RAM中讀出數(shù)據(jù)時,IRQ變?yōu)榈碗娖?。若RAM中仍有數(shù)據(jù),則IRQ再次恢復(fù)高電平。
在傳感器工作方式中,每當(dāng)檢測到傳感器狀態(tài)變化時,IRQ就出現(xiàn)高電平。
SL0~SL3(掃描線):輸出線。用來掃描鍵盤和顯示器。它們可以編程設(shè)定為編碼(4中取1)或譯碼輸出(16取1)。
RL0~RL7(回復(fù)線):輸入線。它們是鍵盤矩陣或傳感矩陣的列(或行)信號輸入線。
SHIFT(移位信號):輸入線、高電平有效。該輸入信號是鍵盤數(shù)據(jù)的最高位(D7),通常用來擴充鍵開關(guān)的功能,作為控制功能鍵用。
在選通輸入方式時,該信號的上升沿可將來自RL0~RL7的數(shù)據(jù)存入FIFORAM中。
在傳感器輸入下,該信號無效。
OUTA0~OUTA3(A組顯示信號):輸出線。
OUTB0~OUTB3(B組顯示信號):輸出線。
這兩組引線都是顯示數(shù)據(jù)輸出線,與多位數(shù)字顯示的掃描線SL0~SL3同步,兩組可以獨立使用,也可以合并使用。
BD(顯示消隱):輸出線。低電平有效。該信號在數(shù)字切換顯示或使用消隱命令時,將顯示消隱。
三、命令格式與命令字
8279的操作方式是通過CPU對8279送入命令時來實現(xiàn)編程的。當(dāng)數(shù)據(jù)選擇端A0置1時,CPU對8279寫入數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字。
8279共有八條命令。其功能及命令字定義分述如下。
1.鍵盤/顯示方式設(shè)置命令字
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
D
D
K
K
K
其中:
D7、D6、D5=000方式設(shè)置命令特征位。
D
D(D4、D3):來設(shè)定顯示方式,其定義如下:
00:8個字符顯示,左入口
00:16個字符顯示,左入口
00:8個字符顯示,右入口
00:16個字符顯示,右入口
所謂左入口,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個向右順序排列;所謂右入口,即顯示位置從最右一位(最低位)開始,以后逐次輸入的顯示字符時,已有的顯示字符逐個向左順序移動。
KKK(D2、D1、D0):用來設(shè)定七種鍵盤、顯示工作方式:
000
編碼掃描鍵盤,雙鍵鎖定
001
譯碼掃描鍵盤,雙鍵鎖定
010
編碼掃描鍵盤,N鍵輪回
011
譯碼掃描鍵盤,N鍵輪回
100
編碼掃描傳感器矩陣
101
譯碼掃描傳感器矩陣
110
選通輸入,編碼顯示掃描
111
選通輸入,譯碼顯示掃描
雙鍵鎖定與N鍵輪回是多鍵按下時的兩種不同的保護方式。雙鍵鎖定為兩鍵同時按下提供的保護方法。再消顫周期里,如果有兩鍵同時按下,則只有其中一個鍵彈起,而另一個鍵保持在按下位置時,才被認可。N鍵輪回為N鍵同時按下的保護方法。當(dāng)有若干鍵按下時,鍵盤掃描能夠根據(jù)發(fā)現(xiàn)他們的順序,依次將它們的狀態(tài)送入FIFORAM中。
2.程序時鐘命令
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
0
0
1
P
P
P
P
P
其中:
D7、D6、D5=001為時鐘命令特征位。
PPPPP(
D4、D3、D2、D1、D0)用來設(shè)定外部輸入CLK端的時鐘進行分頻的分頻數(shù)N。N取值為2~31。例如外部時鐘頻率為2MHZ,PPPPP被置為10100(N=20),則對輸入的外部時鐘20分頻,以獲得8279內(nèi)部要求的100KMZ的基本頻率。
3.讀FIFO/傳感器RAM命令
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
0
1
0
AI
X
A
A
A
其中:
D7D6D5=010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式時使用。在CPU讀傳感器RAM之前,必須使用這條命令來設(shè)定傳感器RAM中的8個地址(每個地址一個字節(jié))。
AAA(D2、D1、D0)為傳感器RAM中的八個字節(jié)地址。
AI(D4)為自動增量特征位。當(dāng)AI=1時,每次讀出傳感器RAM后地址自動加1使地址指針指向下一個存儲單元。這樣,下一個數(shù)據(jù)便從下一個地址讀出,而不必重新設(shè)置讀FIFO/傳感器RAM命令。
在鍵盤工作方式中,由于讀出操做嚴格按照先入先出順序,因此,不需使用此命令。
4.讀顯示RAM命令
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
0
1
1
AI
A
A
A
A
其中:
D7D6D5=011為讀顯示RAM命令字的特征位。該命令用來設(shè)定將要讀出的顯示RAM地址。
AAAA(D3、D2、D1、D0)用來尋址顯示RAM命令字的特征位。由位顯示RAM中有16個字節(jié)單元故需要4位尋址。
AI(D4)為自動增量特征位。當(dāng)AI=1時,每次讀出后地址自動加1指向下一地址。
5.寫顯示RAM命令
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
1
0
0
AI
A
A
A
A
其中:
D7D6D5=100為寫顯示RAM命令字的特征位。在寫顯示器RAM之前用該命令用來設(shè)定將要寫入的顯示RAM地址。
AAAA(D3、D2、D1、D0)為將要寫入的存儲單元地址。
AI(D4)為自動增量特征位。當(dāng)AI=1時,每次寫入后地址自動加1指向下一次寫入地址。
6.顯示禁止寫入/消隱命令特征位
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
1
0
1
X
IW
A
IW
B
BL
A
BL
B
其中:
D7D6D5=101為顯示禁止寫入/消隱命令特征位。
IW/A、IW/B(D3、D2)為A、B組顯示RAM寫入屏蔽位。由于顯示寄存器分成A、B兩組,可以單獨送數(shù),故用兩位來分別屏蔽。當(dāng)A組的屏蔽位D3=1時,A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時,不會影響A的顯示。這種情況通常在采用雙4位顯示器時使用。因為兩個雙四位顯示器是相互獨立的。為了給其中一個雙四位顯示器輸入數(shù)據(jù)而又不影響另一個四位顯示器,因此必須對另一組的輸入實行屏蔽。
BL/A、BL/B(D1、D0)為消隱顯示位。用于對兩組顯示輸出消隱。若BL=1時,對應(yīng)組的顯示輸出被消隱。當(dāng)BL=0時,則恢復(fù)顯示。
7.清除命令
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
1
1
0
CD
CD
CD
CF
CA
其中:
D7D6D5=110清除命令特征位。
CDCDCD(D4D3D2)用來設(shè)定清除顯示RAM方式。共有四種消除方式,見表6-10-1。
CF(D1)用來置空FIFO存儲器,當(dāng)=1時,執(zhí)行清除命令后,F(xiàn)IFORAM被置空,使中斷輸出線復(fù)位。同時,傳感器RAM的讀出地址也被置0。
CA(D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CD=1時,對顯示的清除方式由D3、D2的編碼決定。
清除顯示RAM約需160S。在此期間FIFO狀態(tài)時的最高位DU=1,表示顯示無效。CPU不能向顯示RAM寫入數(shù)據(jù)。
8.結(jié)束中斷/錯誤方式設(shè)置命令
命令格式:
D7
D6
D5
D4
D3
D2
D1
D0
1
1
1
E
×
×
×
×
其中:
D7D6D5=111為該命令的特征位。此命令有兩種不同的作用。
(1)作為結(jié)束中斷命令。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時,掃描檢測電路將其狀態(tài)寫入傳感器RAM,并啟動中斷邏輯,使IRQ變高,向CPU請求中斷,并且禁止寫入傳感器RAM。此時,若傳感器RAM讀出地址的自動遞增特征沒有置位(AI=0),則中斷請求IRQ在CPU第一次從傳感器RAM讀出數(shù)據(jù)時就被清除。若自動遞增特征已置位(AI=1),則CPU對傳感器RAM的讀出并不能清除IRQ,而必須通過給8279寫入結(jié)束中斷/錯誤方式設(shè)置命令才能使IRQ變低。因此在傳感器工作方式中,此命令用來結(jié)束傳感器RAM的中斷請求。
(2)作為特定錯誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結(jié)束中斷/錯誤方式設(shè)置命令(E=1),則8279將以一種特定的錯誤方式工作。這種方式的特點是:在8279的消顫周期內(nèi),如果發(fā)現(xiàn)多個按鍵同時按下,則FIFO狀態(tài)字中的錯誤特征位S/E將置1,并產(chǎn)生中斷請求信號和阻止寫入FIFORAM。
上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279后能自動尋址相應(yīng)的命令寄存器。因此,寫入命令字時唯一的要求是使數(shù)據(jù)選擇信號A0=1。
四、狀態(tài)格式與狀態(tài)字
8279的FIFO狀態(tài)字,主要用于鍵盤和選通工作方式,以指示FIFORAM中的字符數(shù)和有無錯誤發(fā)生。其格式為:
D7
D6
D5
D4
D3
D2
D1
D0
DU
S/E
O
U
F
N
N
N
其中:
DU(D7)為顯示無效特征位。當(dāng)DU=1表示顯示無效。當(dāng)顯示RAM由于清除顯示或全清命令尚未完成時,DU=1。
表6-10-1
CD位定義的清除方式
D4
D3
D2
清除方式
0
將顯示RAM全部清零
1
0
將顯示RAM清成20H(A組=0010;B組=0000)
1
1
將顯示RAM全部置1
0
不清除(若CA=1,則D3、D2仍有效)
4、芯片8279的技術(shù)參數(shù)表2-102.2選擇芯片LED2.2.1LED在本設(shè)計中的作用顯示最后得分,共三塊,一塊用來顯示其整數(shù)部分的十位,一塊用來顯示其整數(shù)部分個位,另一塊用來顯示其小數(shù)部分(保留一位小數(shù))。2.2.2LED的功能分析LED顯示電路較為簡單,成本也較低,在功能單一的儀器儀表與機電設(shè)備中應(yīng)用較廣。但當(dāng)設(shè)備顯示的點或位較多時,就需要采用一定的驅(qū)動電路與相應(yīng)的驅(qū)動方式。利用專用接口芯片如8255作為計算機芯片的端口擴展,并通過軟件編程加外部驅(qū)動實現(xiàn)。數(shù)字dpgfedcba二進制編碼011000000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91000011090H表2-2.LED顯示管段選碼編碼表2.2.3LED數(shù)碼管的顯示方式(1)靜態(tài):數(shù)碼管顯示過程持續(xù)得到信號,與數(shù)碼管接口的I/O口線為專用。特點是無閃爍,元器件多,占I/O線多,無須掃描,節(jié)省CPU時間,編程簡單。(2)動態(tài):數(shù)碼管顯示過程輪流得到信號,與各數(shù)碼管接口的I/O口線為共用。特點是有閃爍,元器件少,占I/O線少,必須掃描,花費CPU時間,編程復(fù)雜(有多個LED時尤為突出)。2.2.4芯片LED的技術(shù)參數(shù)PcwIfVrIrIf^p對應(yīng)型號散射顏色BT235-270255≥1.5≤2.5200SEL-10紅色BT1441529100405≥0.5≤2.5565綠色BT1341529100405≥0.5≤2.5585藍色消耗功率PM=150mW最大工作電流IFM=100mA正常工作電流IF=40mA正向壓降VF≤1.8V燃亮電壓為5v共陰極LED的PM=300mW,IFM=200mA,IF=60mA,VF≤1.8V,VR≥5V,發(fā)紅光。LED的技術(shù)參數(shù)分析LED發(fā)光二極管的壓降一般為1.5-2.0V,其工作電流一般取10-20Ma,發(fā)光二極管可應(yīng)用于直流驅(qū)動電路、交流驅(qū)動電路和脈沖驅(qū)動電路。共陽極公共端接陽極,低電平有效(燈亮),共陽極數(shù)碼管內(nèi)部發(fā)光二極管的陽極(正極)都聯(lián)在一起,此數(shù)碼管陽極(正極)在外部只有一個引腳
共陰極公共端接陰極,高電平有效(燈亮),共陰極數(shù)碼管內(nèi)部發(fā)光二極管的陰極(負極)都聯(lián)在一起,此數(shù)碼管陰極(負極)在外部只有一個引腳2.3小鍵盤2.3.1小鍵盤在本設(shè)計中的作用評委通過小鍵盤置數(shù),輸入分數(shù)。四個評委各個依次打分,系統(tǒng)讀取開關(guān)量,再將處理后的數(shù)據(jù)在LED上顯示出來。圖2-32.3.2小鍵盤的邏輯圖如右圖:2.4選擇芯片74LS2402.4.174LS240芯片引腳圖2.4.274LS240技術(shù)參數(shù)表2-1374LS240技術(shù)參數(shù)2.5芯片比較邏輯開關(guān)小鍵盤連線較簡單,以邏輯開關(guān)的上下切換來表示,易實現(xiàn),易觀察所輸入的是哪8位二進制數(shù)據(jù)。用時短連線較復(fù)雜,實現(xiàn)需編程實現(xiàn)CPU對鍵盤電路的掃描,察看是否有鍵按下,是哪個鍵。掃描占用大量CPU時間,是CPU的效率大大降低。表2-148255芯片74LS240和74LS2448279芯片可編程的并行接口芯片,有多種與外設(shè)及CPU的連接方法,來滿足不同應(yīng)用要求,減少器件數(shù)量支持字節(jié)數(shù)據(jù)的并行傳送,有3個8位I/O端口成本:通用且廉價以鎖存器接受和輸出數(shù)據(jù),不可編程。八緩沖器/線驅(qū)動器/線接收器(反碼三態(tài)輸出)通用可編程鍵盤/顯示接口芯片,能同時完成鍵盤輸入和顯示控制兩種功能。鍵盤接口電路可最多控制64個按鍵或傳感器組成的陣列,可自動消除開關(guān)抖動、自動識別鍵碼并具有多鍵同時按下保護功能。顯示接口電路采用自動掃描方式工作,最多可連接16位LED顯示器。采用該芯片設(shè)計鍵盤與顯示接口電路可簡化程序,從而減少CPU運行時間表2-152.6硬件總邏輯圖及其說明圖2-5實驗硬件原理圖說明:由于實驗室設(shè)備中很多芯片已經(jīng)集成,故給連線帶來很大方便性,使的連線簡單了許多。8279的RL0~RL7連接4*4鍵盤,SL0~SL2三位用來74L138的輸入,輸出的8位作為LED的段選,OUTA0~OUTA3四位作為芯片4511的輸入,輸出的7位作為LED的位選,8279的數(shù)據(jù)DB0~DB7與PCI卡的數(shù)據(jù)線連接,其中A0連接A0,CS連接CS0,讀寫信號的連接如圖。三、程序流程圖3.1主程序流程圖:開始開始初始化8279掃描按鍵KEYCOUNT++KEYCOUNT?=9按鍵轉(zhuǎn)換為鍵號CX加1CX?=2SUM=TEMP+ALCX=0TEMP=TEMP*10取最后兩位(小數(shù))存入AH將前6位移位(除4)存入AL輸出整數(shù)部分調(diào)用小數(shù)部分過程結(jié)束NYYNNY處理小數(shù)子程序:3.3掃描按鍵子過程:讀入數(shù)據(jù)后3位為1讀FIFORAM讀入數(shù)據(jù)后3位為1讀FIFORAMCF=1返回CF=0進入讀狀態(tài)進入設(shè)置清除命令進入設(shè)置清除命令清除顯示RAM清除完畢嗎?返回3.5程序清單及注釋:.MODELTINYPCIBAR3 EQU1CH;8位I/O空間基地址(它就是實驗儀的基地址,也為DMA&32BIT+RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;廠商ID號Device_IDEQU8376;設(shè)備ID號 .STACK100 .DATAIO_Bit8_BaseAddressDW?msg0 DB 'BIOS不支持訪問PCI $'msg1 DB '找不到StarPCI9052板卡$'msg2 DB '讀8位I/O空間基地址時出錯$'SUMDB0H;分數(shù)和TEMP DB0H ;中間變量KEYCOUNTDB ?;按鍵數(shù)目COUNTDB?;乘10的時候,保存AL所用的中間變量LED_TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;不帶小數(shù)點的整數(shù)DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EHLED_TBB DB 040H,079H,024H,030H,19H,12H,02H,078H;帶小數(shù)點的整數(shù)DB 000H,10H,08H,03H,046H,021H,06H,0EHCMD_8279DW 00B1H ;8279命令字、狀態(tài)字地址DATA_8279DW 00B0H ;8279讀寫數(shù)據(jù)口的地址,由于偏移地址則CS接PCI卡的CS5!!!.CODESTART: MOVAX,@DATA MOVDS,AX NOP CALLInitPCI CALLModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實地址 CALLINIT8279 ;初始化子程序 MOVKEYCOUNT,0 MOVCX,0 ;;主程序START1: CALLIfExit JZ START11 JMPExitSTART11:CALLSCAN_KEY ;鍵掃描 JNCSTART1 ;沒有按鍵 XCHGAL,KEYCOUNT INCAL CMPAL,9 JNZSTART2 MOVCX,0;在進入下一個數(shù)的輸入的時候,由于CX是判斷兩位輸入是一個數(shù),故要清零!! MOVKEYCOUNT,0 CALLINIT8279_1 ;8個數(shù)碼塊全有字符顯示后,再按鍵,清除顯示 MOVAL,SUM ;計算部分CMPAL,28HJNENOTSHIMOVAL,01HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,0HLEABX,LED_TBB ;字型碼表XLATCALLWRITE_DATAMOVAL,0HCALLXIAOSHUJMPHUANNOTSHI:;上面處理等于10的情況,下面的分支是小于10的情況PUSHAXMOVAL,0HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAPOPAXMOVBL,ALANDAL,00000011B;將小數(shù)的兩位取出MOVBH,ALMOVAL,BLANDAL,1111100B;將整數(shù)的六位取出MOVCL,2SHRAL,CL;AL里保存整數(shù)部分MOVAH,BH;AH里保存小數(shù)部分MOVCL,00H;主程序需要CL進行循環(huán),所以在計算以后將CL清零ANDAL,3FHLEABX,LED_TBB ;帶小數(shù)點的字型碼表XLATCALLWRITE_DATA MOVAL,AHCALLXIAOSHU;計算部分HUAN: MOVSUM,0 CALLINIT8279_1 JMPSTART1START2: XCHGAL,KEYCOUNT CALLKEY_NUM ;鍵值轉(zhuǎn)換為鍵號CMPAL,09H;輸入的鍵值不在0~9范圍內(nèi),及輸入錯誤,重新輸入 JGCHULI INCCLCMPCL,2JNENO10MOVCL,0;主程序需要CL進行循環(huán),所以在計算以后將CL清零ADDTEMP,AL;求TEMP+AL的值MOVAH,TEMPCMPAH,0AH;輸入的值大于10的話,重新輸入JGCHULI ADDSUM,AH MOVTEMP,0H JMPNO9NO10:MOVCOUNT,AL;求TEMP*10的值MOVAH,0AHMULAHMOVTEMP,ALMOVAL,COUNTNO9: LEABX,LED_TAB ;字型碼表 XLAT CALLWRITE_DATA JMPSTART1CHULI:LEABX,LED_TAB ;字型碼表 XLAT CALLWRITE_DATACALLINIT8279_1MOVSUM,0MOVKEYCOUNT,0JMPSTART1START_EXIT:JMP$;;處理小數(shù)部分XIAOSHUPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXCMPAL,0HJEX0CMPAL,01HJEX1CMPAL,02HJEX2CMPAL,03HJEX3X0:MOVAL,0HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,0JMPX4X1:MOVAL,02HANDAL,3FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HJMPX4X2:MOVAL,05HANDAL,3FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,0HJMPX4X3:MOVAL,07HANDAL,3FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HX4:ANDAL,3FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAXIANSHI:CALLSCAN_KEY ;鍵掃描 JNCXIANSHI ;鍵的輸入來控制顯示結(jié)果的時間POPDXPOPCXPOPBXPOPAXXIAOSHUENDP;;8279初始化INIT8279PROCNEARMOVDX,CMD_8279;CMD_8279為寫命令地址、讀狀地址 MOVAL,34H ;可編程時鐘設(shè)置,設(shè)置分頻系數(shù)(20分頻) OUTDX,AL MOVAL,0H ;8位字符顯示,左邊輸入,外部譯碼鍵掃描方式,雙鍵互鎖,10H右入口 OUTDX,AL CALLINIT8279_1 RETINIT8279ENDPINIT8279_1PROCNEARCALLCLEAR ;清顯示 MOVAL,90H ;從第一個數(shù)碼管開始移位顯示,寫顯示RAM命令 OUTDX,AL RETINIT8279_1ENDP;;清除CLEAR PROCNEARMOVDX,CMD_8279 MOVAL,0DEH ;清除命令,將顯示RAM全部置1 OUTDX,ALWAIT1: IN AL,DX TESTAL,80H;10000000B,寫顯示RAM,初始位為0000 JNZWAIT1 ;顯示RAM清除完畢嗎? RETCLEAR ENDP;;掃描SCAN_KEYPROCNEARMOVDX,CMD_8279IN AL,DX ;讀狀態(tài)READ_FIFO:ANDAL,7 JZ NO_KEY ;是否有鍵按下READ: MOVAL,40H OUTDX,AL ;讀FIFORAM,初始地址為000H MOVDX,DATA_8279 IN AL,DX STC ;有鍵SCAN_KEY1:RETNO_KEY: CLC ;無鍵按下,清CF JMPSCAN_KEY1SCAN_KEYENDP;;鍵值轉(zhuǎn)換KEY_NUM PROCNEAR ANDAL,3FH;00111111B清除高兩位,鍵值轉(zhuǎn)換為鍵號 RETKEY_NUM ENDP;;讀數(shù)據(jù)WRITE_DATAPROCNEARMOVDX,DATA_8279;DATA_8279為讀寫數(shù)據(jù)口的地址 OUTDX,AL RETWRITE_DATAENDP;PCI卡初始化IfExit PROCNEAR PUSHAXPUSHDX MOVAH,06HMOVDL,0FFH INT21H POPDX POPAX RETIfExit ENDPInitPCIPROC NEARMOV AH,00HMOV AL,03HINT 10H ;清屏MOV AH,0B1HMOV AL,01HINT 1AHCMP AH,0JZInitPCI2LEA DX,msg0InitPCI1:MOV AH,09H INT 21H JMP ExitInitPCI2:MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在StarPCI9052板卡 LEA DX,msg1 JMP InitPCI1InitPCI3: MOV DI,PCIBAR3 MOV AH,0B1H MOV AL,09H INT 1AH ;讀取該卡PCI9052基地址 JNC InitPCI4 LEA DX,msg2 JMP InitPCI1InitPCI4: AND CX,0FFFCH MOV IO_Bit8_BaseAddress,CX RETInitPCI ENDPModifyAddressPROCNEAR ADDCMD_8279,CX ADDDATA_8279,CX RETModifyAddressENDPExit: MOVAH,4CHINT21HENDSTART在實驗過程中,老師要求將四位評委改成八位評委,并且每位評委分數(shù)只占LED顯示的一位,程序如下:.MODELTINYPCIBAR3 EQU1CH;8位I/O空間基地址(它就是實驗儀的基地址,也為DMA&32BIT+RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;廠商ID號Device_IDEQU8376;設(shè)備ID號 .STACK100 .DATAIO_Bit8_BaseAddressDW?msg0 DB 'BIOS不支持訪問PCI $'msg1 DB '找不到StarPCI9052板卡$'msg2 DB '讀8位I/O空間基地址時出錯$'SUMDB0H;分數(shù)和TEMP DB0H ;中間變量KEYCOUNTDB ?;按鍵數(shù)目COUNTDB?;乘10的時候,保存AL所用的中間變量LED_TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;不帶小數(shù)點的整數(shù)DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EHLED_TBB DB 040H,079H,024H,030H,19H,12H,02H,078H;帶小數(shù)點的整數(shù)DB 000H,10H,08H,03H,046H,021H,06H,0EHCMD_8279DW 00B1H ;8279命令字、狀態(tài)字地址DATA_8279DW 00B0H ;8279讀寫數(shù)據(jù)口的地址,由于偏移地址則CS接PCI卡的CS5!!!.CODESTART: MOVAX,@DATA MOVDS,AX NOP CALLInitPCI CALLModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實地址 CALLINIT8279 ;初始化子程序 MOVKEYCOUNT,0 MOVCX,0 ;;主程序START1: CALLIfExit JZ START11 JMPExitSTART11:CALLSCAN_KEY ;鍵掃描 JNCSTART1 ;沒有按鍵 XCHGAL,KEYCOUNT INCAL CMPAL,9 JNZSTART2 MOVKEYCOUNT,0 CALLINIT8279_1 ;8個數(shù)碼塊全有字符顯示后,再按鍵,清除顯示 MOVAL,SUM ;計算部分CMPAL,48HJNENOTSHIMOVAL,09HLEABX,LED_TBB ;字型碼表XLATCALLWRITE_DATAMOVAL,0HCALLXIAOSHUJMPHUANNOTSHI:PUSHAXPOPAXMOVBL,ALANDAL,00000111B;將小數(shù)的兩位取出MOVBH,ALMOVAL,BLANDAL,11111000B;將整數(shù)的六位取出MOVCL,3SHRAL,CL;AL里保存整數(shù)部分MOVAH,BH;AH里保存小數(shù)部分LEABX,LED_TBB ;帶小數(shù)點的字型碼表XLATCALLWRITE_DATA MOVAL,AHCALLXIAOSHU;計算部分HUAN: MOVSUM,0 CALLINIT8279_1 JMPSTART1START2: XCHGAL,KEYCOUNT CALLKEY_NUM ;鍵值轉(zhuǎn)換為鍵號CMPAL,09H;輸入的鍵值不在0~9范圍內(nèi),及輸入錯誤,重新輸入 JGCHULI MOVAH,ALCMPAH,09H;輸入的值大90的話,重新輸入JGCHULI ADDSUM,AH JMPNO9NO9: LEABX,LED_TAB ;字型碼表 XLAT CALLWRITE_DATA JMPSTART1CHULI:LEABX,LED_TAB ;字型碼表 XLAT CALLWRITE_DATACALLINIT8279_1MOVSUM,0MOVKEYCOUNT,0JMPSTART1START_EXIT:JMP$;;處理小數(shù)部分X5:MOVAL,06HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,02HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HJMPX8X6:MOVAL,07HANDAL,1FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,0JMPX8X7:MOVAL,08HANDAL,1FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,07HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HJMPX8XIAOSHUPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXCMPAL,0HJEX0CMPAL,01HJEX1CMPAL,02HJEX2CMPAL,03HJEX3CMPAL,04HJEX4CMPAL,05HJEX5CMPAL,06HJEX6CMPAL,07HJEX7X0:MOVAL,0HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,0HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,0JMPX8X1:MOVAL,01HANDAL,1FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,02HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HJMPX8X2:MOVAL,02HANDAL,1FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,0HJMPX8X3:MOVAL,03HANDAL,1FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,07HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,05HJMPX8X4:MOVAL,05HANDAL,1FHLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,00HLEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAMOVAL,00HJMPX8X8:LEABX,LED_TAB ;字型碼表XLATCALLWRITE_DATAXIANSHI:CALLSCAN_KEY ;鍵掃描 JNCXIANSHI ;鍵的輸入來控制顯示結(jié)果的時間POPDXPOPCXPOPBXPOPAXXIAOSHUENDP;;8279初始化INIT8279PROCNEARMOVDX,CMD_8279;CMD_8279為寫命令地址、讀狀地址 MOVAL,34H ;可編程時鐘設(shè)置,設(shè)置分頻系數(shù)(20分頻) OUTDX,AL MOVAL,0H ;8位字符顯示,左邊輸入,外部譯碼鍵掃描方式,雙鍵互鎖,10H右入口 OUTDX,AL CALLINIT8279_1 RETINIT8279ENDPINIT8279_1PROCNEARCALLCLEAR ;清顯示 MOVAL,90H ;從第一個數(shù)碼管開始移位顯示,寫顯示RAM命令 OUTDX,AL RETINIT8279_1ENDP;;清除CLEAR PROCNEARMOVDX,CMD_8279 MOVAL,0DEH ;清除命令,將顯示RAM全部置1 OUTDX,ALWAIT1: IN AL,DX TESTAL,80H;10000000B,寫顯示RAM,初始位為0000 JNZWAIT1 ;顯示RAM清除完畢嗎? RETCLEAR ENDP;;掃描SCAN_KEYPROCNEARMOVDX,CMD_8279IN AL,DX ;讀狀態(tài)READ_FIFO:ANDAL,7 JZ NO_KEY ;是否有鍵按下READ: MOVAL,40H OUTDX,AL ;讀FIFORAM,初始地址為000H MOVDX,DATA_8279 IN AL,DX STC ;有鍵SCAN_KEY1:RETNO_KEY: CLC ;無鍵按下,清CF JMPSCAN_KEY1SCAN_KEYENDP;;鍵值轉(zhuǎn)換KEY_NUM PROCNEAR ANDAL,3FH;00111111B清除高兩位,鍵值轉(zhuǎn)換為鍵號 RETKEY_NUM ENDP;;讀數(shù)據(jù)WRITE_DATAPROCNEAR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度民辦學(xué)校教師職稱評定與晉升合同3篇
- 2025版高端住宅門窗定制與施工一體化合同3篇
- 二零二五年度新能源出租車司機聘用合同樣本
- 二零二五年度出租車公司司機外包管理合同法律意見
- 2025知識產(chǎn)權(quán)勞動合同補充協(xié)議范本:企業(yè)知識產(chǎn)權(quán)布局與戰(zhàn)略規(guī)劃3篇
- 二零二五年度土地承包經(jīng)營權(quán)轉(zhuǎn)讓合同
- 2025年度智能化農(nóng)業(yè)大棚建設(shè)與土地租賃合同
- 2025年度木托盤生產(chǎn)原料供應(yīng)鏈金融合同4篇
- 二零二五年度牛羊肉產(chǎn)業(yè)鏈投資合作合同4篇
- 2025年度農(nóng)業(yè)種植與農(nóng)產(chǎn)品溯源技術(shù)服務(wù)合同4篇
- 2024年安全教育培訓(xùn)試題附完整答案(奪冠系列)
- 神農(nóng)架研學(xué)課程設(shè)計
- 文化資本與民族認同建構(gòu)-洞察分析
- 2025新譯林版英語七年級下單詞默寫表
- 【超星學(xué)習(xí)通】馬克思主義基本原理(南開大學(xué))爾雅章節(jié)測試網(wǎng)課答案
- 《錫膏培訓(xùn)教材》課件
- 斷絕父子關(guān)系協(xié)議書
- 福建省公路水運工程試驗檢測費用參考指標
- 2024年中國工業(yè)涂料行業(yè)發(fā)展現(xiàn)狀、市場前景、投資方向分析報告(智研咨詢發(fā)布)
- 自然科學(xué)基礎(chǔ)(小學(xué)教育專業(yè))全套教學(xué)課件
- 《工程勘察資質(zhì)分級標準和工程設(shè)計資質(zhì)分級標準》
評論
0/150
提交評論