版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系頁(yè):1寫(xiě)明課程名稱(chēng)課程設(shè)計(jì)報(bào)告頁(yè):1第幾學(xué)期課程微型計(jì)算機(jī)原理與接口技術(shù)課程設(shè)計(jì)名稱(chēng)簡(jiǎn)易計(jì)數(shù)器學(xué)生姓名高敏學(xué)號(hào)0604031035專(zhuān)業(yè)班級(jí)06網(wǎng)工(1)指導(dǎo)教師張向東教授2009 年 2月簡(jiǎn)易計(jì)數(shù)器報(bào)告頁(yè):2題目可以不寫(xiě)一題意需求分析及解決方案:頁(yè):2標(biāo)題不要標(biāo)點(diǎn)符號(hào),其他雷同1題意分析:設(shè)計(jì)一個(gè)可以進(jìn)行2位數(shù)四則運(yùn)算的計(jì)數(shù)器,要求:1.用按鍵輸入數(shù)和運(yùn)算符號(hào);2.用LED顯示運(yùn)算過(guò)程和結(jié)果(十進(jìn)制數(shù));3.可以表示出當(dāng)前的運(yùn)算類(lèi)型;4.具有清零和復(fù)位的功能;5.具有連續(xù)運(yùn)算的功能。本設(shè)計(jì)需要解決的問(wèn)題有:(1)選擇什么芯片(2)怎樣完成硬件的連接(3)怎樣編寫(xiě)程序來(lái)
2、正確完成功能頁(yè):2調(diào)節(jié)文章格式,是文章更有條理。其他雷同2解決問(wèn)題方法及思路:頁(yè):2這部分主要分硬件和軟件兩部分,可以分別從整個(gè)系統(tǒng)由哪些硬件組成,各個(gè)硬件在系統(tǒng)中所起的作用。軟件部分從總體上分析各個(gè)軟件模塊所完成的功能。1 ) 硬件部分頁(yè):2這部分在添加一些描述性文字,表格中的字體5號(hào)。組號(hào)器件名稱(chēng)特 點(diǎn)1小鍵盤(pán)鍵盤(pán)(Keyboard)是常用的輸入設(shè)備,它是由一組開(kāi)關(guān)矩陣組成,結(jié)構(gòu)相對(duì)復(fù)雜邏輯開(kāi)關(guān)結(jié)構(gòu)簡(jiǎn)單,使用方便,價(jià)格便宜28255A芯片8255芯片是可編程的并行接口芯片,不需要附加外部電路便可和大多數(shù)并行傳輸數(shù)據(jù)的外部設(shè)備相連,數(shù)據(jù)的各位同時(shí)傳送,使用十分方便8279A芯片8279芯片可
3、以實(shí)現(xiàn)對(duì)鍵盤(pán)/顯示器的自動(dòng)掃描,以減輕CPU負(fù)擔(dān),具有顯示穩(wěn)定,程序簡(jiǎn)單,不會(huì)出現(xiàn)誤動(dòng)作等3L E DLED顯示器與LCD顯示器相比,LED在亮度、功耗、可視角度和刷新速率等方面,都更具優(yōu)勢(shì)。LED與LCD的功耗比大約為10:1,LED的最顯著特點(diǎn)是使用壽命長(zhǎng),光電轉(zhuǎn)換效能高,綠色環(huán)保L C DLCD占用空間小,低功耗,低輻射,能降低視覺(jué)疲勞,但是會(huì)出現(xiàn)閃爍問(wèn)題表1-1 硬件器件選擇頁(yè):2表標(biāo)在表格上方結(jié)論:輸入口用一片8279及小鍵盤(pán)實(shí)現(xiàn),顯示設(shè)備為L(zhǎng)ED顯示器。2 ) 軟件部分8279是可編程接口芯片,通過(guò)編程使其實(shí)現(xiàn)相應(yīng)的功能,編程的過(guò)程實(shí)際上就是CPU向8279發(fā)送控制指令的過(guò)程。在軟
4、件設(shè)計(jì)中,顯示方式采用了8個(gè)字符顯示,從左輸入方式,編碼掃描鍵盤(pán),雙鍵鎖定。由于該系統(tǒng)對(duì)實(shí)時(shí)性及速度要求并不十分高,所以時(shí)鐘頻率采用6M Hz已足夠了,故程序時(shí)鐘命令字取為2AH,用以保證100kHz的內(nèi)部工作頻率。由于采用10ms定時(shí)掃描查詢(xún)方式,所以在下次開(kāi)始掃描時(shí),先應(yīng)清空8279,清除顯示RAM大約需要160s的時(shí)間,在此期間,F(xiàn)IFO狀態(tài)字的最高位DU=1,表示顯示無(wú)效,CPU不能顯示RAM寫(xiě)入數(shù)據(jù),所以清除命令狀態(tài)字取D1H。CPU對(duì)8279的控制是先讀回8279的狀態(tài)字,查看PIFORAM中有無(wú)字符,若有將根據(jù)字符個(gè)數(shù)讀出所有字符,并進(jìn)行相應(yīng)處理;若無(wú),則直接返回。CPU對(duì)827
5、9的監(jiān)視采用查詢(xún)方式,對(duì)8279分配的數(shù)據(jù)口地址為8000H,狀態(tài)口地址為8001H,CPU每隔10ms定時(shí)中斷查詢(xún)一次,所有顯示采用查詢(xún)段碼表的方式實(shí)現(xiàn),簡(jiǎn)化了程序設(shè)計(jì)過(guò)程,提高了程序質(zhì)量。頁(yè):3注意文章的格式和縮進(jìn)二硬件設(shè)計(jì):頁(yè):3這部分分為硬件作用,功能分析,技術(shù)參數(shù)3部分來(lái)寫(xiě)1選擇芯片(1)8279A1 ) 8279A在本設(shè)計(jì)中的作用: 在本設(shè)計(jì)中用8279A芯片控制鍵盤(pán)輸入和LED顯示。2 ) 8279A的功能分析: 1、8279A主要特性8279A芯片是一種通用的可編程序的鍵盤(pán)/顯示接口器件,單個(gè)芯片就能完成鍵盤(pán)輸入和LED顯示控制兩種功能??膳c任何8位機(jī)接口。8279A芯片包括鍵
6、盤(pán)輸入和顯示輸出兩個(gè)部分。若采用8279作為鍵盤(pán)/顯示器接口,則可以實(shí)現(xiàn)對(duì)鍵盤(pán)、顯示器自動(dòng)掃描,8279主要是管理鍵盤(pán)輸入和顯示器輸出的。8279可編程鍵盤(pán)顯示器接口芯片具有動(dòng)態(tài)顯示驅(qū)動(dòng)電路簡(jiǎn)單、不占用CPU 的時(shí)間、可自動(dòng)進(jìn)行鍵盤(pán)掃描、與計(jì)算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點(diǎn)當(dāng)今已成為設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng),特別是實(shí)時(shí)性較高的測(cè)控系統(tǒng)的首選器件之一。2、8279A的內(nèi)部結(jié)構(gòu)(如圖2-1) 頁(yè):4格式不對(duì)圖2-1 8279A的內(nèi)部結(jié)構(gòu)圖中,IRQ:中斷請(qǐng)求輸出線(xiàn),DB0DB7:雙向數(shù)據(jù)總路線(xiàn)(傳送命令、數(shù)據(jù)、狀態(tài)),、:讀寫(xiě)控制輸入端,RESET:復(fù)位輸入端,CLK:時(shí)鐘輸入端,:片選,C和/D
7、(A0):片內(nèi)寄存器選址,OUTA0A1、OUTB0B3:8位顯示輸出端,:熄滅顯示輸出端,SL0SL3:公用掃描輸出線(xiàn),RL0RL7:鍵盤(pán)回饋輸入線(xiàn),SHIFT:抵擋鍵輸入線(xiàn),CNTL/STB:控制/選通輸入線(xiàn)。另外,8279的鍵盤(pán)接口部分內(nèi)部有一個(gè)88位先進(jìn)先出的堆棧(FIFO),用來(lái)存放鍵盤(pán)輸入代碼,顯示器接口部分內(nèi)部有一個(gè)168位顯示RAM,用來(lái)顯示段數(shù)據(jù),能為16位LED顯示器(或其它顯示器)提供多路掃描接口。3、8279A的引腳信號(hào)和功能8279可編程鍵盤(pán)顯示器接口芯片具有動(dòng)態(tài)顯示驅(qū)動(dòng)電路,不占用CPU 的時(shí)間、可自動(dòng)進(jìn)行鍵盤(pán)掃描、與計(jì)算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點(diǎn)。 82
8、79A是可編程的鍵盤(pán)/顯示接口芯片。它既具有按鍵處理功能,又具有自動(dòng)顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛。8279A內(nèi)部有鍵盤(pán) FIFO (先進(jìn)先出堆棧)/傳感器,雙重功能的 88=64B RAM,鍵盤(pán)控制部分可控制 88=64 個(gè)按鍵或 88 陣列方式的傳感器。該芯片能自動(dòng)消抖并具有雙鍵鎖定保護(hù)功能。顯示 RAM容量為 168,即顯示器最大配置可達(dá) 16 位 LED數(shù)碼顯示。4、8279的命令字及其格式 8279三種工作方式:鍵盤(pán)工作方式、顯示工作方式和傳感器工作方式。鍵盤(pán)工作方式:雙鍵互鎖和N鍵輪回。雙鍵互鎖是指當(dāng)有兩個(gè)以上按鍵同時(shí)按下時(shí),只能識(shí)別最后一個(gè)被釋放的按鍵,并把其鍵值送入內(nèi)部FI
9、FO RAM中。N鍵輪回是指當(dāng)有多個(gè)按鍵同時(shí)按下時(shí),所有按鍵的鍵值均可按掃描順序依次存入FIFO RAM中。顯示工作方式:是指CPU輸入至8279內(nèi)部FIFO RAM的數(shù)據(jù)的輸出格式,有8個(gè)字符左端入口顯示、16個(gè)字符左端入口顯示、8個(gè)字符右端入口顯示、16個(gè)字符右端入口顯示四種方式。傳感器方式:是指掃描傳感器陣列時(shí),一旦發(fā)現(xiàn)傳感器的狀態(tài)發(fā)生變化就置位INT向CPU申請(qǐng)中斷。選擇不同的工作方式均是通過(guò)CPU對(duì)8279送入命令來(lái)進(jìn)行控制。8279共有8種命令,命令寄存器為8位,其中D7D5為命令特征位,D4D0為命令的控制位。CPU對(duì)8279寫(xiě)入的命令數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字。8279共
10、有八條命令,其功能及命令字格式分述如下。(1)鍵盤(pán)/顯示方式設(shè)置命令字命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 D D K K K其中:D7、D6、D5=000為方式設(shè)置命令特征位。DD(D4、D3):用來(lái)設(shè)定顯示方式,如表2-1所示。表2-1 顯示方式選擇D4D3顯示方式008個(gè)字符顯示,左端入口0116個(gè)字符顯示,左端入口108個(gè)字符顯示,右端入口1016個(gè)字符顯示,右入口所謂左入口 ,即顯示位置從最左一位(最高位)開(kāi)始,以后逐次輸入的顯示字符逐個(gè)向右順序排列;所謂右入口,則是顯示位置從最右一位(最低位)開(kāi)始,以后逐次輸入顯示字符時(shí),已有的顯示字符依次向左移動(dòng)
11、。KKK(D2、D1、D0):用來(lái)設(shè)定七種鍵盤(pán)/顯示掃描方式,如表2-2所示。表2-2 鍵盤(pán)/顯示掃描方式D2D1D0鍵盤(pán)/顯示掃描方式000編碼掃描鍵盤(pán),雙鍵鎖定001譯碼掃描鍵盤(pán),雙鍵鎖定010編碼掃描鍵盤(pán),N鍵輪回011譯碼掃描鍵盤(pán),N鍵輪回100編碼掃描傳感器矩陣101譯碼掃描傳感器矩陣110選通輸入,編碼顯示掃描111選通輸入,譯碼顯示掃描(2)時(shí)鐘編程命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P其中:D7、D6、D5=001為時(shí)鐘命令特征位。PPPPP(D4、D3、D2、D1、D0)用來(lái)設(shè)定外部輸入CLK時(shí)鐘脈沖的分頻系數(shù)N。N取值
12、范圍為231。如CLK輸入時(shí)鐘頻率為2MHZ,PPPPP應(yīng)被置為10100(N=20),才可獲得8279內(nèi)部要求的100KHZ的時(shí)鐘頻率。(3)讀FIFO/傳感器RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 AI X A A A其中:D7、D6、D5=010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式時(shí)使用。在CPU讀傳感器RAM之前,必須用這條命令來(lái)設(shè)定所讀傳感器RAM中的地址。AAA(D2、D1、D0)為傳感器RAM中的八個(gè)字節(jié)地址。AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出傳感器RAM后地址自動(dòng)加1使地址指向下一個(gè)存儲(chǔ)單元。這
13、樣,下一個(gè)數(shù)據(jù)便從下一個(gè)地址讀出,而不必重新設(shè)置讀FIFO/傳感器RAM命令。在鍵盤(pán)工作方式中,由于讀出操作嚴(yán)格按照先入先出順序,因此,不需使用這條命令。(4)讀顯示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 AI A A A A其中:D7、D6、D5=011為讀顯示RAM命令字的特征位。該命令字用來(lái)設(shè)定將要讀出的顯示RAM地址。AAAA(D3、D2、D1、D0)用來(lái)尋址顯示RAM中的存儲(chǔ)單元。由于位顯示RAM中有16個(gè)字節(jié)單元,故需要4位尋址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次讀出后地址自動(dòng)加1,指向下一地址。(5)寫(xiě)顯示RAM命令命令格式:
14、 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 AI A A A A其中:D7、D6、D5=100為寫(xiě)顯示RAM命令字的特征位。在寫(xiě)顯示RAM之前用這個(gè)命令字來(lái)設(shè)定將要寫(xiě)入的顯示RAM地址。AAAA(D3、D2、D1、D0)為將要寫(xiě)入的顯示RAM中的存儲(chǔ)單元地址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次寫(xiě)入后地址自動(dòng)加1,指向下一次寫(xiě)入地址。(6)顯示禁止寫(xiě)入/消隱命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 X IW/A IW/B BL/A BL/B其中:D7、D6、D5=101為顯示禁止寫(xiě)入/消隱命令特征位。IW/A、IW/ B(D3、D2
15、)為A、B組顯示RAM寫(xiě)入屏蔽位。當(dāng)A組的屏蔽位D3=1時(shí),A組的顯示RAM禁止寫(xiě)入。因此,從CPU寫(xiě)入顯示器RAM數(shù)據(jù)時(shí),不會(huì)影響A的顯示。這種情況通常在采用雙4位顯示器時(shí)使用。因?yàn)閮蓚€(gè)四位顯示器是相互獨(dú)立的。為了給其中一個(gè)四位顯示器輸入數(shù)據(jù)而又不影響另一個(gè)四位顯示器,因此必須對(duì)另一組的輸入實(shí)行屏蔽。BL/A、BL/ B(D1、D0)為消隱設(shè)置位。用于對(duì)兩組顯示輸出消隱。若BL=1,對(duì)應(yīng)組的顯示輸出被消隱。當(dāng)BL=0,則恢復(fù)顯示。(7)清除命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 CD CD CD CF CA 其中:D7、D6、D5=110為清除命令特征位。
16、表2-3 顯示RAM清除方式D4D3D2清除方式10將全部顯示RAM清為00H110將全部顯示RAM置為20H,A組輸出0010,B組輸出0000111將全部顯示RAM置為FFH0D0=0不清除,D0=1按上述方法清除CF(D1)用來(lái)置空FIFO存儲(chǔ)器,當(dāng)CF=1時(shí),執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使INT輸出線(xiàn)復(fù)位。同時(shí),傳感器RAM的讀出地址也被置為0。CA (D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CF =1時(shí),對(duì)顯示的清除方式由D3、D2的編碼決定。顯示RAM清除時(shí)間約需160us。在此期間狀態(tài)字的最高位Du=1,表示顯示無(wú)效。CPU不能向顯示RAM寫(xiě)入數(shù)據(jù)。(8)
17、結(jié)束中斷/錯(cuò)誤方式設(shè)置命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 E X X X X其中:D7、D6、D5=111為該命令的特征位。此命令有兩種不同的作用。作為結(jié)束中斷命令。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時(shí),掃描檢測(cè)電路就將其狀態(tài)寫(xiě)入傳感器RAM,并啟動(dòng)中斷邏輯,使INT變高,向CPU 請(qǐng)求中斷,并且禁止寫(xiě)入傳感器RAM。此時(shí),若傳感器RAM 讀出地址的自動(dòng)遞增特性沒(méi)有置位(AI=0),則中斷請(qǐng)求INT在CPU第一次從傳感器RAM讀出數(shù)據(jù)時(shí)就被清除。若自動(dòng)遞增特征已置位(AI=1),則CPU對(duì)傳感器RAM 的讀出并不能清除INT,而必須通過(guò)給82
18、79寫(xiě)入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令才能使INT變低。因此,在傳感器工作方式中,此命令用來(lái)結(jié)束傳感器RAM的中斷請(qǐng)求。作為特定錯(cuò)誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤(pán)掃描N鍵輪回方式以后,如果CPU給8279又寫(xiě)入結(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)和禁止寫(xiě)入FIFO RAM。上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279后能自動(dòng)尋址相應(yīng)的命令寄存器。因此,寫(xiě)入命令字時(shí)唯一的要求是使數(shù)據(jù)選擇信
19、號(hào)A0 =1。5、8279的狀態(tài)字及其格式 8279的FIFO狀態(tài)字,主要用于鍵盤(pán)和選通工作方式,以指示FIFO RAM中的字符數(shù)和有無(wú)錯(cuò)誤發(fā)生。其格式為: D7 D6 D5 D4 D3 D2 D1 D0 DU S/E O U F N N N其中:Du(D7)為顯示無(wú)效特征位。當(dāng) Du=1表示顯示無(wú)效。當(dāng)顯示RAM由于清除顯示或全清命令尚未完成時(shí),Du=1,此時(shí)不能對(duì)顯示RAM寫(xiě)入。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)入傳感器R
20、AM;而當(dāng)8279工作在特殊錯(cuò)誤方式時(shí),若S/E=1則表示出現(xiàn)了多鍵同時(shí)按下錯(cuò)誤。O、U(D5、D4)為超出、不足錯(cuò)誤特征位。對(duì)FIFO RAM 的操作可能出現(xiàn)兩種錯(cuò)誤:超出或不足。當(dāng)FIFO RAM 已經(jīng)充滿(mǎn)時(shí),其它的鍵盤(pán)數(shù)據(jù)還企圖寫(xiě)入FIFO RAM ,則出現(xiàn)超出錯(cuò)誤,超出錯(cuò)誤特征位O(D5)置1;當(dāng)FIFO RAM已經(jīng)置空時(shí),CPU還企圖讀出,則出現(xiàn)不足錯(cuò)誤,不足錯(cuò)誤特征位U(D4)置1。F(D3)表示FIFO RAM中是否已滿(mǎn)標(biāo)志,若F=1表示已滿(mǎn)。NNN(D2、D1、D0)表示FIFO RAM中的字符數(shù)據(jù)個(gè)數(shù)。6、數(shù)據(jù)輸入/輸出格式對(duì)8279輸入/輸出數(shù)據(jù)不僅要先確定數(shù)據(jù)地址口,而且
21、數(shù)據(jù)存放也要按一定格式,其格式在鍵盤(pán)和傳感器方式有所不同。(1) 鍵盤(pán)掃描方式數(shù)據(jù)輸入格式鍵盤(pán)的行號(hào)、列號(hào)及控制鍵格式如下:圖2-2 鍵盤(pán)控制鍵格式控制鍵CNTL、SHIFT為單獨(dú)的開(kāi)關(guān)鍵。CNTL與其它鍵連用作特殊命令鍵,SHIFT可作上、下?lián)蹩刂奇I。(2)傳感器方式數(shù)據(jù)輸入格式此種方式8位輸入數(shù)據(jù)為RL0RL7的狀態(tài)。格式如下: D7 D6 D5 D4 D3 D2 D1 D0RL7RL6RL5RL4RL3RL2RL1RL02、選擇器件(2)74LS138譯碼器1 ) 74LS138譯碼器在本設(shè)計(jì)中的作用 掃描計(jì)數(shù)器采用編碼工作方式2 ) 74LS138譯碼器的功能分析74LS138是3/8
22、譯碼器,即對(duì)3個(gè)輸入信號(hào)進(jìn)行譯碼。得到8個(gè)輸出狀態(tài)。G1,G2A,G2B,為數(shù)據(jù)允許輸出端,G2A,G2B低電平有效。G1高電平有效。A,B,C為譯碼信號(hào)輸出端,Y0Y7為譯碼輸出端,低電平有效。 圖2-3 74LS138管腳圖 表2-4 74LS138功能表 3 ) 74LS138譯碼器的技術(shù)參數(shù) 電源電壓-7V 輸入電壓-7V 工作環(huán)境溫度-070 貯存溫度-65150 3、選擇器件(3)74LS2401 ) 74LS240譯碼器在本設(shè)計(jì)中的作用 本設(shè)計(jì)實(shí)驗(yàn)中主要是為增加LED的驅(qū)動(dòng)電流2 ) 74LS240譯碼器的功能分析 74LS240 TTL 八反相三態(tài)緩沖器/線(xiàn)驅(qū)動(dòng)器引出端符號(hào):
23、1A,2A 輸入端 , 三態(tài)允許端(低電平有效) 1Y8Y 輸出端 圖2-4 邏輯圖輸入輸出AYLLHLHXHLZ表2-5 功能表3 ) 74LS240譯碼器的技術(shù)參數(shù) 電源電壓-7V 輸入電壓-5.5V 輸出電壓-5.5V 工作環(huán)境溫度-070 存儲(chǔ)溫度-651504、選擇器件(4)小鍵盤(pán)1 ) 小鍵盤(pán)在本設(shè)計(jì)中的作用本設(shè)計(jì)中,小鍵盤(pán)用于輸入十六進(jìn)制數(shù)字。2 ) 小鍵盤(pán)的功能分析通常使用的鍵盤(pán)是矩陣結(jié)構(gòu)的。對(duì)于44=16個(gè)鍵的鍵盤(pán),采用矩陣方式只要用8條引線(xiàn)和2個(gè)8位端口便完成鍵盤(pán)的連接。如圖,這個(gè)矩陣分為4行4列,如果鍵5按下,則第1行和第1列線(xiàn)接通而形成通路。如果第1行線(xiàn)接低電平,則鍵5
24、的閉合,會(huì)使第1列線(xiàn)也輸出低電平。矩陣式鍵盤(pán)工作時(shí),就是按行線(xiàn)和列線(xiàn)的電平來(lái)識(shí)別閉合鍵的。 圖2-5 44鍵盤(pán)矩陣圖行掃描法識(shí)別按鍵的原理如下:先使第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合。這是通過(guò)檢查列線(xiàn)電位來(lái)實(shí)現(xiàn)的,即在第0行接低電平時(shí),看是否有哪條列線(xiàn)變成低電平。如果有某列線(xiàn)變?yōu)榈碗娖?,則表示第0行和此列線(xiàn)相交位置上的鍵被按下;如果沒(méi)有任何一條列線(xiàn)為低電平,則說(shuō)明第0行沒(méi)有任何鍵被按下。此后,再將第1行接低電平,檢測(cè)是否有變?yōu)榈碗娖降牧芯€(xiàn)。如此重復(fù)地掃描,直到最后一行。在掃描過(guò)程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時(shí),也就是列線(xiàn)輸入中有一位為0時(shí),便退出掃描,通過(guò)組合行線(xiàn)和列線(xiàn)即可識(shí)
25、別此刻按下的是哪一鍵。實(shí)際應(yīng)用中,一般先快速檢查鍵盤(pán)中是否有鍵按下,然后再確定按鍵的具體位置。為此,先使所有行線(xiàn)為低,然后檢查列線(xiàn)。這時(shí)如果列線(xiàn)有一位為0,則說(shuō)明必有鍵被按下, 采用掃描法可進(jìn)一步確定按鍵的具體位置。5、選擇器件(5)七段LED顯示器1 ) 七段LED顯示器在本設(shè)計(jì)中的作用本設(shè)計(jì)中,LED顯示器用于顯示按鍵值。2 ) 七段LED顯示器的功能分析LED顯示器有共陽(yáng)極和共陰極兩類(lèi)。其中共陰極原理圖如下:圖2-6 LED顯示器原理圖筆畫(huà)型LED顯示器是由8個(gè)二極管電路adp按字型8的方式排列,當(dāng)不同的二極管被選通后根據(jù)發(fā)光效果會(huì)顯示不同的自型。本設(shè)計(jì)中采用共陰極連接方式,adp分別與
26、8279的OUTA0-OUTA3 和OUTB0-OUTB3相連,接收段選碼信號(hào)(高電平);4位LED顯示器的4根共陰極引線(xiàn)與8279A的PL0-PL3相連,接收位選碼信號(hào)(低電平)。段選碼和位選碼共同作用以顯示不同的字型。表2-6 LED字型顯示原理字符二進(jìn)制輸入A B C D字型碼a b c d e f g dpOX01234567890 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 1 1 1 1 1 0 00 1 1 0 0 0 0 01 1 0 1 1 0 1 01 1 1 1 0 0 1 0
27、0 1 1 0 0 1 1 01 0 1 1 0 1 1 00 0 1 1 1 1 1 01 1 1 0 0 0 0 01 1 1 1 1 1 1 01 1 1 0 0 1 1 03f065b4f666d7d077f6f10/a11/b12/c13/d14/e15/f1 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 11 1 1 0 1 1 1 00 0 1 1 1 1 1 01 0 0 1 1 1 0 00 1 1 1 1 0 1 01 0 0 1 1 1 1 01 0 0 0 1 1 1 0777c395e79713) 七段LED顯示器的技術(shù)參數(shù)表2-7 技
28、術(shù)參數(shù)PcwIfVrIrIfp對(duì)應(yīng)型號(hào)散射顏色BT235702551.52.5200SEL_100紅色BT1441004050.52.5565綠色BT1341004050.52.5585藍(lán)色6、硬件總邏輯圖及其說(shuō)明: 圖2-7 硬件接線(xiàn)圖圖2-7中8279的地址由和A0決定,故數(shù)據(jù)口地址為7FFEH,命令口地址為7FFFH。所接的16個(gè)按鍵,掃描線(xiàn)接在74HC138的譯碼輸出端和上,當(dāng)為0(SL2SL1SL0=000)時(shí),掃描第1列按鍵,當(dāng)為0(SL2SL1SL0=001)掃描第2列按鍵,故07號(hào)按鍵的鍵值為00H07H,815號(hào)按鍵鍵值為08H0FH。當(dāng)某一按鍵被按下后,鍵值就自動(dòng)進(jìn)入緩沖區(qū)
29、,當(dāng)8279內(nèi)部RAM不空時(shí)由INT輸出高電平告知CPU取走,故INT連接CPU的中斷輸入需加一反向器。8279鍵盤(pán)配置最大為88,若要配置64個(gè)按鍵,其它列掃描線(xiàn)可分別連至至上,形成8行8列的按鍵掃描電路。圖2-7中顯示部分段選碼由8279的OUTA3OUTA0、OUTB3OUTB0通過(guò)驅(qū)動(dòng)器74LS240提供,位選碼由SL2SL0 經(jīng)3-8譯碼器通過(guò)驅(qū)動(dòng)器74LS240提供。三控制程序設(shè)計(jì):1設(shè)計(jì)思路說(shuō)明:8279是可編程接口芯片,通過(guò)編程使其實(shí)現(xiàn)相應(yīng)的功能,編程的過(guò)程實(shí)際上就是CPU向8279發(fā)送控制指令的過(guò)程。在軟件設(shè)計(jì)中,顯示方式采用了8個(gè)字符顯示,從左輸入方式,編碼掃描鍵盤(pán),雙鍵鎖
30、定。由于該系統(tǒng)對(duì)實(shí)時(shí)性及速度要求并不十分高,所以時(shí)鐘頻率采用6M Hz已足夠了,故程序時(shí)鐘命令字取為2AH,用以保證100kHz的內(nèi)部工作頻率。由于采用10ms定時(shí)掃描查詢(xún)方式,所以在下次開(kāi)始掃描時(shí),先應(yīng)清空8279,清除顯示RAM大約需要160s的時(shí)間,在此期間,F(xiàn)IFO狀態(tài)字的最高位DU=1,表示顯示無(wú)效,CPU不能顯示RAM寫(xiě)入數(shù)據(jù),所以清除命令狀態(tài)字取D1H。CPU對(duì)8279的控制是先讀回8279的狀態(tài)字,查看PIFORAM中有無(wú)字符,若有將根據(jù)字符個(gè)數(shù)讀出所有字符,并進(jìn)行相應(yīng)處理;若無(wú),則直接返回。CPU對(duì)8279的監(jiān)視采用查詢(xún)方式,對(duì)8279分配的數(shù)據(jù)口地址為8000H,狀態(tài)口地址
31、為8001H,CPU每隔10ms定時(shí)中斷查詢(xún)一次,所有顯示采用查詢(xún)段碼表的方式實(shí)現(xiàn),簡(jiǎn)化了程序設(shè)計(jì)過(guò)程,提高了程序質(zhì)量。2程序流程圖:頁(yè):17流程圖超出邊界開(kāi)始調(diào)用地址轉(zhuǎn)化調(diào)用8279初始化DI取數(shù)據(jù)首地址CALL SCAN_KEYCF=0NAL與KEYCOUNT換AL+AL=6AL與KEYCONT換CALL KEY_NUMAL中是否為+AL是否為-AL是否為乘號(hào)AL是否為AL中大于10ALKEYOUNT,INC ALAL=5KEYCOUN ,0 CALL INT18279轉(zhuǎn)加法轉(zhuǎn)減法轉(zhuǎn)乘法轉(zhuǎn)除法轉(zhuǎn)ZHUANCALL INIT8279_1加法入口NUM首地址DIDI-ALAL乘以10AL+DI
32、中的第二個(gè)數(shù)AL-BL將第三個(gè)數(shù)給ALAL乘10加第四個(gè)數(shù)AL+BL-ALLED_TAB-LEADATA_8279-DXAH=0:10-CLAL除CL: 余數(shù)-AHAH-CH顯示AL轉(zhuǎn)到FIRST減法入口NUM首地址DIDI-ALAL乘以10AL+DI中的第二個(gè)數(shù)AL-BL將第三個(gè)數(shù)給ALAL乘10加第四個(gè)數(shù)AL-BL-ALLED_TAB-LEADATA_8279-DXAH=0:10-CLAL除CL: 余數(shù)-AHAH-CH顯示AL轉(zhuǎn)到FIRST乘法入口NUM首地址DIDI-ALAL乘以10AL+DI中的第二個(gè)數(shù)AL-BL將第三個(gè)數(shù)給ALAL乘10加第四個(gè)數(shù)AL乘BL-ALLED_TAB-LEA
33、DATA_8279-DXAH=0:10-CLAL除CL: 余數(shù)-AHAH-CH顯示AL轉(zhuǎn)到FIRST除法入口NUM首地址DIDI-ALAL乘以10AL+DI中的第二個(gè)數(shù)AL-BL將第三個(gè)數(shù)給ALAL乘10加第四個(gè)數(shù)AL除以BL-ALLED_TAB-LEADATA_8279-DXAH=0:10-CLAL除CL: 余數(shù)-AHAH-CH顯示AL轉(zhuǎn)到FIRST圖3-1程序流程圖3控制程序:頁(yè):22程序要有分欄符.MODELTINYPCIBAR3EQU1CH;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址,也為DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;廠(chǎng)
34、商ID號(hào)Device_IDEQU8376;設(shè)備ID號(hào).STACK100.DATAIO_Bit8_BaseAddress DW?msg0DBBIOS不支持訪(fǎng)問(wèn)PCI $msg1DB找不到Star PCI9052板卡 $msg2DB讀8位I/O空間基地址時(shí)出錯(cuò)$KEYCOUNT DB ?NUMDB00H,00H,00,00HRESULTDW0000HLED_TABDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EHCMD_8279 DW 00B1H;8279命令字、狀態(tài)字地址DATA_8279 D
35、W 00B0H;8279讀寫(xiě)數(shù)據(jù)口的地址.CODESTART: MOVAX,DATAMOVDS,AXNOP CALLInitPCI CALLModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址CALL INIT8279 ;初始化子程序 MOV KEYCOUNT,0 ;KEYCOUNT存貯數(shù)碼塊上顯示的個(gè)數(shù),有鍵按下加1FIRST:MOVDI,OFFSET NUMCONTROL: CALL SCAN_KEY ;鍵掃描 JNC CONTROL XCHG AL,KEYCOUNT ;有按鍵,將鍵值個(gè)數(shù)賦給AL,而AL用來(lái)保存鍵值個(gè)數(shù) INC AL CMP AL,6 ;判斷數(shù)碼塊是
36、否寫(xiě)滿(mǎn) JNZ SHOWJUD MOV KEYCOUNT,0 ;寫(xiě)滿(mǎn)計(jì)數(shù)器KEYCOUNT置零 CALL INIT8279_1;8個(gè)數(shù)碼塊全有字符顯示后,再按鍵,清除顯示 JMP FIRST SHOWJUD: XCHG AL,KEYCOUNT ;取出鍵值 CALL KEY_NUM ;鍵值轉(zhuǎn)換為鍵號(hào)CMPAL,0AH;+JZAACMPAL,0BH;-JZBBCMPAL,0CH;*JZZHUAN2CMPAL,0DH;/JZZHUAN1 CMP AL,10 ;判斷按下的鍵的值是否大于10 JB ZHUAN CMP AL,5 ;判斷數(shù)碼塊是否寫(xiě)滿(mǎn) jz ka JNC CONTROL ka:MOV KE
37、YCOUNT,0 CALL INIT8279_1 JMP CONTROL AA:MOVDI,OFFSET NUMMOVAL,DIMOVDL,10MULDLADDAL,DI+1MOVBL,ALMOVAL,DI+2MULDLADDAL,DI+3ADDAL,BLLEABX,LED_TABMOVDX,DATA_8279MOVAH,0MOVCL,10DIVCLMOVCH,AHMOVAH,0DIVCLXLATOUTDX,ALMOVAL,AHXLATOUTDX,ALMOVAL,CHXLATOUTDX,ALJMPFIRSTZHUAN:JMPSHOW1ZHUAN1:JMPDDDZHUAN2:JMPCCBB:MO
38、VDI,OFFSET NUMMOVAX,DI+2MOVDL,10MULDLADDAL,DI+3MOVBL,ALMOVAX,DIMULDLADDAL,DI+1SUBAL,BLLEABX,LED_TABMOVDX,DATA_8279MOVAH,0MOVCL,10DIVCLXLATOUTDX,ALMOVAL,AHXLATOUTDX,ALJMPFIRSTCC:MOVDI,OFFSET NUMMOVAL,DI+2MOVDL,10MULDLADDAL,DI+3MOVBL,ALMOVAL,DIMULDLADDAL,DI+1MULBLLEABX,LED_TABMOVDX,DATA_8279MOVCL,10DI
39、VCLMOVCH,AHMOVAH,0DIVCLXLATOUTDX,ALMOVAL,AHXLATOUTDX,ALMOVAL,CHXLATOUTDX,ALJMPFIRSTDDD:MOVDI,OFFSET NUMMOVAL,DI+2MOVDL,10MULDLADDAL,DI+3MOVBL,ALMOVAL,DIMULDLADDAL,DI+1DIVBLLEABX,LED_TABMOVDX,DATA_8279MOVAH,0MOVCL,10DIVCLXLATOUTDX,ALMOVAL,AHXLATOUTDX,ALJMPFIRST;顯示按下的鍵所對(duì)應(yīng)的值SHOW1: CALLSAVELEA BX,LED_TA
40、B;獲得字型碼表基地址 XLAT ;al=bx+al CALL WRITE_DATA ;將al值寫(xiě)入8279_DATA JMP CONTROL ;8279初始化SAVEPROCNEARMOVDI,ALINCDIRETSAVEENDPINIT8279 PROC NEAR MOV DX,CMD_8279;命令/狀態(tài)口地址 MOV AL,34H ;可編程時(shí)鐘設(shè)置,設(shè)置分頻系數(shù) 0011 0100 (20分頻10100) OUT DX,AL MOV AL,0;鍵盤(pán)/顯示方式設(shè)置8*8字符顯示,左邊輸入,外部譯碼鍵掃描方式 OUT DX,AL CALL INIT8279_1 ;8個(gè)數(shù)碼塊全有字符顯示后,
41、再按鍵,清除顯示 RETINIT8279 ENDP;8個(gè)數(shù)碼塊全有字符顯示后,再按鍵,清除顯示INIT8279_1 PROC NEAR CALL CLEAR ;清除顯示 MOV AL,90H;寫(xiě)顯示RAM命令,從第一個(gè)數(shù)碼管開(kāi)始移位顯示(從零單元起地址自動(dòng)加1) OUT DX,AL RETINIT8279_1 ENDP;清除顯示CLEAR PROC NEAR MOV DX,CMD_8279 ;命令/狀態(tài)口地址 MOV AL,0DEH ;清除命令11011110 (111將全部顯示RAM置為FFH,cf=1執(zhí)行清除命令后,F(xiàn)IFO RAM被置空) OUT DX,AL ;送清除命令字到命令字寄存器
42、WAIT1: IN AL,DX TEST AL,80H ;測(cè)試顯示RAM是否清除完畢(D7=1?) JNZ WAIT1 RETCLEAR ENDP;掃描鍵盤(pán)SCAN_KEY PROC NEARMOV DX,CMD_8279 ;命令/狀態(tài)口地址 IN AL,DX ;讀取狀態(tài)字;讀FIFO 放入 DATA_8279中READ_FIFO:ANDAL,7 JZ NO_KEY READ:MOV AL,40H ;讀FIFO RAM命令OUT DX,ALMOV DX,DATA_8279 IN AL,DX STC;有鍵CF置1SCAN_KEY1:RETNO_KEY: CLC;無(wú)鍵按下,清CF JMP SCAN
43、_KEY1 SCAN_KEY ENDP;鍵值轉(zhuǎn)化成鍵號(hào) 控制鍵SHIFT=1,CNTL=1 鍵值由行列號(hào)確定KEY_NUM PROC NEAR AND AL,3FH ;鍵值轉(zhuǎn)化成鍵號(hào),8位中的后6位 RET KEY_NUM ENDPWRITE_DATA PROC NEAR PUSH DX MOV DX,DATA_8279 OUT DX,AL POP DX RETWRITE_DATA ENDPInitPCIPROCNEAR MOVAH,00H ;清屏 MOVAL,03H INT10HMOVAH,0B1HMOVAL,01HINT1AH ;軟中斷CMPAH,0JZInitPCI2LEADX,msg0InitPCI1:MOVAH,09H ;字符串輸出INT21HJMPExitInitPCI2:MOVAH,0B1HMOVAL,02HMOVCX,Device_IDMOVDX,Vendor_IDMOVSI,0INT1AHJNCInitPCI3 ;是否存在Star PCI9052板卡LEADX,msg1JMPInitPCI1InitPCI3:MOVDI,PCIBAR3MOV
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年消防給水系統(tǒng)節(jié)能改造與運(yùn)行維護(hù)合同3篇
- 2025年度建筑節(jié)能改造設(shè)計(jì)與實(shí)施合同gf02094篇
- 2025年生物科技專(zhuān)業(yè)共建校企合作框架協(xié)議3篇
- 2025年高科技農(nóng)業(yè)項(xiàng)目委托種植與采購(gòu)協(xié)議3篇
- 2025年食堂檔口租賃及節(jié)假日特別服務(wù)合同3篇
- 2025年度陸路貨物運(yùn)輸合同標(biāo)準(zhǔn)化管理范本4篇
- 2025版五金產(chǎn)品售后服務(wù)與購(gòu)銷(xiāo)合同3篇
- 個(gè)人房產(chǎn)租賃合同(2024新版)一
- 二零二五年文化藝術(shù)品交易賠償合同范本3篇
- 2025年度時(shí)尚購(gòu)物中心黃金地段攤位經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同范本3篇
- 2024版塑料購(gòu)銷(xiāo)合同范本買(mǎi)賣(mài)
- JJF 2184-2025電子計(jì)價(jià)秤型式評(píng)價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級(jí)上學(xué)期語(yǔ)文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書(shū)范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案
- 汽車(chē)噴漆勞務(wù)外包合同范本
- 2024年重慶南開(kāi)(融僑)中學(xué)中考三模英語(yǔ)試題含答案
- 建筑制圖與陰影透視-第3版-課件12
- 2023年最新的校長(zhǎng)給教師春節(jié)祝福語(yǔ)
評(píng)論
0/150
提交評(píng)論