版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、二、設(shè)計(jì)內(nèi)容1、 本設(shè)計(jì)利用各種器件設(shè)計(jì),并利用原理圖將8255單元與鍵盤及數(shù)碼管顯示單元連接,掃描鍵盤輸入,最后將掃描結(jié)果送入數(shù)碼管顯示。鍵盤采用4*4鍵盤,每個(gè)數(shù)碼管可以顯示0-F共16個(gè)數(shù)。 將鍵盤編號(hào),記作0-F,當(dāng)沒按下其中一個(gè)鍵時(shí),將該按鍵對(duì)應(yīng)的編號(hào)在一個(gè)數(shù)碼管上顯示出來,當(dāng)在按下一個(gè)鍵時(shí),便將這個(gè)按鍵的編號(hào)在下一個(gè)數(shù)碼管上顯示,數(shù)碼管上可以顯示最近6次按下的按鍵編號(hào)。設(shè)計(jì)并實(shí)現(xiàn)一44鍵盤的接口,并在兩個(gè)數(shù)碼管上顯示鍵盤所在的行與列。三、問題分析及方案的提出44鍵盤的每個(gè)按鍵均和單片機(jī)的P1口的兩條相連。若沒有按鍵按下時(shí),單片機(jī)P1口讀得的引腳電平為“1”;若某一按鍵被按下,則該鍵
2、所對(duì)應(yīng)的端口線變?yōu)榈仉娖健纹瑱C(jī)定時(shí)對(duì)P1口進(jìn)行程序查詢,即可發(fā)現(xiàn)鍵盤上是否有按鍵按下以及哪個(gè)按鍵被按下。實(shí)現(xiàn)44鍵盤的接口需要用到單片機(jī)并編寫相應(yīng)的程序來識(shí)別鍵盤的十六個(gè)按鍵中哪個(gè)按鍵被按下。因?yàn)榇祟}目還要求將被按下的按鍵顯示出來,因此可以用兩個(gè)數(shù)碼管來分別顯示被按下的按鍵的行與列四、設(shè)計(jì)思路及原因?qū)τ?4鍵盤,共有十六個(gè)按鍵。如果每個(gè)按鍵與單片機(jī)的一個(gè)引腳相連,就會(huì)占用16個(gè)引腳,這樣會(huì)使的單片機(jī)的接口不夠用(即使夠用,也是對(duì)單片機(jī)端口的極大浪費(fèi))。因此我們應(yīng)該行列式的接法。行列式非編碼鍵盤是一種把所有按鍵排列成行列矩陣的鍵盤。在這種鍵若沒有按鍵按下時(shí),單片機(jī)從P1口讀得的引腳電平為“1”
3、;若某一按鍵被按下,則該鍵所對(duì)應(yīng)的端口線變?yōu)榈仉娖?。因?xEX(X表示任意44鍵盤的第一行中的某個(gè)按鍵被按下,相應(yīng)的0xDX、0xBX、0x7X(X表示任意一個(gè)十六進(jìn)制數(shù))分別表示鍵盤的第二行、第三行、第四行;0xXE、0xXD、0xXB、0xX7(X表示任意一個(gè)十六進(jìn)制數(shù))則分別表示鍵盤的第一列、第二列、第三列和第四列。例如0xD7是鍵盤的第二行第四列的按鍵對(duì)于數(shù)碼管的連接,采用了共陽極的接法,其下拉電阻應(yīng)保證芯片不會(huì)因?yàn)殡娏鬟^大而燒壞。五、電路設(shè)計(jì)及功能說明44鍵盤的十六個(gè)按鍵分成四行四列分別于P1端口的八條I/O數(shù)據(jù)線相連;兩個(gè)七段數(shù)碼管分別與單片機(jī)的P0口和P2口的低七位I/O數(shù)據(jù)線
4、相連。數(shù)碼管采用共陽極的接法,所以需要下拉電阻來分流。結(jié)合軟件程序,即可實(shí)現(xiàn)44鍵盤的接口及顯示的設(shè)計(jì)。當(dāng)按下鍵盤其中的一個(gè)按鍵時(shí),數(shù)碼管上會(huì)顯示出該按鍵在44鍵盤上的行值和列值。所以實(shí)現(xiàn)了數(shù)碼管顯示按鍵位置的功能二、實(shí)驗(yàn)內(nèi)容 設(shè)計(jì)并實(shí)現(xiàn)一44鍵盤的接口,并在兩個(gè)數(shù)碼管上顯示鍵盤所在的行與列。即將8255單元與鍵盤及數(shù)碼管顯示單元連接,編寫實(shí)驗(yàn)程序掃描鍵盤輸入,并將掃描結(jié)果送數(shù)碼顯示,鍵盤 采用44鍵盤,每個(gè)數(shù)碼管值可以為0到F,16個(gè)數(shù)。將鍵盤進(jìn)行編號(hào)記作0F當(dāng)按下其中一個(gè)按鍵時(shí)將該按鍵對(duì)應(yīng)的編號(hào)在一個(gè)數(shù)碼管上顯示出來,當(dāng)按下下一個(gè)按鍵時(shí)便將這個(gè)按鍵的編號(hào)在下一個(gè)數(shù)碼管上顯示出來,且數(shù)碼管上
5、可以顯示最近6次按下按鍵的編號(hào)?;驹?.電路設(shè)計(jì)及功能說明2.硬件原理框圖及電路圖(包括接口芯片簡(jiǎn)介)電路圖:六、實(shí)驗(yàn)步驟(1). 把實(shí)驗(yàn)平臺(tái)與PC機(jī)串行口連起來,根據(jù)實(shí)驗(yàn)連線提示在實(shí)驗(yàn)臺(tái)上連線,之后打開電源。(2). 在PC機(jī)上用鼠標(biāo)點(diǎn)擊“Wave”圖標(biāo),進(jìn)入WINDOWS調(diào)試環(huán)境,而后進(jìn)行初始化設(shè)置。點(diǎn)擊仿真器仿真器設(shè)置出現(xiàn)“仿真器設(shè)置”窗,進(jìn)行仿真器的設(shè)置。(3). 用鼠標(biāo)點(diǎn)一下文件打開文件,輸入文件名*.asm,創(chuàng)建新文件,在該窗口中輸入事先編好的程序。(4). 用鼠標(biāo)點(diǎn)項(xiàng)目全部編譯窗,對(duì)當(dāng)前源文件進(jìn)行編譯,反復(fù)修改好程序,直到編譯通過為止。(5). 全速運(yùn)行程序,通過在鍵盤按鍵,
6、觀察八段管的顯示結(jié)果,理解鍵盤掃描原理及程序編寫方法。接口芯片簡(jiǎn)介AT89C51簡(jiǎn)介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。主要管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。
7、P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入
8、時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。ALE/P
9、ROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)
10、據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。數(shù)碼管簡(jiǎn)介數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極CO
11、M接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。 七、軟件部分的程序流程圖,算法和使用的編程技巧1.編程技巧1在按鍵掃描程序中,通過for循環(huán)語句實(shí)現(xiàn)被按下的按鍵的行值的確定,用switch語句實(shí)現(xiàn)列值的確定。0xEX(X表示任意一個(gè)十六進(jìn)制數(shù))表示44鍵盤的第一行中的某個(gè)按鍵被按下,相應(yīng)的0xDX、0xBX、0x7X(X表示任意一個(gè)十六進(jìn)制數(shù))分別表示鍵盤的第二行、第三行、第四行;0xXE、0xXD、0xXB、0xX7(X表示任意一個(gè)十六進(jìn)制數(shù))則分別表示鍵盤的第一列、第二列、第三列和第四列;2. ucRow+ucLine
12、+1即為被按下的按鍵的行列值;3.用十六個(gè)switch語句實(shí)現(xiàn)對(duì)單片機(jī)P0端口和P2口的I/O數(shù)據(jù)線的控制,來控制數(shù)碼管顯示被按下按鍵的行值和列值;否是是否開始顯示緩沖區(qū)初始化 LED顯示讀取鍵值鍵值轉(zhuǎn)換為顯示數(shù)據(jù)開始輸出列掃描信號(hào)列掃描信號(hào)移位該列有鍵輸入?讀入行信號(hào)返回6列掃描完?有鍵輸入?初始化地址參數(shù)按照行列計(jì)算鍵值查表得鍵碼等待按鍵釋放返回2.程序流程圖主流程圖子流程圖八、程序編程 OUTBIG EQU 8002H ; 位控制口 OUTSEG EQU 8004H ; 段控制口 KEYIN EQU 8001H ; 鍵盤讀入口READY: MOV 20H,#3FH ;緩沖器設(shè)初值,賦值到
13、6個(gè)數(shù)碼管 MOV 21H,#3FH MOV 22H,#3FH MOV 23H,#3FH MOV 24H,#3FH MOV 25H,#3FH MAIN: LCALL DISPLAY ;無鍵碼輸入,調(diào)用顯示模塊 LCALL TEST JZ MAIN ;累加器為0即說明無按鍵,則轉(zhuǎn)移繼續(xù)顯示 LCALL SEARCH ;有鍵值輸入,尋找輸入鍵值所在的行和列 MOV 20H,21H ;數(shù)碼管顯示出輸入的鍵值 MOV 21H,22H MOV 22H,23H MOV 23H,204 MOV 24H,25H MOV DPTR,#LEDTAB MOVC A,A+DPTR MOV 25H,A SJMP MAI
14、N DISPLAY: ;顯示模塊 MOV R0,#20H ;緩沖區(qū)從20H處開始 MOV R1, #6 ;共 6個(gè)八段管 MOV R2, #00100000B ;從左邊開始顯示燈亮為1,滅為0,LOOP: MOV DPTR, #OUTBIG MOV A, #0 MOVX DPTR, A ; 位選碼初值設(shè)為0,即關(guān)閉所有八段管 MOV A, R0 ;將以20H為首地址的內(nèi)存值發(fā)送到段碼輸出口8004H MOV DPTR, #OUTSEG MOVX DPTR,A MOV DPTR, #OUTBIG ;輸出位選通信號(hào),使每次只顯示一位八段管 MOV A, R2 MOVX DPTR, A LCALL
15、DELAY ;延時(shí) MOV A, R2 RR A ;位選信號(hào)右移一位,即動(dòng)態(tài)顯示下一個(gè)數(shù)碼管 MOV R2, A INC R0 ;內(nèi)存地址加一,提供段碼輸出 DJNZ R1, LOOP RET DELAY: MOV R7,#01H ; 延時(shí)子程序DEL1: MOV R6,#00HDEL2: DJNZ R6, DEL2 DJNZ R7, DEL1 RET TEST: MOV DPTR,#OUTBIG ;檢測(cè)有無鍵值輸入 MOV A,#00H MOVX DPTR,A ;輸出線置為0 MOV DPTR,#KEYIN MOVX A,DPTR ;讀入鍵狀態(tài) CPL A ;累加器求反 ANL A,#0FH
16、 ;高四位不用 RET SEARCH: ;找出鍵值所在的的位置(行和列) MOV R1,#00100000B MOV R2,#06H MOV R5,#00H MOV R4,#03H LSEARCH: ;找出列所在位置后 MOV A,R1 CPL A MOV DPTR,#OUTBIG MOVX DPTR,A CPL A RR A ;通過判斷循環(huán)幾次進(jìn)位為1來實(shí)現(xiàn)計(jì)數(shù)的功能,從而得知行所在位置 MOV R1,A MOV DPTR,#KEYIN MOVX A,DPTR CPL A ANL A,#0FH JNZ HSEARCH ;找到所在列,繼續(xù)尋找行所在位置 INC R5 DJNZ R2,LSEAR
17、CHHSEARCH: MOV R7,#04HLOOP2: RRC A JC GET DEC R4 DJNZ R7, LOOP2 GET: ;確定輸入的鍵碼值 MOV A,R4 ;鍵值=行*6+列,R4*6+R5-A MOV B,#6H MUL AB ADD A,R5 MOV DPTR,#KEYTAB ;取出鍵碼所在位置 MOVC A,A+DPTR MOV 26H,A ;將取出鍵值暫時(shí)保存在內(nèi)存中,以免數(shù)據(jù)丟失WAIT: MOV DPTR,#OUTBIG ;等鍵釋放 CLR A MOVX DPTR,A LCALL DELAY LCALL TEST JNZ WAIT MOV A,26H ;釋放出鍵
18、盤輸入值 RET LEDTAB: ; 八段管顯示碼DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hDB 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKEYTAB: ;鍵盤碼DB 07H,08H,09H,0AH,00H,00HDB 04H,05H,06H,0BH,00H,00HDB 01H,02H,03H,0CH,00H,00HDB 00H,0FH,0EH,0DH,00H,00HEND九、 仿真過程綜述1按照設(shè)計(jì)思路在PROTEUS軟件中找到相應(yīng)元器件,按照正確的連線方法將各個(gè)元器件連起來。再用PROTEUS軟件仿真時(shí),為避免連線的復(fù)雜性,可以使用在要連線的引腳上標(biāo)注相同的符號(hào)的方法。這樣可以使PROTEUS軟件窗口中的連線少一些
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 28158-2025國(guó)際貿(mào)易業(yè)務(wù)的職業(yè)分類與資質(zhì)管理
- 臨床醫(yī)學(xué)麻醉學(xué)(呼吸功能的監(jiān)控)試題及答案
- 電池試制工效率提升考核試卷及答案
- 急癥患者入院試題及答案
- (班組級(jí))吊裝安裝三級(jí)安全教育考試卷及答案
- 婦產(chǎn)科護(hù)理學(xué)模擬練習(xí)題含參考答案
- 臨床護(hù)理實(shí)踐指南考試復(fù)習(xí)題庫(kù)(含答案)
- 一套機(jī)械工程師常見面試題目(含答案)
- 失禁性皮炎試題及答案
- 2025年行政執(zhí)法人員考試試題庫(kù)及參考答案
- 醫(yī)用手術(shù)器械講解
- 腫瘤晚期呼吸困難治療
- 車間電纜整改方案模板(3篇)
- 徐州村務(wù)管理辦法
- 冰芯氣泡古大氣重建-洞察及研究
- 廣東省惠州市2026屆高三上學(xué)期第一次調(diào)研考試 歷史 含答案
- DB50∕T 1604-2024 地質(zhì)災(zāi)害防治邊坡工程結(jié)構(gòu)可靠性設(shè)計(jì)規(guī)范
- 中國(guó)電氣裝備資產(chǎn)管理有限公司招聘筆試題庫(kù)2025
- 糖尿病足的護(hù)理常規(guī)講課件
- JG/T 155-2014電動(dòng)平開、推拉圍墻大門
- 運(yùn)輸居間協(xié)議書范本
評(píng)論
0/150
提交評(píng)論