微型計算機的接口技術_第1頁
微型計算機的接口技術_第2頁
微型計算機的接口技術_第3頁
微型計算機的接口技術_第4頁
微型計算機的接口技術_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

輸入輸出學習要點:輸入輸出接口芯片8255和8253的工作方式及初始化編程。

可編程并行接口8255A并行接口:與CPU、外設的通信都是并行通信的接口8255A的基本功能:1。兩個8位I/O口:A口和B口兩個4位I/O口:C的高4位口和C的低4位口2。三種工作方式,即方式0:基本I/O方式,無固定聯絡線,A、B、C

方式1:選通I/O方式,有固定聯絡線,A、B

方式2:雙向I/O方式,有固定聯絡線,A3。具有方式控制字和C口置1/置0控制字內部結構和引腳:方式控制字:信號與操作:

1A組控制B組控制

C口置位1/置0控制字:

0無效位選擇置復位選擇說明:(1)按位控制字寫入8255的控制口。(2)該控制字僅對8255的端口輸出鎖存器操作。例:設8255A的控制口地址為00EEH,要求對端口C的PC7置1,則控制字00001111B=0FH,要求對端口C的PC3清零,控制字為00000110B=06H。下面的程序可以實現上述要求:

MOVAL,0FH

;對PC7置1的控制字

MOVDX,00EEH

;控制口地址送DX

OUTDX,AL

;對PC7置1操作

MOVAL,06H

;對PC3置0的控制字

OUTDX,AL

;對PC3進行置0的操作8255A的工作方式1、方式0—基本輸入輸出方式(1)輸入a.端口A,B和PC7~PC4及PC3~PC0都可工作于此方式。b.在此方式下,口線直接與端口輸入緩沖器相連,輸入不具有鎖存功能。c.CPU對數據口的輸入指令讀取口線當前狀態(tài)。(2)輸出a.端口A,B和PC7~PC4及PC3~PC0都可編程工作于此方式。b.在此方式下,輸出口線直接與端口輸出鎖存器相連,端口輸出緩沖器被打開。c.CPU對數據口的輸出指令把數據輸出到端口輸出鎖存器,并達到端口口線。例:用8255A控制三個發(fā)光二極管依秩序循環(huán)顯示。

8255A0A1CS+5V200譯碼器D7~D08088CPUA0A1PA0

PA1

PA2端口地址340H-343HA2-A15發(fā)光二極管IORRDWRIOW用8255A控制三個發(fā)光二極管顯示。8255A的端口地址為:

A端口:340HB端口:341HC端口:342H

控制口:343H

試編寫8255初始化程序段和控制三個發(fā)光二極管顯示程序段。開始8255A初始化延時BX

顯示代碼地址CX=0?YNBX=BX+1CX=CX-1CX

3輸出到PA口1、程序框圖:1)設A口為輸出口,方式0。B口輸入,方式0,則方式選擇控制字為10000010

B=

82

H。2)A口輸出代碼:

00000110

06H,1號發(fā)光二極管亮

00000101

05H,2號發(fā)光二極管亮

0000001103H,3號發(fā)光二極管亮3)軟件延時2、軟件設計參考程序:DATASEGMENTCOTREQU343H ;8255A控制口地址PB_AEQU340H ;8255A的A口地址LEDDB06H,05H,03H;LED顯示值DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA…...

MOVDX,COTR;控制口地址

MOVAL,82HOUTDX,AL;A口為方式0輸出,B口為輸入

MOVDX,PB_A;A口地址

LP:MOVCX,3LEABX,LED;1號燈代碼地址

DON:MOVAL,[BX]

OUTDX,AL;1,2,3循環(huán)點亮

CALL

DELAY

;調延時1ms程序

INCBX

DECCXJNZDONJMPLPDEALY

PROCNEAR

;軟件延時

PUSHCX

MOVCX,186L:NOPNOPLOOPL

POPCX

RETDEALY

ENDPCODEENDSEND2、方式1—選通輸入輸出方式(1)選通輸入方式信號說明:a.STB選通輸入:低電平有效,表示外設送出新的數據。b.IBF輸入緩沖區(qū)滿:輸出,高電平有效。通知外設輸入緩沖區(qū)滿,不要送新數據,由CPU讀取數據清除。c.INTR中斷請求信號:輸出,高電平有效,可向CPU申請中斷。d.INTE中斷允許,INTEA是C口輸出鎖存器的PC4,INTEB是C口輸出鎖存器的PC2,由它們分別控制A口和B口的中斷申請。INTE=1中斷允許,INTE=0中斷禁止。例:8255A端口A工作在方式1,A口輸入,允許A口中斷,編寫初始化程序。

MOVDX,PCTR;控制口地址送DXMOVAL,10110000B;A口方式1輸入OUTDX,ALMOVAL,00001001B;置PC4=1,允許中斷OUTDX,AL;方式1輸入時序

信號說明:a.OBF輸出緩沖器滿,輸出,低電平有效,通知外設端口已有可用數據。b.ACK收到信號,輸入,低電平有效。外設通知8255已取走數據,由其清除OBF,并置“1”

。c.INTR中斷請求信號,輸出,高電平有效,可向CPU申請中斷。d.INTE中斷允許信號INTEA為PC6輸出鎖存器,INTEB為PC2輸出鎖存器。INTE=1中斷允許,INTE=0禁止中斷。方式1輸出時序例:中斷方式打印機接口及編程(方式1應用)

8255A工作在方式1,即端口A工作在方式1輸出,外加一片中斷控制器8259A,端口A的中斷輸出線PC3通過8259A向CPU申請中斷,可以構成中斷方式打印接口電路,如圖8-15所示。設8255A的4個端口地址分別為:244H,245H,246H,247H,試編寫打印機驅動程序。分析:用PC7作為打印機的選通信號,打印機的作為外設給8255A的應答信號(PC6),

8255A的中斷請求輸出信號PC3接至中斷控制器8259A的IR38255A的控制字為:10101000BPC6置位:

00001101B即

0DH,允許8255A的端口A方式1輸出中斷假設8259A初始化時寫入ICW2的值為08H,則8255A的端口A的中斷類型碼是0BH(對應IR3),此中斷類型碼對應的中斷向量應放到中斷向量表從002CH開始的4個存儲單元中主程序

MAIN:

MOVDX,247H

MOVAL,0A8H

OUTDX,AL

;設置8255A的控制字

XORAX,AXMOVDS,AXCLIMOVAX,OFFSETRINGMOV[002CH],AX

MOVAX,SEGRING

MOV[002EH],AX

MOVDX,247HMOVAL,0DH;PC6為1,允許端口A方式1輸出中斷

OUTDX,AL

MOVDI,OFFSETBUFF;設置地址指針

MOVCX,99;設置計數器初值

MOVDX,244H

MOVAL,[DI]OUTDX,AL;輸出第一個字符

INCDI

STINEXT:

HLT;等待中斷

LOOPNEXT

ABC:

CLIMOVAH,4CHINT21HRING:

MOV

DX,244HMOVAL,[DI]OUTDX,AL

;從端口A輸出一個字符

INC DI

;修改地址指針 IRET

;中斷返回

中斷服務子程序效數據。(3)ACKA輸入,低電平有效。外設發(fā)出ACKA打開A口輸出緩沖器,讀取數據,同時清除OBFA,并使INTR有效。(4)STBA選通信號,輸入,低電平有效,外設準備好數據,通過STBA把數據鎖存到端口輸入鎖存器,同時使IBFA和INTRA有效。(5)IBFA輸入緩沖區(qū)滿,輸出,高電平有效。通知外設端口已有數據。該信號由CPU對數據端口讀操作清除。(6)INTE中斷允許信號INTE1為PC6輸出鎖存器INTE2為PC4輸出鎖存器INTE=1中斷允許INTE=0禁止中斷。3、方式2—雙向方式僅A口有此方式??刂菩盘枺海?)INTR中斷請求信號,輸出,高電平有效,向CPU提出中斷請求。由輸出ACKA或輸入STBA使中斷申請信號有效。(2)OBFA輸出緩沖器滿,輸出,低電平有效,通知外設端口已有有方式2輸入輸出操作時序 MOV CX,256 MOV AL,10000001B OUT 83H,AL MOV AL,00001111B OUT 83H,ALWAITK:IN AL,82H TEST AL,04H JNZ WAITK MOV AL,[BX] OUT 80H,AL MOV AL,00001110B OUT 83H,AL NOP NOP MOV AL,00001111B OUT 83H,AL INC BX LOOP WAITK MOV AH,4CH INT 21H例:

8255與打印機的連接8255工作于方式?用PC7、PC2做聯絡線可編程定時/計數器8253定時的作用:1。用作時間標準;2。作為一些接口的工作節(jié)拍;3。信息傳輸時的同步。計數:1。定時與計數本質是一樣的:計數;2。定時的輸入信號具有周期性,計數的輸入信號是隨機的。如何實現定時?軟件方法:用一段程序實現延時利用程序循環(huán)延遲指定的時間缺點:CPU占用率?延時精度?兼容?硬件方法:定時/計數器電路利用脈沖計數在設定的時間輸出定時信號●8253是一種硬件定時/計數器芯片8253的功能:1。三個獨立的、功能相同的16位減1計數器;2。B、BCD3。有六種工作方式4。最高計數速度:2MHZ。8253的內部結構及引腳:8253的引腳8253端口信號與功能選擇:CSA1A0RDWR功能

00001從計數器0讀出計數值

00101從計數器1讀出計數值

01001從計數器2讀出計數值

00010對計數器0設置計數初值

00110對計數器1設置計數初值01010對計數器2設置計數初值

01110寫控制寄存器

1XXXX數據總線為三態(tài)

0XX11數據總線為三態(tài)

0110X非法狀態(tài)8253一個計數器的結構:計數器內部結構編程結構—程序員的觀點計數器(3個)——包括控制寄存器(1個)——

存放控制命令字(8位)(只寫)占用4個地址—3個計數器,1個控制寄存器16位初值寄存器(只寫)16位計數寄存器(減1計數器)16位鎖存寄存器(只讀)(當前計數初值)8253的控制字:計數器讀寫格式工作方式BCD

控制字寫入控制口,各位含義如下:SC1SC0:計數器通道選擇

00通道001通道110通道211非法RW1RW0:計數器讀寫選擇

00計數器鎖存

01只讀寫低8位

10只讀寫高8位

11先低8位,再高8位

M2M1M0:計數器工作方式選擇000方式0001方式1x10方式2x11方式3100方式4101方式5BCD:計數器進制選擇

016位二進制計數器

1BCD碼計數器(二)8253工作方式1、模式0——

計數結束產生中斷方式1(可編程單穩(wěn))

方式2(分頻器)

方式3(方波發(fā)生器)

方式4(軟件觸發(fā)選通方式)

方式5(硬件觸發(fā)選通方式)

初始化程序流程寫控制字寫計數值低8位寫計數值高8位*非必須寫入順序:可按計數器分別寫入控制字和初值。也可先寫所有計數器控制字,再寫入它們的初值例:若8253的地址為40H、41H、42H、43H,選擇計數器0,工作在方式0,計數初值為4,采用二進制計數,則初始化程序如下:讀8253的當前計數值:先鎖存,后讀數值。例:MOVAL,00000000BOUT43H,ALINAL,40HMOVAL,10HOUT43H,ALMOVAL,4OUT40H,AL用8253監(jiān)視一個生產流水線,每通過50個工件,揚聲器響5秒鐘,頻率為2000Hz。其原理如圖所示。圖中工件從光源與光敏三極管間通過時,在晶體管的發(fā)射極會產生一個脈沖,此脈沖作為8253計數器的CLK

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論