版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計說明書</b></p><p> 課題名稱: 微機原理 </p><p> 設(shè)計題目: 設(shè)計一個16鍵的鍵盤系統(tǒng) </p><p> 專業(yè)班級: </p><p>
2、 學(xué)生姓名: </p><p> 學(xué) 號 : </p><p><b> 目 錄</b></p><p><b> 設(shè)計目的</b></p><p><b>
3、 設(shè)計原理與分析</b></p><p><b> 所選元件清單</b></p><p><b> 課程設(shè)計心得</b></p><p><b> 課程設(shè)計目的</b></p><p> 了解鍵盤電路的工作原理。</p><p>
4、 本實驗要求在實驗臺上,用并行接口實驗卡PPI8255為PC機擴展可編程并行接口;利用實驗卡上的8位撥動開關(guān)提供輸入數(shù)據(jù),用8個LED指示燈顯示輸出結(jié)果;用單脈沖按鈕PI提供輸入選通脈沖/STBA模擬輸入設(shè)備送數(shù),用單脈沖按鈕PO提供輸出應(yīng)答脈沖/ACKA和/ACKB模擬輸出設(shè)備取數(shù)。</p><p> 掌握鍵盤接口電路的編程方法。</p><p> 設(shè)計人機界面接口,要求在微機屏幕上
5、動態(tài)地顯示當(dāng)前實驗的內(nèi)容和實驗的結(jié)果,包括8255A的工作方式,輸入的數(shù)據(jù)和輸出的結(jié)果</p><p> 設(shè)計人機界面接口,要求在微機屏幕上,以菜單方式列出并行接口8255A原理實驗的內(nèi)容,并根據(jù)實驗內(nèi)容設(shè)置好工作方式選擇跳線開關(guān),用戶可以通過鍵盤選擇實驗的內(nèi)容。</p><p><b> 方式0</b></p><p> 8255為方式
6、0、A口輸入、B口輸出 ,可用無條件傳送方式控制輸入/出。</p><p><b> 方式1</b></p><p> 其它要求同方式0,改用查詢方式控制輸入/出,用中斷方式也可以,通過讀取C口的狀態(tài)字來獲取狀態(tài)。 </p><p><b> 方式2</b></p><p> 使A口既能接受
7、開關(guān)狀態(tài)又能控制LED指示燈顯示;要求先接收A口的開關(guān)數(shù)據(jù),可用查詢方式控制輸入/出。 </p><p> 第2章設(shè)計原理與分析</p><p><b> 2.1、實驗原理:</b></p><p> 1、識別鍵的閉合,通常采用行掃描法和行反轉(zhuǎn)法。</p><p> 行掃描法是使鍵盤上某一行線為低電平,而其余
8、行接高電平,然后讀取列值,如所讀列值中某位為低電平,表明有鍵按下,否則掃描下一行,直到掃完所有行。</p><p> 本實驗例程采用的是行反轉(zhuǎn)法。</p><p> 行反轉(zhuǎn)法識別鍵閉合時,要將行線接一并行口,先讓它工作于輸出方式,將列線也接到一個并行口,先讓它工作于輸入方式,程序使CPU通過輸出端口往各行線上全部送低電平,然后讀入列線值,如此時有某鍵被按下,則必定會使某一列線值為0。然
9、后,程序?qū)蓚€并行端口進行方式設(shè)置,使行線工作于輸入方式,列線工作于輸出方式,并將剛才讀得的列線值從列線所接的并行端口輸出,再讀取行線上的輸入值,那么,在閉合鍵所在的行線上的值必定為0。這樣,當(dāng)一個鍵被按下時,必定可以讀得一對唯一的行線值和列線值。</p><p> 2、程序設(shè)計時,要學(xué)會靈活地對8255A的各端口進行方式設(shè)置??蓪⒏麈I對應(yīng)的鍵值(行線值、列線值)放在一個表中,將要顯示的0~F字符放在另一個表中
10、,通過查表來確定按下的是哪一個鍵并正確顯示出來。</p><p> 3、利用實驗箱上的8255A可編程并行接口芯片和矩陣鍵盤,編寫程序,做到在鍵盤上每按一個數(shù)字鍵(0~F),用發(fā)光二極管將該代碼顯示出來。</p><p><b> 2.2、實驗步驟:</b></p><p> 將鍵盤RL10~RL17接8255A的PB0~PB7;KA10
11、~KA12接8255A的PA0~PA2;PC0~PC7接發(fā)光二極管的L1~L8;8255A芯片的片選信號8255CS接CS0。</p><p> 2.3、實驗電路: </p><p><b> 圖2-1實驗電路圖</b></p><p><b> 2.4、程序框圖:</b></p><p>&
12、lt;b> 圖2-2程序框圖</b></p><p> 2.5、程序接線圖:</p><p> 鍵盤 RL10接 8255A PB0</p><p> 鍵盤 RL11接 8255A PB1</p><p> 鍵盤 RL12接 8255A PB2</p><p> 鍵盤 RL13接 8255
13、A PB3</p><p> 鍵盤 RL14接 8255A PB4</p><p> 鍵盤 RL15接 8255A PB5</p><p> 鍵盤 RL16接 8255A PB6</p><p> 鍵盤 RL17接 8255A PB7</p><p> 鍵盤KA10接 8255A PA0</p>
14、<p> 鍵盤KA12接 8255A PA1</p><p> 鍵盤KA12接 8255A PA28</p><p> 鍵盤PC0 發(fā)光二極管L1</p><p> 鍵盤PC1 發(fā)光二極管 L2</p><p> 鍵盤PC2 發(fā)光二極管 L3</p><p> 鍵盤PC3 發(fā)光二
15、極管 L4</p><p> 鍵盤PC4 發(fā)光二極管 L5</p><p> 鍵盤PC5 發(fā)光二極管 L6</p><p> 鍵盤PC6 發(fā)光二極管 L7</p><p> 鍵盤PC7 發(fā)光二極管 L8</p><p> 8255A芯片的片選信號8255CS接CS0</p><p>&
16、lt;b> 2.6、參考程序:</b></p><p><b> T8.ASM </b></p><p> NAME t8 ;8255鍵盤實驗</p><p> PA EQU 0CFA0H</p><p> PB EQU PA+1</p><p> PC0 EQU P
17、B+1</p><p> PCTL EQU PC0+1</p><p> CSEG AT 4000H</p><p> LJMP START</p><p> CSEG AT 4100H</p><p> START: MOV 42H,#0FFH ;42H中放顯示的字符碼,初值為0FFH</p>
18、<p> STA1: MOV DPTR,#PCTL ;設(shè)置控制字,ABC口工作于方式0</p><p> ;AC口輸出而B口用于輸入</p><p> MOV A,#82H</p><p> MOVX @DPTR,A</p><p> LINE: MOV DPTR,#PC0 ;將字符碼從C口輸出顯示</p>
19、<p><b> MOV A,42H</b></p><p><b> CPL A</b></p><p> MOVX @DPTR,A</p><p> MOV DPTR,#PA ;從A口輸出全零到鍵盤的列線</p><p> MOVX @DPTR,A</p>&
20、lt;p> MOV DPTR,#PB ;從B口讀入鍵盤行線值</p><p> MOVX A,@DPTR</p><p> MOV 40H,A ;行線值存于40H中</p><p> CPL A ;取反后如為全零</p><p> ;表示沒有鍵閉合,繼續(xù)掃描</p><p><b> JZ
21、LINE</b></p><p> MOV R7,#10H ;有鍵按下,延時10MS去抖動</p><p> DL0: MOV R6,#0FFH</p><p> DL1: DJNZ R6,DL1</p><p> DJNZ R7,DL0</p><p> MOV DPTR,#PCTL ;重置控制
22、字,讓A為輸入,BC為輸出</p><p> MOV A,#90H</p><p> MOVX @DPTR,A</p><p><b> MOV A,40H</b></p><p> MOV DPTR,#PB ;剛才讀入的行線值取出從B口送出</p><p> MOVX @DPTR,A&
23、lt;/p><p> MOV DPTR,#PA ;從A口讀入列線值</p><p> MOVX A,@DPTR</p><p> MOV 41H,A ;列線值存于41H中</p><p> CPL A ;取反后如為全零</p><p> JZ STA1 ;表示沒有鍵按下</p><p>
24、 MOV DPTR,#TABLE ;TABLE表首地址送DPTR</p><p> MOV R7,#18H ;R7中置計數(shù)值16</p><p> MOV R6,#00H ;R6中放偏移量初值</p><p> TT: MOVX A,@DPTR ;從表中取鍵碼前半段字節(jié),行線值與實</p><p> CJNE A,40H,NN1 ;際
25、輸入的行線值相等嗎?不等轉(zhuǎn)NN1</p><p> INC DPTR ;相等,指針指向后半字節(jié),即列線值</p><p> MOVX A,@DPTR ;列線值與實際輸入的列線值</p><p> CJNE A,41H,NN2 ;相等嗎?不等轉(zhuǎn)NN2</p><p> MOV DPTR,#CHAR ;相等,CHAR表基址和R6中的偏移量
26、</p><p> MOV A,R6 ;取出相應(yīng)的字符碼</p><p> MOVC A,@A+DPTR</p><p> MOV 42H,A ;字符碼存于42H</p><p> BBB: MOV DPTR,#PCTL ;重置控制字,讓AC為輸出,B為輸入</p><p> MOV A,#82H</p
27、><p> MOVX @DPTR,A</p><p> AAA: MOV A,42H ;將字符碼從C口送到二極管顯示</p><p> MOV DPTR,#PC0</p><p><b> CPL A</b></p><p> MOVX @DPTR,A</p><p>
28、; MOV DPTR,#PA ;判斷按下的鍵是否釋放</p><p><b> CLR A</b></p><p> MOVX @DPTR,A</p><p> MOV DPTR,#PB</p><p> MOVX A,@DPTR</p><p><b> CPL A<
29、/b></p><p> JNZ AAA ;沒釋放轉(zhuǎn)AAA</p><p> MOV R5,#2 ;已釋放則延時0.2秒,減少總線負擔(dān)</p><p> DEL1: MOV R4,#200</p><p> DEL2: MOV R3,#126</p><p> DEL3: DJNZ R3,DEL3<
30、;/p><p> DJNZ R4,DEL2</p><p> DJNZ R5,DEL1</p><p> JMP START ;轉(zhuǎn)START</p><p> NN1: INC DPTR ;指針指向后半字節(jié)即列線值</p><p> NN2: INC DPTR ;指針指向下一鍵碼前半字節(jié)即行線值</p>
31、;<p> INC R6 ;CHAR表偏移量加一</p><p> DJNZ R7,TT ;計數(shù)值減一,不為零則轉(zhuǎn)TT繼續(xù)查找</p><p><b> JMP BBB</b></p><p><b> TABLE: </b></p><p> DW 0FE06H,0FD06
32、H,0FB06H,0F706H;TABLE為鍵值表,每個鍵位占</p><p> DW 0BF06H,07F06H,0FE05H,0FD05H; 兩個字節(jié),第一個字節(jié)為行</p><p> DW 0EF05H,0DF05H,0BF05H,07F05H ;線值,第二個為列線值</p><p> DW 0FB03H,0F703H,0EF03H,0DF03H;<
33、;/p><p> CHAR: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;字符碼表</p><p> DB 0AH,0BH,0CH,0DH,0EH,0FH,10H,11H,12H,13H</p><p> DB 14H,15H,16H,17H</p><p><b> END</
34、b></p><p> 第3章所選元件清單</p><p><b> 3.1元件清單:</b></p><p><b> 表3-1元件清單</b></p><p> 3.2 程序?qū)嶋H接線</p><p> 數(shù)碼管的不同筆段的組合構(gòu)成了不同字符的字形。為了獲得
35、不同的字形,各筆段所加的電平也不同,因此各個字形所形成的編碼是不一樣的。例如,對于共陽極數(shù)碼管,如果要顯示字符2,則筆段a、b、g、e、d發(fā)光,對應(yīng)的引腳為低電平;其余各筆段不發(fā)光,對應(yīng)的引腳為該電平。所以字符2的字形編碼為如 dp gfedcba=10100100B=A4H。</p><p> 陰極數(shù)碼管的字形編碼與用陽極數(shù)碼管的字形編碼是邏輯“非”的關(guān)系。根據(jù)上述編碼方法可以得出數(shù)碼管顯示的字符與對應(yīng)的字形
36、編碼的關(guān)系,如表3-2所示</p><p> 表3-2 數(shù)碼表的字形編碼表</p><p> 第4章 課程設(shè)計心得</p><p> 通過這次單片機課設(shè),我更加清晰的認識了到了單片機內(nèi)的引腳。</p><p> 單片機的40個引腳按引腳功能大致可分為4個種類:電源、時鐘、控制和I/O引腳。 </p><p>
37、<b> ?、?電源: </b></p><p> ⑴ VCC - 芯片電源,接+5V; </p><p> ⑵ VSS - 接地端; (用萬用表測試單片機引腳電壓一般為0v或者5v,這是標(biāo)準(zhǔn)的TTL電平。但有時候在單片機程序正在工作時候測試結(jié)果并不是這個值而是介于0v-5v之間,其實這是萬用表的響應(yīng)速度沒這么快而已,在某一個瞬間單片機引腳電壓仍保持在0v或者
38、5v。) </p><p> ?、?時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 </p><p> ?、?控制線:控制線共有4根, </p><p> ?、?I/O線 : </p><p> ⑴80C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。 </p><p&g
39、t; ⑵P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線) </p><p><b> P3口第二功能 </b></p><p> P30 RXD 串行輸入口 、P31 TXD 串行輸出口、P32 INT0 外部中斷0(低電平有效)、 P33 INT1 外部中斷1(低電平有效) 、P34 T0 定時計數(shù)器0 、P35 T1 定時計數(shù)器1 、P3
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電路課程設(shè)計——設(shè)計一個簡易鍵盤
- java課程設(shè)計---設(shè)計一個記事本
- 課程設(shè)計--設(shè)計一個矩陣運算器
- 微機接口課程設(shè)計--設(shè)計一個模擬汽車控制系統(tǒng)
- 課程設(shè)計用c++設(shè)計一個排課程序
- 課程設(shè)計用c--設(shè)計一個排課程序
- 軟鍵盤系統(tǒng)課程設(shè)計
- 課程設(shè)計一個簡單的網(wǎng)絡(luò)聊天程序
- 課程設(shè)計--設(shè)計一個小學(xué)算術(shù)運算測試軟件
- 設(shè)計一個gui猜數(shù)字游戲程序課程設(shè)計
- 手機鍵盤課程設(shè)計
- eda課程設(shè)計一個彩燈控制器
- java課程設(shè)計--設(shè)計一個貪吃蛇游戲程序
- 鍵盤測試器的設(shè)計課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--設(shè)計一個訂戶訂閱報刊的應(yīng)用系統(tǒng)
- 單片機課程設(shè)計---鍵盤接口課程設(shè)計
- c++產(chǎn)品管理系統(tǒng)-課程設(shè)計--設(shè)計一個簡單的產(chǎn)品管理系統(tǒng)
- 鍵盤監(jiān)聽程序課程設(shè)計
- 設(shè)計一個完整的數(shù)據(jù)通信系統(tǒng)--數(shù)據(jù)通信課程設(shè)計
- java課程設(shè)計--編寫一個記事本程序
評論
0/150
提交評論