




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第九章可編程并行接口8255A8255A的簡介8255A的外部引腳8255A的內部邏輯結構8255A的工作設定8255A的應用18255A的簡介8255A是一種通用的可編程并行I/O接口芯片(PPI),通過對它進行編程,可以有不同的工作方式。通常不需要附加外部邏輯電路就可以直接為CPU與外設之間提供數據通道。28255A的外部引腳引腳名稱信號名稱D7~D0雙向數據總線PA7~PA0PB7~PB0PC7~PC0A口雙向數據線B口雙向數據線C口雙向數據線RESET復位信號,使所有內部寄存器清零CSA1A0片選信號,A1
和A0不同組合,可選不同端口RDWR讀、寫信號線38255A內部邏輯結構3個I/O端口A,B,C:每個都是8位并行端口,都可由程序選擇作為輸入或輸出。A組和B組控制電路:A組包括A口和C口的上半部(PC7~PC4);B組包括B口和C口的下半部(PC3~PC0)。數據總線緩沖器:雙向三態8位緩沖器,能直接與CPU數據總線對接。讀/寫控制電路:與地址總線中的A1,A0以及有關的控制信號RD,WR,RESET相連,用來管理內部和外部數據,狀態或控制字的傳送。48255A的端口尋址引腳尋址的端口CSA1A0000010011×0101×端口A端口B端口C控制字寄存器本芯片沒有被選中58255A工作設計8255A的控制字方式控制字對C口按位置位/復位控制字8255A的方式選擇6方式控制字D7D6D5D4D3D2D1D0方式標志位D7=100A口方式001A口方式11×A口方式20A口輸出1A口輸入0C口高四位輸出1C口高四位輸入0B口方式01B口方式10B口輸出1B口輸入0C口低四位輸出1C口低四位輸入7舉例設8255A的控制字寄存器的端口地址為63H,若A口工作于方式1,B口工作于方式0,A口、B口和C口的高四位作輸入,C口的低四位作輸出,寫出方式控制字,并寫入8255A的控制字寄存器中。8對C口按位置位/復位控制字D7D6D5D4D3D2D1D0該類型控制字標志位D7=0任意值000選中PC0001選中PC1010選中PC2011選中PC3100選中PC4101選中PC5110選中PC6111選中PC70復位1置位9舉例設8255A的口地址為60H~63H,PC5平時為低電平,要求從PC5引腳輸出一個正脈沖。試編寫程序段。108255A的方式選擇方式0——基本輸入/輸出方式方式1——選通輸入/輸出方式,A口和B口作為數據的輸入/輸出端口,C口的高5位作為A口的聯絡信號,C口低3位作為B口聯絡信號。方式2——雙向選通傳送方式,只有通道A工作在這種方式,C口的高5位作為A口的聯絡信號。118255A方式08255A的每個口都作為基本的輸入和輸出口A口、B口、C口的高4位、C口的低4位都可獨立設定為輸入口和輸出口;這樣8255A在方式0時,各個端口的輸入、輸出可以有16種不同的組合128255A方式1通道A:包括一個8位數據端口(端口A),和一個5位的控制端口(端口C的高5位PC7~PC3)通道B:包括一個8位數據端口(端口B),和一個3位的控制端口(端口C的低3位PC2~PC0)138255A方式1輸入C口各引腳定義通道C口各引腳定義APC7,6用作輸入/輸出信號,由方式控制字D3位設定PC5=IBF,端口A的輸入緩沖器滿信號PC4=STB,端口A的選通輸入控制信號PC3=INTR,通道A發出的中斷請求信號BPC2=STB,端口B的選通輸入控制信號PC1=IBF,端口B的輸入緩沖器滿信號PC0=INTR,通道B發出的中斷請求信號148255A方式1輸入中斷的允許與禁止通道號允許中斷禁止中斷APC4=1PC4=0BPC2=1PC2=0158255A方式1輸出C口各引腳定義通道C口各引腳定義APC7=OBF,端口A輸出緩沖器滿信號PC6=ACK,端口A的響應輸入信號PC5,4用作輸入/輸出信號,由方式控制字D3位設定PC3=INTR,通道A發出的中斷請求信號BPC2=ACK,端口B的響應輸入信號PC1=OBF,端口B輸出緩沖器滿信號PC0=INTR,通道B發出的中斷請求信號168255A方式1輸出中斷的允許和禁止通道號允許中斷禁止中斷APC6=1PC6=0BPC2=1PC2=0178255A方式2該方式只能用于端口A,A口既能發送數據,又能接收數據C口的高5位PC7~PC3,用作A口的控制信息和狀態信息端口B可以工作在方式0或方式1,既可以作為輸入,也可以作為輸出188255A方式2C口各引腳的定義PC7=OBF,輸出,輸出緩沖器滿信號PC6=ACK,輸入,由外設發來的對OBF的響應信號PC5=IBF,輸出,輸入緩沖器滿信號PC4=STB,外設發來的選通信號PC3=INTR,輸出,雙向工作時,向CPU發出中斷請求信號PC2~PC0:若B口工作在方式0,可作為基本輸入/輸出口;若B口工作在方式1,可作為控制信號和狀態信號198255A方式2中斷的允許和禁止通道號輸入/輸出允許中斷禁止中斷A輸入輸出PC4=1PC6=1PC4=0PC6=0208255A的應用用LED顯示開關狀態鍵盤接口8255A在PC/XT機中的應用PC/XT機中的揚聲器發聲程序設計接口七段數碼管數字顯示211、用LED顯示開關狀態邏輯電路圖8255A端口地址的確定8255A工作方式設定程序代碼22邏輯電路圖寫出8255A各端口的地址?238255A工作方式設定端口端口地址工作方式輸入/輸出A0F0H0輸入B0F2H0輸出24程序代碼
MOVDX,0F6H MOVAL,10010000B OUTDX,ALNEXT: MOVDX,0F0H INAL,DX ;從A口讀入開關狀態
MOVDX,0F2H OUTDX,AL ;B口LED顯示開關狀態
JMPNEXT252、鍵盤接口按鍵開關的比較鍵盤接口電路8255A工作方式設定鍵盤掃描原理程序代碼26按鍵開關的比較開關種類價格性能應用場合機械式便宜易產生抖動,手感好計算機鍵盤薄膜式便宜密封性好家電、醫療儀器電容式較貴無抖動,需要附加電路測電容的變化車間電器中霍爾效應式貴密封性好,壽命長,響應快精密儀器27鍵盤接口電路4×4鍵盤矩陣通過A口向某一行輸出0,再通過B口低4位讀取列值,如果有0值,則該行有鍵按下288255A工作方式設定端口端口地址工作方式輸入/輸出A0FF9H0輸出B0FFBH0輸入29鍵盤掃描原理所有鍵都釋放了?有鍵按下?獲取鍵盤掃描碼否是是消除抖動初始化否有鍵按下?是否結束30獲取鍵盤掃描碼過程該行有鍵按下?是否掃描第0行該行有鍵按下?是否掃描第1行該行有鍵按下?是否掃描第2行該行有鍵按下?是否掃描第3行出錯處理獲取鍵盤掃描碼31鍵盤掃描碼的設置PB7PB6PB5PB4PB3PB2PB1PB0指示按鍵所在行有且僅有一位為0,哪一位為0表示哪一行有鍵按下指示按鍵所在列有且僅有一位為0,哪一位為0表示哪一列有鍵按下第0行第3行第0列第3列……如果按鍵位于第1行第2列,寫出該鍵的掃描碼。32鍵掃描碼和鍵值的對應掃描碼77H7BH7DH7EH0B7H0BBH0BDH0BEH鍵值01234567掃描碼0D7H0DBH0DDH0DEH0E7H0EBH0EDH0EEH鍵值89ABCDEF某鍵的鍵值一般人為設定,本例中鍵掃描碼和鍵值的對應關系如下表所示:33程序代碼在數據段中設置鍵盤掃描碼表8255初始化檢查按鍵獲取鍵盤掃描碼34在數據段中設置鍵盤掃描碼表DATASEGMENTTABLEDB77H,7BH,7DH,7EHDB0B7H,0BBH,0BDH,0BEHDB0D7H,0DBH,0DDH,0DEHDB0E7H,0EBH,0EDH,0EEHDATAENDS每個掃描碼所在單元的偏移量即為該掃描碼對應的鍵值。358255初始化代碼MOVDX,0FFFHMOVAL,10000010BOUTDX,AL36檢查按鍵的工作過程首先檢查所有鍵是否都處于松開狀態:通過A口向所有行送0,然后讀取列值,即讀取B口的低四位,如果全部為1,說明所有的鍵都松開了;如果至少有一位為0的話,說明至少有一個鍵仍然處于按下的狀態,則等待。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延時去抖動由于機械開關的按鈕從開始到按下接觸穩定,需要經過一段時間的抖動過程,這個過程一般持續20ms。用軟件的方法解決抖動問題:在程序安排一定的延時MOVCX,COUNTLOOP$其中的COUNT的值與具體的CPU和主頻有關39COUNT值的計算需要延時的時間(秒)CPU的時鐘頻率(Hz)LOOP指令執行時所需的時鐘周期數8086CPU的時鐘頻率為5MHz,LOOP指令執行需要17個時鐘周期數,如果要延時20毫秒,則COUNT值為5866,即16EAH40鍵盤掃描碼的獲取如果按鍵有效的話,這時可以讀取鍵盤的掃描碼。實質就是判斷被按下的鍵的行號和列號采用逐行掃描的辦法:先掃描第0行,即通過A口輸出一個第0位為0其余位為1的數,在從B口讀取列值,即B口的低四位,如果這四位均為1的話,說明第0行沒有鍵按下,繼續掃描第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機中的應用硬件連接8255A的工作方式軟件編程(大家自學)43硬件連接448255A各端口的工作方式端口號端口地址工作方式輸入/輸出功能A60H0輸入1、機器剛上電自檢,輸出,輸出當前檢測部件的標志,以便查錯2、進入正常工作狀態,輸入,讀取鍵盤的8為掃描碼B61H0輸出用來輸出若干控制信號C62H0輸入用來讀取系統內部的狀態454、PC/XT機揚聲器發聲程序設計PC/XT機中的揚聲器接口電路揚聲器發聲原理音樂簡譜音調和時長音樂程序設計46PC/XT機中的揚聲器接口電路47揚聲器發聲原理揚聲器發聲主要決定于上圖中A和B的波形,由此有兩種方式:B點固定為高電平,A點為方波(見教材第271頁
例7-9)A點固定為高電平,B點為方波(如果B點的方波的頻率固定,則為純音;如果B點方波的頻率不斷變化,則能夠演奏美妙的音樂)本例采用第二種方法。48一首樂曲組成樂曲的每個音符的頻率值和持續時間(節拍)是樂曲程序發聲所需要的兩個數據。4950音符--頻率對照表音符12345671頻率131147165175196220246262音符234567i頻率294330349392440494523.......51音符節拍--持續時間的對應在2/4中,四分音符為一節,每一小節二拍,全音符持續2拍,二分音符持續1拍,四分音符持續半拍,八分音符持續四分之一拍。如果給全音符分配1s(100×10ms)的時間,則二分音符的持續時間為0.5s(50×10ms),四分音符持續時間0.25s(25×10ms),八分音符持續時間0.125s(12.5×10ms)。52樂曲轉化為頻率表和持續時間表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表中的數值為10ms的倍數。53頻率表中各種頻率方波的產生通過8253通道2產生:工作方式設為3;計數初值N=fclk/f
(f即為頻率表中某個頻率值,fclk即為CLK2端時鐘頻率1.19318MHz)8253初始化代碼548253初始化代碼MOVAL,10110110BOUT43H,ALMOVDX,0012HMOVAX,34DCHDIVDI;DI為頻率表中某頻率值OUT42H,ALMOVAL,AHOUT42H,ALDX:AX為8086CPU的主頻AX為通道2的計數初值55持續時間表中的10ms延時的產生通過硬件產生固定時間的延時,與具體的CPU和主頻無關。硬件定時的方法:通過監控8255B口(61H)的PB4,使PB4每15.08us觸發一次,以產生一個固定不變的時間基準。5610ms延時代碼waitfprocnear pushaxwaitf1: inal,61h andal,10h ;PB4
cmpal,ah jewaitf1
movah,al loopwaitf1 popax retwaitf
endpMOVCX,633CALLWAITFWAITF子程序產生15.08us的延時633×15.08=10ms57完整代碼在數據段建立樂曲的頻率和持續時間表8253通道2工作方式初始化在頻率表取出某頻率值,轉換為8253初始化時寫入的計數初值產生某一頻率的聲音并持續相應的時間,即演奏當前的音符演奏下一個音符,直到樂曲演奏完畢585、七段數碼管數字顯示設8255A的口地址為200H~203H,A口接4個開關K3~K0,B口接一個七段數碼管,用來顯示4個開關所撥通的16
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CMES 15001-2023自行式自上料攪拌機通用技術要求
- T/CHES 96-2023河口監測浮標技術條件
- T/CHES 91-2023連續磁性陰離子交換水處理技術規范
- T/CEMIA 005-2018光伏單晶硅生長用石英坩堝生產規范
- T/CECS 10336-2023地面防滑性能分級及試驗方法
- T/CECS 10173-2022皮芯結構熱壓交聯高分子胎基濕鋪防水卷材
- T/CECS 10065-2019綠色建材評價采光系統
- T/CECA-G 0282-2024鋼結構工業建筑碳排放計算標準
- T/CCSAS 036-2023非均相分離單元操作機械化、自動化設計方案指南
- T/CCOA 48-2023高直鏈淀粉玉米
- 山東省高考志愿規劃
- 籃球研究報告
- 機械通氣基礎知識與常見模式
- 家具借款借條模板
- 預防肥胖幼兒園
- 淚道置管的護理課件
- 造影劑腦病護理查房課件
- 電力鐵塔制造培訓資料
- 采購詢價單模板
- 聯合體內部協議
- 海南省近5年中考語文作文真題及模擬題匯編(含參考例文)
評論
0/150
提交評論