單片機原理與應(yīng)用-基于AT89S51+Proteus仿真 第2版 課件 第7-9章 單片機的串行接口、單片機的系統(tǒng)擴展、單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)_第1頁
單片機原理與應(yīng)用-基于AT89S51+Proteus仿真 第2版 課件 第7-9章 單片機的串行接口、單片機的系統(tǒng)擴展、單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)_第2頁
單片機原理與應(yīng)用-基于AT89S51+Proteus仿真 第2版 課件 第7-9章 單片機的串行接口、單片機的系統(tǒng)擴展、單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)_第3頁
單片機原理與應(yīng)用-基于AT89S51+Proteus仿真 第2版 課件 第7-9章 單片機的串行接口、單片機的系統(tǒng)擴展、單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)_第4頁
單片機原理與應(yīng)用-基于AT89S51+Proteus仿真 第2版 課件 第7-9章 單片機的串行接口、單片機的系統(tǒng)擴展、單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)_第5頁
已閱讀5頁,還剩148頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機原理與應(yīng)用第7章單片機的串行接口內(nèi)容指南串行通信是單片機與外界進行信息交換的一種基本方式。AT89S51/52單片機有一個通用異步接收/發(fā)送器(UART)工作方式的全雙工串行通信接口。本章介紹串行通信的基本概念,串行口的結(jié)構(gòu)與控制寄存器,串行口的工作方式以及串行口的編程應(yīng)用。學(xué)習(xí)目標(biāo)掌握串行通信的基本概念。了解串行口的各種工作方式及其差異。了解串行口的基本應(yīng)用。第7章單片機的串行接口7.1串行通信概述7.2串行口結(jié)構(gòu)與控制寄存器7.3串行口的工作方式7.4多機通信第7章單片機的串行接口 計算機與外界的信息交換稱為通信,通信的基本方式可分為并行通信和串行通信兩種。

并行通信:特點:傳送控制簡單、速度快,但傳輸線較多,成本高。數(shù)據(jù)的各位同時在多根數(shù)據(jù)線上發(fā)送或接收。第7章單片機的串行接口

串行通信特點:傳送控制復(fù)雜、速度慢,傳輸線少,成本低數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。信息傳輸在一個方向上只占用一跟通信線,它既作為數(shù)據(jù)線,又作為聯(lián)絡(luò)線。

第7章單片機的串行接口 串行通信按同步方式和編碼格式不同又可分為異步通信和同步通信兩種方式。特點:收、發(fā)設(shè)備時鐘獨立,以字符(幀)為單位傳輸。異步通信

第7章單片機的串行接口

異步通信幀格式起始位(1位,0):其作用是向接收端表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。數(shù)據(jù)位(8位):5~8位均可,由低位到高位逐位傳送。奇偶校驗位(1位,可無校驗位):用來檢驗數(shù)據(jù)在傳送過程中是否出錯停止位(1位,1):表示一幀信息的結(jié)束,也為發(fā)送下一幀信息作好準備。

第7章單片機的串行接口同步通信(SynchronousCommunication)同步字符數(shù)據(jù)字符1數(shù)據(jù)字符2…數(shù)據(jù)字符n-1數(shù)據(jù)字符n校驗字符(校驗字符)同步通信是一種連續(xù)傳送數(shù)據(jù)的通信方式,一次通信傳送多個字符數(shù)據(jù),稱為一幀信息。數(shù)據(jù)傳輸速率較高,通??蛇_56000bps或更高。其缺點是要求發(fā)送時鐘和接收時鐘保持嚴格同步。同步通信的數(shù)據(jù)幀格式:特點:收、發(fā)設(shè)備統(tǒng)一時鐘,以數(shù)據(jù)塊為單位傳輸。例如器件之間的SPI第7章單片機的串行接口串行通信的傳輸方向單工

半雙工

全雙工51單片機有1個全雙工串行口

雙方通信只能單向傳送數(shù)據(jù)接收和發(fā)送不能同時進行兩端數(shù)據(jù)允許同時收發(fā)第7章單片機的串行接口傳輸速率與傳輸距離傳輸速率傳輸距離與傳輸速率的關(guān)系傳輸距離隨波特率的增加而減小。

波特率(BaudRate)是串行通信中一個重要概念,它是指傳輸數(shù)據(jù)的速率,

亦稱比特率。波特率的定義是每秒傳輸二進制數(shù)碼的位數(shù)。如:波特率為1200bps是指每秒鐘能傳輸1200位二進制數(shù)碼。波特率的倒數(shù)即為每位數(shù)據(jù)傳輸時間。例如:波特率為1200bps,每位的傳輸時間為:1)(833.01200msdT==第7章單片機的串行接口第7章單片機的串行接口7.1串行通信概述7.2串行口結(jié)構(gòu)與控制寄存器

7.3串行的工作方式7.4多機通信第7章單片機的串行接口AT89S51內(nèi)部有1個可編程的全雙工串行通信接口,可作為通用異步接收/發(fā)送器(UART),也可作為同步移位寄存器。通過引腳RXD(P3.0)和TXD(P3.1)與外界進行通信。結(jié)構(gòu)組成:發(fā)送SBUF+接收SBUF+發(fā)送控制器+接收控制器+定時器T1+RXD+TXD……第7章單片機的串行接口2個數(shù)據(jù)緩沖器SBUF在物理上是相互獨立的,一個用于發(fā)送數(shù)據(jù)(SBUF發(fā))、一個用于接收數(shù)據(jù)(SBUF收)。2個SBUF共用一個地址(99H),通過讀寫指令區(qū)別是對哪個SUBF的操作。第7章單片機的串行接口發(fā)送控制器的作用是在門電路和定時器T1的配合下,將SBUF發(fā)中的并行數(shù)據(jù)轉(zhuǎn)為串行數(shù)據(jù),并自動添加起始位、可編程位、停止位。這一過程結(jié)束后自動使發(fā)送中斷請求標(biāo)志位TI置1,用以通知CPU已將SBUF發(fā)中的數(shù)據(jù)輸出到了TXD引腳。第7章單片機的串行接口接收控制器的作用是在輸入移位寄存器和定時器T1的配合下,使來自RXD引腳的串行數(shù)據(jù)轉(zhuǎn)為并行數(shù)據(jù),并自動過濾掉起始位、可編程位、停止位。這一過程結(jié)束后自動使接收中斷請求標(biāo)志位RI置1,用以通知CPU接收的數(shù)據(jù)已存入SBUF收。第7章單片機的串行接口定時器T1的作用是產(chǎn)生用以收發(fā)過程中節(jié)拍控制的通信時鐘。發(fā)送數(shù)據(jù)時,通信時鐘的下降沿對應(yīng)于數(shù)據(jù)移位輸出;接收數(shù)據(jù)時,通信時鐘的上升沿對應(yīng)于數(shù)據(jù)位采樣。通信時鐘頻率(波特率)由定時器的控制寄存器管理。第7章單片機的串行接口RXD(P3.0)和TXD(P3.1)用于串行信號或時鐘信號的傳入或傳出。3412第二輸入功能V

串行數(shù)據(jù)緩沖器,SBUF在物理上有兩個SBUF:一個用于發(fā)送,另一個用于接收。在邏輯上只有一個SBUF(99H)??筛鶕?jù)用法區(qū)分功能:ucharcounter;待發(fā)送存放變量…SBUF=counter;

完成一次數(shù)據(jù)發(fā)送…counter=SBUF;

完成一次數(shù)據(jù)接收CPU第7章單片機的串行接口串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字節(jié)地址:98HSM0SM1方式說明波特率000移位寄存器fosc/1201110位UART(8位數(shù)據(jù))可變10211位UART(9位數(shù)據(jù))fosc/64或fosc/3211311位UART(9位數(shù)據(jù))可變■SM0SM1:串行口工作方式選擇位。第7章單片機的串行接口串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字節(jié)地址:98H

SM2:多機通信控制位。多機通信僅在方式2和方式3下進行。當(dāng)SM2

=

1,則只有接收到的第9位數(shù)據(jù)(RB8)為“1”時,才使RI置“1”,并將接收到的前8位數(shù)據(jù)送入SBUF;當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“0”時,則將接收到的前8位數(shù)據(jù)丟棄;當(dāng)SM2

=

0時,則不論第9位數(shù)據(jù)是“1”還是“0”,都將前8位數(shù)據(jù)送入SBUF中,并使RI置“1”。

REN:串行接受允許控制位。該位由軟件置位或復(fù)位。當(dāng)REN=1,允許接收;當(dāng)REN=0,禁止接收。第7章單片機的串行接口串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字節(jié)地址:98H

■TB8:方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。該位由軟件置位或復(fù)位。在多機通信中,以TB8位的狀態(tài)表示主機發(fā)送的是地址還是數(shù)據(jù):TB8=1表示地址,TB8=0表示數(shù)據(jù)。TB8還可用作奇偶校驗位。

RB8:方式2和方式3時,RB8存放接收到的第9位數(shù)據(jù)。RB8也可用作奇偶校驗位。在方式1中,若SM2=0,則RB8是接收到的停止位。在方式0中,該位未用。第7章單片機的串行接口串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字節(jié)地址:98H

■TI:發(fā)送中斷標(biāo)志位。TI=1,表示已結(jié)束一幀數(shù)據(jù)發(fā)送,可由軟件查詢TI位標(biāo)志,也可以向CPU申請中斷。

RI:接收中斷標(biāo)志位。RI=1,表示一幀數(shù)據(jù)接收結(jié)束??捎绍浖樵僐I位標(biāo)志,也可以向CPU申請中斷。注意:TI、RI在任何工作方式下都必須由軟件清0。第7章單片機的串行接口電源控制寄存器PCONSMOD:波特率倍增位。在串行口方式1、方式2、方式3時,若SMOD=1,則串行口波特率增加一倍。若SMOD=0,波特率不加倍。系統(tǒng)復(fù)位時,SMOD=0。

76543210PCONSMODGF1GF0PDIDL字節(jié)地址:97H第7章單片機的串行接口第7章單片機的串行接口

51單片機串行通信以定時器T1為波特率信號發(fā)生器,其溢出脈沖經(jīng)過分頻單元后送到收、發(fā)控制器中。分頻單元的內(nèi)部結(jié)構(gòu)如下右圖所示。T1溢出脈沖可有兩種分頻路徑,即16分頻或32分頻,SMOD是決定分頻路徑的邏輯開關(guān)。分頻后的通信時鐘波特率為:第7章單片機的串行接口

式中t為T1的定時時間合并上面兩式可得

可見,波特率的大小取決于T1的定時參數(shù)和SMOD參數(shù)。第7章單片機的串行接口7.1串行通信概述7.2串行口結(jié)構(gòu)與控制寄存器7.3串行口的工作方式7.4多機通信第7章單片機的串行接口SM0SM1方式功能說明0011010101238位同步移位寄存器方式10位數(shù)據(jù)異步通訊方式11位數(shù)據(jù)異步通訊方式11位數(shù)據(jù)異步通訊方式SM0和SM1:串行工作方式定義位。通過SM0和SM1不同的取值,可定義4種串行通信工作方式。方式0——8位同步移位寄存器方式第7章單片機的串行接口RXD:輸入或輸出引腳TXD:同步移位脈沖輸出接收和發(fā)送都是8位波特率固定為:fosc/12此時SM2、RB8、TB8均應(yīng)設(shè)置為0數(shù)據(jù)傳輸波特率固定為fosc/12由RXD引腳輸入或輸出數(shù)據(jù)TXD引腳輸出fosc/12時鐘信號第7章單片機的串行接口以8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。

數(shù)據(jù)輸出:

TI=0時,執(zhí)行“SBUF=sentdata”啟動發(fā)送,8位數(shù)據(jù)由低位到高位從RXD引腳送出,TXD發(fā)送同步脈沖。發(fā)送完后,由硬件置位TI。方式0輸出的應(yīng)用-擴展并行輸出口第7章單片機的串行接口數(shù)據(jù)輸入:

RI=0,REN=1時啟動接收,數(shù)據(jù)從RXD輸入,TXD輸出同步脈沖。8位數(shù)據(jù)接收完,由硬件置位RI??赏ㄟ^“rcvdata=SBUF”讀取數(shù)據(jù)。方式0輸入的應(yīng)用-擴展并行輸入口第7章單片機的串行接口方式0主要用于串并轉(zhuǎn)換(不是用于異步串行通信)

擴展輸出口擴展輸入口擴展輸出芯片:CD4094、74LS164……

擴展輸入芯片:CD4014、74LS165……——I/O口數(shù)量不足時,可通過串口方式0進行擴展,但需要相應(yīng)的擴展芯片配合。第7章單片機的串行接口【例7-1】如圖所示,74164為串入并出的移位寄存器,CLK端為同步脈沖輸入端連接P3.1,R為控制端,當(dāng)R=0時,允許串行數(shù)據(jù)從A和B端輸入但8位并行輸出端關(guān)閉;當(dāng)R=1時,A和B輸入端關(guān)閉,但允許74LS164中的8位數(shù)據(jù)并行輸出。編寫程序控制8個發(fā)光二極管輪流點亮。第7章單片機的串行接口編程分析第7章單片機的串行接口①串口初始化:方式0(SM0SM1=00),中斷請求標(biāo)志位清0(RI=TI=0)和禁止接收數(shù)據(jù)(REN=0)→語句SCON=0。②被發(fā)送的字節(jié)數(shù)據(jù)只需賦值給寄存器SUBF發(fā),其余工作都將由硬件自動完成??梢圆捎弥袛喾ɑ蜍浖樵兎ㄅ袛郥I是否為1。③欲使74LS164輸出11111110B,發(fā)送端數(shù)據(jù)應(yīng)為01111111B(0x7f);欲使LED由上向下點亮,發(fā)送端數(shù)據(jù)應(yīng)右移且最高位置1→語句(LED>>1)|0x80;0x80=10000000B。發(fā)送/接收方向發(fā)送/接收方向第7章單片機的串行接口第7章單片機的串行接口仿真運行效果第7章單片機的串行接口方式1:10位幀,用于雙機通信起始位:1位數(shù)據(jù)位:8位停止位:1位第7章單片機的串行接口串行發(fā)送:(寫SBUF啟動發(fā)送過程)

當(dāng)TI=0時,執(zhí)行“MOVSBUF,A”指令后開始發(fā)送,由硬件自動加入起始位和停止位,構(gòu)成一幀數(shù)據(jù),然后由TXD端串行輸出。發(fā)送完后,TXD輸出線維持在“1”狀態(tài)下,并將SCON中的TI置1,表示一幀數(shù)據(jù)發(fā)送完畢。第7章單片機的串行接口串行接收:(置REN=1啟動接收過程)

RI=0,REN=1時,接收電路采樣RXD引腳,如出現(xiàn)由“1”變“0”跳變,認為有數(shù)據(jù)正在送來。第7章單片機的串行接口第7章單片機的串行接口【例7-2】如圖7-11所示,甲、乙雙機串行通信,甲機的P1口接8個開關(guān),乙機的P1口接8個發(fā)光二極管。甲機設(shè)置為只發(fā)不收的單工方式。要求甲機讀入P1口的8個開關(guān)的狀態(tài)后,通過串行口發(fā)送到乙機,乙機將接收到的甲機的8個開關(guān)的狀態(tài)數(shù)據(jù)送入P1口,由P1口的8個發(fā)光二極管來顯示8個開關(guān)的狀態(tài)。雙機晶振均采用11.0592MHz。第7章單片機的串行接口第7章單片機的串行接口仿真運行效果:第7章單片機的串行接口方式2:11位幀格式起始位:1位數(shù)據(jù)位:9位停止位:1位第7章單片機的串行接口串行發(fā)送:(寫SBUF啟動發(fā)送過程)

發(fā)送數(shù)據(jù)前,先由軟件設(shè)置TB8,可使用如下指令完成:

SETBTB8

;將TB8位置1

CLRTB8

;將TB8位置0

然后再向SBUF寫入8位數(shù)據(jù),并以此來啟動串行發(fā)送。一幀數(shù)據(jù)發(fā)送完畢后,CPU自動將TI置1,其過程與方式1相同。第7章單片機的串行接口串行接收:(置REN=1啟動接收過程)

REN=1,RI=0時,允許接收

①若SM2=0,接收到的8位數(shù)據(jù)送SBUF,第9位數(shù)據(jù)(無論0還是1)送RB8,RI置1。②若SM2=1,接收到的第9位數(shù)據(jù)為0,數(shù)據(jù)無效,不送SBUF;接收到的第8位數(shù)據(jù)為1,數(shù)據(jù)送SBUF,第9位送RB8。第7章單片機的串行接口方式2的波特率為固數(shù)值:第7章單片機的串行接口即,通信時鐘初始化僅需要設(shè)置PCON,與T1無關(guān)SUBF發(fā)為空時TI自動置1;SUBF收為滿時RI的狀態(tài)要由SM2和RB8共同決定。若SM2=1,當(dāng)RB8為1時,SUBF收為滿可使RI置1;若RB8為0,則SUBF收為滿也無法使RI置1。若SM2=0,則無論RB8為何值,SUBF收為滿都能使RI置1。可編程位的作用——用于奇偶校驗或多機通信標(biāo)識。發(fā)送時由硬件方式將TB8作為可編程位插入數(shù)據(jù)幀中;接受時由硬件方式將數(shù)據(jù)幀的可編程位存入RB8中。第7章單片機的串行接口奇偶校驗原理:例如,發(fā)送數(shù)據(jù)為0x45(01000101B),其奇偶校驗值P=1(奇數(shù)個1),將P→TB8,發(fā)送時可連同數(shù)據(jù)0x45一起發(fā)出。接收端可自動將其可編程位放入RB8中。只要將待測數(shù)據(jù)送入Acc即可由硬件求出奇偶校驗值(使P賦值),再與RB8進行比較便可判斷收發(fā)過程是否有誤?!纠?-3】如圖7-15所示,A、B雙機串行通信,其晶振頻率均為11.0592MHz,通信波特率為2400bps。A機循環(huán)發(fā)送數(shù)字0~F,B機接收后先進行奇偶校驗,若結(jié)果無誤,則向A機返回接收值同時使可編程位清零;若結(jié)果有誤則使可編程位置1。A機根據(jù)返回值中的可編程位決定發(fā)送新數(shù)據(jù)或重發(fā)當(dāng)前數(shù)據(jù)。A、B兩機均在各自數(shù)碼管上顯示當(dāng)前數(shù)據(jù)。第7章單片機的串行接口編程分析①初始化:第7章單片機的串行接口序號波特率SMODa16250010xff21920010xfd3960000xfd4480000xfa5240000xf46120000xe82.4k波特率→PCON=0,TH1=TL1=0xf4;T1定時方式1,允許TR1控制→TMOD=0x20;串口方式2,允許接收,清中斷標(biāo)志→SCON=0x50。GATETMODC/TM1M0M0M1GATEC/T(89H)IE(A8H)EAESET1EX1ET0EX0②利用方式2的可編程位做奇偶校驗位的原理是,只要將待測數(shù)據(jù)送入Acc寄存器中即可由硬件求出奇偶校驗值P,發(fā)送方作為TB8一同發(fā)送,接收方再與RB8進行比較便可判斷收發(fā)過程是否有誤。第7章單片機的串行接口第7章單片機的串行接口第7章單片機的串行接口仿真運行效果:第7章單片機的串行接口第7章單片機的串行接口方式3——11位數(shù)據(jù)異步通信方式方式3的波特率為可變的(其余方面皆與方式2相同)起始位:1位數(shù)據(jù)位:9位停止位:1位第7章單片機的串行接口方式3主要用于錯誤校驗或主從式通信系統(tǒng)的場合主機與各從機之間能實現(xiàn)雙向通信,而各從機之間不能直接通信,只能通過主機才能溝通。主從式通信系統(tǒng):1主機+多從機每臺從機都有獨立的地址編號HostSlave多機通信過程:主機向所有從機發(fā)送包含n#從機地址的地址幀;所有從機都核查該地址幀,只有n#從機修改本機SM2;主機發(fā)送數(shù)據(jù)幀,只有n#從機能夠接收到數(shù)據(jù)信息。

關(guān)鍵:主機第1次發(fā)出的信息要能被所有的從機響應(yīng),而第2次的信息只能被n#從機所響應(yīng)——多機通信控制位SM2對接收中斷請求的管理功能。第7章單片機的串行接口多機通信原理:(a)所有從機都先使自己的SM2=1,而主機在發(fā)送的地址幀信息時先使TB8=1。這樣,所有從機都能產(chǎn)生接收中斷請求,并收到主機發(fā)來的地址信息;(b)各從機將主機發(fā)來的地址與本機地址編號相比較。若與本機相符(即命中),則該從機使自己的SM2=0,其余從機仍舊保持SM2=1;(c)主機接著發(fā)送TB8=0的數(shù)據(jù)幀信息。此時只有命中機(SM2=0)有中斷請求,其它從機均無響應(yīng)。SM2=1時,若RB8=1,SBUF滿→置位RISM2=1時,若RB8=0,SBUF滿→不置位RISM2=0時,任意RB8值,SBUF滿→置位RI——所有叢機——非命中叢機——命中叢機第7章單片機的串行接口第7章單片機的串行接口【例7-4】

K1、K2為1#、2#叢機的激發(fā)鍵,每按1次主機向相應(yīng)從機順序發(fā)送1位0~F間的字符(可用虛擬終端TERMINAL觀察)。命中從機收到地址幀后使相應(yīng)LED狀態(tài)反轉(zhuǎn)1次,收到數(shù)據(jù)幀后顯示在共陽型數(shù)碼管上。晶振為11.0592MHz。要求采用串口通信方式3,波特率9600bps,發(fā)送編程采用查詢法,接收編程采用中斷法。第7章單片機的串行接口TERMINAL——用于觀察串行通信數(shù)據(jù)的虛擬儀器,使用時只需將其TXD和RXD端分別與單片機RXD和TXD相連。通過屬性窗口進行參數(shù)設(shè)置。

第7章單片機的串行接口程序分析初始化:T1定時方式2→TMOD=0x20;9600波特率→TH1=TL1=0xfd;PCON=0;串口方式3,允許接收→SCON=0xc0。序號波特率SMODa16250010xff21920010xfd3960000xfd4480000xfa5240000xf46120000xe8第7章單片機的串行接口實例4參考程序第7章單片機的串行接口第7章單片機的串行接口第7章單片機的串行接口仿真運行效果單片機原理與應(yīng)用第8章單片機的系統(tǒng)擴展內(nèi)容指南前面幾章介紹了單片機片內(nèi)資源的工作原理與應(yīng)用。當(dāng)單片機片內(nèi)資源不夠用時,AT89S51單片機可以進行外部資源的擴充。本章介紹外部資源的擴充原理,包括存儲器、并行I/O、A/D、D/A的擴展技術(shù)和應(yīng)用舉例。學(xué)習(xí)目標(biāo)掌握51單片機外部系統(tǒng)總線的構(gòu)成。了解存儲器、并行I/O、A/D、D/A的外部擴展原理。了解常用串行芯片的外部擴展技術(shù)及其應(yīng)用。第8章單片機的系統(tǒng)擴展51單片機最小系統(tǒng)51單片機擴展系統(tǒng)51單片機擴展技術(shù)xdata存儲空間的訪問第1講單片機的系統(tǒng)擴展第8章單片機的系統(tǒng)擴展

51/52單片機片內(nèi)資源:

4KB/8KBROM;128B/256BRAM;4個并行I/O或32位I/O口;

5/6源中斷系統(tǒng);

2/3個16位定時/計數(shù)器;

1個全雙工串行口UART;

51單片機最小系統(tǒng)示意圖80C51/52片內(nèi)資源單片機最小系統(tǒng):是指只使用片內(nèi)資源的應(yīng)用系統(tǒng)。第8章單片機的系統(tǒng)擴展當(dāng)片內(nèi)資源不夠用時,51單片機可以進行系統(tǒng)擴展(包括RAM、ROM、I/O、中斷、T/C、ADC、DAC等);也可以選擇滿足應(yīng)用系統(tǒng)所需資源的其它芯片(推薦)。例如,美國Atmel公司的AT89系列單片機芯片 美國Siliconlabs公司的C8051F系列芯片 我國宏晶科技的STC89,STC12,STC15系列芯片在Keil開發(fā)環(huán)境中列出了幾百種芯片可供選擇。第8章單片機的系統(tǒng)擴展ATMEL公司AT89系列芯片第8章單片機的系統(tǒng)擴展美國Silabs公司的C8051F系列單片機第8章單片機的系統(tǒng)擴展宏晶公司STC12C系列51單片機型號Flash程序存儲器SRAM定時計數(shù)器UARTPWMD/A8路A/DI/OEEPROMSPISTC12C5A60S260K128042-3個2路10位441K有STC12C5A48S248K128042-3個2路10位4413K有STC12C5A56S256K128042-3個2路10位445K有STC12C5A52S252K128042-3個2路10位449K有STC12C5A48S248K128042-3個2路10位4413K有STC12C5A40S240K128042-3個2路10位4421K有STC12C5A32S232K128042-3個2路10位4429K有STC12C5A16S216K128042-3個2路10位4445K有STC12C5A08S28K128042-3個2路10位4453K有IAP12C5A62S262K128042-3個2路10位44IAP有第8章單片機的系統(tǒng)擴展51單片機擴展系統(tǒng)是指在片外擴展硬件資源的系統(tǒng)RAM、ROM、I/O、中斷、T/C、ADC、DAC等都可以片外擴展

第8章單片機的系統(tǒng)擴展51單片機擴展技術(shù)51單片機如何在片外擴展資源呢? 并行總線擴展技術(shù) 串行總線擴展技術(shù)兩種擴展技術(shù)分別利用并行總線芯片或串行總線芯片來擴展第8章單片機的系統(tǒng)擴展51單片機并行總線擴展技術(shù)大家回憶下單片機內(nèi)部資源是靠什么連接在一起的?片內(nèi)系統(tǒng)總線CPUROMRAM

T/C……控制總線CB數(shù)據(jù)總線DB地址總線AB第8章單片機的系統(tǒng)擴展51單片機還可構(gòu)造片外系統(tǒng)總線系統(tǒng)總線利用外部系統(tǒng)總線(三總線)進行系統(tǒng)擴展稱為并行總線擴展第8章單片機的系統(tǒng)擴展按功能通常把系統(tǒng)總線分為三組。

1.地址總線(AdressBus,AB) 地址總線用于傳送單片機發(fā)出的地址信號,以便進行存儲單元或I/O接口芯片中的端口選擇。地址總線是單向傳輸?shù)摹?.?dāng)?shù)據(jù)總線(DataBus,DB) 數(shù)據(jù)總線用于在單片機與存儲器或與I/O端口之間傳送數(shù)據(jù),數(shù)據(jù)總線是雙向的。3.控制總線(ControlBus,CB) 控制總線就是單片機執(zhí)行指令時發(fā)出的讀寫控制信號線。第8章單片機的系統(tǒng)擴展利用并行總線擴展的片外RAM和片外I/O端口統(tǒng)一編址xdata(0000~FFFFH),采用相同的訪問指令。單片機片外RAM地址空間xdata(片內(nèi)data)第8章單片機的系統(tǒng)擴展一般CPU都有專用總線引腳,為減少引腳數(shù)量,51單片機沒有專用總線引腳,而是采用與通用I/O引腳復(fù)用(兼作總線引腳)的方案。P0口P2口51單片機如何構(gòu)造片外系統(tǒng)總線呢?第8章單片機的系統(tǒng)擴展片外三總線的構(gòu)成:數(shù)據(jù)總線——P0口地址總線——P0+P2控制總線—P3口+控制引腳采用了分時復(fù)用P0口方案,即數(shù)據(jù)總線和低8位地址總線都由P0口承擔(dān)。為了將數(shù)據(jù)與地址信息分開,需要在P0口外部增加地址鎖存器芯片(74LS373,74HC373等)。第8章單片機的系統(tǒng)擴展74LS373--帶三態(tài)門的8D鎖存器D7~D0:8位數(shù)據(jù)輸入線。Q7~Q0:8位數(shù)據(jù)輸出線。OE*:數(shù)據(jù)輸出允許信號,低電平有效。G:輸入鎖存選通信號。導(dǎo)通鎖存隔離第8章單片機的系統(tǒng)擴展典型的P0口地址/數(shù)據(jù)接口電路接線方法:/OE→地,LE→正脈沖源,D0~D7→P0,Q0~Q7→外設(shè)地址端第8章單片機的系統(tǒng)擴展P0和P2口作為地址/數(shù)據(jù)總線后,留給用戶使用的I/O口只有P1口和部分P3口。這就是不推薦采用并行總線擴展的理由。推薦利用串行芯片擴展或是選擇資源夠用的單片機。第8章單片機的系統(tǒng)擴展串行總線擴展技術(shù)利用串行總線芯片擴展系統(tǒng)如單總線(1wire)芯片;I2C總線芯片;SPI總線芯片常用的如:DS18B20;AT24CXX;93LCXX

串行ADC;串行DAC;串行實時時鐘芯片

這些芯片體積小巧,功耗低(第9章介紹了這些芯片的擴展和應(yīng)用技術(shù))第8章單片機的系統(tǒng)擴展

MOVXA,@DPTRMOVXA,@RiMOVX@DPTR,AMOVX@Ri,A(讀,RD)(寫,WR)1、匯編語言方法xdata地址空間的訪問xdataXdata地址裝入數(shù)據(jù)指針寄存器DPTR(間接尋址)第8章單片機的系統(tǒng)擴展2、C51語言方法-C51語言有多種方法訪問xdata絕對地址#include<absacc.h>#defineportXBYTE[0x1000]unsignedchartemp1,temp2;……temp1=port; //讀端口操作port=temp2; //寫端口操作

……例如,對占用片外RAM1000H的端口進行讀寫操作:#include<absacc.H>//包含含有宏定義的頭文件#define

變量名XBYTE[地址常數(shù)]//地址定義語句方法1:利用宏定義文件absacc.h定義絕對地址變量宏定義頭文件absacc.h中包含絕對地址訪問的函數(shù)原型第8章單片機的系統(tǒng)擴展方法2:采用指針訪問xdata存儲空間絕對地址例如,同樣針對上述舉例,程序設(shè)計如下:unsignedcharxdata*PORT=0x1000

;//定義指針變量unsignedchartemp1,temp2;……temp=*PORT;//讀0x1000端口

*PORT=temp2;//寫0x1000端口

……數(shù)據(jù)類型[存儲類型1][存儲類型2]*變量名[=地址常數(shù)];第8章單片機的系統(tǒng)擴展方法3:采用_at_關(guān)鍵字訪問片外RAM絕對地址使用_at_可對指定存儲器空間的絕對地址定位,但使用_at_定義的變量只能為全局變量。例如:unsignedcharxdataxram[0x80]_at_0x1000;//在片外RAM0x1000處定義一個char型數(shù)組變量xram,元素個數(shù)為0x80數(shù)據(jù)類型xdata

變量名_at_地址常數(shù);本講結(jié)束第8章單片機的系統(tǒng)擴展第2講并行輸出A/D轉(zhuǎn)換器的擴展A/D轉(zhuǎn)換器(AnalogtoDigitalConverter)——能把模擬量轉(zhuǎn)換成相應(yīng)數(shù)字量(簡稱為ADC或A/D)。單片機測控系統(tǒng)中的ADC和DAC

D/A轉(zhuǎn)換器(DigitaltoAnalogConverter)——能把數(shù)字量轉(zhuǎn)換為模擬量的電子器件(簡稱為DAC或D/A)。第8章單片機的系統(tǒng)擴展逐次逼近型

雙積分型

∑-⊿型

并行比較型/串行比較型

壓頻變換型AD轉(zhuǎn)換器的分類按轉(zhuǎn)化原理按轉(zhuǎn)化速度超高速(轉(zhuǎn)換速度≤1ns)

高速(轉(zhuǎn)換速度≤20

s)

中速(轉(zhuǎn)換速度≤1ms)

低速(轉(zhuǎn)換速度≤1s)8位

12位

14位

16位按轉(zhuǎn)化位數(shù)第8章單片機的系統(tǒng)擴展逐次逼近式ADC的工作原理從最高位開始通過試探值逐次進行測試,直到試探值經(jīng)D/A轉(zhuǎn)換器輸出VN與VIN相等或達到允許誤差范圍為止。則該試探值就為A/D轉(zhuǎn)換所需的數(shù)字量。逐次逼近寄存器第8章單片機的系統(tǒng)擴展ADC主要技術(shù)指標(biāo):轉(zhuǎn)換時間(convertiontime)是指完成一次AD轉(zhuǎn)換所需要的時間。逐次逼近型ADC的典型值為1~200μs。分辨率(resolution)是指系統(tǒng)在標(biāo)準參考電壓時可分辨的最小模擬電壓,即1個bit對應(yīng)的模擬電壓大小。第8章單片機的系統(tǒng)擴展28只引腳ADC0809——逐次比較型模數(shù)轉(zhuǎn)換芯片分辨率為8位轉(zhuǎn)換時間100μS

工作量程為0~+5V功耗為15mW工作電壓為+5V具有鎖存控制的8路模擬開關(guān)輸出與TTL電平兼容第8章單片機的系統(tǒng)擴展8路模擬輸入信號——用三根地址線A,B,C選通IN0~IN7;引腳——START啟動AD轉(zhuǎn)換,CLK轉(zhuǎn)換時鐘,VR參考電壓,EOC結(jié)束標(biāo)志,OE輸出使能,ALE地址鎖存使能ADC0809的結(jié)構(gòu)組成第8章單片機的系統(tǒng)擴展工作時序ALE鎖存ADDA、ADDB、ADDCSTART正脈沖啟動AD轉(zhuǎn)換EOC由高變低(AD啟動后)

保持低電平(轉(zhuǎn)換期間)

由低變高(轉(zhuǎn)換結(jié)束)OE正脈沖,打開三態(tài)門輸出第8章單片機的系統(tǒng)擴展【例8-2】分析圖8-27所示的ADC0809接口電路,并根據(jù)電路圖編程實現(xiàn)將IN7通道輸入的模擬量信號進行轉(zhuǎn)換,轉(zhuǎn)換結(jié)果以16進制數(shù)顯示,圖中的兩位數(shù)碼管顯示器采用帶BCD譯碼驅(qū)動的數(shù)碼管。第8章單片機的系統(tǒng)擴展模擬通道地址,經(jīng)373對低8位地址進行鎖存:IN0的低8位地址為11111000B(0xf8),IN1為0xf9,……,IN7為0xff。電路分析

采用總線連接方式第8章單片機的系統(tǒng)擴展電路分析

由P2.0形成高8位地址(0xfe),與WR信號合成START/ALE正脈沖啟動ADC,與RD信號合成OE正脈沖輸出轉(zhuǎn)換數(shù)據(jù);啟動IN0~IN7通道AD轉(zhuǎn)換的命令的地址為:0xfef8,……,0xfeff。讀取AD結(jié)果的命令的地址為:任何高8位為0xfe的地址均可。第8章單片機的系統(tǒng)擴展EOC信號經(jīng)非門接P3.3可形成一負脈沖信號(查詢轉(zhuǎn)換結(jié)束標(biāo)志);AD轉(zhuǎn)換的時鐘由虛擬信號發(fā)生器提供,頻率5~500kHz;電路分析

第8章單片機的系統(tǒng)擴展第8章單片機的系統(tǒng)擴展第8章單片機的系統(tǒng)擴展仿真運行效果第8章單片機的系統(tǒng)擴展D/A轉(zhuǎn)換器概述DAC是一種將數(shù)字信號轉(zhuǎn)換成模擬信號的器件,其原理框圖如圖所示。DAC的模擬量輸出(電流或電壓)與輸入數(shù)字量成正比,和參考電壓Vref成正比。其基本關(guān)系如下,其中n為二進制位數(shù):Vo=(D/2n)×Vref

第3講并行D/A轉(zhuǎn)換器的擴展第8章單片機的系統(tǒng)擴展DAC的數(shù)字輸入方式可以是:串行方式:適用于要求轉(zhuǎn)換速度不高的系統(tǒng)中,占用I/O口資源少,方便連接。并行方式:適用于要求轉(zhuǎn)換速度較高的系統(tǒng)中,占用I/O口資源多。D/A轉(zhuǎn)換器概述第8章單片機的系統(tǒng)擴展DAC的模擬量輸出方式

電壓輸出:輸出的模擬量為電壓信號。電壓輸出又有單極性(0V~5V、0V~12V等)和雙極性(±5V、±12V等)之分,可根據(jù)需要選擇。

電流輸出:輸出的模擬量為電流信號。

在實際應(yīng)用中如需要模擬電壓,對于電流輸出的D/A,可在其輸出端加運算放大器,通過運算放大器構(gòu)成電流-電壓轉(zhuǎn)換電路。第8章單片機的系統(tǒng)擴展電流輸出型DA轉(zhuǎn)換原理總電流分支電流……I01轉(zhuǎn)換電流與“邏輯開關(guān)”為1的各支路電流的總和成正比,即與D0~D7口輸入的二進制數(shù)成正比。轉(zhuǎn)換電流第8章單片機的系統(tǒng)擴展轉(zhuǎn)換電壓DAC0832外接放大器反饋電阻即,轉(zhuǎn)換電壓正比于待轉(zhuǎn)換的二進制數(shù)和參考電壓第8章單片機的系統(tǒng)擴展DAC的性能指標(biāo):1、分辨率通常將DAC能夠轉(zhuǎn)換的二進制的位數(shù)稱為分辨率。位數(shù)越多分辨率也越高,一般為8位、10位、12位、16位等。分辨率為8位時,若參考電壓為10V,則輸出的最小電壓為10V/256≈39.1mV;若參考電壓為5V,則≈19.5.1mVDAC0832的分辨率為8位。第8章單片機的系統(tǒng)擴展2、轉(zhuǎn)換時間將一個數(shù)字量轉(zhuǎn)換為穩(wěn)定模擬信號所需的時間—轉(zhuǎn)換時間;DAC的轉(zhuǎn)換時間一般在幾十納秒(ns)~幾百微秒(μs);DAC0832的轉(zhuǎn)換時間為1μs。按轉(zhuǎn)換時間分為:超高速DAC(轉(zhuǎn)換時間<100ns)、高速DAC(介于100ns~10μs之間)、中速DAC(介于10μs~100μs之間)、低速DAC(>100μs)等。第8章單片機的系統(tǒng)擴展

實際D/A轉(zhuǎn)換器由于各元件參數(shù)值存在誤差、基準電壓不夠穩(wěn)定以及運算放大器的漂移等,使D/A轉(zhuǎn)換器實際轉(zhuǎn)換精度受轉(zhuǎn)換誤差的影響,低于理論轉(zhuǎn)換精度。轉(zhuǎn)換誤差指實際輸出的模擬電壓與理想值之間的最大偏差,常用這個最大偏差與輸出電壓滿刻度(FullScaleRange簡稱FSR)的百分比表示。

一般是增益誤差、漂移誤差和非線形誤差的綜合指標(biāo)。3、轉(zhuǎn)換誤差第8章單片機的系統(tǒng)擴展DAC0832——電流輸出型D/A轉(zhuǎn)換器20只引腳8位并行輸入方式分辨率19.5mV(VREF=5V)電流建立時間1μs參考電壓±10V

輸入與TTL電平兼容單一電源供電(+5V~+15V)低功耗,20mW

第8章單片機的系統(tǒng)擴展DAC0832的結(jié)構(gòu)內(nèi)部組成:1個8位輸入鎖存器1個8位DAC寄存器1個8位D/A轉(zhuǎn)換器5個控制邏輯(2級控制)工作過程:8位數(shù)據(jù)并行送入鎖存器→在第1級控制信號作用下進入寄存器→在第2級控制信號作用下進入轉(zhuǎn)換器→轉(zhuǎn)換結(jié)果由Iout1電流輸出。第8章單片機的系統(tǒng)擴展8位數(shù)據(jù)輸入片選信號輸入輸入鎖存允許輸入鎖存器寫選通數(shù)據(jù)傳送控制信號輸入DAC寄存器寫選通信號輸入線模擬電流輸出線1、2反饋信號輸入線參考電壓輸入線模擬地數(shù)字地DAC0832引腳介紹第8章單片機的系統(tǒng)擴展理想情況下的轉(zhuǎn)換公式:當(dāng)參考電壓Vref為+5V(或-5V)時,輸出電壓范圍為0~-5V(或0~+5V)

DAC0832輸出的是電流,要轉(zhuǎn)換為電壓,還須經(jīng)過一個外接的運算放大器。DAC0832的電壓輸出第8章單片機的系統(tǒng)擴展

有時希望輸出雙極性的電壓信號,此時可將單極性的輸出電壓轉(zhuǎn)換為雙極性的輸出電壓將U1公式代入上式得到與待轉(zhuǎn)換的數(shù)字量D的關(guān)系為:雙極性輸出電壓:-VREF~+VREF第8章單片機的系統(tǒng)擴展雙極性轉(zhuǎn)換電路圖

為保證輸出的線性(和)的電位應(yīng)盡可能接近零電位,否則,運算放大器輸入端的微小電位差會導(dǎo)致很大的輸出線性誤差。第8章單片機的系統(tǒng)擴展DAC0832的3種控制方式直通方式——

兩個寄存器都處于直通狀態(tài).單緩沖方式——

一個寄存器處于直通,另一個處于受控狀態(tài).雙緩沖方式——

兩個寄存器都分別處于受控狀態(tài).第8章單片機的系統(tǒng)擴展【例8-3】根據(jù)圖8-31所示的DAC0832接口電路,編程實現(xiàn)由DAC0832輸出一路正弦波的功能。電路分析:1、采用I/O口方式接線(任何一個并行IO口都行)2、直通控制方式——4個控制端都接低電平,ILE接高電平第8章單片機的系統(tǒng)擴展第8章單片機的系統(tǒng)擴展仿真運行結(jié)果:第8章單片機的系統(tǒng)擴展【例8-4】根據(jù)圖8-33所示的DAC0832接口電路,編程實現(xiàn)一路三角波發(fā)生器的功能。電路分析:1、第1級受控,第2級直通(單緩沖方式)2、總線接口方式:DAC第1級地址:11111110…(0xfeff)第8章單片機的系統(tǒng)擴展上面的電路圖相當(dāng)于:執(zhí)行寫端口指令時WR=0;端口地址必須是P2.0(即A0)=0;因此端口地址可用11111110…(0xfeff)

第8章單片機的系統(tǒng)擴展本例參考程序:第8章單片機的系統(tǒng)擴展仿真運行效果第8章單片機的系統(tǒng)擴展【例8-5】圖8-35所示的電路是兩片DAC0832雙緩沖接口電路,編程實現(xiàn)兩路鋸齒波同步發(fā)生的功能。DAC1第1級地址:11111110…(0xfeff)DAC2第1級地址:11111101…(0xfdff)DAC1和2第二級地址:11101111…(0xefff)電路分析:1、雙緩沖方式:DAC1和DAC2的第1級各設(shè)1個控制端,兩個DAC的第2級共用1個控制端;2、總線接口方式:第8章單片機的系統(tǒng)擴展語句DAOUT=num的作用只是啟動DAC寄存器,傳輸什么數(shù)據(jù)都沒關(guān)系。

第8章單片機的系統(tǒng)擴展本例仿真運行效果(多路D/A同步輸出)第8章單片機的系統(tǒng)擴展單片機原理與應(yīng)用第9章單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)第9章單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)內(nèi)容指南本章主要介紹單片機應(yīng)用系統(tǒng)的一般組成結(jié)構(gòu)、設(shè)計步驟以及應(yīng)用系統(tǒng)設(shè)計應(yīng)考慮的問題,還介紹了目前流行的單片機在線仿真開發(fā)工具以及如何利用仿真開發(fā)工具對單片機應(yīng)用系統(tǒng)進行開發(fā)調(diào)試,以及單片機應(yīng)用系統(tǒng)的抗干擾和可靠性設(shè)計。學(xué)習(xí)目標(biāo)了解單片機應(yīng)用系統(tǒng)的一般組成結(jié)構(gòu)。了解單片機應(yīng)用系統(tǒng)的設(shè)計步驟和應(yīng)考慮的問題。了解單片機應(yīng)用系統(tǒng)的在線仿真與調(diào)試工具。了解單片機應(yīng)用系統(tǒng)的抗干擾與可靠性設(shè)計措施。單片機應(yīng)用系統(tǒng)的一般組成結(jié)構(gòu):由單片機最小系統(tǒng)、前向通道、后向通道、人機交互通道與相互通道組成。第9章單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)89S51/52最小應(yīng)用系統(tǒng)及資源

51/52單片機片內(nèi)資源:

4KB/8KBROM;128B/256BRAM;4個并行I/O或32位I/O口;

5/6源中斷系統(tǒng);

2/3個16位定時/計數(shù)器;

1個全雙工串行口UART;

第9章單片機應(yīng)用系統(tǒng)設(shè)計與開發(fā)是單片機實現(xiàn)外部信息的輸入的通道,主要是數(shù)據(jù)采集單元、信號調(diào)理單元等前向通道

第9章單片

溫馨提示

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

最新文檔

評論

0/150

提交評論