2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)說明書</b></p><p>  課題名稱: 微機(jī)原理 </p><p>  設(shè)計(jì)題目: 設(shè)計(jì)一個(gè)16鍵的鍵盤系統(tǒng) </p><p>  專業(yè)班級(jí): </p><p>

2、  學(xué)生姓名: </p><p>  學(xué) 號(hào) : </p><p><b>  目 錄</b></p><p><b>  設(shè)計(jì)目的</b></p><p><b>

3、  設(shè)計(jì)原理與分析</b></p><p><b>  所選元件清單</b></p><p><b>  課程設(shè)計(jì)心得</b></p><p><b>  課程設(shè)計(jì)目的</b></p><p>  了解鍵盤電路的工作原理。</p><p> 

4、 本實(shí)驗(yàn)要求在實(shí)驗(yàn)臺(tái)上,用并行接口實(shí)驗(yàn)卡PPI8255為PC機(jī)擴(kuò)展可編程并行接口;利用實(shí)驗(yàn)卡上的8位撥動(dòng)開關(guān)提供輸入數(shù)據(jù),用8個(gè)LED指示燈顯示輸出結(jié)果;用單脈沖按鈕PI提供輸入選通脈沖/STBA模擬輸入設(shè)備送數(shù),用單脈沖按鈕PO提供輸出應(yīng)答脈沖/ACKA和/ACKB模擬輸出設(shè)備取數(shù)。</p><p>  掌握鍵盤接口電路的編程方法。</p><p>  設(shè)計(jì)人機(jī)界面接口,要求在微機(jī)屏幕上

5、動(dòng)態(tài)地顯示當(dāng)前實(shí)驗(yàn)的內(nèi)容和實(shí)驗(yàn)的結(jié)果,包括8255A的工作方式,輸入的數(shù)據(jù)和輸出的結(jié)果</p><p>  設(shè)計(jì)人機(jī)界面接口,要求在微機(jī)屏幕上,以菜單方式列出并行接口8255A原理實(shí)驗(yàn)的內(nèi)容,并根據(jù)實(shí)驗(yàn)內(nèi)容設(shè)置好工作方式選擇跳線開關(guān),用戶可以通過鍵盤選擇實(shí)驗(yàn)的內(nèi)容。</p><p><b>  方式0</b></p><p>  8255為方式

6、0、A口輸入、B口輸出 ,可用無(wú)條件傳送方式控制輸入/出。</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è)計(jì)原理與分析</p><p><b>  2.1、實(shí)驗(yàn)原理:</b></p><p>  1、識(shí)別鍵的閉合,通常采用行掃描法和行反轉(zhuǎn)法。</p><p>  行掃描法是使鍵盤上某一行線為低電平,而其余

8、行接高電平,然后讀取列值,如所讀列值中某位為低電平,表明有鍵按下,否則掃描下一行,直到掃完所有行。</p><p>  本實(shí)驗(yàn)例程采用的是行反轉(zhuǎn)法。</p><p>  行反轉(zhuǎn)法識(shí)別鍵閉合時(shí),要將行線接一并行口,先讓它工作于輸出方式,將列線也接到一個(gè)并行口,先讓它工作于輸入方式,程序使CPU通過輸出端口往各行線上全部送低電平,然后讀入列線值,如此時(shí)有某鍵被按下,則必定會(huì)使某一列線值為0。然

9、后,程序?qū)蓚€(gè)并行端口進(jìn)行方式設(shè)置,使行線工作于輸入方式,列線工作于輸出方式,并將剛才讀得的列線值從列線所接的并行端口輸出,再讀取行線上的輸入值,那么,在閉合鍵所在的行線上的值必定為0。這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可以讀得一對(duì)唯一的行線值和列線值。</p><p>  2、程序設(shè)計(jì)時(shí),要學(xué)會(huì)靈活地對(duì)8255A的各端口進(jìn)行方式設(shè)置??蓪⒏麈I對(duì)應(yīng)的鍵值(行線值、列線值)放在一個(gè)表中,將要顯示的0~F字符放在另一個(gè)表中

10、,通過查表來確定按下的是哪一個(gè)鍵并正確顯示出來。</p><p>  3、利用實(shí)驗(yàn)箱上的8255A可編程并行接口芯片和矩陣鍵盤,編寫程序,做到在鍵盤上每按一個(gè)數(shù)字鍵(0~F),用發(fā)光二極管將該代碼顯示出來。</p><p><b>  2.2、實(shí)驗(yàn)步驟:</b></p><p>  將鍵盤RL10~RL17接8255A的PB0~PB7;KA10

11、~KA12接8255A的PA0~PA2;PC0~PC7接發(fā)光二極管的L1~L8;8255A芯片的片選信號(hào)8255CS接CS0。</p><p>  2.3、實(shí)驗(yàn)電路: </p><p><b>  圖2-1實(shí)驗(yàn)電路圖</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芯片的片選信號(hào)8255CS接CS0</p><p>&

16、lt;b>  2.6、參考程序:</b></p><p><b>  T8.ASM </b></p><p>  NAME t8 ;8255鍵盤實(shí)驗(yàn)</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 ;有鍵按下,延時(shí)10MS去抖動(dòng)</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中置計(jì)數(shù)值16</p><p>  MOV R6,#00H ;R6中放偏移量初值</p><p>  TT: MOVX A,@DPTR ;從表中取鍵碼前半段字節(jié),行線值與實(shí)</p><p>  CJNE A,40H,NN1 ;際

25、輸入的行線值相等嗎?不等轉(zhuǎn)NN1</p><p>  INC DPTR ;相等,指針指向后半字節(jié),即列線值</p><p>  MOVX A,@DPTR ;列線值與實(shí)際輸入的列線值</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 ;已釋放則延時(shí)0.2秒,減少總線負(fù)擔(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 ;計(jì)數(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為鍵值表,每個(gè)鍵位占</p><p>  DW 0BF06H,07F06H,0FE05H,0FD05H; 兩個(gè)字節(jié),第一個(gè)字節(jié)為行</p><p>  DW 0EF05H,0DF05H,0BF05H,07F05H ;線值,第二個(gè)為列線值</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、不同的字形,各筆段所加的電平也不同,因此各個(gè)字形所形成的編碼是不一樣的。例如,對(duì)于共陽(yáng)極數(shù)碼管,如果要顯示字符2,則筆段a、b、g、e、d發(fā)光,對(duì)應(yīng)的引腳為低電平;其余各筆段不發(fā)光,對(duì)應(yīng)的引腳為該電平。所以字符2的字形編碼為如 dp gfedcba=10100100B=A4H。</p><p>  陰極數(shù)碼管的字形編碼與用陽(yáng)極數(shù)碼管的字形編碼是邏輯“非”的關(guān)系。根據(jù)上述編碼方法可以得出數(shù)碼管顯示的字符與對(duì)應(yīng)的字形

36、編碼的關(guān)系,如表3-2所示</p><p>  表3-2 數(shù)碼表的字形編碼表</p><p>  第4章 課程設(shè)計(jì)心得</p><p>  通過這次單片機(jī)課設(shè),我更加清晰的認(rèn)識(shí)了到了單片機(jī)內(nèi)的引腳。</p><p>  單片機(jī)的40個(gè)引腳按引腳功能大致可分為4個(gè)種類:電源、時(shí)鐘、控制和I/O引腳。  </p><p>

37、<b> ?、?電源:  </b></p><p>  ⑴ VCC - 芯片電源,接+5V;  </p><p> ?、?VSS - 接地端; (用萬(wàn)用表測(cè)試單片機(jī)引腳電壓一般為0v或者5v,這是標(biāo)準(zhǔn)的TTL電平。但有時(shí)候在單片機(jī)程序正在工作時(shí)候測(cè)試結(jié)果并不是這個(gè)值而是介于0v-5v之間,其實(shí)這是萬(wàn)用表的響應(yīng)速度沒這么快而已,在某一個(gè)瞬間單片機(jī)引腳電壓仍保持在0v或者

38、5v。)  </p><p> ?、?時(shí)鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。  </p><p>  ⒊ 控制線:控制線共有4根, </p><p> ?、?I/O線 :  </p><p> ?、?0C51共有4個(gè)8位并行I/O端口:P0、P1、P2、P3口,共32個(gè)引腳。 </p><p&g

39、t; ?、芇3口還具有第二功能,用于特殊信號(hào)輸入輸出和控制信號(hào)(屬控制總線)  </p><p><b>  P3口第二功能 </b></p><p>  P30 RXD 串行輸入口 、P31 TXD 串行輸出口、P32 INT0 外部中斷0(低電平有效)、 P33 INT1 外部中斷1(低電平有效) 、P34 T0 定時(shí)計(jì)數(shù)器0 、P35 T1 定時(shí)計(jì)數(shù)器1 、P3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論