接口芯片綜合應(yīng)用_第1頁
接口芯片綜合應(yīng)用_第2頁
接口芯片綜合應(yīng)用_第3頁
接口芯片綜合應(yīng)用_第4頁
接口芯片綜合應(yīng)用_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微型計算機技術(shù)微型計算機技術(shù)例例1 8253與與8251綜合應(yīng)用舉例綜合應(yīng)用舉例串行接口芯片串行接口芯片8251與定時器與定時器/計數(shù)器計數(shù)器8253的電路連接如圖所示,的電路連接如圖所示,8251的發(fā)送的發(fā)送端端TXD和接收端和接收端RXD連接在一起,連接在一起,8253的的OUT0用于產(chǎn)生用于產(chǎn)生8251的發(fā)送和接收的發(fā)送和接收時鐘時鐘Txclk和和Rxclk,已知,已知8251的控制口地址為的控制口地址為2B9H,數(shù)據(jù)口地址為,數(shù)據(jù)口地址為2B8H。8253的控制口地址為的控制口地址為283H,定時器,定時器0地址為地址為280H。要求編程:從微機鍵盤輸入一個字符,將其要求編程:從微機鍵

2、盤輸入一個字符,將其ASCII碼加碼加1后發(fā)送出去,再接收后發(fā)送出去,再接收回來在屏幕上顯示這兩個字符。實現(xiàn)自發(fā)自收,按回來在屏幕上顯示這兩個字符。實現(xiàn)自發(fā)自收,按ESC鍵之后程序結(jié)束。鍵之后程序結(jié)束。 8253與與8251接口電路圖接口電路圖 微型計算機技術(shù)微型計算機技術(shù)流程圖流程圖微型計算機技術(shù)微型計算機技術(shù)參考程序參考程序 8253通道通道0的計數(shù)初值的計數(shù)初值=時鐘頻率時鐘頻率(波特率(波特率波特率因波特率因子)。子)。其中時鐘頻率接其中時鐘頻率接1MHz,波特率若選,波特率若選1200,波特率因子若選,波特率因子若選16,則計數(shù)器初值則計數(shù)器初值=1000000/(1200 16)=

3、52。 3. 收發(fā)采用查詢方式。收發(fā)采用查詢方式。微型計算機技術(shù)微型計算機技術(shù);*;*8251串行通訊串行通訊(自發(fā)自收自發(fā)自收)*;*;data segment ioportequ 5400h-0280h;tpc 卡中設(shè)備的卡中設(shè)備的io地址地址 io8253t0equ ioport+280h io8253ctrlequ ioport+283h io8251aequ ioport+2b8h io8251bequ ioport+2b9h mes1 db you can play a key on the keybord!,0dh,0ah,24h mes2 dd mes1data endssta

4、cks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ds:data,ss:stacks微型計算機技術(shù)微型計算機技術(shù)start: mov ax,data mov ds,ax mov dx,io8253ctrl ;設(shè)置設(shè)置8253計數(shù)器計數(shù)器0工作方式工作方式 mov al,16h;00 01 011 0 out dx,al mov dx,io8253t0 mov al,52 ;給給8253計數(shù)器計數(shù)器0送初值送初值 out dx,al mov dx,io8251b ;初始化初始化8251 xor al,al m

5、ov cx,03 ;向向8251控制端口送控制端口送3個個0 delay: call out1 loop delay mov al,40h ;向向8251控制端口送控制端口送40H,使其復(fù)位使其復(fù)位 call out1微型計算機技術(shù)微型計算機技術(shù) mov al,4eh ;設(shè)置為設(shè)置為1個停止位個停止位,8個數(shù)據(jù)位個數(shù)據(jù)位,波特率因子為波特率因子為16 call out1 mov al,27h ;向向8251送控制字允許其發(fā)送和接收送控制字允許其發(fā)送和接收 call out1 lds dx,mes2 ;顯示提示信息顯示提示信息 mov ah,09 int 21hwaiti: mov dx,io8

6、251b in al,dx test al,01 ;發(fā)送是否準備好發(fā)送是否準備好 jz waiti mov ah,01h ;是是,從鍵盤上讀一字符從鍵盤上讀一字符 int 21h cmp al,27 jz exit;若為若為ESC鍵鍵,則結(jié)束返回則結(jié)束返回 inc al mov dx,io8251a out dx,al ;發(fā)送發(fā)送 mov cx,40hdelay: loop delay ;延時延時微型計算機技術(shù)微型計算機技術(shù)next: mov dx,io8251b in al,dx test al,02h ;檢查接收是否準備好檢查接收是否準備好 jz next ;沒有沒有,等待等待 mov d

7、x,io8251a in al,dx ;準備好,接收準備好,接收 mov dl,al mov ah,02h ;顯示接收到的字符顯示接收到的字符 int 21h jmp waitiexit: mov ax,4c00h ;退出退出 int 21h;向端口輸出一字節(jié)的子程序向端口輸出一字節(jié)的子程序out1 proc near out dx,al push cx mov cx,40hgg: loop gg ;延時延時 pop cx retout1 endpcodeendsend start微型計算機技術(shù)微型計算機技術(shù)例例2 8253、8255A與與8259A綜合應(yīng)用舉例綜合應(yīng)用舉例 微機系統(tǒng)中微機系統(tǒng)

8、中8253、8255A與與8259A的連接電路及各接口芯片的連接電路及各接口芯片的地址分配如圖所示。的地址分配如圖所示。 已知主片已知主片8259A的中斷類型碼為的中斷類型碼為08H0FH,從片,從片8259A的中的中斷類型碼為斷類型碼為70H77H。 使使8255A工作于方式工作于方式1,輸出,允許中斷方式工作,輸出,允許中斷方式工作,A口連接口連接8個發(fā)光二極管個發(fā)光二極管L0L7 ,PC0口線連接邏輯電平開關(guān)口線連接邏輯電平開關(guān)K0。 利用利用8253的定時功能,當?shù)亩〞r功能,當K0斷開時,每隔斷開時,每隔1秒鐘使秒鐘使8255A產(chǎn)產(chǎn)生一次輸出中斷請求,讓生一次輸出中斷請求,讓CPU進行

9、一次中斷服務(wù):依次使進行一次中斷服務(wù):依次使L0L7發(fā)光。當發(fā)光。當K0閉合時,則使閉合時,則使L0L7全亮一次后再全部全亮一次后再全部熄滅,然后結(jié)束。熄滅,然后結(jié)束。 設(shè)該題利用實驗臺相關(guān)設(shè)備資源,試編程。設(shè)該題利用實驗臺相關(guān)設(shè)備資源,試編程。微型計算機技術(shù)微型計算機技術(shù) 8253、8255A與與8259A接口接口電路圖電路圖 +5VOUT1CLK0GATE0GATE1+5VCLK1OUT0INTINTINTRCSCSCSINTAINTAINTA1MHzIR0IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7SP/ENSP/ENCAS2 CAS1CAS

10、0CAS2 CAS1CAS020H21HA0HA1H280H283H8253PC3PC6PA0PA1PA2PA3PA4PA5PA6PA7PC0+5VK0L0L1L2L3L4L5L6L7CS288H28BH8255A8259A8259A微型計算機技術(shù)微型計算機技術(shù);應(yīng)用程序應(yīng)用程序;*;*可編程并行口可編程并行口8255方式方式1,A口輸出口輸出*;*;data segment;中斷中斷0-7的向量號為的向量號為08h-0fh,中斷中斷8-15的向量號為的向量號為70h-77h int_vect equ 072H; irq_mask_0_7 equ 11111011b ;主片中斷掩碼主片中斷掩碼

11、,允許主片允許主片IR2中斷中斷;當檢測到當檢測到TPC卡中的卡中的interrupt_line為為0BH時,用的是從片的時,用的是從片的IR2中斷中斷 irq_mask_8_15 equ 11111011b ;從片中斷掩碼從片中斷掩碼,允許從片允許從片IR2中斷中斷 ioport_data equ 5400h-280h;tpc 卡中設(shè)備的卡中設(shè)備的I/O地址地址 ioport_cent equ 5000h;tpc 卡中卡中9054芯片寄存器組的芯片寄存器組的I/O起始地址起始地址 io8253t0equ ioport_data+280h io8253t1equ ioport_data+281

12、h io8253ctrlequ ioport_data+283h io8255aequ ioport_data+288h io8255cequ ioport_data+28ah io8255ctrlequ ioport_data+28bh微型計算機技術(shù)微型計算機技術(shù) csreg dw? ipregdw?;舊中斷向量保存空間舊中斷向量保存空間 portout db00h;中斷計數(shù)中斷計數(shù) msg1 db 0dh,0ah,TPC pci card Interrupt,0dh,0ah,$ msg2 db 0dh,0ah,Press K0 to exit!,0dh,0ah,$ data endssta

13、cks segment stack db 100 dup (?)stacks ends code segmentassume cs:code,ds:data,ss:stacks,es:data.386start: cli ;關(guān)中斷關(guān)中斷 mov ax,data mov ds,ax mov es,ax ;設(shè)置設(shè)置 tpc 卡中卡中9054芯片端口芯片端口,使能使能9054中斷中斷mov dx,ioport_cent+68h ;中斷使能寄存器;中斷使能寄存器in ax,dxor ax,0900h ;D8=1,允許產(chǎn)生,允許產(chǎn)生PCI中斷中斷 out dx,ax ;D11=1,允許,允許local端

14、中斷送端中斷送PCI端端 ;保存原中斷向量保存原中斷向量mov al,int_vectmov ah,35h int 21hmov ax,esmov csreg,axmov ipreg,bx;設(shè)置新中斷向量設(shè)置新中斷向量mov ax, seg int_proc mov ds,axmov dx,offset int_procmov al,int_vectmov ah,25hint 21h;設(shè)置中斷掩碼設(shè)置中斷掩碼in al, 21h and al, irq_mask_2_7out 21h, alin al, 0a1hand al, irq_mask_9_15out 0a1h, almov ax,d

15、atamov ds,axmov dx,offset msg2mov ah,09hint 21h微型計算機技術(shù)微型計算機技術(shù);初始化初始化8253mov dx,io8253ctrl ;向向8253寫控制字寫控制字mov al,36h ;使使0通道為工作方式通道為工作方式3out dx,almov ax,1000 ;寫入循環(huán)計數(shù)初值寫入循環(huán)計數(shù)初值1000mov dx,io8253t0out dx,al ;先寫入低字節(jié)先寫入低字節(jié)mov al,ahout dx,al ;后寫入高字節(jié)后寫入高字節(jié)mov dx,io8253ctrlmov al,65h ;設(shè)設(shè)8253通道通道1工作方式工作方式2,BCD

16、計數(shù)計數(shù)out dx,almov al,10h ;寫入循環(huán)計數(shù)初值寫入循環(huán)計數(shù)初值1000mov dx,io8253t1out dx,al ;只寫高字節(jié)只寫高字節(jié);初始化初始化8255Amov dx, io8255ctrl ;置置8255為為A口方式口方式1輸出輸出,PC0輸入輸入mov al,0a1hout dx,almov al,0dh ;將將PC6置位置位out dx,almov portout,1 ;A口輸出初始值數(shù)據(jù)口輸出初始值數(shù)據(jù)00000001sti ;開中斷開中斷l(xiāng)oop1:mov dx, io8255c ;讀入讀入C口狀態(tài)口狀態(tài) in al,dx test al,01h ;P

17、C0=1,K0鍵按下?鍵按下?jz loop1exit: cli;按鍵退出按鍵退出 mov dx, io8255a ;將將AL從從8255的的A口輸出口輸出 mov al,0ffh ;所有燈亮所有燈亮 out dx,al mov cx,0ffffhloop2: mov ax,0f000h ;延時;延時loop3: dec ax jne loop3 loop loop2 mov al,0 ;所有燈滅所有燈滅 out dx,al微型計算機技術(shù)微型計算機技術(shù) ;恢復(fù)中斷掩碼恢復(fù)中斷掩碼mov bl, irq_mask_2_7not blinal, 21horal, blout 21h, almovb

18、l, irq_mask_9_15not blinal, 0a1horal, blout 0a1h, al ;恢復(fù)原中斷向量恢復(fù)原中斷向量mov dx,ipregmov ax,csregmov ds,axmov ah,25hmov al,int_vect int 21h;設(shè)置設(shè)置 tpc 卡中卡中9054芯片芯片io口口,關(guān)閉中斷關(guān)閉中斷mov dx,ioport_cent+68h in ax,dxand ax,0f7ffh ;D11=0,禁止中斷送,禁止中斷送PCI端端out dx,axmov ax,4c00hint 21h;退出,返回退出,返回DOS微型計算機技術(shù)微型計算機技術(shù);中斷服務(wù)子程序;中斷服務(wù)子程序int_procproc far push ax;保護現(xiàn)場;保護現(xiàn)場push bx push cxpush dx push ds mov a

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論