版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第九章可編程并行接口8255A8255A的簡介8255A的外部引腳8255A的內(nèi)部邏輯結(jié)構(gòu)8255A的工作設(shè)定8255A的應(yīng)用18255A的簡介8255A是一種通用的可編程并行I/O接口芯片(PPI),通過對它進行編程,可以有不同的工作方式。通常不需要附加外部邏輯電路就可以直接為CPU與外設(shè)之間提供數(shù)據(jù)通道。28255A的外部引腳引腳名稱信號名稱D7~D0雙向數(shù)據(jù)總線PA7~PA0PB7~PB0PC7~PC0A口雙向數(shù)據(jù)線B口雙向數(shù)據(jù)線C口雙向數(shù)據(jù)線RESET復(fù)位信號,使所有內(nèi)部寄存器清零CSA1A0片選信號,A1
和A0不同組合,可選不同端口RDWR讀、寫信號線38255A內(nèi)部邏輯結(jié)構(gòu)3個I/O端口A,B,C:每個都是8位并行端口,都可由程序選擇作為輸入或輸出。A組和B組控制電路:A組包括A口和C口的上半部(PC7~PC4);B組包括B口和C口的下半部(PC3~PC0)。數(shù)據(jù)總線緩沖器:雙向三態(tài)8位緩沖器,能直接與CPU數(shù)據(jù)總線對接。讀/寫控制電路:與地址總線中的A1,A0以及有關(guān)的控制信號RD,WR,RESET相連,用來管理內(nèi)部和外部數(shù)據(jù),狀態(tài)或控制字的傳送。48255A的端口尋址引腳尋址的端口CSA1A0000010011×0101×端口A端口B端口C控制字寄存器本芯片沒有被選中58255A工作設(shè)計8255A的控制字方式控制字對C口按位置位/復(fù)位控制字8255A的方式選擇6方式控制字D7D6D5D4D3D2D1D0方式標志位D7=100A口方式001A口方式11×A口方式20A口輸出1A口輸入0C口高四位輸出1C口高四位輸入0B口方式01B口方式10B口輸出1B口輸入0C口低四位輸出1C口低四位輸入7舉例設(shè)8255A的控制字寄存器的端口地址為63H,若A口工作于方式1,B口工作于方式0,A口、B口和C口的高四位作輸入,C口的低四位作輸出,寫出方式控制字,并寫入8255A的控制字寄存器中。8對C口按位置位/復(fù)位控制字D7D6D5D4D3D2D1D0該類型控制字標志位D7=0任意值000選中PC0001選中PC1010選中PC2011選中PC3100選中PC4101選中PC5110選中PC6111選中PC70復(fù)位1置位9舉例設(shè)8255A的口地址為60H~63H,PC5平時為低電平,要求從PC5引腳輸出一個正脈沖。試編寫程序段。108255A的方式選擇方式0——基本輸入/輸出方式方式1——選通輸入/輸出方式,A口和B口作為數(shù)據(jù)的輸入/輸出端口,C口的高5位作為A口的聯(lián)絡(luò)信號,C口低3位作為B口聯(lián)絡(luò)信號。方式2——雙向選通傳送方式,只有通道A工作在這種方式,C口的高5位作為A口的聯(lián)絡(luò)信號。118255A方式08255A的每個口都作為基本的輸入和輸出口A口、B口、C口的高4位、C口的低4位都可獨立設(shè)定為輸入口和輸出口;這樣8255A在方式0時,各個端口的輸入、輸出可以有16種不同的組合128255A方式1通道A:包括一個8位數(shù)據(jù)端口(端口A),和一個5位的控制端口(端口C的高5位PC7~PC3)通道B:包括一個8位數(shù)據(jù)端口(端口B),和一個3位的控制端口(端口C的低3位PC2~PC0)138255A方式1輸入C口各引腳定義通道C口各引腳定義APC7,6用作輸入/輸出信號,由方式控制字D3位設(shè)定PC5=IBF,端口A的輸入緩沖器滿信號PC4=STB,端口A的選通輸入控制信號PC3=INTR,通道A發(fā)出的中斷請求信號BPC2=STB,端口B的選通輸入控制信號PC1=IBF,端口B的輸入緩沖器滿信號PC0=INTR,通道B發(fā)出的中斷請求信號148255A方式1輸入中斷的允許與禁止通道號允許中斷禁止中斷APC4=1PC4=0BPC2=1PC2=0158255A方式1輸出C口各引腳定義通道C口各引腳定義APC7=OBF,端口A輸出緩沖器滿信號PC6=ACK,端口A的響應(yīng)輸入信號PC5,4用作輸入/輸出信號,由方式控制字D3位設(shè)定PC3=INTR,通道A發(fā)出的中斷請求信號BPC2=ACK,端口B的響應(yīng)輸入信號PC1=OBF,端口B輸出緩沖器滿信號PC0=INTR,通道B發(fā)出的中斷請求信號168255A方式1輸出中斷的允許和禁止通道號允許中斷禁止中斷APC6=1PC6=0BPC2=1PC2=0178255A方式2該方式只能用于端口A,A口既能發(fā)送數(shù)據(jù),又能接收數(shù)據(jù)C口的高5位PC7~PC3,用作A口的控制信息和狀態(tài)信息端口B可以工作在方式0或方式1,既可以作為輸入,也可以作為輸出188255A方式2C口各引腳的定義PC7=OBF,輸出,輸出緩沖器滿信號PC6=ACK,輸入,由外設(shè)發(fā)來的對OBF的響應(yīng)信號PC5=IBF,輸出,輸入緩沖器滿信號PC4=STB,外設(shè)發(fā)來的選通信號PC3=INTR,輸出,雙向工作時,向CPU發(fā)出中斷請求信號PC2~PC0:若B口工作在方式0,可作為基本輸入/輸出口;若B口工作在方式1,可作為控制信號和狀態(tài)信號198255A方式2中斷的允許和禁止通道號輸入/輸出允許中斷禁止中斷A輸入輸出PC4=1PC6=1PC4=0PC6=0208255A的應(yīng)用用LED顯示開關(guān)狀態(tài)鍵盤接口8255A在PC/XT機中的應(yīng)用PC/XT機中的揚聲器發(fā)聲程序設(shè)計接口七段數(shù)碼管數(shù)字顯示211、用LED顯示開關(guān)狀態(tài)邏輯電路圖8255A端口地址的確定8255A工作方式設(shè)定程序代碼22邏輯電路圖寫出8255A各端口的地址?238255A工作方式設(shè)定端口端口地址工作方式輸入/輸出A0F0H0輸入B0F2H0輸出24程序代碼
MOVDX,0F6H MOVAL,10010000B OUTDX,ALNEXT: MOVDX,0F0H INAL,DX ;從A口讀入開關(guān)狀態(tài)
MOVDX,0F2H OUTDX,AL ;B口LED顯示開關(guān)狀態(tài)
JMPNEXT252、鍵盤接口按鍵開關(guān)的比較鍵盤接口電路8255A工作方式設(shè)定鍵盤掃描原理程序代碼26按鍵開關(guān)的比較開關(guān)種類價格性能應(yīng)用場合機械式便宜易產(chǎn)生抖動,手感好計算機鍵盤薄膜式便宜密封性好家電、醫(yī)療儀器電容式較貴無抖動,需要附加電路測電容的變化車間電器中霍爾效應(yīng)式貴密封性好,壽命長,響應(yīng)快精密儀器27鍵盤接口電路4×4鍵盤矩陣通過A口向某一行輸出0,再通過B口低4位讀取列值,如果有0值,則該行有鍵按下288255A工作方式設(shè)定端口端口地址工作方式輸入/輸出A0FF9H0輸出B0FFBH0輸入29鍵盤掃描原理所有鍵都釋放了?有鍵按下?獲取鍵盤掃描碼否是是消除抖動初始化否有鍵按下?是否結(jié)束30獲取鍵盤掃描碼過程該行有鍵按下?是否掃描第0行該行有鍵按下?是否掃描第1行該行有鍵按下?是否掃描第2行該行有鍵按下?是否掃描第3行出錯處理獲取鍵盤掃描碼31鍵盤掃描碼的設(shè)置PB7PB6PB5PB4PB3PB2PB1PB0指示按鍵所在行有且僅有一位為0,哪一位為0表示哪一行有鍵按下指示按鍵所在列有且僅有一位為0,哪一位為0表示哪一列有鍵按下第0行第3行第0列第3列……如果按鍵位于第1行第2列,寫出該鍵的掃描碼。32鍵掃描碼和鍵值的對應(yīng)掃描碼77H7BH7DH7EH0B7H0BBH0BDH0BEH鍵值01234567掃描碼0D7H0DBH0DDH0DEH0E7H0EBH0EDH0EEH鍵值89ABCDEF某鍵的鍵值一般人為設(shè)定,本例中鍵掃描碼和鍵值的對應(yīng)關(guān)系如下表所示:33程序代碼在數(shù)據(jù)段中設(shè)置鍵盤掃描碼表8255初始化檢查按鍵獲取鍵盤掃描碼34在數(shù)據(jù)段中設(shè)置鍵盤掃描碼表DATASEGMENTTABLEDB77H,7BH,7DH,7EHDB0B7H,0BBH,0BDH,0BEHDB0D7H,0DBH,0DDH,0DEHDB0E7H,0EBH,0EDH,0EEHDATAENDS每個掃描碼所在單元的偏移量即為該掃描碼對應(yīng)的鍵值。358255初始化代碼MOVDX,0FFFHMOVAL,10000010BOUTDX,AL36檢查按鍵的工作過程首先檢查所有鍵是否都處于松開狀態(tài):通過A口向所有行送0,然后讀取列值,即讀取B口的低四位,如果全部為1,說明所有的鍵都松開了;如果至少有一位為0的話,說明至少有一個鍵仍然處于按下的狀態(tài),則等待。37檢查按鍵的代碼 MOVDX,0FF9H MOVAL,0 OUTDX,AL MOVDX,0FFBHWAIT1: INAL,DX ANDAL,0FH CMPAL,0FH JNEWAIT1WAIT2: INAL,DX ANDAL,0FH CMPAL,0FH JEWAIT2通過A口向所有行輸出0從B口讀取列值檢查所有按鍵是否都松開了,如沒有,則等待如果都松開了則等待按鍵38延時去抖動由于機械開關(guān)的按鈕從開始到按下接觸穩(wěn)定,需要經(jīng)過一段時間的抖動過程,這個過程一般持續(xù)20ms。用軟件的方法解決抖動問題:在程序安排一定的延時MOVCX,COUNTLOOP$其中的COUNT的值與具體的CPU和主頻有關(guān)39COUNT值的計算需要延時的時間(秒)CPU的時鐘頻率(Hz)LOOP指令執(zhí)行時所需的時鐘周期數(shù)8086CPU的時鐘頻率為5MHz,LOOP指令執(zhí)行需要17個時鐘周期數(shù),如果要延時20毫秒,則COUNT值為5866,即16EAH40鍵盤掃描碼的獲取如果按鍵有效的話,這時可以讀取鍵盤的掃描碼。實質(zhì)就是判斷被按下的鍵的行號和列號采用逐行掃描的辦法:先掃描第0行,即通過A口輸出一個第0位為0其余位為1的數(shù),在從B口讀取列值,即B口的低四位,如果這四位均為1的話,說明第0行沒有鍵按下,繼續(xù)掃描第1行;如果這四位有且僅有一位為0的話,說明被按下的鍵就在第0行,然后從B口讀取被按下的鍵的掃描碼。41鍵盤掃描碼的獲取程序 MOVAL,0FEHNR: PUSHAX MOVDX,0FF9H OUTDX,AL MOVDX,0FFBH INAL,DX ANDAL,0FH CMPAL,0FH JNEENCODE POPAX ROLAL,1 JMPNRENCODE:MOVBX,000FH INAL,DXNEXT: CMPAL,TABLE[BX] JEDONE DECBX JNSNEXT MOVAH,1 JMPEXITDONE: MOVAL,BL MOVAH,0EXIT: HLT 掃描第0行檢查是否有鍵按下如果有獲取鍵值如沒掃描下一行有效鍵值送AL423、8255A在PC/XT機中的應(yīng)用硬件連接8255A的工作方式軟件編程(大家自學(xué))43硬件連接448255A各端口的工作方式端口號端口地址工作方式輸入/輸出功能A60H0輸入1、機器剛上電自檢,輸出,輸出當前檢測部件的標志,以便查錯2、進入正常工作狀態(tài),輸入,讀取鍵盤的8為掃描碼B61H0輸出用來輸出若干控制信號C62H0輸入用來讀取系統(tǒng)內(nèi)部的狀態(tài)454、PC/XT機揚聲器發(fā)聲程序設(shè)計PC/XT機中的揚聲器接口電路揚聲器發(fā)聲原理音樂簡譜音調(diào)和時長音樂程序設(shè)計46PC/XT機中的揚聲器接口電路47揚聲器發(fā)聲原理揚聲器發(fā)聲主要決定于上圖中A和B的波形,由此有兩種方式:B點固定為高電平,A點為方波(見教材第271頁
例7-9)A點固定為高電平,B點為方波(如果B點的方波的頻率固定,則為純音;如果B點方波的頻率不斷變化,則能夠演奏美妙的音樂)本例采用第二種方法。48一首樂曲組成樂曲的每個音符的頻率值和持續(xù)時間(節(jié)拍)是樂曲程序發(fā)聲所需要的兩個數(shù)據(jù)。4950音符--頻率對照表音符12345671頻率131147165175196220246262音符234567i頻率294330349392440494523.......51音符節(jié)拍--持續(xù)時間的對應(yīng)在2/4中,四分音符為一節(jié),每一小節(jié)二拍,全音符持續(xù)2拍,二分音符持續(xù)1拍,四分音符持續(xù)半拍,八分音符持續(xù)四分之一拍。如果給全音符分配1s(100×10ms)的時間,則二分音符的持續(xù)時間為0.5s(50×10ms),四分音符持續(xù)時間0.25s(25×10ms),八分音符持續(xù)時間0.125s(12.5×10ms)。52樂曲轉(zhuǎn)化為頻率表和持續(xù)時間表Freqdw262,294,330,294,330,392,330,294,262,294,440
dw262,294,330,294,330,392,330,294,262,294 Durationdw10dup(50),100
dw8dup(50),2dup(100)注:Duration表中的數(shù)值為10ms的倍數(shù)。53頻率表中各種頻率方波的產(chǎn)生通過8253通道2產(chǎn)生:工作方式設(shè)為3;計數(shù)初值N=fclk/f
(f即為頻率表中某個頻率值,fclk即為CLK2端時鐘頻率1.19318MHz)8253初始化代碼548253初始化代碼MOVAL,10110110BOUT43H,ALMOVDX,0012HMOVAX,34DCHDIVDI;DI為頻率表中某頻率值OUT42H,ALMOVAL,AHOUT42H,ALDX:AX為8086CPU的主頻AX為通道2的計數(shù)初值55持續(xù)時間表中的10ms延時的產(chǎn)生通過硬件產(chǎn)生固定時間的延時,與具體的CPU和主頻無關(guān)。硬件定時的方法:通過監(jiān)控8255B口(61H)的PB4,使PB4每15.08us觸發(fā)一次,以產(chǎn)生一個固定不變的時間基準。5610ms延時代碼waitfprocnear pushaxwaitf1: inal,61h andal,10h ;PB4
cmpal,ah jewaitf1
movah,al loopwaitf1 popax retwaitf
endpMOVCX,633CALLWAITFWAITF子程序產(chǎn)生15.08us的延時633×15.08=10ms57完整代碼在數(shù)據(jù)段建立樂曲的頻率和持續(xù)時間表8253通道2工作方式初始化在頻率表取出某頻率值,轉(zhuǎn)換為8253初始化時寫入的計數(shù)初值產(chǎn)生某一頻率的聲音并持續(xù)相應(yīng)的時間,即演奏當前的音符演奏下一個音符,直到樂曲演奏完畢585、七段數(shù)碼管數(shù)字顯示設(shè)8255A的口地址為200H~203H,A口接4個開關(guān)K3~K0,B口接一個七段數(shù)碼管,用來顯示4個開關(guān)所撥通的16
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物業(yè)買賣擔保合同
- 高職班主任工作計劃范文
- 七年級教學(xué)計劃三篇
- 心理健康工作計劃
- 師德規(guī)范學(xué)習心得體會
- 游藝機項目可行性研究報告
- 初中數(shù)學(xué)教師年度考核總結(jié)
- 幼兒園大班班會活動教案
- 公司經(jīng)理述職報告三篇
- 小升初自我鑒定合集12篇
- 2023年婦科門診總結(jié)及計劃
- 方大重整海航方案
- 河北省秦皇島市昌黎縣2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題
- 礦山治理專項研究報告范文
- 國家開放大學(xué)2023年7月期末統(tǒng)一試《11124流行病學(xué)》試題及答案-開放本科
- 貨運安全生產(chǎn)管理制度
- 幼兒園中班體育《我們愛運動》+課件
- 郭錫良《古代漢語》課件
- 外研版四年級英語下冊(一年級起點)全冊完整課件
- 防止電力生產(chǎn)事故的-二十五項重點要求(2023版)
- 教研室主任崗位申請書
評論
0/150
提交評論