![實(shí)現(xiàn)特定功能的鍵盤(pán)及LED顯示_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/29/5263bab4-0206-4b89-8900-144a766a7658/5263bab4-0206-4b89-8900-144a766a76581.gif)
![實(shí)現(xiàn)特定功能的鍵盤(pán)及LED顯示_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/29/5263bab4-0206-4b89-8900-144a766a7658/5263bab4-0206-4b89-8900-144a766a76582.gif)
![實(shí)現(xiàn)特定功能的鍵盤(pán)及LED顯示_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/29/5263bab4-0206-4b89-8900-144a766a7658/5263bab4-0206-4b89-8900-144a766a76583.gif)
![實(shí)現(xiàn)特定功能的鍵盤(pán)及LED顯示_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/29/5263bab4-0206-4b89-8900-144a766a7658/5263bab4-0206-4b89-8900-144a766a76584.gif)
![實(shí)現(xiàn)特定功能的鍵盤(pán)及LED顯示_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-4/29/5263bab4-0206-4b89-8900-144a766a7658/5263bab4-0206-4b89-8900-144a766a76585.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2 .設(shè)計(jì)說(shuō)明12.1. 設(shè)計(jì)思路12.1.1. 鍵盤(pán)輸入22.1.2. 點(diǎn)陣LED輸出32.2. 運(yùn)用技術(shù)52.3. 完成情況53 .源代碼清單64 .程序結(jié)果截圖125 .結(jié)論及體會(huì)131 .2 .設(shè)計(jì)說(shuō)明微機(jī)系統(tǒng)與接口技術(shù)是一門(mén)實(shí)踐性很強(qiáng)的課程,本課程設(shè)計(jì)是這門(mén)課程的最后一個(gè)教學(xué)環(huán)節(jié),是對(duì)這門(mén)課程一個(gè)較全面的應(yīng)用設(shè)計(jì)實(shí)踐,目的在于在鞏周學(xué)生在課堂上學(xué)到的基礎(chǔ)知識(shí),加強(qiáng)學(xué)生的綜合能力與系統(tǒng)設(shè)計(jì)能力、創(chuàng)新能力。在本課程設(shè)計(jì)中,我的題目是在TD-PITE實(shí)驗(yàn)箱中實(shí)現(xiàn)特定功能的鍵盤(pán)及LED顯示。整個(gè)系統(tǒng)的目標(biāo)實(shí)現(xiàn)功能具體一點(diǎn)是通過(guò)鍵盤(pán)輸入來(lái)控制點(diǎn)陣LED顯示器顯示不同的內(nèi)容,同時(shí)要求有一定的擴(kuò)展
2、能力特性。整個(gè)系統(tǒng)的具體目標(biāo)功能特性如下;1)按1鍵顯示年,按2鍵顯示月、日。2)按3鍵顯示自己的姓名。3)按4鍵由左向右循環(huán)顯示自己的學(xué)號(hào)或其它特效功能。2.1. 設(shè)計(jì)思路從上面的任務(wù)說(shuō)明中可以知道程序的功能很簡(jiǎn)單,從總體上可以感受得到關(guān)鍵問(wèn)題在于獲取鍵盤(pán)的輸入、控制點(diǎn)陣LED的輸出顯示。前者在于接收到鍵盤(pán)是否被按下以及哪一個(gè)鍵被按下的數(shù)據(jù),在取得這些數(shù)據(jù)后程序就能夠按規(guī)則將后者的顯示內(nèi)容進(jìn)行更改,從而達(dá)到通過(guò)鍵盤(pán)輸入來(lái)控制點(diǎn)陣LED的輸出。系統(tǒng)運(yùn)行流程圖如下:上面流程圖中LED的顯示特效是動(dòng)態(tài)的,同時(shí)系統(tǒng)需要監(jiān)控鍵盤(pán)的輸入情況,即系統(tǒng)需要控制LED輸出,也需要控制鍵盤(pán)的輸入檢測(cè)。在此有兩種
3、方案可以考慮。第一種是使用中斷的方式(8259A芯片)將鍵盤(pán)的檢測(cè)獨(dú)立出來(lái),當(dāng)鍵盤(pán)被按下時(shí),鍵盤(pán)就會(huì)發(fā)出一個(gè)中斷信號(hào)來(lái)中斷當(dāng)前的系統(tǒng)操作,進(jìn)而系統(tǒng)可以從鍵盤(pán)的掃描結(jié)果來(lái)決定是否進(jìn)行功能的切換。第二種則是使用程序查詢的方式進(jìn)行,此方式相對(duì)第一種會(huì)更加簡(jiǎn)單。具體的實(shí)施方式是在每一次的LED輸出后,馬上查詢一個(gè)鍵盤(pán)是不是有按鍵被按下,如果發(fā)現(xiàn)存在被按下的鍵,則讀取鍵盤(pán)的按鍵住處,進(jìn)而進(jìn)行功能切換,否則繼續(xù)控制LED的動(dòng)態(tài)效果輸出。相比之下,第二種方式比較簡(jiǎn)單實(shí)用,所以本系統(tǒng)采取了程序查詢的方式解決了邊控制LED輸出邊監(jiān)控鍵盤(pán)輸入的問(wèn)題。下面針對(duì)鍵盤(pán)輸入與LED俞出兩個(gè)關(guān)鍵問(wèn)題進(jìn)行詳細(xì)的說(shuō)明。2.1.
4、1. 鍵盤(pán)輸入為了得到鍵盤(pán)的輸入,本系統(tǒng)使用8255A作為輸入輸出芯片,并連接到一個(gè)4*4的鍵盤(pán)上。該鍵盤(pán)從左上角到右下角分別是05的編號(hào)。在實(shí)際連接時(shí),主要使用8255A的端口C的低4位來(lái)作為讀入鍵盤(pán)的掃描碼的輸入端口。由于該鍵盤(pán)還帶有數(shù)碼顯示管單元,為了能夠進(jìn)行鍵盤(pán)輸入操作的調(diào)試,這里對(duì)數(shù)碼顯示管使用端口A與端口B分別連接之,調(diào)試過(guò)程中將使用端口A、B來(lái)將鍵盤(pán)的鍵值使用數(shù)碼管顯示之,注意在最終的執(zhí)行過(guò)程中將不會(huì)使用到該單元的數(shù)碼顯示管單元器件。下面是系統(tǒng)總線與8255A、4*4的鍵盤(pán)單元的連接線路圖。PB0PB1PB2XD0ooD0PB3.PB4.PB5XD7,D7PB6系PB78255次
5、XA10OA0單PA0心XA20OA1元PA1線PA2PA3IOW#OOWRPA4IOR#OORDPA5IOY0ooCSPC0PC1PC2PC3444qooooooooQ01nnnn44nnoooooonooABCD鍵E盤(pán)F及GDp數(shù)碼X1管X2顯X3.X4X5單X6元Y1Y2Y3Y4基于上圖的芯片單元配置連接圖,在程序中可以通過(guò)8255A的端口C來(lái)讀取鍵盤(pán)的掃描碼。當(dāng)發(fā)現(xiàn)有按鍵被按下時(shí),程序會(huì)取得按鍵對(duì)應(yīng)的數(shù)字編號(hào),以便進(jìn)一步處理LED的顯示內(nèi)容。關(guān)于詳細(xì)的掃描鍵盤(pán)及讀取鍵盤(pán)按鍵值的實(shí)現(xiàn)請(qǐng)參考后續(xù)的源代碼實(shí)現(xiàn)。2.1.2. 點(diǎn)陣LED輸由本系統(tǒng)的輸出將采用點(diǎn)陣式的LED單元進(jìn)行輸出,實(shí)驗(yàn)箱自
6、帶的點(diǎn)陣LED的大小是16*16的,即由四塊8*8的點(diǎn)陣塊組成,這四個(gè)點(diǎn)陣塊分別占用了兩行兩列。實(shí)驗(yàn)箱的點(diǎn)陣LED的顯示方式是行為1時(shí),列為0時(shí)對(duì)應(yīng)的LED點(diǎn)會(huì)亮。具體的點(diǎn)陣LED的示意圖及內(nèi)部結(jié)構(gòu)圖如下:07行81507815I列J16X16點(diǎn)陣示意圖91481217216X16點(diǎn)陣內(nèi)部結(jié)構(gòu)圖使用點(diǎn)陣LED輸出文字時(shí)的關(guān)鍵在于符合點(diǎn)陣格式的文字點(diǎn)陣數(shù)據(jù),在本系統(tǒng)中將使用DotReader這款中文點(diǎn)陣生成器自動(dòng)生成目標(biāo)文字的點(diǎn)陣數(shù)據(jù),具體的使用方法可以在參考文獻(xiàn)的相關(guān)引用資料1中找到。在本系統(tǒng)中,每一個(gè)中文的點(diǎn)陣大小是16*16的,在輸出的時(shí)候只要將對(duì)應(yīng)的點(diǎn)陣數(shù)據(jù)放到點(diǎn)陣LED的對(duì)應(yīng)位置即可,
7、整個(gè)LED會(huì)在點(diǎn)陣數(shù)據(jù)填充過(guò)程中正確顯示文字。在滑動(dòng)地顯示文字這個(gè)特效功能上,本系統(tǒng)采用逐行掃描方式,不斷地將文字的點(diǎn)陣數(shù)據(jù)向某一個(gè)方向“滑動(dòng)”地在LED上面顯示,最終達(dá)到整體上文字的滑動(dòng)特效顯示。XD0XD7系統(tǒng)總IOY0線。丫1IOY2IOY3IOW#OO一.,.OO一OOOOOOOOOOD0D7CS1CS2CS3CS4WRLED16*16的點(diǎn)陣LED的數(shù)據(jù)端口有一個(gè),通過(guò)IOY0IOY4來(lái)進(jìn)行片選操作,從而能夠訪問(wèn)各行各列的點(diǎn)陣.下面是本16*16點(diǎn)陣LED的四個(gè)端口的定義:ROW1EQU0600H;第07行ROW2EQU0640H;第815行COL1EQU0680H;第07歹1COL2
8、EQU06C0H;第815列卜面是16*16點(diǎn)陣LED與系統(tǒng)總線的連接線路圖2.2. 運(yùn)用技術(shù)本系統(tǒng)整體結(jié)構(gòu)比較簡(jiǎn)單,運(yùn)用到實(shí)現(xiàn)技術(shù)主要是鍵盤(pán)輸入單元點(diǎn)陣LED輸出單元并行接口單元8255A芯片16*16中文字符點(diǎn)陣生成器2.3. 完成情況目前系統(tǒng)的完成情況基本能夠達(dá)到題目要求,按0鍵的功能是從上至下滑動(dòng)顯示學(xué)生學(xué)號(hào),按1鍵則從下至上是滑動(dòng)顯示學(xué)生姓名,并進(jìn)行LED顯示內(nèi)容的切換。最后LED的顯示特效也符合預(yù)期,能夠正常自下而上地“滑動(dòng)式”顯示輸出內(nèi)容3 .源代碼清單本系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,主要的代碼量是中文點(diǎn)陣數(shù)據(jù),在此就不列出了。以下整個(gè)系統(tǒng)的匯編源代碼清單。整個(gè)系統(tǒng)初始運(yùn)行時(shí)默認(rèn)是滑動(dòng)顯示學(xué)生姓
9、名。MY8255_AMY8255_BMY8255_CMY8255CONEQUEQUEQUEQU0600H0602H0604H0606H;端口定義;鍵盤(pán)輸入相關(guān)接口ROW1ROW2COL1COL2EQU0600HEQU0640HEQU0680HEQU06C0H;端口定義;點(diǎn)陣LED輸出相關(guān)接口;堆棧段STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDS;數(shù)據(jù)段DATADATA;代碼段CODESEGMENTINPUTSDB?INCLUDEchunrong.asmENDS;所有數(shù)據(jù)漢字點(diǎn)陣SEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DAT
10、AMOVDS,AXMOVDX,ROW1MOVAL,00HOUTDX,ALMOVDX,ROW2OUTDX,ALMOVAL,0ffHMOVDX,COL1OUTDX,ALMOVDX,COL2OUTDX,AL;初始化8255AMOVDX,MY8255_CONMOVAL,81HOUTDX,ALJMPSHOW_ZHOU;默認(rèn)顯示名字;=滑動(dòng)顯示姓名=SHOW_ZHOU:NAME_BG0:MOVAX,16*4MOVSI,OFFSETHZDOT_NameNAME_BG1:CALLDISP;滑動(dòng)一行SUBSI,2PUSHSIPUSHAXCALLSCAN_KEYBOARD;掃描一個(gè)鍵盤(pán)碼POPAXPOPSIDEC
11、AX;下一輪滑動(dòng);下一行JZNAME_BG0JMPNAME_BG1;=滑動(dòng)顯示學(xué)號(hào)=SHOW_XUEHAO:XUEHAO_BG0:MOVAX,24MOVSI,OFFSETHZDOT_XUEXUEHAO_BG1:CALLDISPADDSI,2PUSHSIPUSHAXCALLSCAN_KEYBOARDPOPAXPOPSIDECAXJZXUEHAO_BG0JMPXUEHAO_BG1;滑動(dòng)一行;掃描一個(gè)鍵盤(pán)碼;下一輪滑動(dòng);下一行;=掃描鍵盤(pán)并選擇功能=SCAN_KEYBOARD:BEGIN:CALLCCSCAN;掃描JNZINK1RET;INK1:CALLDALLYCALLDALLYCALLCCSCA
12、NJNZINK2INK2_BRK:MOVAL,INPUTSCMPAL,0JZSHOWZHOU;有鍵按下,進(jìn)行取鍵值;得到鍵值;0顯示姓名;default.CMPAL,1;1顯示學(xué)號(hào)JZSHOW_XUEHAORET;=獲取鍵盤(pán)輸入的鍵值=INK2:MOVCH,0FEHMOVCL,00HCOLUM:MOVAL,CHMOVDX,MY8255_AOUTDX,ALMOVDX,MY8255_CINAL,DXL1:TESTAL,01H;isLine1?JNZL2MOVAL,00H;Line1JMPKCODEL2:TESTAL,02H;isLine2?JNZL3MOVAL,04H;Line2JMPKCODEL
13、3:TESTAL,04H;isLine3?JNZL4MOVAL,08H;Line3JMPKCODEL4:TESTAL,08H;isLine4?JNZNEXTMOVAL,0CH;Line4KCODE:ADDAL,CLMOVINPUTS,Al;保存輸入值NEXT:INCCLMOVAL,CHTESTAL,08HJZKERRROLAL,1MOVCH,ALJMPCOLUMKERR:JMPINK2_BRK;返回,并判斷是否需要切換功能尸=鍵盤(pán)掃描子程序=CCSCAN:MOVAL,00H;鍵盤(pán)掃描子程序MOVDX,MY8255_AOUTDX,ALMOVDX,MY8255_CINAL,DXNOTALANDAL
14、,0FHRET;=鍵盤(pán)延時(shí)子程序=DALLY:PUSHCXMOVCX,0006HT1:MOVAX,009FHT2:DECAXJNZT2LOOPT1POPCXRET;=顯示漢字子程序=;入口參數(shù):SI=存放漢字點(diǎn)陣起始地址DISP:MOVCX,000FHPUSHAXML0:PUSHCXMOVBL,01HMOVCX,0008HML1:MOVDX,ROW1;控制0-7行MOVAL,00HOUTDX,ALMOVAL,SInotal;0表小局鳧MOVDX,COL1;0-7列OUTDX,ALINCSI;下一個(gè)字節(jié)(下一列)MOVAL,SInotalMOVDX,COL2;8-15歹UOUTDX,ALINCS
15、IMOVDX,ROW1才空制0-7行MOVAL,BLOUTDX,ALROLBL,1CALLDELAYLOOPML1MOVDX,ROW1MOVAL,00HOUTDX,ALMOVCX,0008HML2:MOVDX,ROW2才空制8-15行MOVAL,00HOUTDX,ALMOVAL,SINOTALMOVDX,COL1;0-7歹UOUTDX,ALINCSIMOVAL,SINOTALMOVDX,COL2;8-15歹UOUTDX,ALINCSIMOVDX,ROW2才空制8-15行MOVAL,BLOUTDX,ALROLBL,1CALLDELAYLOOPML2MOVDX,ROW2MOVAL,00HOUTDX
16、,ALSUBSI,32POPCXLOOPML0POPAXRET;=顯示延時(shí)子程序=DELAY:PUSHCX;延時(shí)子程序MOVCX,00C0HDL1:PUSHAXPOPAXLOOPDL1POPCXRETCODEENDSENDSTART;本文件為16X16點(diǎn)陣中文字庫(kù)文件,字的橫向8點(diǎn)構(gòu)成一字節(jié),左邊點(diǎn)在字節(jié)的高位,字符點(diǎn)陣四角按左上角一右上角一左下角一右下角取字;如你想在以后繼續(xù)用HZDotReader打開(kāi)文件,追加漢字點(diǎn)陣數(shù)據(jù),請(qǐng)不要修改或增刪所有注釋CD5C5EQU00000H;李CBCCCEQUCD5c5+1;俊CB7E5EQUCBCCC+1;杰;杰CBDDCDB080H,001H,080
17、H,001H,0FEH,03FH,0FEH,03FHDB0E0H,003H,0E0H,007H,0B0H,00DH,098H,019HDB08EH,071H,082H,021H,000H,000H,06CH,033HDB04CH,066H,0C6H,064H,006H,000H,000H,000H;俊CBFA1DB018H,003H,098H,001H,0DCH,018H,0ECH,03FHDB0EEH,03FH,08EH,019H,0CFH,030H,06DH,023HDB08CH,01FH,0CCH,01FH,06CH,019H,02CH,00FHDB00CH,00EH,0CCH,07BH
18、,0ECH,070H,000H,000H;李CC0EEHZDOT_Name:DB080H,001H,080H,001H,0FFH,07FH,0FFH,07FHDB0B0H,007H,09CH,01DH,007H,070H,0FAH,00FHDB0F8H,00FH,000H,003H,0FEH,07FH,0FEH,07FHDB080H,001H,0E0H,001H,0C0H,000H,000H,000HHZDOT_XUE:;27C3237DB000H,000H,000H,000H,000H,000H,018H,07EHDB024H,040H,042H,040H,042H,020H,040H,020HDB020H,020H,010H,010H,008H,010H,004H,010HDB002H,008H,07EH,008H,000H,000H,000H,000H;55C3535DB000H,000H,00
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)物料策劃供應(yīng)合同協(xié)議
- 2025年律師事務(wù)所服務(wù)協(xié)議標(biāo)準(zhǔn)文本
- 2025年通信電源項(xiàng)目申請(qǐng)報(bào)告模板
- 2025年穿水冷卻裝置項(xiàng)目提案報(bào)告
- 2025年住宅銷(xiāo)售經(jīng)紀(jì)服務(wù)協(xié)議
- 2025年市場(chǎng)準(zhǔn)入合規(guī)策劃合作框架協(xié)議
- 2025年企業(yè)簽訂網(wǎng)絡(luò)安全協(xié)議
- 2025年企業(yè)股東間保密協(xié)議策劃樣本
- 2025年實(shí)習(xí)生供求策劃協(xié)議書(shū)模板
- 2025年丹陽(yáng)市美容院股東權(quán)益策劃與分配合同書(shū)
- 行政倫理學(xué)教程(第四版)課件 第5章?行政責(zé)任
- HYT 215-2017 近岸海域海洋生物多樣性評(píng)價(jià)技術(shù)指南
- 初中生物校本課程綱要
- 陽(yáng)光分級(jí)閱讀 Letters for Mr James 課件
- 賣(mài)花生混聲合唱簡(jiǎn)譜
- 占道作業(yè)交通安全設(shè)施設(shè)置技術(shù)要求
- 數(shù)學(xué)方法在物理中的應(yīng)用
- 《肝豆?fàn)詈俗冃浴氛n件
- 體育教學(xué)小組合作
- 分布式儲(chǔ)能系統(tǒng)的成本效益評(píng)估
- 心肺復(fù)蘇指南
評(píng)論
0/150
提交評(píng)論