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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、52。 3. 收發(fā)采用查詢(xún)方式。收發(fā)采用查詢(xún)方式。微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(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微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(shù)start: mov ax,data mov ds,ax mov dx,io8253ctrl ;設(shè)置設(shè)置8253計(jì)數(shù)器計(jì)數(shù)器0工作方式工作方式 mov al,16h;00 01 011 0 out dx,al mov dx,io8253t0 mov al,52 ;給給8253計(jì)數(shù)器計(jì)數(shù)器0送初值送初值 out dx,al mov dx,io8251b ;初始化初始化8251 xor al,al m

5、ov cx,03 ;向向8251控制端口送控制端口送3個(gè)個(gè)0 delay: call out1 loop delay mov al,40h ;向向8251控制端口送控制端口送40H,使其復(fù)位使其復(fù)位 call out1微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(shù) mov al,4eh ;設(shè)置為設(shè)置為1個(gè)停止位個(gè)停止位,8個(gè)數(shù)據(jù)位個(gè)數(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ā)送是否準(zhǔn)備好發(fā)送是否準(zhǔn)備好 jz waiti mov ah,01h ;是是,從鍵盤(pán)上讀一字符從鍵盤(pán)上讀一字符 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í)微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(shù)next: mov dx,io8251b in al,dx test al,02h ;檢查接收是否準(zhǔn)備好檢查接收是否準(zhǔn)備好 jz next ;沒(méi)有沒(méi)有,等待等待 mov d

7、x,io8251a in al,dx ;準(zhǔn)備好,接收準(zhǔn)備好,接收 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 ;延時(shí)延時(shí) pop cx retout1 endpcodeendsend start微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(shù)例例2 8253、8255A與與8259A綜合應(yīng)用舉例綜合應(yīng)用舉例 微機(jī)系統(tǒng)中微機(jī)系統(tǒng)

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

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

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

11、,允許主片允許主片IR2中斷中斷;當(dāng)檢測(cè)到當(dāng)檢測(cè)到TPC卡中的卡中的interrupt_line為為0BH時(shí),用的是從片的時(shí),用的是從片的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微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(shù) csreg dw? ipregdw?;舊中斷向量保存空間舊中斷向量保存空間 portout db00h;中斷計(jì)數(shù)中斷計(jì)數(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微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(shù);初始化初始化8253mov dx,io8253ctrl ;向向8253寫(xiě)控制字寫(xiě)控制字mov al,36h ;使使0通道為工作方式通道為工作方式3out dx,almov ax,1000 ;寫(xiě)入循環(huán)計(jì)數(shù)初值寫(xiě)入循環(huán)計(jì)數(shù)初值1000mov dx,io8253t0out dx,al ;先寫(xiě)入低字節(jié)先寫(xiě)入低字節(jié)mov al,ahout dx,al ;后寫(xiě)入高字節(jié)后寫(xiě)入高字節(jié)mov dx,io8253ctrlmov al,65h ;設(shè)設(shè)8253通道通道1工作方式工作方式2,BCD

16、計(jì)數(shù)計(jì)數(shù)out dx,almov al,10h ;寫(xiě)入循環(huán)計(jì)數(shù)初值寫(xiě)入循環(huán)計(jì)數(shù)初值1000mov dx,io8253t1out dx,al ;只寫(xiě)高字節(jié)只寫(xiě)高字節(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 ;開(kāi)中斷開(kāi)中斷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 ;延時(shí);延時(shí)loop3: dec ax jne loop3 loop loop2 mov al,0 ;所有燈滅所有燈滅 out dx,al微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(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微型計(jì)算機(jī)技術(shù)微型計(jì)算機(jī)技術(shù);中斷服務(wù)子程序;中斷服務(wù)子程序int_procproc far push ax;保護(hù)現(xiàn)場(chǎng);保護(hù)現(xiàn)場(chǎng)push bx push cxpush dx push ds mov a

溫馨提示

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

評(píng)論

0/150

提交評(píng)論