常用數(shù)字接口電路課件_第1頁
常用數(shù)字接口電路課件_第2頁
常用數(shù)字接口電路課件_第3頁
常用數(shù)字接口電路課件_第4頁
常用數(shù)字接口電路課件_第5頁
已閱讀5頁,還剩229頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字1目的:掌握兩種可編程接口芯片的應(yīng)用了解串行通信的一般概念目的:掌握兩種可編程接口芯片的應(yīng)用27.1接口電路概述CPU與外設(shè)之間信息交換的通道信息緩沖、信息變換、電平轉(zhuǎn)換、聯(lián)絡(luò)控制分類:8086系統(tǒng)中最常用的數(shù)字接口電路芯片:8253、8255、8250功能傳送方式傳送的信息類型輸入接口并行接口數(shù)字接口輸出接口串行接口模擬接口7.1接口電路概述CPU與外設(shè)之間信息交換的通道功能傳37.2可編程定時(shí)/計(jì)數(shù)器8253掌握:引線功能及計(jì)數(shù)啟動(dòng)方法6種工作方式及其輸出波形應(yīng)用:芯片與系統(tǒng)的連接芯片的初始化編程7.2可編程定時(shí)/計(jì)數(shù)器8253掌握:4定時(shí)器和計(jì)數(shù)器它們都是由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成定時(shí)器由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過記錄高精度晶振脈沖信號的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔計(jì)數(shù)電路如果記錄外設(shè)提供的具有一定隨機(jī)性的脈沖信號時(shí),它主要反映脈沖的個(gè)數(shù)(進(jìn)而獲知外設(shè)的某種狀態(tài)),常又稱為計(jì)數(shù)器定時(shí)器和計(jì)數(shù)器它們都是由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成5定時(shí)/計(jì)數(shù)器的用途可以實(shí)現(xiàn)定時(shí)與計(jì)數(shù)兩個(gè)功能,可用于系統(tǒng)時(shí)鐘DRAM刷新定時(shí)定時(shí)采樣實(shí)時(shí)控制脈沖的計(jì)數(shù)。。。定時(shí)/計(jì)數(shù)器的用途可以實(shí)現(xiàn)定時(shí)與計(jì)數(shù)兩個(gè)功能,可用于6定時(shí)功能的實(shí)現(xiàn)方法軟件延時(shí)利用微處理器執(zhí)行一個(gè)延時(shí)程序段實(shí)現(xiàn)不用硬件,但占用CPU時(shí)間、定時(shí)精度不高,隨系統(tǒng)時(shí)鐘頻率改變不可編程的硬件定時(shí)采用分頻器、單穩(wěn)電路或簡易定時(shí)電路控制定時(shí)時(shí)間定時(shí)電路簡單、定時(shí)時(shí)間可以在一定范圍改變可編程的硬件定時(shí)軟件硬件相結(jié)合、用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活的定時(shí)電路具有多種工作方式、能夠輸出多種控制信號8253是一種硬件定時(shí)/計(jì)數(shù)器芯片定時(shí)功能的實(shí)現(xiàn)方法軟件延時(shí)8253是一種硬件定時(shí)/計(jì)數(shù)器芯片7一、基本功能及內(nèi)部結(jié)構(gòu)3個(gè)16位的定時(shí)/計(jì)數(shù)器(通道)每個(gè)計(jì)數(shù)器均可按二進(jìn)制或二—十進(jìn)制計(jì)數(shù)計(jì)數(shù)器速率可達(dá)2MHz可編程6種不同的工作方式所有輸入和輸出都與TTL電平兼容一、基本功能及內(nèi)部結(jié)構(gòu)8外部引線DBD7-D08253A1A0WRRDCS通道2通道1通道0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A0IOWIOR片選信號外部引線DBD7-D08253A1A0WRRDCS通道2通道9連接系統(tǒng)端的主要引線:D7~D0CSRDWRA1,A0用于選擇四個(gè)編址部件之一A1A0選擇00計(jì)數(shù)通道001計(jì)數(shù)通道110計(jì)數(shù)通道211控制寄存器連接系統(tǒng)端的主要引線:A1A010計(jì)數(shù)通道的主要引線(每通道均相同):CLKn

時(shí)鐘脈沖輸入,計(jì)數(shù)器的計(jì)時(shí)基準(zhǔn)。GATEn

門控信號輸入,控制計(jì)數(shù)器的啟停。OUTn

計(jì)數(shù)器輸出信號,不同工作方式下產(chǎn)生不同波形。(n=0~2)計(jì)數(shù)通道的主要引線(每通道均相同):118253的內(nèi)部結(jié)構(gòu)編址部件0編址部件2編址部件38253的內(nèi)部結(jié)構(gòu)編址部件0編址部件2編址部件312編程結(jié)構(gòu)—程序員的觀點(diǎn)計(jì)數(shù)器(3個(gè))——包括控制寄存器——

存放控制命令字(只寫)占用4個(gè)地址—3個(gè)計(jì)數(shù)器,1個(gè)控制寄存器16位初值寄存器16位計(jì)數(shù)寄存器(減法計(jì)數(shù)器)編程結(jié)構(gòu)—程序員的觀點(diǎn)計(jì)數(shù)器(3個(gè))——包括16位初值寄存器13定時(shí)/計(jì)數(shù)的工作過程1.設(shè)置8253的工作方式

2.設(shè)置計(jì)數(shù)初值到初值寄存器

3.第一個(gè)CLK信號使初值寄存器的內(nèi)容置入計(jì)數(shù)寄存器

4.以后每來一個(gè)CLK信號,計(jì)數(shù)寄存器減15.減到0時(shí),OUT端輸出一特殊波形的信號注:以上計(jì)數(shù)過程中還受到GATE信號的控制定時(shí)/計(jì)數(shù)的工作過程1.設(shè)置8253的工作方式14二、計(jì)數(shù)啟動(dòng)方式軟件啟動(dòng)過程硬件啟動(dòng)過程GATE端保持為高電平寫入計(jì)數(shù)初值后的第2個(gè)CLK脈沖的下降沿開始計(jì)數(shù)GATE端有一個(gè)上升沿對應(yīng)CLK脈沖的下降沿開始計(jì)數(shù)程序指令啟動(dòng)————軟件啟動(dòng)外部電路信號啟動(dòng)——硬件啟動(dòng)二、計(jì)數(shù)啟動(dòng)方式軟件啟動(dòng)過程GATE端保持為高電平GATE端15三、工作方式方式0——計(jì)數(shù)結(jié)束中斷方式1——可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器方式2——頻率發(fā)生器方式3——方波發(fā)生器方式4——軟件觸發(fā)選通方式5——硬件觸發(fā)選通三、工作方式方式0——計(jì)數(shù)結(jié)束中斷16方式0方式1軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變低電平,計(jì)數(shù)結(jié)束OUT輸出高電平。硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,計(jì)數(shù)開始OUT端變?yōu)榈碗娖剑?jì)數(shù)結(jié)束后又變高。(計(jì)數(shù)結(jié)束中斷)(單穩(wěn)態(tài)觸發(fā)器)方式0軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。(17方式2方式3軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,計(jì)數(shù)到最后一個(gè)CLK時(shí)OUT輸出負(fù)脈沖,并連續(xù)重復(fù)此過程。軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,然后OUT連續(xù)輸出對稱方波:(頻率發(fā)生器)(方波發(fā)生器)前N/2或(N+1)/2個(gè)CLK,OUT為高,后N/2或(N-1)/2個(gè)CLK,OUT為低。方式2軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)18方式4方式5軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后輸出端變高電平,計(jì)數(shù)結(jié)束輸出一個(gè)CLK寬度的負(fù)脈沖硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。OUT端波形與方式4相同(軟件觸發(fā)選通)(硬件觸發(fā)選通)方式4軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。(19方式0:計(jì)數(shù)結(jié)束中斷①②⑤④⑥GATEOUTCLK

031244方式0WR①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過程⑥計(jì)數(shù)結(jié)束方式0:計(jì)數(shù)結(jié)束中斷①②⑤④⑥GATEOUTCLK031220方式1:可編程單穩(wěn)脈沖①②⑤④⑥①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值③③硬件啟動(dòng)④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過程⑥計(jì)數(shù)結(jié)束GATEOUTCLK

031244方式1WR方式1:可編程單穩(wěn)脈沖①②⑤④⑥①②③③④⑤⑥GATEOUT21方式2:頻率發(fā)生器(分頻器)03124GATEOUTCLK

4方式2031240312403124WR方式2:頻率發(fā)生器(分頻器)03124GATEOUTCLK22方式3:方波發(fā)生器03124GATEOUTCLK

4方式3031240312403124WR方式3:方波發(fā)生器03124GATEOUTCLK4方式3023方式4:軟件觸發(fā)選通信號GATEOUTCLK031244方式42233310WR方式4:軟件觸發(fā)選通信號GATEOUTCLK031244方式24方式5:硬件觸發(fā)選通信號GATEOUTCLK031244方式522333110WR方式5:硬件觸發(fā)選通信號GATEOUTCLK031244方式25各種工作方式的輸出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2N/20/N0N01N01N01各種工作方式的輸出波形方式0方式1方式2方式3方式26各種工作方式特點(diǎn)方式0(計(jì)數(shù)結(jié)束中斷)計(jì)數(shù)過程中,GATE端應(yīng)保持高電平。每寫入一次初值計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。OUT端輸出是一個(gè)約(N+1)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程中可隨時(shí)修改初值重新開始計(jì)數(shù)。方式1(單穩(wěn)態(tài)觸發(fā)器)門控信號GATE端的跳變觸發(fā)計(jì)數(shù),可重復(fù)觸發(fā)。若下一次GATE上升沿提前到達(dá),則OUT端負(fù)脈沖拉寬為兩次計(jì)數(shù)過程之和。計(jì)數(shù)過程中寫入新初值不影響本次計(jì)數(shù)。各種工作方式特點(diǎn)方式0(計(jì)數(shù)結(jié)束中斷)27方式2(頻率發(fā)生器)GATE為計(jì)數(shù)的控制信號:GATE變低計(jì)數(shù)停止,再變高時(shí)的下一個(gè)CLK下降沿,從初值開始重新計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到1時(shí)),OUT端輸出一個(gè)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程自動(dòng)重復(fù)進(jìn)行。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。方式3(方波發(fā)生器)OUT輸出方波,前半周期為高,后半周期為低。計(jì)數(shù)過程中修改初值不影響本半輪計(jì)數(shù)過程。其余的與方式2類似。方式2(頻率發(fā)生器)28方式4(軟件觸發(fā)選通)計(jì)數(shù)過程中,GATE端應(yīng)保持高電平。每寫入一次初值,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到0時(shí)),OUT端輸出一個(gè)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。方式5(硬件觸發(fā)選通)寫入初值時(shí),GATE端應(yīng)保持低電平。GATE每出現(xiàn)一次正脈沖,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到0時(shí)),OUT端輸出一個(gè)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。方式4(軟件觸發(fā)選通)29四、控制字用于確定各計(jì)數(shù)器的工作方式。8253必須先初始化才能正常工作。每個(gè)計(jì)數(shù)器都必須初始化一次。CPU通過OUT指令把控制字寫入控制寄存器。四、控制字用于確定各計(jì)數(shù)器的工作方式。30控制字計(jì)數(shù)器讀寫格式工作方式數(shù)制D7D6D5D4D3D2D1D000計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211非法00計(jì)數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)000方式0001方式1010方式2011方式3100方式4101方式50二進(jìn)制1十進(jìn)制控制字寫入控制字I/O地址(A1A0=11)控制字計(jì)數(shù)器讀寫格式工作方式數(shù)制D7D6D5D4D3D2D131五、8253的應(yīng)用與系統(tǒng)的連接設(shè)置工作方式置計(jì)數(shù)初值編程五、8253的應(yīng)用與系統(tǒng)的連接編程32與系統(tǒng)的連接示意圖CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0譯碼器高位地址A15-A282538253占用4個(gè)接口地址:

計(jì)數(shù)器0

計(jì)數(shù)器1

計(jì)數(shù)器2

控制寄存器(決定8253的基地址)共三組與系統(tǒng)的連接示意圖CLKGATEOUTD0~D7WRRDA133初始化程序流程寫控制字寫計(jì)數(shù)值低8位寫計(jì)數(shù)值高8位*非必須寫入順序:可按計(jì)數(shù)器分別寫入控制字和初值。也可先寫所有計(jì)數(shù)器控制字,再寫入它們的初值初始化程序流程寫控制字寫計(jì)數(shù)值低8位寫計(jì)數(shù)值高8位*非必須寫34寫入計(jì)數(shù)值選擇二進(jìn)制時(shí)計(jì)數(shù)值范圍:0000H~FFFFH0000H是最大值,代表65536選擇十進(jìn)制(BCD碼)計(jì)數(shù)值范圍:0000~99990000代表最大值10000計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址寫入計(jì)數(shù)值選擇二進(jìn)制時(shí)計(jì)數(shù)值寫入計(jì)數(shù)器各自的I/O地址35讀取計(jì)數(shù)值對8位數(shù)據(jù)線,讀取16位計(jì)數(shù)值需分兩次計(jì)數(shù)在不斷進(jìn)行,應(yīng)該將當(dāng)前計(jì)數(shù)值先行鎖存,然后讀?。合蚩刂谱諭/O地址:給8253寫入鎖存命令從計(jì)數(shù)器I/O地址:讀取鎖存的計(jì)數(shù)值讀取計(jì)數(shù)值,要注意讀寫格式和計(jì)數(shù)數(shù)制讀取計(jì)數(shù)值對8位數(shù)據(jù)線,讀取16位計(jì)數(shù)值需分兩次讀取計(jì)數(shù)值,368253應(yīng)用舉例采用8253作定時(shí)/計(jì)數(shù)器,其接口地址為0120H~0123H。要求計(jì)數(shù)器0每10ms輸出一個(gè)CLK脈沖寬的負(fù)脈沖;用計(jì)數(shù)器1產(chǎn)生10KHz的連續(xù)方波信號,計(jì)數(shù)器2在定時(shí)5ms后產(chǎn)生輸出高電平。輸入8253的時(shí)鐘頻率為2MH。要求:畫線路連接圖,并編寫初始化程序。8253應(yīng)用舉例采用8253作定時(shí)/計(jì)數(shù)器,其接口地址為0137確定計(jì)數(shù)初值:CNT0:10ms/0.5us=20000CNT1:2MHz/10KHz=200CNT2:5ms/0.5us=10000確定控制字:CNT0:方式2,16位計(jì)數(shù)值00110100B(34H)

CNT1:方式3,低8位計(jì)數(shù)值01010110B(56H)CNT2:方式0,16位計(jì)數(shù)值10110000B(B0H)

計(jì)算計(jì)數(shù)初值:輸入時(shí)鐘頻率為2MHz,其周期為:1/2000000=0.5us(5微秒)確定計(jì)數(shù)初值:計(jì)算計(jì)數(shù)初值:38CLK0GATE0OUT1D0~D7WRRDA1A0CSDBIOWIORA1A0譯碼器8253CLK2GATE1GATE2+5VCLK12MHzOUT0OUT2?線路連接圖:CLK0GATE0OUT1D0~D7WRRDA1A0CSDB39初始化程序CNT0:MOVDX,0123HMOVAL,34HOUTDX,ALMOVDX,0120HMOVAX,20000OUTDX,ALMOVAL,AHOUTDX,ALCNT1:MOVDX,0123HMOVAL,56HOUTDX,ALMOVDX,0121HMOVAX,200OUTDX,AL初始化程序CNT0:CNT1:40CNT2:MOVDX,0123H

MOVAL,0B0HOUTDX,ALMOVDX,0122HMOVAX,10000OUTDX,ALMOVAL,AHOUTDX,ALCNT2:41*如何讀出當(dāng)前計(jì)數(shù)值第1種方法——在計(jì)數(shù)過程中讀計(jì)數(shù)值先鎖存當(dāng)前計(jì)數(shù)值,再用兩條輸入指令將16位計(jì)數(shù)值讀出。第2種方法——停止計(jì)數(shù)器再讀用GATE信號使計(jì)數(shù)器停止,再規(guī)定RL1和RL0的讀寫格式,然后讀出。*如何讀出當(dāng)前計(jì)數(shù)值第1種方法——在計(jì)數(shù)過程中讀計(jì)數(shù)值42*擴(kuò)展定時(shí)/計(jì)數(shù)范圍

當(dāng)定時(shí)長度不夠時(shí),可把2個(gè)或3個(gè)計(jì)數(shù)通道串聯(lián)起來使用,甚至可把多個(gè)8253串聯(lián)起來使用。例如:CLK頻率為1MHz,要求在OUT1端產(chǎn)生頻率1Hz的脈沖。這時(shí)可將計(jì)數(shù)器0、1串聯(lián),工作方式都均為方式3,計(jì)數(shù)初值均為1000。連接方法見下頁。*擴(kuò)展定時(shí)/計(jì)數(shù)范圍當(dāng)定時(shí)長度不夠時(shí),可把2個(gè)或3個(gè)43擴(kuò)展定時(shí)/計(jì)數(shù)范圍8253OUT1GATE1CLK1OUT0GATE0CLK0+5V+5V1MHz1KHz1Hz擴(kuò)展定時(shí)/計(jì)數(shù)范圍8253OUT1GATE1CLK1OUT0448253小結(jié)包含3個(gè)16位計(jì)數(shù)器通道4個(gè)編址部件:CNT0/1/2和控制寄存器每個(gè)計(jì)數(shù)器通道工作前必須初始化:控制字和計(jì)數(shù)初值6種工作方式每種工作方式:啟動(dòng)方式、輸出波形、是否可重復(fù)計(jì)數(shù)等各不相同8253小結(jié)包含3個(gè)16位計(jì)數(shù)器通道458253的I/O地址01000010010101001011001000010100110功能對計(jì)數(shù)器0設(shè)置計(jì)數(shù)初值CSRDA1A0WR對計(jì)數(shù)器1設(shè)置計(jì)數(shù)初值對計(jì)數(shù)器2設(shè)置計(jì)數(shù)初值設(shè)置控制字從計(jì)數(shù)器0讀出計(jì)數(shù)值從計(jì)數(shù)器1讀出計(jì)數(shù)值從計(jì)數(shù)器2讀出計(jì)數(shù)值8253的I/O地址010000467.3并行接口8255特點(diǎn):含3個(gè)獨(dú)立的8位并行輸入/輸出端口,各端口均具有數(shù)據(jù)的控制和鎖存能力可通過編程設(shè)置各端口的工作方式和數(shù)據(jù)傳送方向(入/出/雙向)。7.3并行接口8255特點(diǎn):47一、引線共40個(gè)引腳一、引線共40個(gè)引腳48連接系統(tǒng)端的主要引線:D0~D7CSRDWRA0,A1RESET——復(fù)位信號,接系統(tǒng)總線的RESETA1A0選擇00端口A01端口B10端口C11控制寄存器連接系統(tǒng)端的主要引線:A1A0選擇49連接外設(shè)端的引腳:PA0~PA7PB0~PB7PC0~PC7分別對應(yīng)A、B、C三個(gè)8位輸入/輸出端口

三個(gè)端口可通過編程分別指定為輸入或輸出口。其中,C口即可用作獨(dú)立的輸入/輸出口,也可用作A、B口的控制信號輸出或狀態(tài)信號輸入。連接外設(shè)端的引腳:分別對應(yīng)A、B、C三個(gè)8位輸入/輸出端口50二、結(jié)構(gòu)A組B組端口A端口C的高4位端口B端口C的低4位二、結(jié)構(gòu)A組端口A端口B518255與系統(tǒng)的連接示意圖D0~D7WRRDA1A0CSDBIOWIORA1A0譯碼器8255A口B口C口D0~D7外設(shè)A15~A2系統(tǒng)總線8255與系統(tǒng)的連接示意圖D0~D7WRRDA1A0CSDB52三、8255工作方式基本輸入/輸出方式(方式0)選通工作方式(方式1)雙向傳送方式(方式2)(僅A口)

某端口工作于哪一種方式,可通過軟件編程來指定。即向8255寫入方式控制字來決定其工作方式,見下頁。三、8255工作方式基本輸入/輸出方式(方式0)某端53方式控制字及位控字可以利用軟件編程確定8255的3個(gè)端口工作于何種方式下;8255的C端口可以按位操作。當(dāng)其工作于方式0下且作為輸出口時(shí),對于那些作為輸出的位需要設(shè)置初始狀態(tài)(1/0)。方式控制字及位控字可以利用軟件編程確定8255的3個(gè)端口工作54方式控制字與位控字格式控制字——確定3個(gè)端口的工作方式位控字——確定C口某一位的初始狀態(tài),或用于設(shè)置INTE位(方式1,2)。方式控制字與位控字格式控制字——確定3個(gè)端口的工作方式55工作方式08255相當(dāng)于三個(gè)獨(dú)立的8位簡單接口。各端口既可設(shè)置為輸入口,也可設(shè)置為輸出口,但不能同時(shí)實(shí)現(xiàn)輸入及輸出。C端口即可以是一個(gè)8位的簡單接口,也可以分為兩個(gè)獨(dú)立的4位端口。設(shè)置為輸出口時(shí)有鎖存能力,設(shè)置為輸入口時(shí)無鎖存能力。工作方式08255相當(dāng)于三個(gè)獨(dú)立的8位簡單接口。56方式0的應(yīng)用:用于連接簡單外設(shè)。適用于:無條件輸入輸出方式。查詢輸入輸出方式:把A、B口作為8位數(shù)據(jù)的輸入或輸出口,C口的高/低4位分別定義為A、B口的控制位和狀態(tài)位。方式0的應(yīng)用:用于連接簡單外設(shè)。57工作方式1利用一組選通控制信號控制A端口和B端口的數(shù)據(jù)輸入輸出。A、B口作輸入或輸出口,C口的部分位固定用作A、B口的選通控制信號。A口、B口在作為輸入和輸出時(shí)的選通信號不同。輸入輸出工作方式1利用一組選通控制信號控制A端口和B端口的數(shù)據(jù)輸入輸58C口的信號功能(方式1輸入)STB#——選通信號。它將外設(shè)數(shù)據(jù)送入8255的輸入鎖存器。IBF——輸入鎖存器滿。通知外設(shè)不能送下一個(gè)數(shù)據(jù)。此信號由STB的前沿產(chǎn)生。CPU用IN指令取走數(shù)據(jù)后,此信號被清除。INTR——中斷請求。STB#的后沿產(chǎn)生,用于中斷CPU,讓CPU讀走輸入鎖存器中的數(shù)據(jù)。INTE——中斷允許位,是否允許發(fā)出INTR請求。INTE=1和IBF為高電平時(shí),允許發(fā)出INTR請求。C口的信號功能(方式1輸入)STB#——選通信號。它將外設(shè)數(shù)59C口的信號功能(方式1輸出)OBF#——通知外設(shè)取走數(shù)據(jù)。ACK#——外設(shè)響應(yīng)信號,表示已從數(shù)據(jù)端口取走數(shù)據(jù)。此信號使OBF變高。INTR——ACK#上升沿產(chǎn)生,通知CPU輸出下一個(gè)數(shù)據(jù)(通常接到8259)。INTE——中斷允許位,INTE=1和OBF#為高電平時(shí),允許產(chǎn)生INTR信號。C口的信號功能(方式1輸出)OBF#——通知外設(shè)取走數(shù)據(jù)。60注意:INTE的狀態(tài)可利用C口的位控方式來設(shè)置:輸入:A口的INTE:寫入PC4B口的INTE:寫入PC2輸出:A口的INTE:寫入PC6B口的INTE:寫入PC2例:方式1輸入允許A口中斷,則應(yīng)按如下方法設(shè)置INTEA。

MOVDX,控制寄存器地址

MOVAL,0xxx1001B;1=允許中斷,0=禁止中斷

OUTDX,AL注意:INTE的狀態(tài)可利用C口的位控方式來設(shè)置:61方式1的應(yīng)用:主要用于中斷控制方式下的輸入輸出。C口除部分位用作選通信號外,其余位可工作在方式0下,作為輸入或輸出線。特別是A、B均為方式1時(shí)僅使用C口的6條線,余下二條線可作為單獨(dú)的輸入輸出線,用程序指定其數(shù)據(jù)傳送方向。方式1的應(yīng)用:主要用于中斷控制方式下的輸入輸出。62工作方式2雙向方式——既是輸入口,又是輸出口。利用C口的5條線提供傳輸聯(lián)絡(luò)信號。類似于A口方式1下輸入和輸出的組合。只有A口可工作在方式2下。INTE1為PC.bit6,INTE2為PC.bit4。工作方式2雙向方式——既是輸入口,又是輸出口。63方式2的應(yīng)用:可用于中斷控制輸入輸出方式。當(dāng)A口工作于方式2時(shí),B口可工作于方式1(此時(shí)C口的剩余位都用作B口選通控制線);B口也可工作于方式0(此時(shí)C口的剩余位也只能用作方式0下的輸入輸出線)。方式2的應(yīng)用:可用于中斷控制輸入輸出方式。64四、8255芯片的應(yīng)用芯片與系統(tǒng)的連接芯片的初始化相應(yīng)的控制程序四、8255芯片的應(yīng)用芯片與系統(tǒng)的連接658255應(yīng)用舉例1利用8255實(shí)現(xiàn)開關(guān)檢測和繼電器控制電路;當(dāng)開關(guān)閉合時(shí),使繼電器通電動(dòng)作;開關(guān)斷開時(shí),繼電器不動(dòng)作;系統(tǒng)每隔100ms檢測一次開關(guān)狀態(tài),實(shí)現(xiàn)相應(yīng)的繼電器控制;初始狀態(tài)下繼電器不動(dòng)作。8255應(yīng)用舉例1利用8255實(shí)現(xiàn)開關(guān)檢測和繼電器控制電路66CSA0A1WRRDDBPA0PA7???PB0PB7???+5V???+12VK繼電器384H~387H388H~38BHCSA0A1OUT1CLK12MHzCLK0OUT08259APICWRRDDB82538255中斷請求信號INTRQ1R1R2D1CSA0A1WRRDDBPA0PA7???PB0PB7???67題目分析:使8255的A端口和B端口均工作于方式0;8253計(jì)數(shù)器0和計(jì)數(shù)器1均工作于方式3,利用OUT0的輸出作為計(jì)數(shù)器1的時(shí)鐘信號,其輸出頻率為2KHz,OUT1輸出頻率為10Hz(周期100ms);OUT1作為中斷信號,每100ms產(chǎn)生一次中斷;CPU響應(yīng)中斷后檢測開關(guān)狀態(tài),控制繼電器的動(dòng)作;8253兩個(gè)計(jì)數(shù)器的計(jì)數(shù)初值分別為:

CNT0:2MHz/2KHz=1000(16位)

CNT1:100ms/0.5ms=200(8位)題目分析:使8255的A端口和B端口均工作于方式0;688255的初始化MOVDX,387HMOVAL,82H;100

00010OUTDX,ALXORAL,AL;A口輸出全0MOVDX,384HOUTDX,AL8255的初始化MOVDX,387H698253的初始化設(shè)置工作方式:MOVDX,38BHMOVAL,36HOUTDX,ALMOVAL,56HOUTDX,AL36H=00

11

0110

CNT016位方式3置計(jì)數(shù)初值:MOVDX,388HMOVAX,1000OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,389HMOVAL,200OUTDX,AL8253的初始化設(shè)置工作方式:置計(jì)數(shù)初值:708255的控制程序(中斷處理)(中斷初始化程序略)8253中斷服務(wù)程序中的8255控制程序段如下:

……MOVDX,385H;PB口地址

INAL,DX;讀PB0狀態(tài)

NOTAL;變反

MOVDX,384H;輸出到繼電器

OUTDX,AL

……8255的控制程序(中斷處理)(中斷初始化程序略)717.4可編程串行通信接口了解:串行通信的一般概念工作方式、同步方式、數(shù)據(jù)格式、物理標(biāo)準(zhǔn)串行通信的接口標(biāo)準(zhǔn)EIARS-232C可編程串行異步通信接口8250(UART)連接、編程、應(yīng)用UART:UniversalAsynchronousReceiverTransmitter7.4可編程串行通信接口了解:727.4.1串行通信基本概念串行通信:每個(gè)時(shí)間單位僅傳送一位信息;每個(gè)字符(字節(jié))的各位依次傳送;字符之間的間隔不定。優(yōu)點(diǎn):傳輸線少,成本低,傳輸距離遠(yuǎn)7.4.1串行通信基本概念串行通信:731.串行通信工作方式單工通信—只能由一方發(fā)送,例:廣播半雙工通信—某一時(shí)刻只能由一方發(fā)送,例:對講機(jī)全雙工通信—雙方可同時(shí)傳輸,例:電話同步通信—雙方對每一位的收發(fā)時(shí)序完全一致,統(tǒng)一時(shí)鐘異步通信—收發(fā)雙方時(shí)鐘不統(tǒng)一1.串行通信工作方式單工通信—只能由一方發(fā)送,例:廣播同步通74單工/雙工操作發(fā)送器接收器發(fā)送器/接收器發(fā)送器/接收器發(fā)送器/接收器發(fā)送器/接收器單工方式:半雙工方式:全雙工方式:A站B站單工/雙工操作發(fā)送器接收器發(fā)送器/接收器發(fā)送器/接收器發(fā)送器75電話網(wǎng)絡(luò)-模擬信號,計(jì)算機(jī)-數(shù)字信號。遠(yuǎn)距離通信時(shí)需要通過普通電話網(wǎng)絡(luò)傳輸數(shù)字信號:頻帶寬電話網(wǎng)絡(luò):頻帶窄要使數(shù)字信號在電話網(wǎng)絡(luò)上傳輸,需要進(jìn)行信號變換—把數(shù)字信號承載到模擬信號上傳輸,這個(gè)模擬信號稱為載波信號。調(diào)制—把數(shù)字信號承載到載波信號上解調(diào)—從載波信號中恢復(fù)出數(shù)字信號調(diào)制解調(diào)器:實(shí)現(xiàn)調(diào)制與解調(diào)的設(shè)備2.調(diào)制與解調(diào)電話網(wǎng)絡(luò)-模擬信號,計(jì)算機(jī)-數(shù)字信號。2.調(diào)制與解調(diào)76三種調(diào)制方式根據(jù)載波Acos(t+)的三個(gè)參數(shù):幅度、頻率、相位,產(chǎn)生常用的三種調(diào)制技術(shù):幅移鍵控法Amplitude-ShiftKeying(ASK)頻移鍵控法Frequency-ShiftKeying(FSK)相移鍵控法Phase-ShiftKeying(PSK)ASK(又稱為調(diào)幅)

用載波信號的不同幅度代表‘1’和‘0’FSK(又稱為調(diào)頻)

用載波信號的不同頻率代表‘1’和‘0’PSK(又稱為調(diào)相)

用載波信號的相位變化代表‘1’和‘0’(有變化為’1’,無變化為’0’)三種調(diào)制方式根據(jù)載波Acos(t+)的三個(gè)參數(shù):幅7700110100010調(diào)幅調(diào)頻調(diào)相數(shù)字信號數(shù)字?jǐn)?shù)據(jù)三種調(diào)制方式的調(diào)制波形圖00110100010調(diào)幅調(diào)頻調(diào)相數(shù)字信號數(shù)字?jǐn)?shù)據(jù)三種調(diào)制方78串行通信主要用于遠(yuǎn)距離數(shù)據(jù)傳輸。問題:干擾、衰減,信號畸變解決方法:差錯(cuò)控制技術(shù)——檢測、糾正常用的數(shù)據(jù)校驗(yàn)方法:奇偶校驗(yàn):以字符為單位進(jìn)行校驗(yàn)發(fā)送方使發(fā)送的每個(gè)字節(jié)中’1’的個(gè)數(shù)為奇數(shù)或偶數(shù);接收方檢查收到的每個(gè)字節(jié)中’1’的個(gè)數(shù)是否符合雙方的事先約定。奇偶校驗(yàn)可以檢查出一個(gè)字節(jié)中發(fā)生的單個(gè)錯(cuò)誤。奇偶校驗(yàn)不能自動(dòng)糾錯(cuò),發(fā)現(xiàn)錯(cuò)誤后需“重傳”。3.數(shù)據(jù)校驗(yàn)串行通信主要用于遠(yuǎn)距離數(shù)據(jù)傳輸。3.數(shù)據(jù)校驗(yàn)79循環(huán)冗余校驗(yàn)CRC(循環(huán)冗余碼/多項(xiàng)式編碼)以數(shù)據(jù)塊(幀,Frame)為單位進(jìn)行校驗(yàn)編碼思想:將數(shù)據(jù)塊構(gòu)成的位串看成是系數(shù)為0或1的多項(xiàng)式如110001,可表示成多項(xiàng)式x5+x4+1數(shù)據(jù)塊構(gòu)成的多項(xiàng)式除以另一個(gè)多項(xiàng)式G(x),得到的余數(shù)多項(xiàng)式R(x)就稱為CRC碼(或稱為校驗(yàn)和),而G(x)則稱為生成多項(xiàng)式。CRC校驗(yàn)的檢錯(cuò)方式:收發(fā)雙方約定一個(gè)生成多項(xiàng)式G(x),發(fā)送方在幀的末尾加上校驗(yàn)和,使帶有校驗(yàn)和的幀的多項(xiàng)式能被G(x)整除;接收方收到后,用G(x)去除它,若余數(shù)為0,則傳輸正確,否則傳輸有錯(cuò)。數(shù)據(jù)校驗(yàn)循環(huán)冗余校驗(yàn)CRC(循環(huán)冗余碼/多項(xiàng)式編碼)數(shù)據(jù)校驗(yàn)80CRC校驗(yàn)和計(jì)算方法若G(x)為r階,原幀為m位,其多項(xiàng)式為M(x),則在原幀后面添加r個(gè)0,幀成為m+r位,相應(yīng)多項(xiàng)式2rM(x)按模2除法用2rM(x)除以G(x):商Q(x),余R(x)即2rM(x)=G(x)Q(x)+R(x)按模2加法把2rM(x)與余數(shù)R(x)相加,結(jié)果就是要傳送的帶校驗(yàn)和的幀的多項(xiàng)式T(x)T(x)=2rM(x)+R(x)實(shí)際上,T(x)=2rM(x)+R(x)=[G(x)Q(x)+R(x)]+R(x)=G(x)Q(x)(模2運(yùn)算)所以,若接收的T(x)正確,則它肯定能被G(x)除盡。數(shù)據(jù)校驗(yàn)CRC校驗(yàn)和計(jì)算方法數(shù)據(jù)校驗(yàn)81數(shù)據(jù)校驗(yàn)CRC校驗(yàn)碼的檢錯(cuò)能力:可檢出所有奇數(shù)個(gè)錯(cuò)可檢出所有單位/雙位錯(cuò)可檢出所有≤G(x)長度的突發(fā)錯(cuò)常用的生成多項(xiàng)式:CRC12=x12+x11+x3+x2+1CRC16=x16+x15+x2+1CRC32=x32+x26+x23+x22+x16+x11+x10+x8+x7+x5+x4+x2+x+1數(shù)據(jù)校驗(yàn)CRC校驗(yàn)碼的檢錯(cuò)能力:824.同步通信與異步通信所有串行通信都需要一個(gè)時(shí)鐘信號來作為數(shù)據(jù)的定時(shí)參考。發(fā)送器和接收器用時(shí)鐘來決定何時(shí)發(fā)送和讀取每一個(gè)數(shù)據(jù)位。根據(jù)傳輸時(shí)采用的是統(tǒng)一時(shí)鐘還是本地局部時(shí)鐘,分為同步傳輸和異步傳輸兩種。同步傳輸用一個(gè)時(shí)鐘脈沖確定一個(gè)數(shù)據(jù)位,異步傳輸用多個(gè)時(shí)鐘脈沖確定一個(gè)數(shù)據(jù)位(如16個(gè))同步傳輸以數(shù)據(jù)塊(當(dāng)作“位流”看待)為單位傳輸,異步傳輸以字符為單位傳輸,但都稱為幀(Frame)

4.同步通信與異步通信所有串行通信都需要一個(gè)時(shí)鐘信號來作為數(shù)83同步通信的時(shí)鐘定時(shí)方法數(shù)據(jù)(62H)01100010同步傳輸先發(fā)送高位(MSB)發(fā)送方在時(shí)鐘信號的下降沿發(fā)送字節(jié)接收方在時(shí)鐘信號的上升沿接收字節(jié)時(shí)鐘(發(fā)送時(shí)鐘與接收時(shí)鐘完全同步)LSBMSB同步通信的時(shí)鐘定時(shí)方法數(shù)據(jù)(62H)01100010同步傳輸84異步通信的時(shí)鐘定時(shí)方法數(shù)據(jù)(62H)000011停止位異步傳輸先發(fā)送低位(LSB)發(fā)送方利用發(fā)送時(shí)鐘來決定發(fā)送每個(gè)位的時(shí)刻接收方檢測起始位的下降沿,并用它來同步接收時(shí)鐘,然后利用接收時(shí)鐘從每一位的中間接收該位1起始位LSBMSB0奇偶校驗(yàn)位00/111接收/發(fā)送時(shí)鐘異步通信的時(shí)鐘定時(shí)方法數(shù)據(jù)000011停止位異步傳輸先發(fā)送低85異步通信時(shí)數(shù)據(jù)位的檢測起始位波特率因子K=16TdTc111000000000連續(xù)8個(gè)0第9個(gè)仍為0以后每隔16個(gè)Tc檢測一次數(shù)據(jù)的其他位發(fā)送/接收時(shí)鐘周期:Tc,數(shù)據(jù)位間隔:Td

Tc=Td/K,其中K稱為波特率因子(16,32,64)異步通信時(shí)數(shù)據(jù)位的檢測起始位波特率因子K=16TdTc11186異步通信的一般格式每個(gè)字符由起始位、數(shù)據(jù)位、校驗(yàn)位、停止位構(gòu)成。起始位和停止位用于字符的同步。起始位最低位最高位5~8個(gè)數(shù)據(jù)位可選的奇偶校驗(yàn)位1,11/2或2個(gè)停止位異步通信的一般格式每個(gè)字符由起始位、數(shù)據(jù)位、校驗(yàn)位、停止位構(gòu)877.4.2串行通信的接口標(biāo)準(zhǔn)機(jī)械特性:連接器的尺寸、引腳分布信號特性:信號電平、通信速率功能特性:引腳功能、控制時(shí)序最常見的串行通信標(biāo)準(zhǔn)是RS-232C。7.4.2串行通信的接口標(biāo)準(zhǔn)機(jī)械特性:連接器的尺寸、引腳分88RS-232C標(biāo)準(zhǔn)外形為25針或9針的D型連接器通信速率:波特率Baud(符號數(shù)/s)

100、300、600、1200、2400、48009600、19.2K、33.6K、56K

信號電平:邏輯“1”:-3V~-15V邏輯“0”:+3V~+15VTTL電平與RS232電平轉(zhuǎn)換:TTL→RS232:MC1488RS232→TTL:MC1489RS-232C標(biāo)準(zhǔn)外形為25針或9針的D型連接器89主要引腳的功能主要引腳的功能90信號時(shí)序(接收)設(shè)備握手DTR:PC→M(保持,表示PC已可以工作)DSR:PC←M(保持,表示M已可以工作)監(jiān)視載波信號DCD:PC←M←載波(表示數(shù)據(jù)鏈已建立)接收數(shù)據(jù)RD:PC←M←數(shù)據(jù)調(diào)制信號結(jié)束通信DCD消失、PC撤除DTR、Modem撤除DSR信號時(shí)序(接收)設(shè)備握手91信號時(shí)序(發(fā)送)設(shè)備握手DTR:PC→M(保持)DSR:PC←M(保持)請求發(fā)送RTS:PC→M(保持),M→載波,在對方產(chǎn)生DCDCTS:PC←M(保持)發(fā)送數(shù)據(jù)TD:PC→M→數(shù)據(jù)調(diào)制信號結(jié)束通信PC撤除RTS/DTRModem撤除CTS/DSR,停止發(fā)送載波信號時(shí)序(發(fā)送)設(shè)備握手92RS-232C接口連接方式RS-232C接口連接方式93一種簡化的連接方式(NullModem)適用于雙機(jī)直連TDRDRTSCTSDCDGNDDTRDSRRITDRDRTSCTSDCDGNDDTRDSRRI一種簡化的連接方式(NullModem)TDTD947.4.3可編程串行通信接口8250主要內(nèi)容:

1)8250的引腳及功能

2)與系統(tǒng)的連接

3)內(nèi)部結(jié)構(gòu)與內(nèi)部寄存器

4)8250的編程7.4.3可編程串行通信接口8250主要內(nèi)容: 951.8250的引腳及功能面向系統(tǒng)的引腳:D0~D7

雙向數(shù)據(jù)線。與系統(tǒng)數(shù)據(jù)總線DB相連接,用以傳送數(shù)據(jù)、控制信息和狀態(tài)信息。CS0,CS1,CS2

片選信號,當(dāng)它們同時(shí)有效時(shí),該8250芯片被選中。CSOUT

片選輸出信號。當(dāng)8250的CS0、CS1和CS2同時(shí)有效時(shí),CSOUT為高電平。MR

主復(fù)位信號。1.8250的引腳及功能面向系統(tǒng)的引腳:96A0~A28250內(nèi)部寄存器的選擇信號。不同的編碼對應(yīng)于不同的寄存器。ADS

地址選通信號。有效時(shí)可將CS0,CS1,CS2及A0-A2鎖存于8250內(nèi)部。不需要鎖存時(shí),ADS可直接接地。DISTR

讀選通信號。通常與系統(tǒng)總線的IOR信號相連接。DOSTR

寫選通信號。通常與系統(tǒng)總線的IOW信號相連接。INTR

中斷請求信號。當(dāng)允許8250中斷時(shí),接收出錯(cuò)、接收數(shù)據(jù)寄存器滿、發(fā)送數(shù)據(jù)寄存器空以及MODEM的狀態(tài)均能夠產(chǎn)生有效的INTR信號。A0~A297面向通信設(shè)備的引腳信號SIN,SOUT:串行輸入/輸出端CTS,RTS,DTR,DSR:(同RS232標(biāo)準(zhǔn)中的信號)RLSD:即RS232C標(biāo)準(zhǔn)中的DCD信號RI:(同RS232標(biāo)準(zhǔn)中的信號)OUT1,OUT2:可由用戶編程確定其狀態(tài)的輸出端BAUDOUT:波特率信號輸出(頻率=fCLK/分頻值)XTAL1,XTAL2:接外部晶振,作為基準(zhǔn)時(shí)鐘fCLKRCLK:接收時(shí)鐘輸入(可直接與BAUDOUT相連)面向通信設(shè)備的引腳信號984.34.3998250與8088系統(tǒng)的連接系統(tǒng)總線D7-D0DISTRDOSTRINTRMRA0A1A2ADSDISTRDOSTRCS2CS1CS0+5VCSD7-D0#IOR#IOWINTRRESETA0A1A2電平轉(zhuǎn)換/驅(qū)動(dòng)器14881489到RS232接口XTAL1XTAL2BAUDOUTRCLK

SOUTSINRTSDTRDSRDCDCTSRI8250XTAL8250與8088系統(tǒng)的連接系D7-D0+5VCSD7-D01002.8250的內(nèi)部寄存器共10個(gè)可編程(尋址)的寄存器線路控制寄存器(LCR)——BASE+3線路狀態(tài)寄存器(LSR)——BASE+5發(fā)送保持寄存器(THR)——BASE+0(寫)接收緩沖寄存器(RBR)——BASE+0(讀)除數(shù)鎖存器低8位(DLL)——BASE+0(DL=1)除數(shù)鎖存器高8位(DLH)——BASE+1(DL=1)中斷允許寄存器(IER)——BASE+1中斷識別寄存器(IIR)——BASE+2Modem控制寄存器(MCR)——BASE+4Modem狀態(tài)寄存器(MSR)——BASE+62.8250的內(nèi)部寄存器共10個(gè)可編程(尋址)的寄存器101除數(shù)鎖存器(DLL,DLH)—BASE+0,1用來保存分頻系數(shù),以獲得所需的波特率。波特率可以簡單地看成每秒傳送多少二進(jìn)制位PC機(jī)中基準(zhǔn)時(shí)鐘頻率fCLK=1.8432MHz,波特率因子K=16。所以,對于指定的波特率B

除數(shù)值=1843200/(B×16)=115200/B例如,通信速率為9600波特時(shí),除數(shù)值=12。注意:寫除數(shù)前,必須把LCR的最高位(DL位)置1除數(shù)鎖存器(DLL,DLH)—BASE+0,1102線路控制寄存器(LCR)—BASE+3決定傳輸時(shí)的數(shù)據(jù)幀格式(通信雙方必須一致)D7D6D5D4D3D2D1D0DL位:0=正常操作1=寫除數(shù)寄存器0=正常操作1=SOUT強(qiáng)制為1

(Break符號)xx0=無校驗(yàn)001=奇校驗(yàn)011=偶校驗(yàn)101=恒為1111=恒為00=1位停止位1=2位停止位10=7位數(shù)據(jù)位11=8位數(shù)據(jù)位線路控制寄存器(LCR)—BASE+3D7D6103線路狀態(tài)寄存器(LSR)—BASE+5反映傳輸時(shí)的通信線狀態(tài)0D6D5D4D3D2D1D0發(fā)送移位寄存器空發(fā)送保持寄存器空檢測到Break接收緩沖寄存器滿溢出錯(cuò)奇偶錯(cuò)格式錯(cuò)(停止位個(gè)數(shù)不符)線路狀態(tài)寄存器(LSR)—BASE+50D6104發(fā)送保持寄存器(THR)——BASE+0要發(fā)送的數(shù)據(jù)寫入此寄存器。當(dāng)發(fā)送移位寄存器TSR空時(shí),THR中的內(nèi)容移入TSR被發(fā)送出去。只有THR空時(shí),CPU才能寫入下一個(gè)要發(fā)送的數(shù)據(jù)接收緩沖寄存器(RBR)——BASE+0RSR收到一個(gè)完整的數(shù)據(jù)后,就將其送入RBR中。CPU可從RBR中讀取收到的數(shù)據(jù)。RBR只能緩沖一個(gè)數(shù)據(jù),當(dāng)CPU未能及時(shí)取走上一個(gè)數(shù)據(jù),下一個(gè)數(shù)據(jù)又送入RBR時(shí),會(huì)產(chǎn)生溢出錯(cuò)發(fā)送保持寄存器(THR)——BASE+0105中斷允許寄存器(IER)——BASE+1決定哪類中斷可以產(chǎn)生(也可禁止所有中斷產(chǎn)生)0000D3D2D1D01=允許RBR滿中斷1=允許THR空中斷1=允許線路狀態(tài)中斷(溢出錯(cuò)、奇偶錯(cuò)、格式錯(cuò)、Break)1=允許Modem狀態(tài)中斷中斷允許寄存器(IER)——BASE+100106中斷識別寄存器(IIR)——BASE+2用于識別產(chǎn)生中斷的原因00000D2D1D00=無中斷1=有中斷00=Modem狀態(tài)中斷(優(yōu)先級最低)01=THR空中斷10=RBR滿中斷11=線路狀態(tài)中斷中斷識別寄存器(IIR)——BASE+200107Modem控制寄存器(MCR)—BASE+4產(chǎn)生RTS、DTR信號產(chǎn)生OUT1、OUT2信號設(shè)置循環(huán)自檢狀態(tài)000D4D3D2D1D0DTRRTSOUT1OUT2LOOPModem控制寄存器(MCR)—BASE+40108Modem狀態(tài)寄存器(MSR)—BASE+6反映RS232接口的狀態(tài)△CTS△DSR△RI△RLSDCTSD7D6D5D4D3D2D1D0RLSDRIDSR反映4個(gè)引腳的當(dāng)前狀態(tài)(反相值)反映了自上次讀MSR后這4個(gè)引腳是否發(fā)生了變化(1=發(fā)生了變化)Modem狀態(tài)寄存器(MSR)—BASE+6△CTS△DSR1098250發(fā)送數(shù)據(jù)的工作過程1)CPU(數(shù)據(jù))→8250的THR;2)TSR移空時(shí),THR→TSR,LSR中“數(shù)據(jù)發(fā)送保持寄存器空”狀態(tài)位置位;3)TSR根據(jù)LCR中規(guī)定的格式從低到高逐位發(fā)送數(shù)據(jù);4)LSR中“數(shù)據(jù)發(fā)送保持寄存器空”狀態(tài)位可用來產(chǎn)生中斷,也可查詢該狀態(tài)位,以實(shí)現(xiàn)數(shù)據(jù)的連續(xù)發(fā)送。TSRTHR串行數(shù)據(jù)輸出并行數(shù)據(jù)LSRINTLCR數(shù)據(jù)狀態(tài)1)2)3)2)4)4)8250發(fā)送數(shù)據(jù)的工作過程1)CPU(數(shù)據(jù))→8250的TH1101)SIN引腳上的串行數(shù)據(jù)逐位進(jìn)入RSR;2)RSR根據(jù)LSR中規(guī)定的數(shù)據(jù)位數(shù)確定是否收到了一個(gè)完整的數(shù)據(jù),收到后將數(shù)據(jù)→RBR;3)RBR收到RSR的數(shù)據(jù)后,將LSR寄存器中“接收緩沖寄存器滿”的狀態(tài)位置位;4)LSR中“接收緩沖寄存器滿”狀態(tài)位可用來產(chǎn)生中斷,也可查詢該狀態(tài)位,以實(shí)現(xiàn)數(shù)據(jù)的連續(xù)接收。RSRRBR串行數(shù)據(jù)輸入并行數(shù)據(jù)LSRINTLCR數(shù)據(jù)狀態(tài)1)2)3)4)1)SIN引腳上的串行數(shù)據(jù)逐位進(jìn)入RSR;RSRRBR串行數(shù)1113.8250的初始化流程初始化程序程序流程圖見右圖使LCR的最高位=1寫除數(shù)寄存器寫LCR寄存器,同時(shí)使LCR的最高位=0寫MCR寄存器寫IER寄存器3.8250的初始化流程初始化程序程序使LCR的最高位=112用BIOS功能初始化8250PC機(jī)有兩個(gè)串行接口:COM1(基地址3F8H),COM2(基地址2F8H)BIOS通過中斷14H提供串行通信功能功能0:初始化串行接口功能1:發(fā)送一個(gè)字符功能2:接收一個(gè)字符功能3:讀串行接口狀態(tài)INT14H僅提供了查詢方式的通信服務(wù)要使用中斷方式進(jìn)行發(fā)送和接收必須自行編程用BIOS功能初始化8250PC機(jī)有兩個(gè)串行接口:113用BIOS功能初始化8250功能0(初始化)的入口參數(shù)為:AH=0AL=初始化參數(shù)DX=串口編號(0=COM1,1=COM2)初始化參數(shù)定義如下:D7D6D5D4D3D2D1D0波特率100=1200101=2400110=4800111=9600奇偶校驗(yàn)x0=無校驗(yàn)01=奇校驗(yàn)11=偶校驗(yàn)數(shù)據(jù)位數(shù)00=5位01=6位10=7位11=8位停止位0=1位1=2位MOVAH,0MOVAL,初始化參數(shù)MOVDX,0INT14H用BIOS功能初始化8250功能0(初始化)的入口參數(shù)為:D1148250的數(shù)據(jù)發(fā)送程序(查詢)LEASI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVDX,BASE+5;LSR地址

INAL,DXTESTAL,00100000B;THR空?JZL1LODSBMOVDX,BASE+0;THR地址

OUTDX,ALLOOPL1

THR空?輸出一個(gè)字節(jié)輸出完?NYYN8250的數(shù)據(jù)發(fā)送程序(查詢)LEA1158250的數(shù)據(jù)接收程序(查詢)LEADI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVDX,BASE+5;LSR地址

INAL,DXTESTAL,00011110B;有錯(cuò)誤?JNZERRORTESTAL,00000001B;收到數(shù)據(jù)?JZL1MOVDX,BASE+0;RBR地址

INAL,DXSTOSBLOOPL1

有錯(cuò)誤?讀入數(shù)據(jù)收到數(shù)據(jù)?NYYN錯(cuò)誤處理接收完?NY8250的數(shù)據(jù)接收程序(查詢)LEADI,116用BIOS功能發(fā)送/接收數(shù)據(jù)通過COM1發(fā)送數(shù)據(jù):

LEASI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVAH,1;功能1MOVDX,0;COM1LODSB;數(shù)據(jù)在AL中

INT14H;發(fā)送

LOOPL1

通過COM1接收數(shù)據(jù):

LEADI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVAH,3;功能3MOVDX,0;COM1INT14H;讀接口狀態(tài)

TESTAH,00011110B;有錯(cuò)誤?JNZERRORTESTAH,00000001B;有數(shù)據(jù)?JZL1MOVAH,2;功能2MOVDX,0;COM1INT14H;接收數(shù)據(jù)

STOSB;保存數(shù)據(jù)

LOOPL1用BIOS功能發(fā)送/接收數(shù)據(jù)通過COM1發(fā)送數(shù)據(jù):通過CO117 謝謝大家! 謝謝大家!118常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字接口電路PPT課件常用數(shù)字119目的:掌握兩種可編程接口芯片的應(yīng)用了解串行通信的一般概念目的:掌握兩種可編程接口芯片的應(yīng)用1207.1接口電路概述CPU與外設(shè)之間信息交換的通道信息緩沖、信息變換、電平轉(zhuǎn)換、聯(lián)絡(luò)控制分類:8086系統(tǒng)中最常用的數(shù)字接口電路芯片:8253、8255、8250功能傳送方式傳送的信息類型輸入接口并行接口數(shù)字接口輸出接口串行接口模擬接口7.1接口電路概述CPU與外設(shè)之間信息交換的通道功能傳1217.2可編程定時(shí)/計(jì)數(shù)器8253掌握:引線功能及計(jì)數(shù)啟動(dòng)方法6種工作方式及其輸出波形應(yīng)用:芯片與系統(tǒng)的連接芯片的初始化編程7.2可編程定時(shí)/計(jì)數(shù)器8253掌握:122定時(shí)器和計(jì)數(shù)器它們都是由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成定時(shí)器由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成,通過記錄高精度晶振脈沖信號的個(gè)數(shù),輸出準(zhǔn)確的時(shí)間間隔計(jì)數(shù)電路如果記錄外設(shè)提供的具有一定隨機(jī)性的脈沖信號時(shí),它主要反映脈沖的個(gè)數(shù)(進(jìn)而獲知外設(shè)的某種狀態(tài)),常又稱為計(jì)數(shù)器定時(shí)器和計(jì)數(shù)器它們都是由數(shù)字電路中的計(jì)數(shù)電路構(gòu)成123定時(shí)/計(jì)數(shù)器的用途可以實(shí)現(xiàn)定時(shí)與計(jì)數(shù)兩個(gè)功能,可用于系統(tǒng)時(shí)鐘DRAM刷新定時(shí)定時(shí)采樣實(shí)時(shí)控制脈沖的計(jì)數(shù)。。。定時(shí)/計(jì)數(shù)器的用途可以實(shí)現(xiàn)定時(shí)與計(jì)數(shù)兩個(gè)功能,可用于124定時(shí)功能的實(shí)現(xiàn)方法軟件延時(shí)利用微處理器執(zhí)行一個(gè)延時(shí)程序段實(shí)現(xiàn)不用硬件,但占用CPU時(shí)間、定時(shí)精度不高,隨系統(tǒng)時(shí)鐘頻率改變不可編程的硬件定時(shí)采用分頻器、單穩(wěn)電路或簡易定時(shí)電路控制定時(shí)時(shí)間定時(shí)電路簡單、定時(shí)時(shí)間可以在一定范圍改變可編程的硬件定時(shí)軟件硬件相結(jié)合、用可編程定時(shí)器芯片構(gòu)成一個(gè)方便靈活的定時(shí)電路具有多種工作方式、能夠輸出多種控制信號8253是一種硬件定時(shí)/計(jì)數(shù)器芯片定時(shí)功能的實(shí)現(xiàn)方法軟件延時(shí)8253是一種硬件定時(shí)/計(jì)數(shù)器芯片125一、基本功能及內(nèi)部結(jié)構(gòu)3個(gè)16位的定時(shí)/計(jì)數(shù)器(通道)每個(gè)計(jì)數(shù)器均可按二進(jìn)制或二—十進(jìn)制計(jì)數(shù)計(jì)數(shù)器速率可達(dá)2MHz可編程6種不同的工作方式所有輸入和輸出都與TTL電平兼容一、基本功能及內(nèi)部結(jié)構(gòu)126外部引線DBD7-D08253A1A0WRRDCS通道2通道1通道0CLK0GATE0OUT0CLK1GATE1OUT1CLK1GATE1OUT1A1A0IOWIOR片選信號外部引線DBD7-D08253A1A0WRRDCS通道2通道127連接系統(tǒng)端的主要引線:D7~D0CSRDWRA1,A0用于選擇四個(gè)編址部件之一A1A0選擇00計(jì)數(shù)通道001計(jì)數(shù)通道110計(jì)數(shù)通道211控制寄存器連接系統(tǒng)端的主要引線:A1A0128計(jì)數(shù)通道的主要引線(每通道均相同):CLKn

時(shí)鐘脈沖輸入,計(jì)數(shù)器的計(jì)時(shí)基準(zhǔn)。GATEn

門控信號輸入,控制計(jì)數(shù)器的啟停。OUTn

計(jì)數(shù)器輸出信號,不同工作方式下產(chǎn)生不同波形。(n=0~2)計(jì)數(shù)通道的主要引線(每通道均相同):1298253的內(nèi)部結(jié)構(gòu)編址部件0編址部件2編址部件38253的內(nèi)部結(jié)構(gòu)編址部件0編址部件2編址部件3130編程結(jié)構(gòu)—程序員的觀點(diǎn)計(jì)數(shù)器(3個(gè))——包括控制寄存器——

存放控制命令字(只寫)占用4個(gè)地址—3個(gè)計(jì)數(shù)器,1個(gè)控制寄存器16位初值寄存器16位計(jì)數(shù)寄存器(減法計(jì)數(shù)器)編程結(jié)構(gòu)—程序員的觀點(diǎn)計(jì)數(shù)器(3個(gè))——包括16位初值寄存器131定時(shí)/計(jì)數(shù)的工作過程1.設(shè)置8253的工作方式

2.設(shè)置計(jì)數(shù)初值到初值寄存器

3.第一個(gè)CLK信號使初值寄存器的內(nèi)容置入計(jì)數(shù)寄存器

4.以后每來一個(gè)CLK信號,計(jì)數(shù)寄存器減15.減到0時(shí),OUT端輸出一特殊波形的信號注:以上計(jì)數(shù)過程中還受到GATE信號的控制定時(shí)/計(jì)數(shù)的工作過程1.設(shè)置8253的工作方式132二、計(jì)數(shù)啟動(dòng)方式軟件啟動(dòng)過程硬件啟動(dòng)過程GATE端保持為高電平寫入計(jì)數(shù)初值后的第2個(gè)CLK脈沖的下降沿開始計(jì)數(shù)GATE端有一個(gè)上升沿對應(yīng)CLK脈沖的下降沿開始計(jì)數(shù)程序指令啟動(dòng)————軟件啟動(dòng)外部電路信號啟動(dòng)——硬件啟動(dòng)二、計(jì)數(shù)啟動(dòng)方式軟件啟動(dòng)過程GATE端保持為高電平GATE端133三、工作方式方式0——計(jì)數(shù)結(jié)束中斷方式1——可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器方式2——頻率發(fā)生器方式3——方波發(fā)生器方式4——軟件觸發(fā)選通方式5——硬件觸發(fā)選通三、工作方式方式0——計(jì)數(shù)結(jié)束中斷134方式0方式1軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變低電平,計(jì)數(shù)結(jié)束OUT輸出高電平。硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,計(jì)數(shù)開始OUT端變?yōu)榈碗娖剑?jì)數(shù)結(jié)束后又變高。(計(jì)數(shù)結(jié)束中斷)(單穩(wěn)態(tài)觸發(fā)器)方式0軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。(135方式2方式3軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,計(jì)數(shù)到最后一個(gè)CLK時(shí)OUT輸出負(fù)脈沖,并連續(xù)重復(fù)此過程。軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后OUT端變高電平,然后OUT連續(xù)輸出對稱方波:(頻率發(fā)生器)(方波發(fā)生器)前N/2或(N+1)/2個(gè)CLK,OUT為高,后N/2或(N-1)/2個(gè)CLK,OUT為低。方式2軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)。軟、硬件啟動(dòng),自動(dòng)重復(fù)計(jì)數(shù)136方式4方式5軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。裝入初值后輸出端變高電平,計(jì)數(shù)結(jié)束輸出一個(gè)CLK寬度的負(fù)脈沖硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。OUT端波形與方式4相同(軟件觸發(fā)選通)(硬件觸發(fā)選通)方式4軟件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。硬件啟動(dòng),不自動(dòng)重復(fù)計(jì)數(shù)。(137方式0:計(jì)數(shù)結(jié)束中斷①②⑤④⑥GATEOUTCLK

031244方式0WR①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過程⑥計(jì)數(shù)結(jié)束方式0:計(jì)數(shù)結(jié)束中斷①②⑤④⑥GATEOUTCLK0312138方式1:可編程單穩(wěn)脈沖①②⑤④⑥①設(shè)定工作方式②設(shè)定計(jì)數(shù)初值③③硬件啟動(dòng)④計(jì)數(shù)值送入計(jì)數(shù)器⑤計(jì)數(shù)過程⑥計(jì)數(shù)結(jié)束GATEOUTCLK

031244方式1WR方式1:可編程單穩(wěn)脈沖①②⑤④⑥①②③③④⑤⑥GATEOUT139方式2:頻率發(fā)生器(分頻器)03124GATEOUTCLK

4方式2031240312403124WR方式2:頻率發(fā)生器(分頻器)03124GATEOUTCLK140方式3:方波發(fā)生器03124GATEOUTCLK

4方式3031240312403124WR方式3:方波發(fā)生器03124GATEOUTCLK4方式30141方式4:軟件觸發(fā)選通信號GATEOUTCLK031244方式42233310WR方式4:軟件觸發(fā)選通信號GATEOUTCLK031244方式142方式5:硬件觸發(fā)選通信號GATEOUTCLK031244方式522333110WR方式5:硬件觸發(fā)選通信號GATEOUTCLK031244方式143各種工作方式的輸出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2N/20/N0N01N01N01各種工作方式的輸出波形方式0方式1方式2方式3方式144各種工作方式特點(diǎn)方式0(計(jì)數(shù)結(jié)束中斷)計(jì)數(shù)過程中,GATE端應(yīng)保持高電平。每寫入一次初值計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。OUT端輸出是一個(gè)約(N+1)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程中可隨時(shí)修改初值重新開始計(jì)數(shù)。方式1(單穩(wěn)態(tài)觸發(fā)器)門控信號GATE端的跳變觸發(fā)計(jì)數(shù),可重復(fù)觸發(fā)。若下一次GATE上升沿提前到達(dá),則OUT端負(fù)脈沖拉寬為兩次計(jì)數(shù)過程之和。計(jì)數(shù)過程中寫入新初值不影響本次計(jì)數(shù)。各種工作方式特點(diǎn)方式0(計(jì)數(shù)結(jié)束中斷)145方式2(頻率發(fā)生器)GATE為計(jì)數(shù)的控制信號:GATE變低計(jì)數(shù)停止,再變高時(shí)的下一個(gè)CLK下降沿,從初值開始重新計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到1時(shí)),OUT端輸出一個(gè)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程自動(dòng)重復(fù)進(jìn)行。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。方式3(方波發(fā)生器)OUT輸出方波,前半周期為高,后半周期為低。計(jì)數(shù)過程中修改初值不影響本半輪計(jì)數(shù)過程。其余的與方式2類似。方式2(頻率發(fā)生器)146方式4(軟件觸發(fā)選通)計(jì)數(shù)過程中,GATE端應(yīng)保持高電平。每寫入一次初值,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到0時(shí)),OUT端輸出一個(gè)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。方式5(硬件觸發(fā)選通)寫入初值時(shí),GATE端應(yīng)保持低電平。GATE每出現(xiàn)一次正脈沖,計(jì)數(shù)一個(gè)周期,然后停止計(jì)數(shù)。每個(gè)計(jì)數(shù)周期結(jié)束時(shí)(減到0時(shí)),OUT端輸出一個(gè)TCLK寬度的負(fù)脈沖。計(jì)數(shù)過程中修改初值不影響本輪計(jì)數(shù)過程。方式4(軟件觸發(fā)選通)147四、控制字用于確定各計(jì)數(shù)器的工作方式。8253必須先初始化才能正常工作。每個(gè)計(jì)數(shù)器都必須初始化一次。CPU通過OUT指令把控制字寫入控制寄存器。四、控制字用于確定各計(jì)數(shù)器的工作方式。148控制字計(jì)數(shù)器讀寫格式工作方式數(shù)制D7D6D5D4D3D2D1D000計(jì)數(shù)器001計(jì)數(shù)器110計(jì)數(shù)器211非法00計(jì)數(shù)器鎖存命令01只讀寫低字節(jié)10只讀寫高字節(jié)11先讀寫低字節(jié)后讀寫高字節(jié)000方式0001方式1010方式2011方式3100方式4101方式50二進(jìn)制1十進(jìn)制控制字寫入控制字I/O地址(A1A0=11)控制字計(jì)數(shù)器讀寫格式工作方式數(shù)制D7D6D5D4D3D2D1149五、8253

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論