常用的可編程接口芯片介紹_第1頁
常用的可編程接口芯片介紹_第2頁
常用的可編程接口芯片介紹_第3頁
常用的可編程接口芯片介紹_第4頁
常用的可編程接口芯片介紹_第5頁
已閱讀5頁,還剩167頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

常用的可編程接口芯片介紹第1頁,課件共172頁,創(chuàng)作于2023年2月定時(shí)信號(hào)可用三種方法:軟件延時(shí)不可編程的硬件定時(shí)可編程的硬件定時(shí)第2頁,課件共172頁,創(chuàng)作于2023年2月第一節(jié)定時(shí)/計(jì)數(shù)器及其應(yīng)用

一、Intel8254的內(nèi)部結(jié)構(gòu)

數(shù)據(jù)總線緩沖器讀/寫邏輯電路控制寄存器內(nèi)部總線0#計(jì)數(shù)器1#計(jì)數(shù)器2#計(jì)數(shù)器CLK0

GATE0

OUT0

CLK1

GATE1

OUT1

CLK2

GATE2

OUT2

RDWRA0A1

CSD0-D7CRCEOL第3頁,課件共172頁,創(chuàng)作于2023年2月二、8254與系統(tǒng)的連接:CLKGATEOUTD0~D7WRRDA1A0CSDBWRRDA1A0譯碼器高位地址外設(shè)Intel8254第4頁,課件共172頁,創(chuàng)作于2023年2月三、Intel8254端口操作表第5頁,課件共172頁,創(chuàng)作于2023年2月四、Intel8254控制字/狀態(tài)字

1.方式控制字

D7D6D5D4D3D2D1D0SC1SC2RW1RW0M2M1M0BCDSC1,SC0=00;選擇0#計(jì)數(shù)器.SC1,SC0=01;選擇1#計(jì)數(shù)器.SC1,SC0=10;選擇2#計(jì)數(shù)器.SC1,SC0=11;讀出命令(8253為非法操作).RW1,RW0=00;鎖存命令.RW1,RW0=01;只訪問低8位.RW1,RW0=10;只訪問高8位.RW1,RW0=11;先訪問低8位,后訪問高8位.第6頁,課件共172頁,創(chuàng)作于2023年2月方式控制字(續(xù))

M2M1M0=000方式0M2M1M0=001方式1M2M1M0=x10方式2M2M1M0=x11方式3M2M1M0=100方式4M2M1M0=101方式5D0=0,按二進(jìn)制減1計(jì)數(shù),初值范圍0000H∽FFFFHD0=1,按十進(jìn)制減1計(jì)數(shù),初值范圍0000H∽9999H第7頁,課件共172頁,創(chuàng)作于2023年2月

2.讀出控制字D7D6D5D4D3D2D1D011鎖存當(dāng)前計(jì)數(shù)值鎖存計(jì)數(shù)器狀態(tài)計(jì)數(shù)器2計(jì)數(shù)器1計(jì)數(shù)器00D7=1、D6=1和D0=0是標(biāo)識(shí)位D5=0表示鎖存計(jì)數(shù)值,以便CPU讀??;D4=0是將計(jì)數(shù)器的狀態(tài)鎖存到狀態(tài)寄存器;D3∽D1是選擇計(jì)數(shù)器,D3=1選中2#計(jì)數(shù)器;D2=1選中1#計(jì)數(shù)器;D1=1選中0#計(jì)數(shù)器。第8頁,課件共172頁,創(chuàng)作于2023年2月3.狀態(tài)字D7D6D5D4D3D2D1D0輸出電平計(jì)數(shù)值是否有效RW1RW0M2M1M0BCDD5∽D0位——與控制字對(duì)應(yīng)位的意義相同.D7——OUT狀態(tài),1表示高電平,0表示輸出低電平.D6——計(jì)數(shù)初值是否已裝入計(jì)數(shù)器中,1表示無效計(jì)數(shù),0表示已將計(jì)數(shù)初值裝入計(jì)數(shù)器中,可以讀計(jì)數(shù)器的值。第9頁,課件共172頁,創(chuàng)作于2023年2月五、Intel8254的編程命令

1.寫入命令(先寫控制字,再寫計(jì)數(shù)初值)任何一個(gè)計(jì)數(shù)器都有3個(gè)寫入命令:設(shè)置控制字命令——用來選擇計(jì)數(shù)器、寫入計(jì)數(shù)初值的規(guī)則、設(shè)定工作方式和計(jì)數(shù)格式.設(shè)置計(jì)數(shù)初值命令——寫入計(jì)數(shù)初值寄存器.輸出鎖存器的鎖存命令——鎖存命令與讀出命令一起使用,當(dāng)前計(jì)數(shù)值在輸出鎖存器中鎖定后才讀出.第10頁,課件共172頁,創(chuàng)作于2023年2月

2.讀出命令(先鎖存,再讀操作)在讀操作之前先將計(jì)數(shù)鎖存命令送入要讀的計(jì)數(shù)器的控制端口中.讀出命令的目的是CPU讀計(jì)數(shù)器中的計(jì)數(shù)值,讀操作由方式控制字中的RW1,RW0的狀態(tài)組合來控制.第11頁,課件共172頁,創(chuàng)作于2023年2月例:讀取0#計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值,程序段如下:(設(shè)8254的片選地址范圍是0E0H~0E3H)MOVAL,00H;0#計(jì)數(shù)器的鎖存命令OUT0E3H,AL;鎖存命令寫到控制口IN AL,0E0H;讀鎖存器的低字節(jié)MOVBL,AL;低字節(jié)送BLIN AL,0E0H;讀鎖存器的高字節(jié)MOVBH,AL;高字節(jié)送BH則BX的內(nèi)容就是0#計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值。第12頁,課件共172頁,創(chuàng)作于2023年2月六、Intel8254的工作方式按功能分1、計(jì)數(shù)器方式:當(dāng)計(jì)數(shù)器被賦予初值時(shí),在門控信號(hào)GATE開啟狀態(tài)下,由輸入的CLK時(shí)鐘對(duì)計(jì)數(shù)器進(jìn)行減1計(jì)數(shù)。在CLK連續(xù)脈沖作用下,計(jì)數(shù)器減到0時(shí),由OUT端輸出信號(hào)。作為對(duì)外部事件計(jì)數(shù)的CLK可以是均勻的、連續(xù)的,也可以是非均勻連續(xù)的,它只是脈沖數(shù)量問題,不是脈沖的時(shí)間問題。第13頁,課件共172頁,創(chuàng)作于2023年2月2、定時(shí)器方式:當(dāng)定時(shí)器被賦予初值時(shí),在GATE開啟狀態(tài)下,由CLK時(shí)鐘脈沖觸發(fā)定時(shí)器開始工作,定時(shí)器在OUT端不間斷地產(chǎn)生CLK時(shí)鐘整數(shù)倍的定時(shí)時(shí)間間隔。CLK必須是連續(xù)的、均勻的、周期精確的時(shí)間脈沖,并且最終結(jié)果還與CLK脈沖周期有關(guān),即計(jì)時(shí)時(shí)間等于計(jì)數(shù)值乘CLK脈沖周期。第14頁,課件共172頁,創(chuàng)作于2023年2月每個(gè)計(jì)數(shù)器都有6種工作方式共同特點(diǎn):1、控制字寫入計(jì)數(shù)器的控制寄存器時(shí),輸出端OUT進(jìn)入初始狀態(tài)。設(shè)置成方式0時(shí),OUT端的初始狀態(tài)為低電平;設(shè)置成其他方式時(shí),OUT端的初始狀態(tài)為高電平。2、初始值被寫入8254相應(yīng)計(jì)數(shù)器的初值寄存器CR以后,要用一個(gè)時(shí)鐘脈沖的上升沿和下降沿將初值送入計(jì)數(shù)執(zhí)行部件(減計(jì)數(shù)器),減計(jì)數(shù)器從下一個(gè)時(shí)鐘開始進(jìn)行計(jì)數(shù)。第15頁,課件共172頁,創(chuàng)作于2023年2月3、用時(shí)鐘脈沖的上升沿對(duì)門控信號(hào)GATE進(jìn)行采樣。如果計(jì)數(shù)器工作在方式0或方式4,則門控信號(hào)為電平觸發(fā);工作在方式1或方式5時(shí),則門控信號(hào)為上升沿觸發(fā);工作在方式2或方式3時(shí),門控信號(hào)可以用上升沿觸發(fā),也可用下降沿觸發(fā)。4、在時(shí)鐘脈沖的下降沿,計(jì)數(shù)器作減1計(jì)數(shù)。5、0000H是計(jì)數(shù)器的最大初始值。二進(jìn)制計(jì)數(shù)時(shí)該初值相當(dāng)于65536,BCD碼計(jì)數(shù)時(shí)相當(dāng)于10000.第16頁,課件共172頁,創(chuàng)作于2023年2月計(jì)數(shù)器在不同的工作方式下,主要區(qū)別:1、OUT引腳的輸出波形不同。2、啟動(dòng)計(jì)數(shù)器計(jì)數(shù)的觸發(fā)方式不同。3、門控信號(hào)GATE對(duì)計(jì)數(shù)器的影響不同。4、有的工作方式具備“初值自動(dòng)重裝”的功能。第17頁,課件共172頁,創(chuàng)作于2023年2月六、Intel8254的工作方式

1.方式0——計(jì)數(shù)結(jié)束輸出正跳變信號(hào)

第18頁,課件共172頁,創(chuàng)作于2023年2月第19頁,課件共172頁,創(chuàng)作于2023年2月第20頁,課件共172頁,創(chuàng)作于2023年2月2.方式1——硬件可重復(fù)觸發(fā)的單穩(wěn)第21頁,課件共172頁,創(chuàng)作于2023年2月第22頁,課件共172頁,創(chuàng)作于2023年2月第23頁,課件共172頁,創(chuàng)作于2023年2月

3.方式2——分頻器第24頁,課件共172頁,創(chuàng)作于2023年2月第25頁,課件共172頁,創(chuàng)作于2023年2月第26頁,課件共172頁,創(chuàng)作于2023年2月4.方式3——方波發(fā)生器第27頁,課件共172頁,創(chuàng)作于2023年2月第28頁,課件共172頁,創(chuàng)作于2023年2月第29頁,課件共172頁,創(chuàng)作于2023年2月5.方式4——軟件觸發(fā)的選通信號(hào)發(fā)生器第30頁,課件共172頁,創(chuàng)作于2023年2月第31頁,課件共172頁,創(chuàng)作于2023年2月第32頁,課件共172頁,創(chuàng)作于2023年2月6.方式5——硬件觸發(fā)的選通信號(hào)發(fā)生器第33頁,課件共172頁,創(chuàng)作于2023年2月第34頁,課件共172頁,創(chuàng)作于2023年2月第35頁,課件共172頁,創(chuàng)作于2023年2月七、Intel8254的初始化程序流程寫控制字寫計(jì)數(shù)值低8位寫計(jì)數(shù)值高8位寫入順序:以計(jì)數(shù)器為單位初始化,也可以先寫所有計(jì)數(shù)器控制字,再寫入初值第36頁,課件共172頁,創(chuàng)作于2023年2月Intel8254的初始化編程1、計(jì)數(shù)初值已知初值<FFH

初值>FFH2、計(jì)數(shù)初值未知或3、讀當(dāng)前計(jì)數(shù)值:先鎖存再讀4、級(jí)聯(lián):計(jì)數(shù)時(shí)間超出一個(gè)16位計(jì)數(shù)器范圍第37頁,課件共172頁,創(chuàng)作于2023年2月例:8254的1#計(jì)數(shù)器工作在方式0,二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為4.設(shè)端口地址為E0H,E2H,E4H和E6H.

初始化程序段:MOVAL,50H;設(shè)置1#計(jì)數(shù)器的控制字OUT 0E6H,AL;寫控制字MOVAL,4;設(shè)置計(jì)數(shù)初值OUT0E2,AL;初值寫入1#計(jì)數(shù)器1、計(jì)數(shù)初值已知:初值<FFH第38頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)8254的0#計(jì)數(shù)器工作于方式1,計(jì)數(shù)初值為3,按二進(jìn)制計(jì)數(shù).

初始化程序段為:MOVAL,12H;設(shè)置0#計(jì)數(shù)器控制字OUT0E6H,ALMOVAL,3 ;設(shè)置計(jì)數(shù)初值OUT0E0H,AL第39頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)8254的2#計(jì)數(shù)器工作在方式2,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為3.

初始化程序段如下:MOVAL,94H;設(shè)控制字OUT0E6H,ALMOVAL,3;設(shè)置計(jì)數(shù)初值OUT0E4H,AL第40頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)8254的2#計(jì)數(shù)器工作在方式3,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為4。

初始化程序段如下:MOVAL,96H;設(shè)置控制字OUT0E6H,AL MOVAL,4 ;設(shè)置初值OUT0E4H,AL 第41頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)8254的1#計(jì)數(shù)器工作于方式4,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為40.

初始化程序如下:MOVAL,58H ;設(shè)置控制字OUT0E6H,AL MOVAL,40 ;設(shè)置計(jì)數(shù)初值OUT0E2H,AL 第42頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)8254的0#計(jì)數(shù)器工作在方式5,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為3.

初始化程序如下:MOVAL,1AH ;設(shè)置控制字OUT0E6H,AL MOVAL,3 ;設(shè)置計(jì)數(shù)初值OUT0E0H,AL 第43頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)8254的2#計(jì)數(shù)器工作在方式2,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為0304H,初始化程序段如下:M0VAL,0B4H;設(shè)控制字,按16位讀寫格式OUT0E6H,AL;寫控制字MOVAL,04H;計(jì)數(shù)值的低字節(jié)OUT0E4H,AL;寫計(jì)數(shù)值的低字節(jié)MOVAL,03H;計(jì)數(shù)值的高字節(jié)OUT0E4H,AL;寫計(jì)數(shù)值的高字節(jié)初值>FFH第44頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)8254的1#計(jì)數(shù)器工作在方式1,按BCD碼計(jì)數(shù),計(jì)數(shù)初值為4000.

初始化程序如下:MOVAL,63H;控制字:只讀寫高

8位,BCD碼計(jì)數(shù)OUT0E6H,ALMOVAL,40H;設(shè)置計(jì)數(shù)初值4000OUT0E2H,AL第45頁,課件共172頁,創(chuàng)作于2023年2月本例中如果按二進(jìn)制計(jì)數(shù),控制字應(yīng)該設(shè)置成01110010B。初始化程序如下:MOVAL,72H;設(shè)置控制字:讀寫16位,二進(jìn)制計(jì)數(shù)OUT0E6H,ALMOVAX,4000;設(shè)置計(jì)數(shù)初值4000OUT0E2H,AL;送初值的低8位MOVAL,AHOUT0E2H,AL;送初值的高8位第46頁,課件共172頁,創(chuàng)作于2023年2月例:設(shè)一個(gè)8254的計(jì)數(shù)器0能產(chǎn)生20ms的定時(shí)信號(hào),設(shè)它的地址為2F0~2F3H,CLK為500KHZ。試對(duì)它進(jìn)行初始化編程。解:16進(jìn)制為2710H,作為CPU的中斷申請(qǐng),方式控制字為00110000B,或30H2、計(jì)數(shù)初值未知第47頁,課件共172頁,創(chuàng)作于2023年2月MOVDX,2F3HMOVAL,30HOUTDX,ALMOVDX,2F0HMOVAL,10HOUTDX,ALMOVAL,27HOUTDX,AL第48頁,課件共172頁,創(chuàng)作于2023年2月例:讀取0#計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值(設(shè)8254的片選地址范圍是0E0H~0E3H)MOVAL,00H;0#計(jì)數(shù)器的鎖存命令OUT0E3H,AL;鎖存命令寫到控制口IN AL,0E0H;讀鎖存器的低字節(jié)MOVBL,AL;低字節(jié)送BLIN AL,0E0H;讀鎖存器的高字節(jié)MOVBH,AL;高字節(jié)送BH則BX的內(nèi)容就是0#計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值。3、讀當(dāng)前計(jì)數(shù)值:先鎖存再讀第49頁,課件共172頁,創(chuàng)作于2023年2月例:用Intel8254實(shí)現(xiàn)1秒標(biāo)準(zhǔn)時(shí)鐘。8254的端口地址是40H~43H,頻率為10MHz。設(shè)計(jì)提示:計(jì)數(shù)初值=10MHz÷1Hz=10000000>65535,顯然已經(jīng)超出了8254內(nèi)部一個(gè)計(jì)數(shù)器的計(jì)數(shù)范圍,需要用兩個(gè)計(jì)數(shù)器級(jí)聯(lián)。將0#計(jì)數(shù)器工作于方式3,其CLK輸入10MHz的信號(hào)源,產(chǎn)生5KHz的方波信號(hào),作為2#計(jì)數(shù)器的輸入CLK信號(hào)。2#計(jì)數(shù)器工作在方式2,從2#計(jì)數(shù)器的OUT輸出頻率為1Hz的連續(xù)脈沖,就是周期為1秒的時(shí)鐘。這樣,0#計(jì)數(shù)器的控制字為00100111B、計(jì)數(shù)初值為2000;2#計(jì)數(shù)器的控制字為10100101B、計(jì)數(shù)初值為5000。4、級(jí)聯(lián)第50頁,課件共172頁,創(chuàng)作于2023年2月初始化編程:MOVAL,27H;寫控制字:0#計(jì)數(shù)器方式3,只寫高8位,BCD碼計(jì)數(shù)OUT43H,ALMOVAL,20HOUT40H,AL;0#計(jì)數(shù)器送初值2000MOVAL,0A5H;寫控制字:2#計(jì)數(shù)器方式2,只寫高8位,BCD碼計(jì)數(shù)OUT43H,ALMOVAL,50HOUT42H,AL;2#計(jì)數(shù)器送初值5000第51頁,課件共172頁,創(chuàng)作于2023年2月八、Intel8254在微機(jī)系統(tǒng)中的應(yīng)用0#計(jì)數(shù)器用于定時(shí)中斷——工作于方式3,門控端GATE常有效,計(jì)數(shù)初值=0,定時(shí)時(shí)間為55ms,OUT0接8259的IRQ0端,用作中斷請(qǐng)求信號(hào),每隔55ms申請(qǐng)1次中斷.系統(tǒng)利用0#計(jì)數(shù)器和08號(hào)中斷實(shí)現(xiàn)日時(shí)鐘的計(jì)時(shí)功能.第52頁,課件共172頁,創(chuàng)作于2023年2月1#計(jì)數(shù)器用于動(dòng)態(tài)存儲(chǔ)器刷新定時(shí)(間隔15μs進(jìn)行一次請(qǐng)求)——方式2或方式3,門控端GATE常有效,計(jì)數(shù)初值=18,每隔15μs刷新1次.2#計(jì)數(shù)器用于產(chǎn)生900Hz的方波送揚(yáng)聲器——工作于方式3,其輸出經(jīng)濾波后得到近似的正弦波,以驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,輸出信號(hào)的頻率通過初始化設(shè)置可以改變.第53頁,課件共172頁,創(chuàng)作于2023年2月CLK0OUT0GATE0CLK1OUT1GATE1CLK2OUT2GATE2Intel8254分頻器+5VPB0Intel8255PB11.1931816MHzIntel8259的IR0產(chǎn)生系統(tǒng)時(shí)鐘Intel8237DREQ0存儲(chǔ)器刷新驅(qū)動(dòng)喇叭&圖5.8Intel8254在PC機(jī)系統(tǒng)中的應(yīng)用第54頁,課件共172頁,創(chuàng)作于2023年2月系統(tǒng)中8254的三個(gè)計(jì)數(shù)器的初始化程序如下(這些程序已經(jīng)在ROM-BIOS中):MOVAL,36H;寫0#計(jì)數(shù)器控制字:OUT43H,AL;讀寫16位,方式3,;二進(jìn)制計(jì)數(shù)MOVAL,00H;初值0,信號(hào)周期55msOUT40H,AL;先寫低8位OUT40H,AL;后寫高8位第55頁,課件共172頁,創(chuàng)作于2023年2月MOVAL,54H;寫1#計(jì)數(shù)器控制字:OUT43H,AL;方式2,只寫低8位,二進(jìn)制計(jì)數(shù)MOVAL,12H;初值為18,信號(hào)周期15μsOUT41H,AL;寫初值MOVAL,0B6H;寫2#計(jì)數(shù)器控制字:OUT43H,AL;讀寫16位,方式3,二進(jìn)制計(jì)數(shù)MOVAX,533H;初值為533H,信號(hào)頻率900HzOUT42H,AL;先寫低8位MOVAL,AHOUT42H,AL;后寫高8位續(xù):第56頁,課件共172頁,創(chuàng)作于2023年2月第二節(jié)可編程并行接口

及其應(yīng)用串行通信接口并行通信接口第57頁,課件共172頁,創(chuàng)作于2023年2月并行通信接口數(shù)據(jù)是以字節(jié)或字為單位進(jìn)行傳送或交換的。并行接口通常具有輸入或輸出數(shù)據(jù)的功能,這里所說的輸入輸出,是以CPU作為參照物的。并行接口起著數(shù)據(jù)鎖存或緩沖的作用。通常用于數(shù)據(jù)傳輸率高、傳輸距離比較短的場合。第58頁,課件共172頁,創(chuàng)作于2023年2月第二節(jié)可編程并行接口

及其應(yīng)用Intel8255的內(nèi)部結(jié)構(gòu)和引腳第59頁,課件共172頁,創(chuàng)作于2023年2月8255與系統(tǒng)的連接圖D0~D7WRRDA1A0CSDBWRRDA1A0譯碼器8255A口B口C口D0~D7外設(shè)CPUA2∽

A7第60頁,課件共172頁,創(chuàng)作于2023年2月Intel8255端口操作第61頁,課件共172頁,創(chuàng)作于2023年2月一、Intel8255控制字

1.方式選擇控制字特征位第62頁,課件共172頁,創(chuàng)作于2023年2月對(duì)8255初始化編程,A口:方式1輸入,B口:方式0輸出,C口的上半口輸出,C口的下半口輸入.設(shè)8255的端口地址為:60H、61H、62H和63H,方式選擇控制字為:10110001B或B1H,初始化程序段如下:MOVAL,0B1H;方式選擇控制字OUT63H,AL;寫控制端口例:第63頁,課件共172頁,創(chuàng)作于2023年2月2.C口按位置1/置0操作控制字第64頁,課件共172頁,創(chuàng)作于2023年2月要求把8255C口的PC0置1設(shè)端口地址分別為:60H、61H、62H和63H,初始化程序段:MOVAL,01H;使PC0=1的控制字OUT63H,AL;寫控制端口例:第65頁,課件共172頁,創(chuàng)作于2023年2月對(duì)C口的若干位置1/置0操作對(duì)PC7置1,PC6置0,則程序段為:MOVAL,0FH;PC7置1控制字OUT63H,AL;寫控制端口MOVAL,0CH;PC6置0控制字OUT63H,AL;寫控制端口例:第66頁,課件共172頁,創(chuàng)作于2023年2月在PC5輸出一個(gè)負(fù)跳變的信號(hào)初始化程序段如下:MOVAL,0BH;PC5置1控制字OUT63H,AL;寫控制端口MOVAL,0AH;PC5置0控制字OUT63H,AL;寫控制端口例:第67頁,課件共172頁,創(chuàng)作于2023年2月例:在PC5輸出一個(gè)負(fù)脈沖信號(hào)MOVAL,0BH;PC5置1控制字OUT63H,AL;寫控制端口MOVAL,0AH;PC5置0控制字OUT63H,AL;寫控制端口MOVAL,0BH;使PC5再置1的控制字OUT63H,AL;寫控制端口第68頁,課件共172頁,創(chuàng)作于2023年2月A口和B口都是輸出端口,要求對(duì)B口的PB7位置1,對(duì)A口的PA7、PA6位置0,而不改變其余位的狀態(tài).MOVAL,80H;方式選擇控制字OUT63H,AL;寫控制端口┊INAL,61H;讀入B口原輸出值MOVBL,AL;保存B口原輸出值ORAL,80H;使PB7=1,B口的其余位不變OUT61H,AL;對(duì)B口輸出新的內(nèi)容INAL,60H;讀入A口原輸出值MOVBH,AL;保存A口原輸出值A(chǔ)NDAL,00111111B;使PA7=0,PA6=0OUT60H,AL例:第69頁,課件共172頁,創(chuàng)作于2023年2月二、Intel8255的三種工作方式1.方式0-基本輸入輸出方式2.方式1-選通式輸入輸出方式3.方式2-雙向選通式輸入輸出方式端口A可以工作在方式0、方式1、方式2端口B只能工作在方式0、方式1第70頁,課件共172頁,創(chuàng)作于2023年2月1.方式0——基本輸入輸出方式無條件傳送(同步傳送)不需要聯(lián)絡(luò)信號(hào),CPU可以隨時(shí)對(duì)該外部設(shè)備進(jìn)行讀或?qū)?。有條件傳送(查詢式傳送)把C口的一個(gè)半口設(shè)置為輸出,用作端口A或端口B的狀態(tài)信號(hào)輸出;把C口的另一個(gè)半口設(shè)置為輸入,用作外設(shè)的狀態(tài)信號(hào)輸入。究竟使用C口的哪些位作聯(lián)絡(luò)線不是固定的,是由程序設(shè)定的。第71頁,課件共172頁,創(chuàng)作于2023年2月設(shè)8255的端口地址為A00H∽A03H,端口A和B都工作在方式O,A口用來讀一組開關(guān)數(shù)據(jù),B口連一組發(fā)光二極管,以顯示開關(guān)狀態(tài).無條件傳送的程序段如下:

MOVDX,0A03H;8255控制口地址

MOVAL,90H;方式選擇字

0UTDX,AL;寫控制字LOP:MOVDX,0A00H;端口A地址

INAL,DX;輸入開關(guān)狀態(tài)

MOVDX,0A01H;端口B地址

0UTDX,AL;顯示開關(guān)的狀態(tài)

JMPLOP例:第72頁,課件共172頁,創(chuàng)作于2023年2月(1)將A口設(shè)置成工作方式0、輸出,在A口連一臺(tái)打印機(jī)。(2)C口作狀態(tài)口,用來傳送打印機(jī)的狀態(tài):用向打印機(jī)輸出一個(gè)負(fù)脈沖作為數(shù)據(jù)選通信號(hào)(低電平有效),把A口的數(shù)據(jù)傳送到打印機(jī)緩沖器中;用接收一個(gè)來自打印機(jī)的狀態(tài)信號(hào)BUSY(高電平有效),BUSY=1表示外設(shè)正在處理數(shù)據(jù)(忙),當(dāng)打印機(jī)處理完輸入的數(shù)據(jù)后,會(huì)撤銷忙信號(hào),置BUSY=0,等待接收CPU輸出的下一個(gè)數(shù)據(jù)。

例:用8255作打印機(jī)的接口.

(查詢式傳送)第73頁,課件共172頁,創(chuàng)作于2023年2月(3)8255方式0使用查詢式傳送時(shí),其聯(lián)絡(luò)信號(hào)是不固定的,這里選用和作為聯(lián)絡(luò)信號(hào),我們把設(shè)置為輸入,把設(shè)置為輸出。(4)用查詢式傳送實(shí)現(xiàn)上述過程。設(shè)8255在系統(tǒng)中的端口地址為。第74頁,課件共172頁,創(chuàng)作于2023年2月CPUPA0-7PC7PC1GNDD0-7STBBUSYGNDIntel8255打印機(jī)第75頁,課件共172頁,創(chuàng)作于2023年2月用查詢式傳送實(shí)現(xiàn)上述過程:MOVDX,0A03H;8255控制口地址MOVAL,81H;控制字OUTDX,AL;寫方式選擇控制字MOVAL,0FH;PC7=1,使打印機(jī)選通信號(hào)無效OUTDX,AL;寫C口置1/置0控制字MOVCX,100H;打印的字符數(shù)L:MOVDX,0A02H;狀態(tài)口地址H:INAL,DX;讀打印機(jī)狀態(tài)TESTAL,02H;檢查BUSY是否忙JNZH;若PC1=1,打印機(jī)忙,則循環(huán)等待第76頁,課件共172頁,創(chuàng)作于2023年2月MOVAL,[BX];取出要打印的數(shù)據(jù)MOVDX,0A00H;端口A地址OUTDX,AL;打印的數(shù)據(jù)送A口MOVAL,0EH;置PC7=0,數(shù)據(jù)選通有效MOVDX,0A03H;控制口地址OUTDX,AL;寫C口置1/置0控制字NOP;延時(shí)NOP;使PC7輸出的低電平有一定寬度,保證送打印機(jī)的數(shù)據(jù)穩(wěn)定NOPMOVAL,0FH;置PC7=1,產(chǎn)生一個(gè)上升沿,打開打印機(jī)的數(shù)據(jù)緩沖器OUTDX,AL;寫C口置1/置0控制字INCBX;修改內(nèi)存指針,指向下一個(gè)數(shù)據(jù)LOOPL;未打印完,繼續(xù)第77頁,課件共172頁,創(chuàng)作于2023年2月2.方式1——選通式輸入/輸出方式端口C中的一些固定位是用于配合A口和B口的輸入輸出應(yīng)答信號(hào),C口的其余位用作基本輸入輸出傳送。有條件傳送(查詢式傳送)CPU輸入時(shí):查詢IBF位的狀態(tài)CPU輸出時(shí):查詢OBF的狀態(tài)中斷傳送CPU不需要中斷向量:直接將8255的INTR輸出線連到CPU的中斷請(qǐng)求輸入線上。CPU需要中斷向量:將8255的INTR連到中斷控制器8259的中斷請(qǐng)求輸入端IR,由中斷控制器8259向CPU發(fā)中斷請(qǐng)求。第78頁,課件共172頁,創(chuàng)作于2023年2月

(a)方式1輸入第79頁,課件共172頁,創(chuàng)作于2023年2月

B口方式1輸入第80頁,課件共172頁,創(chuàng)作于2023年2月方式1輸入時(shí)各狀態(tài)信號(hào)的時(shí)序關(guān)系:第81頁,課件共172頁,創(chuàng)作于2023年2月數(shù)據(jù)輸入過程如下:當(dāng)外設(shè)準(zhǔn)備好數(shù)據(jù)后,發(fā)一個(gè)信號(hào),將數(shù)據(jù)打入8255輸入鎖存器中。信號(hào)的下降沿使,表示輸入緩沖器滿,不允許外設(shè)再送數(shù)據(jù)。若接口處于允許中斷狀態(tài)(則),的上升沿使,向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)后,轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序,通過執(zhí)行輸入指令,使信號(hào)有效,CPU將8255鎖存器中的數(shù)據(jù)讀入。第82頁,課件共172頁,創(chuàng)作于2023年2月在CPU執(zhí)行輸入操作時(shí),信號(hào)的下降沿使INTR復(fù)位,即撤銷中斷請(qǐng)求。上升沿使IBF復(fù)位,表示8255輸入緩沖器已空,外設(shè)可以輸入新的數(shù)據(jù)。至此,一個(gè)數(shù)據(jù)輸入過程結(jié)束。當(dāng)下一個(gè)信號(hào)(負(fù)脈沖)到來時(shí),重復(fù)上述過程。第83頁,課件共172頁,創(chuàng)作于2023年2月

(b)方式1輸出第84頁,課件共172頁,創(chuàng)作于2023年2月方式1輸出第85頁,課件共172頁,創(chuàng)作于2023年2月方式1各狀態(tài)信號(hào)的時(shí)序關(guān)系第86頁,課件共172頁,創(chuàng)作于2023年2月數(shù)據(jù)輸出過程如下:當(dāng)CPU執(zhí)行OUT指令輸出數(shù)據(jù)時(shí),信號(hào)有效,該信號(hào)將CPU數(shù)據(jù)總線上的數(shù)據(jù)寫入到8255的數(shù)據(jù)輸出緩沖器中。的上升沿使,表示8255輸出緩沖器已滿,通知外設(shè)讀取數(shù)據(jù),并且使中斷請(qǐng)求INTR=0,撤銷中斷請(qǐng)求信號(hào)。外設(shè)讀取數(shù)據(jù)后,向8255發(fā)響應(yīng)信號(hào)。第87頁,課件共172頁,創(chuàng)作于2023年2月的下降沿使(無效),表示8255輸出緩沖器已空。在8255內(nèi)部開放中斷INTE=1的條件下,的上升沿使INTR=1,向CPU發(fā)中斷請(qǐng)求。在中斷服務(wù)程序中,CPU向8255輸出一個(gè)新的數(shù)據(jù),至此,一個(gè)數(shù)據(jù)輸出過程結(jié)束。當(dāng)下一個(gè)信號(hào)(低電平)到來時(shí),重復(fù)上述過程。第88頁,課件共172頁,創(chuàng)作于2023年2月例:方式1的應(yīng)用——方式1通常用于有條件(查詢)傳送或中斷傳送用8255為兩臺(tái)8088CPU設(shè)計(jì)一個(gè)并行數(shù)據(jù)傳送接口(單向傳送),甲機(jī)發(fā)送數(shù)據(jù)和乙機(jī)接收數(shù)據(jù)都采用方式1的查詢方式傳送。(1)甲機(jī)用A口方式1輸出數(shù)據(jù),一對(duì)輸出應(yīng)答信號(hào)是固定的:輸出緩沖器滿用,外設(shè)收到數(shù)據(jù)后的響應(yīng)信號(hào)用。(2)乙機(jī)用A口方式1輸入數(shù)據(jù),一對(duì)輸入應(yīng)答信號(hào)也是固定的:輸入緩沖器滿IBF用,數(shù)據(jù)選通信號(hào)用。第89頁,課件共172頁,創(chuàng)作于2023年2月(3)甲機(jī)的數(shù)據(jù)端口與乙機(jī)的數(shù)據(jù)端口相連。(4)甲機(jī)的、分別與乙機(jī)的、相連,構(gòu)成相互之間的應(yīng)答信號(hào)。(5)用查詢式傳送實(shí)現(xiàn)上述過程。設(shè)8255在系統(tǒng)中的端口地址為。第90頁,課件共172頁,創(chuàng)作于2023年2月第91頁,課件共172頁,創(chuàng)作于2023年2月當(dāng)甲機(jī)CPU將數(shù)據(jù)輸出到端口A時(shí),變低,表示甲機(jī)的數(shù)據(jù)端口A的輸出緩沖器滿,同時(shí)給乙機(jī)端口A一個(gè)選通信號(hào)(變低),數(shù)據(jù)從甲機(jī)輸出到乙機(jī)并在乙機(jī)的數(shù)據(jù)端口A鎖存。當(dāng)乙機(jī)CPU從端口A取回?cái)?shù)據(jù)后,變低,表示乙機(jī)的數(shù)據(jù)端口A的輸入緩沖器為空,給甲機(jī)一個(gè)回答信號(hào),變低,同時(shí)甲機(jī)的變高,甲機(jī)CPU查詢到變高后,會(huì)將下一個(gè)數(shù)據(jù)送到端口A。如此重復(fù)上述過程,便可完成全部數(shù)據(jù)的傳送。第92頁,課件共172頁,創(chuàng)作于2023年2月;甲機(jī)發(fā)送程序

MOVCX,0400H;發(fā)送數(shù)據(jù)塊長度1KBMOVDX,0A03H;8255控制口地址

MOVAL,10100000B;方式字(A口方式1輸出)OUTDX,ALMOVAL,00001111B;置PC7=1,輸出緩沖器空

OUTDX,ALL:MOVDX,0A02H;8255狀態(tài)口地址(端口C)INAL,DX;讀狀態(tài)口

ANDAL,80H;輸出緩沖器是否滿(PC7=0)JZL;緩沖器滿則等侍

MOVDX,0A00H;否則向A口發(fā)送數(shù)據(jù)

MOVAL,[BX]0UTDX,AL;內(nèi)存一個(gè)數(shù)據(jù)向乙機(jī)發(fā)送

INCBX;修改內(nèi)存單元地址

LOOPL;未發(fā)送完,繼續(xù)

HLT;傳送完畢,暫停第93頁,課件共172頁,創(chuàng)作于2023年2月;乙機(jī)接收程序

MOVCX,400H;接收數(shù)據(jù)塊長度1KBMOVDX,0A03H;8255控制口地址

MOVAL,10110000B;8255工作方式(A口方式1輸入)0UTDX,ALMOVAL,00001010B;置PC5=0,輸入緩沖器空

0UTDX,ALL:MOVDX,0A02H;8255狀態(tài)口地址(端口C)INAL,DX;讀狀態(tài)口

ANDAL,20H;查輸入緩沖器是否滿

JZL;8255未接收到數(shù)據(jù),等侍

MOVDX,0A00H;8255端口A地址

INAL,DX;讀A口

MOV[BX],AL;從甲機(jī)接收一個(gè)數(shù)據(jù)送內(nèi)存單元

INCBX;修改內(nèi)存單元地址

LOOPL;未接收完,繼續(xù)

HLT第94頁,課件共172頁,創(chuàng)作于2023年2月3.方式2:雙向選通式輸入/輸出方式第95頁,課件共172頁,創(chuàng)作于2023年2月方式2各狀態(tài)信號(hào)的時(shí)序關(guān)系第96頁,課件共172頁,創(chuàng)作于2023年2月方式2的應(yīng)用

用8255為兩臺(tái)8088CPU設(shè)計(jì)一個(gè)雙向并行數(shù)據(jù)傳送接口例:第97頁,課件共172頁,創(chuàng)作于2023年2月;主機(jī),A口方式2.主程序:MOVAL,0C0H;方式選擇控制字

OUT63H,ALMOVAL,09H;PC4=1允許輸入中斷

OUT63H,AL;C口置1/置0控制字

MOVAL,ODH;PC6=1允許輸出中斷

0UT63H,AL;C口置1/置0控制字

LEASI,ARY1;發(fā)送數(shù)據(jù)塊首址

MOVCX,400h;發(fā)送數(shù)據(jù)塊長度

LEADI,ARY2;接收數(shù)據(jù)塊首址

MOVBX,800H;接收數(shù)據(jù)塊長度

STI;CPU開中斷(IF=1)┊第98頁,課件共172頁,創(chuàng)作于2023年2月;中斷服務(wù)程序

INAL,62H;讀狀態(tài)口(端口C)的狀態(tài)

MOVAH,ALANDAL,20H;判斷輸入緩沖器的狀態(tài)IBFA(PC5)JZ0THER;IBFA=0,不是輸入中斷,轉(zhuǎn)移INA:INAL,60H;IBFA=1,是輸入中斷,從A口讀取數(shù)據(jù)

MOV[DI],AL;接收的數(shù)據(jù)送內(nèi)存單元

INCDIDECBXJNZNEXTJMPDONEOTHER:MOVAL,AHANDAL,80H;判斷輸出緩沖器的狀態(tài)(PC7)JZNEXT;PC7=0,不是輸出中斷,轉(zhuǎn)移OUTA:MOVAL,[SI];PC7=1,是輸出中斷

OUT60H,AL;向A口寫入數(shù)據(jù)

INCSIDECCXJNZNEXTJMPDONENEXT:STIDONE:IRET;中斷返回 第99頁,課件共172頁,創(chuàng)作于2023年2月;從機(jī),A口方式1輸出,B口方式1輸入;數(shù)據(jù)發(fā)送子程序(從A口發(fā)送)R:INAL,62H;讀狀態(tài)口的狀態(tài)

TESTAL,80H;從機(jī)輸出緩沖器是否空

JZR;從機(jī)輸出緩沖器滿則等待

MOVAL,[SI];PC7=1,從內(nèi)存取一數(shù)據(jù)

OUT60H,AL;向主機(jī)CPU發(fā)送數(shù)據(jù)┊

RET;返回主程序第100頁,課件共172頁,創(chuàng)作于2023年2月;數(shù)據(jù)接收子程序(從B口接收)H:INAL,62H;讀狀態(tài)口

ANDAL,02H;從機(jī)輸入緩沖器是否滿

JZH;從機(jī)輸入緩沖器空則等待

INAL,61H;從機(jī)從B口輸入數(shù)據(jù)

MOV[DI],AL;輸入數(shù)據(jù)存內(nèi)存單元┊

RET;返回主程序第101頁,課件共172頁,創(chuàng)作于2023年2月第三節(jié)串行通信接口及其應(yīng)用第102頁,課件共172頁,創(chuàng)作于2023年2月串行通信的基本方式異步串行通信一幀——起始位,數(shù)據(jù)位,奇偶校驗(yàn)位,停止位.發(fā)送器和接收器各有頻率一樣的局部時(shí)鐘.同步串行通信在數(shù)據(jù)塊的開始加同步字符,末尾加校驗(yàn)字符,數(shù)據(jù)按約定的速率連續(xù)發(fā)送和接收.數(shù)據(jù)流中字符之間、位與位之間都是同步的,收發(fā)雙方必須用同一時(shí)鐘來控制數(shù)據(jù)的發(fā)送和接收.當(dāng)前PC機(jī)串行接口基本上都采用異步通信方式.第103頁,課件共172頁,創(chuàng)作于2023年2月波特率和數(shù)據(jù)傳輸率波特率是衡量串行數(shù)據(jù)傳送速度快慢的重要指標(biāo),也稱數(shù)據(jù)傳輸率,它表示單位時(shí)間內(nèi)傳送的二進(jìn)制數(shù)據(jù)的位數(shù),以bps(位/秒)為單位.發(fā)送時(shí)鐘和接收時(shí)鐘的頻率與波特率之間的關(guān)系為:

收/發(fā)時(shí)鐘頻率=n×波特率其中,n是波特率因子,一般取1,16,32,64等。對(duì)于異步通信,常采用n=16或64,而對(duì)同步通信,必須取n=1。第104頁,課件共172頁,創(chuàng)作于2023年2月可編程串行接口Intel8251

⑴內(nèi)部結(jié)構(gòu)與引腳第105頁,課件共172頁,創(chuàng)作于2023年2月⑵8251與CPU及外設(shè)的連接第106頁,課件共172頁,創(chuàng)作于2023年2月⑶8251端口操作表CSC/DRDWRI/O操作00010101輸入(讀)CPU從8251讀數(shù)據(jù)CPU從8251讀狀態(tài)00100110輸出(寫)CPU向8251寫數(shù)據(jù)CPU向8251寫控制字0Х11高阻8251數(shù)據(jù)線高阻態(tài)1ХХХ高阻8251數(shù)據(jù)線高阻態(tài)第107頁,課件共172頁,創(chuàng)作于2023年2月

8251初始化編程

⑴通信方式選擇控制字第108頁,課件共172頁,創(chuàng)作于2023年2月⑵操作命令控制字第109頁,課件共172頁,創(chuàng)作于2023年2月⑶狀態(tài)控制字第110頁,課件共172頁,創(chuàng)作于2023年2月初始化流程第111頁,課件共172頁,創(chuàng)作于2023年2月用查詢方式從8251輸入數(shù)據(jù),要求:(1)異步方式工作,波特率因子為64,采用奇校驗(yàn),8位字符,1個(gè)停止位,字符長度為10.(2)允許接收和發(fā)送,使錯(cuò)誤位全部復(fù)位.(3)查詢8251狀態(tài)字,當(dāng)接收準(zhǔn)備就緒時(shí),則從825l輸入數(shù)據(jù),否則等待.8251應(yīng)用編程例:第112頁,課件共172頁,創(chuàng)作于2023年2月方式選擇字格式:01011111;規(guī)定了8251為異步方式,波特率因子64,8位字符,奇校驗(yàn),1個(gè)停止位.操作命令字格式:00110111;規(guī)定了8251是異步方式,無內(nèi)部復(fù)位,錯(cuò)誤標(biāo)志位清零,允許發(fā)送,允許接收,使請(qǐng)求發(fā)送信號(hào)有效,并使“數(shù)據(jù)終端準(zhǔn)備好”信號(hào)處于有效電平.CPU從825l輸入數(shù)據(jù)的程序段如下:第113頁,課件共172頁,創(chuàng)作于2023年2月

MOVDX,0FF02H;8251控制口地址

MOVAL,5FH;寫方式選擇控制字

OUTDX,ALMOVAL,37H;寫操作命令控制字

OUTDX,ALMOVCX,100;共接收100個(gè)字符WAT:INAL,DX;讀入狀態(tài)字

TESTAL,02H;檢查RxRDY=1?

JZWAT;接收未準(zhǔn)備就緒,等侍第114頁,課件共172頁,創(chuàng)作于2023年2月MOVDX,0FF00H;從8251讀取字符INAL,DXMOV[BX],AL;將字符送內(nèi)存INCBX;修改內(nèi)存指針MOVDX,0FF02H;讀狀態(tài)字,測試是否出錯(cuò)INAL,DXTESTAL,38H;測狀態(tài)字D5,D4,D3位JNZERROR;有錯(cuò),轉(zhuǎn)出錯(cuò)處理程序LOOPWAT;沒有錯(cuò)誤,接收下一個(gè)字符JMPEXT;接收到100個(gè)字符,則結(jié)束ERROR:┊;調(diào)用出錯(cuò)處理程序EXT:┊第115頁,課件共172頁,創(chuàng)作于2023年2月試用8251作為串行通信接口,完成8086CPU對(duì)CRT終端的控制.要求:(1)異步方式傳送,數(shù)據(jù)格式為1個(gè)停止位、8個(gè)數(shù)據(jù)位、偶校驗(yàn).(2)波特率因子為64.(3)CPU用查詢方式將緩沖區(qū)字符“HELLO”送CRT上顯示.例:第116頁,課件共172頁,創(chuàng)作于2023年2月DATASEGMENTDBUFDB‘HOWAREYOU’COUNTDB$—DBUFDATAENDSL1:MOVAL,0MOVDX,0FF02H;8251控制端口

MOVCX,3L2:OUTDX,ALLOOPL2MOVAL,40H;軟件復(fù)位

OUTDX,ALMAIN:MOVDX,0FF02H;送方式選擇字MOVAL,7FH;異步方式,1個(gè)停止位,8個(gè)數(shù)據(jù)位,偶校驗(yàn)OUTDX,AL第117頁,課件共172頁,創(chuàng)作于2023年2月MOVAL,00110011B;操作命令字,啟動(dòng)發(fā)送器OUTDX,ALLEABX,DBUF;取緩沖區(qū)首地址MOVCX,COUNT;緩沖區(qū)長度WAT:MOVDX,0FF02HINAL,DX;讀狀態(tài)字

TESTAL,80H;數(shù)據(jù)設(shè)備準(zhǔn)備就緒?JZWAT;未準(zhǔn)備就緒,等侍

MOVDX,0FF0OH;8251數(shù)據(jù)端口

MOVAL,ES:[BX];從緩沖區(qū)取數(shù)據(jù)

OUTDX,AL;往8251數(shù)據(jù)口輸出一個(gè)字符

INCBXLOOPWATHLT第118頁,課件共172頁,創(chuàng)作于2023年2月試用8251芯片為兩臺(tái)微機(jī)之間實(shí)現(xiàn)雙機(jī)串行通信的接口.要求:異步工作方式,波特率因子64.采用數(shù)據(jù)格式:8位數(shù)據(jù)位,無校驗(yàn)位,2位停止位.控制口地址為52H,數(shù)據(jù)口地址為5OH.兩機(jī)采用查詢方式交換數(shù)據(jù).近距離傳送直接用TxD、RxD和GND三條線互連例:第119頁,課件共172頁,創(chuàng)作于2023年2月圖4.23第120頁,課件共172頁,創(chuàng)作于2023年2月;甲機(jī)發(fā)送程序

DATASEGMENTSRCDB40H,41H,42H,43H,44H,45HCOUNTDBl00DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARMOVAX,DATA;數(shù)據(jù)段寄存器初值

MOVDS,AXMOVAL,00H;空操作,等待內(nèi)部操作的完成

OUT52H,ALNOPNOP第121頁,課件共172頁,創(chuàng)作于2023年2月

MOVAL,00H;空操作

OUT52H,ALNOPNOPMOVAL,00H0UT52H,ALNOPNOPMOVAL,40H;8251復(fù)位

OUT52H,ALNOPNOP第122頁,課件共172頁,創(chuàng)作于2023年2月MOVAL,11001111B;通信方式選擇控制字0UT52H,ALMOVAL,00110111B;操作命令字

;使RTS,ER,RxE,DTR,TxEN置位OUT52H,ALLEASI,SRC;發(fā)送數(shù)據(jù)緩沖區(qū)首址MOVCX,COUNT;發(fā)送數(shù)據(jù)塊長度BEGIN:INAL,52H;讀取8251狀態(tài)字TESTAL,01H;檢測D0位(TxRD是否為1)JZBEGIN;發(fā)送未準(zhǔn)備就緒,等待第123頁,課件共172頁,創(chuàng)作于2023年2月

MOVAL,[SI];發(fā)送準(zhǔn)備就緒

OUT50H,ALINCSI;修改地址指針

DECCXJNZBEGIN;未發(fā)送完,繼續(xù)發(fā)送

MOVAX,4C00HINT21HMAINENDPCODEENDSEND第124頁,課件共172頁,創(chuàng)作于2023年2月;乙機(jī)接收程序

DATASEGMENTDSTDBDUP(100)COUNTDBl00DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARMOVAX,DATA;數(shù)據(jù)段寄存器初值

MOVDS,AXMOVAL,00H;空操作,等待內(nèi)部操作的完成

OUT52H,ALNOPNOP第125頁,課件共172頁,創(chuàng)作于2023年2月

MOVAL,00H0UT52H,ALNOPNOPMOVAL,00H;空操作

0UT52H,ALNOPNOPMOVAl,40H;復(fù)位82510UT52H,ALNOPNOP第126頁,課件共172頁,創(chuàng)作于2023年2月

MOVAL,11001111B;方式選擇字

OUT52H,ALMOVAL,00010100B;操作命令字

OUT52H,AL;使ER和RxE置位

LEADI,DST;接收數(shù)據(jù)緩沖區(qū)首址

MOVCX,COUNT;接收數(shù)據(jù)塊長度BEGIN:INAL,52H;讀8251狀態(tài)端口

TESTAL,02H;檢查RxRDY位(D1)JZBEGIN;接收末準(zhǔn)備就緒,等侍第127頁,課件共172頁,創(chuàng)作于2023年2月

INAL,50H;否則,讀8251數(shù)據(jù)口

MOV[DI],AL;接收一字節(jié)數(shù)據(jù)送內(nèi)存

INCDI;修改內(nèi)存緩沖器指針

DECCXJNZBEGIN;接收未完,繼續(xù)

RETMAINENDPCODEENDSEND第128頁,課件共172頁,創(chuàng)作于2023年2月第四節(jié)

模擬量輸入輸出接口及其應(yīng)用運(yùn)放

控制對(duì)象傳感器執(zhí)行部件A/D轉(zhuǎn)換器I/O接口D/A轉(zhuǎn)換器I/O接口功率放大

微型計(jì)算機(jī)模擬量模擬量一個(gè)包含A/D和D/A轉(zhuǎn)換環(huán)節(jié)的實(shí)時(shí)控制系統(tǒng)第129頁,課件共172頁,創(chuàng)作于2023年2月一、D/A轉(zhuǎn)換器

D/A轉(zhuǎn)換器的基本原理

○○2R○4R○8R○16R○32R○64R○128R○256R○○○○○○○○Rf

○S1S2S3S4S5S6S7S8_

+V0VRef權(quán)電阻輸入網(wǎng)絡(luò)-+第130頁,課件共172頁,創(chuàng)作于2023年2月(1)所有開關(guān)Si都斷開時(shí),輸出V0=0;(2)所有開關(guān)Si都合上時(shí),輸出V0為最大,即第131頁,課件共172頁,創(chuàng)作于2023年2月

R-2R梯形電阻網(wǎng)絡(luò)Dn-1……

D2D1D0○∑V0○○2R○○○2R○○2R○○2RRRR2RVref

Vn-1……

V2V1V0○┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊┊Rf-+第132頁,課件共172頁,創(chuàng)作于2023年2月8位D/A轉(zhuǎn)換器的輸出電壓與數(shù)字量的關(guān)系:輸出電壓正比于輸入數(shù)字量D,而幅度大小可以選擇基準(zhǔn)電壓VRef和電阻Rf/R的比值來調(diào)整.由于這種電阻網(wǎng)絡(luò)只用兩種阻值的電阻,用集成工藝生產(chǎn)比較容易,精度也容易保證,因此得到廣泛應(yīng)用.第133頁,課件共172頁,創(chuàng)作于2023年2月

D/A轉(zhuǎn)換器原理框架圖數(shù)據(jù)緩沖器N位數(shù)字量輸入數(shù)據(jù)鎖存器電流開關(guān)電阻網(wǎng)絡(luò)

運(yùn)放電壓輸出第134頁,課件共172頁,創(chuàng)作于2023年2月

D/A轉(zhuǎn)換器主要技術(shù)指標(biāo)分辨率轉(zhuǎn)換精度線性度轉(zhuǎn)換速度數(shù)據(jù)輸入緩沖能力輸入數(shù)字量輸出模擬量第135頁,課件共172頁,創(chuàng)作于2023年2月

常用的D/A轉(zhuǎn)換芯片

1.DAC0832芯片主要性能電流輸出型。將8位數(shù)據(jù)轉(zhuǎn)換為對(duì)應(yīng)的模擬電流從IOUTl和IOUT2引腳輸出。具有雙重緩沖功能的數(shù)字量輸入,可以雙緩沖、單緩沖或直通方式數(shù)字量輸入??梢灾苯优c數(shù)據(jù)總線連接。輸入數(shù)據(jù)的邏輯電平滿足TTL電平規(guī)范。分辨率為8位,滿量程誤差為±LSB,轉(zhuǎn)換時(shí)間(建立時(shí)間)1μs,參考電壓±10V,單電源+5V~+15V,功耗20mW。第136頁,課件共172頁,創(chuàng)作于2023年2月DAC0832內(nèi)部結(jié)構(gòu)及引腳功能第137頁,課件共172頁,創(chuàng)作于2023年2月

DAC0832的3種工作方式輸入輸出直通方式兩個(gè)寄存器都開通.只要數(shù)字量送到數(shù)據(jù)輸入端,就立即進(jìn)入D/A轉(zhuǎn)換.用于一些不采用微機(jī)的控制系統(tǒng)中.如構(gòu)成波形發(fā)生器.單緩沖方式只有一個(gè)寄存器受到控制,另一個(gè)寄存器的控制信號(hào)預(yù)先設(shè)置成有效.只需要執(zhí)行一次寫操作就可以完成D/A轉(zhuǎn)換.第138頁,課件共172頁,創(chuàng)作于2023年2月雙緩沖方式兩個(gè)寄存器分別受到控制.數(shù)據(jù)要經(jīng)過兩級(jí)鎖存后再送入D/A轉(zhuǎn)換器.要執(zhí)行兩次寫操作才能完成一次D/A轉(zhuǎn)換.第139頁,課件共172頁,創(chuàng)作于2023年2月DAC0832與系統(tǒng)的連接DAC0832工作在雙緩沖方式第140頁,課件共172頁,創(chuàng)作于2023年2月一個(gè)數(shù)據(jù)經(jīng)兩次鎖存,通過D/A轉(zhuǎn)換器輸出模擬量的控制程序段如下:MOVDX,300H;輸入寄存器地址300HMOVAL,DATA;欲進(jìn)行D/A轉(zhuǎn)換的數(shù)據(jù)送ALOUTDX,AL;輸入數(shù)據(jù)送輸入寄存器INCDX;DAC寄存器地址301H送DX中OUT DX,AL;輸入數(shù)據(jù)送DAC寄存器,;并實(shí)現(xiàn)D/A轉(zhuǎn)換例:第141頁,課件共172頁,創(chuàng)作于2023年2月2.DAC1210芯片

主要性能指標(biāo)分辨率為12位;內(nèi)部具有雙寄存器結(jié)構(gòu),可以對(duì)輸入數(shù)據(jù)進(jìn)行雙重緩沖;與微處理器兼容,接口方便;電流建立時(shí)間為lμs,轉(zhuǎn)換速度快;工作電壓+5V~+15V,外接基準(zhǔn)電壓范圍±10V;線性度好,漂移量小,功耗約20mW。

第142頁,課件共172頁,創(chuàng)作于2023年2月DAC1210內(nèi)部結(jié)構(gòu)及外部引腳第143頁,課件共172頁,創(chuàng)作于2023年2月DAC1210與系統(tǒng)的連接第144頁,課件共172頁,創(chuàng)作于2023年2月

D/A轉(zhuǎn)換器的應(yīng)用DAC0832單緩沖方式第145頁,課件共172頁,創(chuàng)作于2023年2月

鋸齒波發(fā)生器。

MOVDX,0FFF0H;輸入寄存器地址送DXMOV AL,00H ;輸出數(shù)據(jù)初值L1:OUTDX,ALINCALCALLDELAY;數(shù)據(jù)加1要延時(shí)后輸出

JMPL1例:第146頁,課件共172頁,創(chuàng)作于2023年2月

三角波發(fā)生器

利用正、負(fù)向鋸齒波組合,可以產(chǎn)生三角波

MOVDX,0FFF0H;輸入寄存器地址送DXMOVAL,00H;輸出數(shù)據(jù)從0開始L1:OUTDX,ALINCAL;數(shù)據(jù)加1后輸出

JNZL1;循環(huán)形成斜坡

MOVAL,0FFH;置AL為最大L2:OUTDX,AL DECAL;數(shù)據(jù)減1后輸出

JNZL2;AL是否減到0?

JMPL1例:第147頁,課件共172頁,創(chuàng)作于2023年2月方波發(fā)生器

MOVDX,0FFF0HL1:MOVAl,00HOUTDX,AL;D/A輸出最小值

CALLDELAY;低電平延時(shí)一段時(shí)間

MOVAL,0FFHOUTDX,ALCALLDELAY;高電平延時(shí)一段時(shí)間

JMP L1例:第148頁,課件共172頁,創(chuàng)作于2023年2月二、A/D轉(zhuǎn)換器

A/D轉(zhuǎn)換的基本原理:采樣量化編碼f(t)t(a)被采樣信號(hào)(b)采樣開關(guān)(c)采樣信號(hào)f(t)tKF(KT)F(KT)第149頁,課件共172頁,創(chuàng)作于2023年2月多路模擬開關(guān)通道譯碼····

地址EN123┇N第150頁,課件共172頁,創(chuàng)作于2023年2月采樣保持電路狀態(tài)控制開關(guān)

+A1-+A2-輸入

○○第151頁,課件共172頁,創(chuàng)作于2023年2月逐次逼近式A/D轉(zhuǎn)換D/A比較器SAR時(shí)序及控制邏輯

Vx….......Vc

Vref數(shù)字量輸出…..EOCSTART

第152頁,課件共172頁,創(chuàng)作于2023年2月A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo):分辨率:常用轉(zhuǎn)換成的數(shù)字量的位數(shù)來表示分辨率,如8位、10位、12位或16位,位數(shù)越多,分辨率越高.轉(zhuǎn)換時(shí)間:與A/D轉(zhuǎn)換器的工作頻率有關(guān).轉(zhuǎn)換精度:模擬量和數(shù)字量之間的對(duì)應(yīng)關(guān)系.轉(zhuǎn)換速度:用轉(zhuǎn)換時(shí)間的倒數(shù)來表示.量程:能轉(zhuǎn)換的輸入模擬電壓的范圍.輸出邏輯電平:輸出邏輯電平是否與TTL電平兼容.第153頁,課件共172頁,創(chuàng)作

溫馨提示

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

評(píng)論

0/150

提交評(píng)論