微型計(jì)算機(jī)原理與接口技術(shù)第9章8255_第1頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章8255_第2頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章8255_第3頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章8255_第4頁
微型計(jì)算機(jī)原理與接口技術(shù)第9章8255_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第九章 可編程并行接口8255An8255A的簡介n8255A的外部引腳n8255A的內(nèi)部邏輯結(jié)構(gòu)n8255A的工作設(shè)定n8255A的應(yīng)用28255A的簡介n8255A是一種通用的可編程并行I/O接口芯片(PPI),通過對它進(jìn)行編程,可以有不同的工作方式。n通常不需要附加外部邏輯電路就可以直接為CPU與外設(shè)之間提供數(shù)據(jù)通道。38255A的外部引腳引腳名稱 信號名稱D7D0雙向數(shù)據(jù)總線PA7PA0PB7PB0PC7PC0A口雙向數(shù)據(jù)線B口雙向數(shù)據(jù)線C口雙向數(shù)據(jù)線RESET復(fù)位信號,使所有內(nèi)部寄存器清零CS A1 A0片選信號, A1 和A0不同組合,可選不同端口RD WR讀、寫信號線48255

2、A內(nèi)部邏輯結(jié)構(gòu)n3個(gè)I/O端口A,B,C:每個(gè)都是8位并行端口,都可由程序選擇作為輸入或輸出。nA組和B組控制電路:A組包括A口和C口的上半部(PC7PC4);B組包括B口和C口的下半部(PC3PC0)。n數(shù)據(jù)總線緩沖器:雙向三態(tài)8位緩沖器,能直接與CPU數(shù)據(jù)總線對接。n讀/寫控制電路:與地址總線中的A1,A0以及有關(guān)的控制信號RD,WR,RESET相連,用來管理內(nèi)部和外部數(shù)據(jù),狀態(tài)或控制字的傳送。58255A的端口尋址引 腳尋址的端口CSA1A00000100110101端口A端口B端口C控制字寄存器本芯片沒有被選中68255A工作設(shè)計(jì)n8255A的控制字n方式控制字n對C口按位置位/復(fù)位控

3、制字n8255A的方式選擇7方式控制字D7D6D5D4D3D2D1D0方式標(biāo)志位D7=100A口方式001A口方式11A口方式20A口輸出1A口輸入0C口高四位輸出1C口高四位輸入0B口方式01B口方式10B口輸出1B口輸入0C口低四位輸出1C口低四位輸入8舉例n設(shè)8255A的控制字寄存器的端口地址為63H,若A口工作于方式1,B口工作于方式0 ,A口、B口和C口的高四位作輸入,C口的低四位作輸出,寫出方式控制字,并寫入8255A的控制字寄存器中。9對C口按位置位/復(fù)位控制字D7D6D5D4D3D2D1D0該類型控制字標(biāo)志位D7=0任意值000選中PC0001選中PC1010選中PC2011選

4、中PC3100選中PC4101選中PC5110選中PC6111選中PC70復(fù)位1置位10舉例n設(shè)8255A的口地址為60H63H,PC5平時(shí)為低電平,要求從PC5引腳輸出一個(gè)正脈沖。試編寫程序段。118255A的方式選擇n方式0基本輸入/輸出方式n方式1選通輸入/輸出方式,A口和B口作為數(shù)據(jù)的輸入/輸出端口,C口的高5位作為A口的聯(lián)絡(luò)信號,C口低3位作為B口聯(lián)絡(luò)信號。n方式2雙向選通傳送方式,只有通道A工作在這種方式,C口的高5位作為A口的聯(lián)絡(luò)信號。128255A方式0n8255A的每個(gè)口都作為基本的輸入和輸出口nA口、B口、C口的高4位、C口的低4位都可獨(dú)立設(shè)定為輸入口和輸出口;這樣8255

5、A在方式0時(shí),各個(gè)端口的輸入、輸出可以有16種不同的組合138255A方式1n通道A:包括一個(gè)8位數(shù)據(jù)端口(端口A),和一個(gè)5位的控制端口(端口C的高5位PC7PC3)n通道B:包括一個(gè)8位數(shù)據(jù)端口(端口B),和一個(gè)3位的控制端口(端口C的低3位PC2PC0)148255A方式1輸入C口各引腳定義通道 C口各引腳定義APC7,6 用作輸入/輸出信號,由方式控制字D3位設(shè)定PC5IBF,端口A的輸入緩沖器滿信號PC4STB,端口A的選通輸入控制信號PC3INTR,通道A發(fā)出的中斷請求信號BPC2STB,端口B的選通輸入控制信號PC1IBF,端口B的輸入緩沖器滿信號PC0INTR,通道B發(fā)出的中斷

6、請求信號158255A方式1輸入中斷的允許與禁止通道號允許中斷禁止中斷APC4=1PC4=0BPC2=1PC2=0168255A方式1輸出C口各引腳定義通道 C口各引腳定義APC7OBF,端口A輸出緩沖器滿信號PC6ACK,端口A的響應(yīng)輸入信號PC5,4用作輸入/輸出信號,由方式控制字D3位設(shè)定PC3INTR,通道A發(fā)出的中斷請求信號BPC2 ACK,端口B的響應(yīng)輸入信號PC1OBF,端口B輸出緩沖器滿信號PC0INTR,通道B發(fā)出的中斷請求信號178255A方式1輸出中斷的允許和禁止通道號允許中斷禁止中斷APC6=1PC6=0BPC2=1PC2=0188255A方式2n該方式只能用于端口A,

7、A口既能發(fā)送數(shù)據(jù),又能接收數(shù)據(jù)nC口的高5位PC7PC3,用作A口的控制信息和狀態(tài)信息n端口B可以工作在方式0或方式1,既可以作為輸入,也可以作為輸出198255A方式2 C口各引腳的定義nPC7=OBF,輸出,輸出緩沖器滿信號nPC6=ACK,輸入,由外設(shè)發(fā)來的對OBF的響應(yīng)信號nPC5=IBF,輸出,輸入緩沖器滿信號nPC4=STB,外設(shè)發(fā)來的選通信號nPC3=INTR,輸出,雙向工作時(shí),向CPU發(fā)出中斷請求信號nPC2PC0: 若B口工作在方式0,可作為基本輸入/輸出口;若B口工作在方式1,可作為控制信號和狀態(tài)信號208255A方式2中斷的允許和禁止通道號輸入/輸出允許中斷禁止中斷A輸入

8、輸出PC4=1PC6=1PC4=0PC6=0218255A的應(yīng)用n 用LED顯示開關(guān)狀態(tài)n 鍵盤接口n 8255A在PC/XT機(jī)中的應(yīng)用n PC/XT機(jī)中的揚(yáng)聲器發(fā)聲程序設(shè)計(jì)接口n 七段數(shù)碼管數(shù)字顯示221、用LED顯示開關(guān)狀態(tài)n邏輯電路圖n8255A端口地址的確定n8255A工作方式設(shè)定n程序代碼23邏輯電路圖寫出8255A各端口的地址?248255A工作方式設(shè)定端口端口地址工作方式輸入/輸出A0F0H0輸入B0F2H0輸出25程序代碼MOV DX,0F6HMOV AL,10010000BOUT DX,ALNEXT:MOV DX,0F0HIN AL,DX;從A口讀入開關(guān)狀態(tài)MOV DX,0F

9、2HOUT DX,AL;B口LED顯示開關(guān)狀態(tài)JMP NEXT262、鍵盤接口n按鍵開關(guān)的比較n鍵盤接口電路n8255A工作方式設(shè)定n鍵盤掃描原理n程序代碼27按鍵開關(guān)的比較開關(guān)種類價(jià)格 性能應(yīng)用場合機(jī)械式便宜 易產(chǎn)生抖動,手感好計(jì)算機(jī)鍵盤薄膜式便宜 密封性好家電、醫(yī)療儀器電容式較貴 無抖動,需要附加電路測電容的變化車間電器中霍爾效應(yīng)式貴密封性好,壽命長,響應(yīng)快精密儀器28鍵盤接口電路44鍵盤矩陣通過A口向某一行輸出0,再通過B口低4位讀取列值,如果有0值,則該行有鍵按下298255A工作方式設(shè)定端口端口地址工作方式輸入/輸出A0FF9H0輸出B0FFBH0輸入30鍵盤掃描原理所有鍵都釋放了所

10、有鍵都釋放了?有鍵按下有鍵按下?獲取鍵盤掃描碼獲取鍵盤掃描碼否是是消除抖動消除抖動初始化初始化否有鍵按下有鍵按下?是否結(jié)束結(jié)束31獲取鍵盤掃描碼過程該行有鍵按下該行有鍵按下?是否掃描第掃描第0行行該行有鍵按下該行有鍵按下?是否掃描第掃描第1行行該行有鍵按下該行有鍵按下?是否掃描第掃描第2行行該行有鍵按下該行有鍵按下?是否掃描第掃描第3行行出錯(cuò)處理出錯(cuò)處理獲取鍵盤掃描碼獲取鍵盤掃描碼32鍵盤掃描碼的設(shè)置PB7PB6PB5PB4PB3PB2PB1PB0指示按鍵所在行有且僅有一位為0,哪一位為0表示哪一行有鍵按下指示按鍵所在列有且僅有一位為0,哪一位為0表示哪一列有鍵按下第0行第3行第0列第3列如果

11、按鍵位于第1行第2列,寫出該鍵的掃描碼。33鍵掃描碼和鍵值的對應(yīng)掃描碼77H7BH7DH7EH0B7H0BBH0BDH0BEH鍵值01234567掃描碼0D7H0DBH0DDH0DEH0E7H0EBH0EDH0EEH鍵值89ABCDEF某鍵的鍵值一般人為設(shè)定,本例中鍵掃描碼和鍵值的對應(yīng)關(guān)系如下表所示:34程序代碼n在數(shù)據(jù)段中設(shè)置鍵盤掃描碼表n8255初始化n檢查按鍵n獲取鍵盤掃描碼35在數(shù)據(jù)段中設(shè)置鍵盤掃描碼表DATA SEGMENTTABLE DB 77H,7BH,7DH,7EH DB 0B7H,0BBH,0BDH,0BEH DB 0D7H,0DBH,0DDH,0DEH DB 0E7H,0E

12、BH,0EDH,0EEHDATA ENDS每個(gè)掃描碼所在單元的偏移量即為該掃描碼對應(yīng)的鍵值。每個(gè)掃描碼所在單元的偏移量即為該掃描碼對應(yīng)的鍵值。368255初始化代碼MOV DX,0FFFHMOV AL,10000010BOUT DX,AL37檢查按鍵的工作過程n首先檢查所有鍵是否都處于松開狀態(tài):通過A口向所有行送0,然后讀取列值,即讀取B口的低四位,如果全部為1,說明所有的鍵都松開了;如果至少有一位為0的話,說明至少有一個(gè)鍵仍然處于按下的狀態(tài),則等待。38檢查按鍵的代碼MOV DX,0FF9HMOV AL,0OUT DX,ALMOV DX,0FFBHWAIT1:IN AL,DXAND AL,0

13、FHCMP AL,0FHJNE WAIT1WAIT2:IN AL,DXAND AL,0FHCMP AL,0FHJE WAIT2通過A口向所有行輸出0從B口讀取列值檢查所有按鍵是否都松開了,如沒有,則等待如果都松開了則等待按鍵39延時(shí)去抖動n由于機(jī)械開關(guān)的按鈕從開始到按下接觸穩(wěn)定,需要經(jīng)過一段時(shí)間的抖動過程,這個(gè)過程一般持續(xù)20ms。n用軟件的方法解決抖動問題:在程序安排一定的延時(shí)MOV CX,COUNTLOOP $其中的COUNT的值與具體的CPU和主頻有關(guān)40COUNT值的計(jì)算NfTTNTCOUNTCLKDDDTCLKfN需要延時(shí)的時(shí)間(秒)CPU的時(shí)鐘頻率(Hz)LOOP 指令執(zhí)行時(shí)所需的

14、時(shí)鐘周期數(shù)8086 CPU的時(shí)鐘頻率為5MHz,LOOP 指令執(zhí)行需要17個(gè)時(shí)鐘周期數(shù),如果要延時(shí)20毫秒,則COUNT值為5866,即16EAH41鍵盤掃描碼的獲取n如果按鍵有效的話,這時(shí)可以讀取鍵盤的掃描碼。實(shí)質(zhì)就是判斷被按下的鍵的行號和列號n采用逐行掃描的辦法:先掃描第0行,即通過A口輸出一個(gè)第0位為0其余位為1的數(shù),在從B口讀取列值,即B口的低四位,如果這四位均為1的話,說明第0行沒有鍵按下,繼續(xù)掃描第1行;如果這四位有且僅有一位為0的話,說明被按下的鍵就在第0行,然后從B口讀取被按下的鍵的掃描碼。42鍵盤掃描碼的獲取程序MOV AL,0FEHNR:PUSH AXMOV DX,0FF9

15、HOUT DX,ALMOV DX,0FFBHIN AL,DXAND AL,0FHCMP AL,0FHJNE ENCODEPOP AXROL AL,1JMP NRENCODE: MOV BX,000FHIN AL,DXNEXT:CMP AL,TABLEBXJE DONEDEC BXJNS NEXTMOV AH,1JMP EXITDONE: MOV AL,BLMOV AH,0EXIT:HLT掃描第0行檢查是否有鍵按下如果有獲取鍵值如沒掃描下一行有效鍵值送AL433、8255A在PC/XT機(jī)中的應(yīng)用n硬件連接n8255A的工作方式n軟件編程(大家自學(xué))44硬件連接458255A各端口的工作方式端口號

16、端口地址工作方式輸入/輸出功能A60H0輸入1、機(jī)器剛上電自檢,輸出,輸出當(dāng)前檢測部件的標(biāo)志,以便查錯(cuò)2、進(jìn)入正常工作狀態(tài),輸入,讀取鍵盤的8為掃描碼B61H0輸出用來輸出若干控制信號C62H0輸入用來讀取系統(tǒng)內(nèi)部的狀態(tài)464、PC/XT機(jī)揚(yáng)聲器發(fā)聲程序設(shè)計(jì)nPC/XT機(jī)中的揚(yáng)聲器接口電路n揚(yáng)聲器發(fā)聲原理n音樂簡譜音調(diào)和時(shí)長n音樂程序設(shè)計(jì)47PC/XT機(jī)中的揚(yáng)聲器接口電路48揚(yáng)聲器發(fā)聲原理n揚(yáng)聲器發(fā)聲主要決定于上圖中A和B的波形,由此有兩種方式:nB點(diǎn)固定為高電平,A點(diǎn)為方波(見教材第271頁 例7-9)nA點(diǎn)固定為高電平,B點(diǎn)為方波(如果B點(diǎn)的方波的頻率固定,則為純音;如果B點(diǎn)方波的頻率不斷

17、變化,則能夠演奏美妙的音樂)本例采用第二種方法。49一首樂曲組成樂曲的每個(gè)音符的頻率值和持續(xù)時(shí)間(節(jié)拍)是樂曲程序發(fā)聲所需要的兩個(gè)數(shù)據(jù)。5051音符-頻率對照表音符12345671頻率131 147 165 175 196 220 246 262音符234567i頻率294 330 349 392 440 494 523. . . . . . .52音符節(jié)拍-持續(xù)時(shí)間的對應(yīng)n在2/4中,四分音符為一節(jié),每一小節(jié)二拍,全音符持續(xù)2拍,二分音符持續(xù)1拍,四分音符持續(xù)半拍,八分音符持續(xù)四分之一拍。n如果給全音符分配1s(10010ms)的時(shí)間,則二分音符的持續(xù)時(shí)間為0.5s(5010ms),四分音符

18、持續(xù)時(shí)間0.25s(2510ms),八分音符持續(xù)時(shí)間0.125s(12.510ms)。53樂曲轉(zhuǎn)化為頻率表和持續(xù)時(shí)間表Freq dw 262,294,330,294,330,392,330,294,262,294,440 dw 262,294,330,294,330,392,330,294,262,294 Duration dw 10 dup(50),100 dw 8 dup(50),2 dup(100)注:Duration表中的數(shù)值為10ms的倍數(shù)。54頻率表中各種頻率方波的產(chǎn)生n通過8253通道2產(chǎn)生:n工作方式設(shè)為3;n計(jì)數(shù)初值Nfclk/f (f即為頻率表中某個(gè)頻率值,fclk即為CL

19、K2端時(shí)鐘頻率1.19318MHz)n8253初始化代碼558253初始化代碼MOV AL,10110110BOUT 43H,ALMOV DX,0012HMOV AX,34DCHDIV DI ;DI為頻率表中某頻率值為頻率表中某頻率值OUT 42H,ALMOV AL,AHOUT 42H,ALDX:AX為8086CPU的主頻AX為通道2的計(jì)數(shù)初值56持續(xù)時(shí)間表中的10ms延時(shí)的產(chǎn)生n通過硬件產(chǎn)生固定時(shí)間的延時(shí),與具體的CPU和主頻無關(guān)。n硬件定時(shí)的方法:通過監(jiān)控8255 B口(61H)的PB4,使PB4每15.08us觸發(fā)一次,以產(chǎn)生一個(gè)固定不變的時(shí)間基準(zhǔn)。5710ms延時(shí)代碼waitf proc nearpush axwaitf1: in al,61hand al,10h;PB4cmp al,ahje waitf1mov ah,alloop waitf1pop axretwaitf endpMOV CX,633CALL WAITFWAITF子程序產(chǎn)生15.08us的延時(shí)63315.0810ms58完整代碼n在數(shù)據(jù)段建立樂曲的頻率和持續(xù)時(shí)間表n8253通道2工作方式初始化n在頻率表取出某頻率值,轉(zhuǎn)換為8253初始化時(shí)寫入的計(jì)數(shù)初值n產(chǎn)生某一頻率

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論