課程設(shè)計--設(shè)計一個16鍵的鍵盤系統(tǒng)_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論