單片機并行接口定時計數(shù)器電路_第1頁
單片機并行接口定時計數(shù)器電路_第2頁
單片機并行接口定時計數(shù)器電路_第3頁
單片機并行接口定時計數(shù)器電路_第4頁
單片機并行接口定時計數(shù)器電路_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機并行接口定時計數(shù)器電路第一頁,共三十七頁,2022年,8月28日7-1 單片機并行接口PIOPIO:并行I/O接口用于微型機與外部設(shè)備之間并行傳送數(shù)據(jù)。7-1-1 MCS-51的并行接口4個8位雙向并行IO接口:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7。均為多功能I/O接口,CPU按當前操作自動進行功能切換。片內(nèi)接口寄存器在SFR中的映象地址:

1.I/O數(shù)據(jù)鎖存器:P0、P1、P2、P3、SBUF

2.I/O控制/狀態(tài)寄存器:

IE、IP、TCON、TMOD、SCON、PCON第二頁,共三十七頁,2022年,8月28日一.PIO接口內(nèi)部結(jié)構(gòu)輸出鎖存器、輸出驅(qū)動器、輸入緩沖器及多路功能切換電路。1)輸出操作:輸出數(shù)據(jù)經(jīng)過內(nèi)部總線暫存到輸出鎖存器中,經(jīng)過輸出驅(qū)動器送到I/O引腳上。輸出鎖存器的內(nèi)容可讀入修改。2)輸入操作:I/O引腳輸入數(shù)據(jù)經(jīng)過輸入緩沖器送到內(nèi)部總線上。二.PIO接口的三種操作1.輸出鎖存:輸出將使數(shù)據(jù)寫入輸出鎖存器。輸出指令: MOV P1,A MOV P1.0,C2.輸入三態(tài):輸入從I/O引腳上輸入信號,讀信號打開,引腳信號通過下三態(tài)門進入內(nèi)部總線。為保證可靠輸入,先寫入“1”。 MOV P1,#0FFH ;使輸出驅(qū)動器截止 MOV A,P1 ;輸入P0~P3的復(fù)位狀態(tài)均為FFH,自動處于輸入狀態(tài)。3.讀-修改-寫:修改輸出鎖存器的內(nèi)容。鎖存器中的數(shù)據(jù)通過上三態(tài)門進入內(nèi)部總線,修改后再寫入到鎖存器中。讀-修改-寫指令:PIO為目的操作數(shù)的指令 ANLP1,A第三頁,共三十七頁,2022年,8月28日 三.PIO的使用

1.P0口:并行雙向接口或系統(tǒng)總線DB0~7/AB0~72.P1口:稱為用戶I/O接口。對片內(nèi)EPROM編程時,用作EPROM低8位地址信號線。 四.接口負載能力 P0驅(qū)動8個TTL電路,P1,P2,P3可驅(qū)動4個TTL電路3.P2口:雙向I/O接口或高8位地址總線AB8~15對讀寫片外存儲器后,引腳仍恢復(fù)輸出鎖存器的內(nèi)容??捎糜谧x寫片外數(shù)據(jù)存儲器: MOV P2,#20H MOV R0,#00 MOVXA,@R04.P3口:雙向并行接口和第二功能: 串行接口引腳:TXD、RXD 中斷輸入引腳:INT0、INT1 定時器輸入引腳:T0、T1 讀寫控制線:RD、WRP1、P2和P3為準雙向口。第四頁,共三十七頁,2022年,8月28日五.

應(yīng)用舉例例:用4個發(fā)光二極管對應(yīng)顯示4個開關(guān)的開合狀態(tài)。 如P1.0合則P1.4亮。MCS-51P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01.無條件傳送方式:指示燈立即反映開關(guān)狀態(tài)。 ORG0000H AJMPMAIN ORG0100HMAIN:ORL A,#0FH MOVP1,A MOVA,P1 SWAPA MOVP1,A SJMPMAIN第五頁,共三十七頁,2022年,8月28日2.中斷傳送方式:

先設(shè)好開關(guān)狀態(tài),然后發(fā)出中斷請求信號,改變指示燈亮滅狀態(tài)。 ORG 0000H AJMPMAIN ORG 0003H AJMPIOINT ORG 0100HMAIN:SETBIT0 SETBEX0 SETBEAHERE:SJMPHERE ORG 0500HIOINT:MOVA,#0FFH MOV P1,A MOV A,P1 SWAPA MOV P1,A RETIP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0INT0MCS-51K+5V第六頁,共三十七頁,2022年,8月28日7-2 定時/計數(shù)器電路CTC一.定時/計數(shù)器的應(yīng)用1.計數(shù)功能:生產(chǎn)線上產(chǎn)品計數(shù)。每個產(chǎn)品通過得到一個脈沖信號,計數(shù)器記錄脈沖個數(shù),當計數(shù)值與設(shè)定值相等,啟動包裝機器。檢測轉(zhuǎn)速。電機轉(zhuǎn)動一圈發(fā)出一個脈沖,計數(shù)器記錄一秒時間內(nèi)脈沖個數(shù),顯示轉(zhuǎn)速。二.定時/計數(shù)器的工作原理定時/計數(shù)器中的核心部件為可預(yù)置初值計數(shù)器。預(yù)置初值后開始計數(shù),直至計數(shù)值歸0或產(chǎn)生溢出,可申請中斷。計數(shù)器有加1計數(shù)或減1計數(shù)兩種形式。K1K2可預(yù)置初值計數(shù)器中斷請求功能選擇啟動控制內(nèi)部時鐘脈沖(定時)外部輸入脈沖(計數(shù))溢出信號計數(shù)脈沖計數(shù)初值例:設(shè)CTC中為8位加1計數(shù)器。按要求選擇功能和初值。1.要求檢測到100個脈沖,發(fā)中斷請求,通知CPU。選計數(shù)功能,計數(shù)初值為156。2.要求定時每隔100s時間,發(fā)一次中斷請求。設(shè)內(nèi)部時鐘周期1s選定時功能,計數(shù)初值為156。2.定時功能:用于實時控制,定時采樣、定時啟動等。當定時時間與設(shè)定值相等,執(zhí)行規(guī)定操作。第七頁,共三十七頁,2022年,8月28日7-2-1 MCS-51定時/計數(shù)器2個可獨立控制的16位定時器/計數(shù)器:T0、T1定時器初始化編程:1.功能選擇(定時/計數(shù)) 2.位數(shù)選擇(8/13/16位)3.啟動方式選擇(內(nèi)部啟動/外部啟動)4.啟動控制(啟動/停止)5.恢復(fù)初值方式(自動重裝/軟件重裝)一.定時器控制、狀態(tài)寄存器1.TMOD定時器方式寄存器(89H)1)功能選擇位C/T:=0,定時功能,計數(shù)內(nèi)部機器周期脈沖;=1,計數(shù)功能,計數(shù)引腳T0(T1)輸入的負脈沖。2)方式選擇位M1、M0:4種工作方式:13/16/8位3)門控方式選擇位GATE:=0,非門控方式(內(nèi)部啟動): TRx=1,啟動定時器工作; TRx=0,停止定時器工作。=1,門控方式(外部啟動):TRx=1且引腳INTx=1才啟動。確定定時器工作方式指令:MOVTMOD,#方式字例:設(shè)T0用方式2非門控定時,T1用方式1門控計數(shù)。 MOV TMOD,#T1T0第八頁,共三十七頁,2022年,8月28日2.TCON定時器控制/狀態(tài)寄存器1)啟動控制位TR0、TR1=0,停止定時器工作=1,啟動定時器工作例:啟動T0: SETB TR02)溢出中斷標志位TF0、TF1定時器溢出使TFx=1,引起中斷請求,CPU響應(yīng)Tx中斷后,自動清0TFx。3.可預(yù)置初值的16位加1計數(shù)器TH0、TL0、TH1、TL1預(yù)置T0初值指令: MOV TH0,#XH

MOV TL0,#XL可用軟件檢測TFx,必須軟件清0。 WAIT:JBCTF0,NEXT;檢測T0是否溢出 SJMP WAIT ;未溢出,繼續(xù)檢測 NEXT:… ;溢出,TF0清0,處理溢出第九頁,共三十七頁,2022年,8月28日二.

定時器工作方式

由方式選擇位M1、M0設(shè)定1.方式013位定時/計數(shù)器。THx8位和TLx低5位組成13位加1計數(shù)器計數(shù)外部脈沖個數(shù):1~8192(213)定時時間(T=1s):1s~8.19ms2.方式116位定時/計數(shù)器。THx8位和TLx8位組成16位加1計數(shù)器計數(shù)外部脈沖個數(shù):1~65536(216)定時時間(T=1s):1s~65536×T=65.54ms第十頁,共三十七頁,2022年,8月28日3.

方式2自動恢復(fù)初值8位定時/計數(shù)器。TLx為8位加1計數(shù)器,THx為8位初值暫存器。用于需要重復(fù)定時和計數(shù)的場合。最大計數(shù)值:256(28)最大定時時間(T=1s):256s第十一頁,共三十七頁,2022年,8月28日4.方式3T0分成2個8位定時器:TL0定時/計數(shù)器和TH0定時器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位:TR1。T1不能使用方式3工作第十二頁,共三十七頁,2022年,8月28日5.計算時間常數(shù)X(計算初值)計數(shù)功能:X=2n-計數(shù)值 n:8/13/16定時功能:X=2n-t/T t:定時時間、T:機器周期三.MCS-51定時器的應(yīng)用定時器初始化編程:使用定時器工作之前,先寫入控制寄存器,確定好定時器工作方式初始化編程格式:MOVTMOD,#方式字;選擇方式MOVTHx,#XH ;裝入Tx時間常數(shù)MOVTLx,#XL(SETBEA ) ;開Tx中斷(SETBETx )SETBTRx ;啟動Tx定時器1.按實際需要選擇定時/計數(shù)功能2.按時間或計數(shù)長度選擇方式3.計算時間常數(shù)第十三頁,共三十七頁,2022年,8月28日4.溢出處理編程格式:1)查詢方式:先查詢定時器溢出標志,再進行溢出處理。

… ;定時器初始化 WAIT:JBC TFx,PT;檢測溢出標志 SJMP WAIT PT: MOV THx,#XH;重裝時間常數(shù) MOV TLx,#XL

… ;溢出處理 SJMP WAIT2)中斷方式:初始化后執(zhí)行其他任務(wù),中斷服務(wù)程序處理溢出。 ORG 0000H LJMP MAIN ORG 000BH(001BH);Tx中斷入口 LJMP PTS MAIN: … ;初始化后執(zhí)行其他程序 PTS: … ;溢出中斷服務(wù)程序 MOV THx,#XH ;重裝時間常數(shù) MOV TLx,#XL RETI第十四頁,共三十七頁,2022年,8月28日四.應(yīng)用舉例例:由P1.0輸出方波信號,周期為2ms,設(shè)fosc=12MHz。2ms解:每隔1ms改變一次P1.0的輸出狀態(tài)。用T0非門控方式1定時。計算時間常數(shù):X=216-t/T=216-1000/1=FC18H(1)查詢方式:

START: MOV TMOD,# MOV TL0,# MOV TH0,# SETB TR0 LOOP: JBC TF0,PTF0 SJMP LOOP PTF0: CPL P1.0 MOV TL0,# MOV TH0,# SJMP LOOP第十五頁,共三十七頁,2022年,8月28日(2)中斷方式

ORG 0000H AJMP MAIN ORG 000BH AJMP PT0INT ORG 0100H

MAIN: MOV SP,#60H MOV TMOD,# MOV TL0,# MOV TH0,# SETB EA SETB ET0 SETB TR0 HERE: SJMP HERE PT0INT:CPL P1.0 MOV TL0,# MOV TH0,# RETI第十六頁,共三十七頁,2022年,8月28日例P1.7驅(qū)動LED亮1秒滅1秒地閃爍,設(shè)時鐘頻率為6MHz。長定時方法:增加一個軟件計數(shù)器或一個硬件計數(shù)器。硬件方式:T0定時,T1計數(shù)T0的定時跳變信號P1.0的負跳變次數(shù),計滿5個跳變?yōu)?秒。START: MOVTMOD,#61H MOVTL1,#0FBH MOVTH1,#0FBH CLRP1.0 SETBTR1LOOP1: CPLP1.7LOOP2: MOVTL0,#3CH MOVTH0,#0B0H SETB TR0LOOP3: JBC TF0,LOOP4 SJMP LOOP3LOOP4: CPL P1.0 JBC TF1,LOOP1 SJMP LOOP2第十七頁,共三十七頁,2022年,8月28日例定時器外部引腳T0(T1)用作外部中斷信號輸入端。外部負脈沖引起中斷請求,選計數(shù)方式,時間常數(shù)為FFH。例:門控方式測量正脈沖寬度解:INT1引腳輸入被檢測信號,記錄在正脈沖的時間內(nèi)包含機器脈沖個數(shù)。1)設(shè)脈寬小于65.5ms等待查詢INT0,正脈沖過后,讀出TH1TL1。START: MOVTMOD,#90H MOVTL1,#0H MOVTH1,#0HWAIT1: JB P3.3,WAIT1 SETBTR1WAIT2:JNB P3.3,WAIT2WAIT3:JB P3.3,WAIT3 CLR TR1 MOV R2,TL1 MOV R3,TH1 …TR1=1 T1啟動TR1=0 T1停止INT1第十八頁,共三十七頁,2022年,8月28日2)設(shè)脈寬大于65.5ms,中斷方式記錄TH1TL1溢出中斷次數(shù)。 SETB TR1 SETB ET1 ;開T1中斷 SETB EA WAIT2: JNB P3.3,WAIT2;等待正脈沖到來 WAIT3: JB P3.3,WAIT3;等待正脈沖結(jié)束 CLR TR1 ;關(guān)閉T1 MOV IE,#00 ;關(guān)閉中斷 MOV R2,TL1 ;讀出T1 MOV R3,TH1 LCALLPPS ;計算脈寬 HERE: SJMP HERE ;其他任務(wù)

PRIC: INC R4 ;記錄溢出次數(shù) RETI PPS: … ;計算脈寬子程序計算脈寬的子程序的計算式如下: 脈寬t=(R4×216+R3R2)×T (T為機器周期)第十九頁,共三十七頁,2022年,8月28日 7-3 可編程并行接口芯片8255

用于擴展單片機并行I/O接口。7-3-1 結(jié)構(gòu)與引腳一.結(jié)構(gòu)1.數(shù)據(jù)線D0~7:傳送計算機與8255之間的數(shù)據(jù)、控制字和狀態(tài)字。PA0~7PB0~7PC0~7:傳送8255與外設(shè)之間的數(shù)據(jù)和聯(lián)絡(luò)信息,PC0~7可用作數(shù)據(jù)線或聯(lián)絡(luò)線1.3個8位并行I/O接口PA、PB和PC包含I/O數(shù)據(jù)鎖存器,控制寄存器和狀態(tài)寄存器。2.2組控制A組:PA和PC0~3、B組:PB和PC4~73.3種工作方式:基本I/O:輸出鎖存,輸入三態(tài),不用聯(lián)絡(luò)信號。應(yīng)答式I/O:輸入/輸出均鎖存,C口用于傳送聯(lián)絡(luò)信號,讀C口可了解外設(shè)當前狀態(tài)。應(yīng)答雙向式:A口為雙向I/O,C口用作A口雙向傳送的聯(lián)絡(luò)信號線二.引腳P0P2.78051A0A1CS82553732.地址線CS:片選線A1,A0:口選線,尋址PA,PB,PC數(shù)據(jù)口和控制口。例求8255口地址:解:

A口 (7F00H), B口 (7F01H), C口 (7F02H), 控制口(7F03H)(三)讀寫控制線RD,WR控制計算機與8255之間的信息傳送和流向(四)復(fù)位線RESET高電平復(fù)位,使內(nèi)部寄存器全部清零。第二十頁,共三十七頁,2022年,8月28日7-3-28255編程規(guī)定

8255初始化編程:往控制口寫入控制字,確定8255工作方式。方式選擇控制字:D7=1C口置位/復(fù)位控制字:D7=0例:8255PA口方式0輸出單片機片內(nèi)RAM數(shù)據(jù),PB口方式1輸入…。 PIOS: MOV DPTR,#7F03H;控制口地址 MOV A,#86 ;寫控制字 MOVX @DPTR,A ;設(shè)工作方式 MOV DPTR,#7F00H;PA數(shù)據(jù)口地址 MOV A,@R0 ;取RAM的數(shù)據(jù) MOVX @DPTR,A ;由PA口輸出

…第二十一頁,共三十七頁,2022年,8月28日 7-4 可編程多功能接口芯片8155

256字節(jié)RAM,3個并行口PA0~7、PB0~7、PC0~5,1個14位定時器。7-4-1結(jié)構(gòu)和引腳一.引腳功能1.數(shù)據(jù)線AD0~7:傳送8155與計算機之間的數(shù)據(jù),控制字,狀態(tài)字。PA0~7、PB0~7、PC0~5:傳送8155與外設(shè)之間的信息。2.地址線CE:IO/M:選擇口/RAM單元AD0~7:6個I/O口和256字節(jié)RAM地址。3.控制線ALE:地址鎖存RD、WR:讀寫控制4.定時器輸入/輸出線:TIMERIN、TIMEROUT5.復(fù)位線RESETP0.0~0.7P2.6P2.7

ALE8051AD0~7IO/MCSALE8155第二十二頁,共三十七頁,2022年,8月28日7-5

串行I/O接口SIO一.串行通訊的基本方式(一).異步通訊以字符為傳送單位用起始位和停止位標識每個字符的開始和結(jié)束字符間隔不固定,只需字符傳送時同步。異步通訊常用格式:一個字符幀異步通訊的雙方需要兩項約定:1.字符格式一幀字符位數(shù)的規(guī)定:數(shù)據(jù)位,校驗位,起始位和停止位。2.波特率(位/秒)對傳送速率的規(guī)定例:要求每秒傳送120個字符,每幀為10位。解:B=120×10=1200波特 每位0.83ms數(shù)據(jù)位傳輸率=120×8=960位/秒(二).同步通訊以一串字符為一個傳送單位,字符間不加標識位,在一串字符開始用同步字符標識,硬件要求高,通訊雙方須嚴格同步。D0D1D2D3D4D5D6D7停止位起始位第二十三頁,共三十七頁,2022年,8月28日二.串行接口功能1.發(fā)送器:并串數(shù)據(jù)格式轉(zhuǎn)換,添加標識位和校驗位,一幀發(fā)送結(jié)束,設(shè)置結(jié)束標志,申請中斷。2.接收器:串并數(shù)據(jù)格式轉(zhuǎn)換,檢查錯誤,去掉標識位,保存有效數(shù)據(jù),設(shè)置接收結(jié)束標志,申請中斷。3.控制器:接收編程命令和控制參數(shù),設(shè)置工作方式:同步/異步、字符格式、波特率、校驗方式、數(shù)據(jù)位與同步時鐘比例等。三.串行數(shù)據(jù)傳送方向單工通訊:數(shù)據(jù)單向傳送。半雙工通訊:數(shù)據(jù)可分時雙向傳送。全雙工通訊:可同時進行發(fā)送和接收。發(fā)送器接收器發(fā)送器接收器第二十四頁,共三十七頁,2022年,8月28日 7-5-1 MCS-51串行接口

1個全雙工串行接口,可同時進行發(fā)送和接收。串行接口輸入/輸出引腳:TXD(P3.1)、RXD(P3.0)數(shù)據(jù)格式(P.237圖):按不同方式,一幀位數(shù)8/10/11發(fā)送/接收時,數(shù)據(jù)皆低位在前。一幀字符發(fā)送/接收結(jié)束,置位標志位(TI/RI)并申請SIO中斷。中斷控制:中斷允許位ES中斷入口:0023HD0D1D2D3D4D5D6D7停止位起始位D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D8停止位起始位D7第二十五頁,共三十七頁,2022年,8月28日一.串行接口控制1.數(shù)據(jù)緩沖器SBUF發(fā)送SBUF和接收SBUF共用一個地址99H 。 1)發(fā)送SBUF存放待發(fā)送的8位數(shù)據(jù),寫入SBUF將同時啟動發(fā)送。 發(fā)送指令: MOV SBUF,A2)接收SBUF存放已接收成功的8位數(shù)據(jù),供CPU讀取。 讀取串行口接收數(shù)據(jù)指令: MOVA,SBUF2.串行口控制/狀態(tài)寄存器SCON(98H)SM0,SM1:選擇串行口4種工作方式。SM2:多機控制位,用于多機通訊。REN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收。TB8發(fā)送的第9位數(shù)據(jù)位,可用作校驗位和地址/數(shù)據(jù)標識位RB8:接收的第9位數(shù)據(jù)位或停止位TI:發(fā)送中斷標志,發(fā)送一幀結(jié)束,TI=1,必須軟件清零RI:接收中斷標志,接收一幀結(jié)束,RI=1,必須軟件清零3.節(jié)電控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍,SMOD=0,則不加倍。第二十六頁,共三十七頁,2022年,8月28日二.串行接口的工作方式

SM0,SM1選擇四種工作方式。(1)方式0:同步移位寄存器方式。用于擴展并行I/O接口。1.一幀8位,無起始位和停止位。2.RXD:數(shù)據(jù)輸入/輸出端。TXD:同步脈沖輸出端,每個脈沖對應(yīng)一個數(shù)據(jù)位。3.波特率B=fosc/12 如:fosc=12MHz, B=1MHz,每位數(shù)據(jù)占1s。4.發(fā)送過程:寫入SBUF,啟動發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收過程:REN=1且RI=0,啟動接收,一幀接收完畢,RI=1。

發(fā)送時序?qū)懭隨BUFRXD輸出TXDTID0D1D2D3D4D5D6D7寫REN=1RI=0RXD輸入RI接收時序(a)(b)第二十七頁,共三十七頁,2022年,8月28日(2)方式1

8位數(shù)據(jù)異步通訊方式。1.一幀10位:8位數(shù)據(jù)位,1個起始位(0),1個停止位(1)。2.RXD:接收數(shù)據(jù)端。TXD:發(fā)送數(shù)據(jù)端。3.波特率:用T1作為波特率發(fā)生器,B=(2SMOD/32)×T1溢出率。4.發(fā)送:寫入SBUF,同時啟動發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且停止位為1(或SM2=0),將接收數(shù)據(jù)裝入SBUF,停止位裝入RB8,并使RI=1;否則丟棄接收數(shù)據(jù),不置位RI。當REN=1,CPU開始采樣RXD引腳負跳變信號,若出現(xiàn)負跳變,才進入數(shù)據(jù)接收狀態(tài),先檢測起始位,若第一位為0,繼續(xù)接收其余位;否則,停止接收,重新采樣負跳變。數(shù)據(jù)采樣速率為波特率16倍頻,在數(shù)據(jù)位中間,用第7、8、9個脈沖采樣3次數(shù)據(jù)位,并3中取2保留采樣值。寫入SBUF采樣(a)發(fā)送時序圖TXD數(shù)據(jù)輸出TID0D1D2D3D4D5D6D7停止位起始位RXD輸入數(shù)據(jù)(b)接收時序圖D0D1D2D3D4D5D6D7停止位起始位RI檢測負跳變第二十八頁,共三十七頁,2022年,8月28日(3)

方式2和方式39位數(shù)據(jù)異步通訊方式。1.一幀為11位:9位數(shù)據(jù)位,1個起始位(0),1個停止位(1)。 第9位數(shù)據(jù)位在TB8/RB8中,常用作校驗位和多機通訊標識位。2.RXD:接收數(shù)據(jù)端,TXD:發(fā)送數(shù)據(jù)端。3.波特率:方式2:B=(2SMOD/64)×fosc。 方式3:B=(2SMOD/32)×T1溢出率。4.發(fā)送:先裝入TB8,寫入SBUF并啟動發(fā)送,發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且第9位為1(或SM2=0),將接收數(shù)據(jù)裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數(shù)據(jù),不置位RI。發(fā)送時序?qū)懭隨BUFTXD輸出TIRXD輸入接收時序RID0D1D2D3D4D5D6TB8停止位起始位D7D0D1D2D3D4D5D6RB8停止位起始位D7檢測負跳變第二十九頁,共三十七頁,2022年,8月28日(4)計算波特率方式0為固定波特率:B=fosc/12 方式2可選兩種波特率:B=(2SMOD

/64)×fosc 方式1、3為可變波特率,用T1作波特率發(fā)生器。 B=(2SMOD/32)×T1溢出率T1為方式2的時間常數(shù):X=28-t/T溢出時間:t=(28-X)T=(28-X)×12/foscT1溢出率=1/t=fosc/[12×(2n-X)]

波特率B=(2SMOD

/32)×fosc/[12×(28-X)]串行口方式1、3,根據(jù)波特率選擇T1工作方式,計算時間常數(shù)。T1選方式2:TH1=X=28-fosc/12×2SMOD/(32×B)T1選方式1用于低波特率,需考慮T1重裝時間常數(shù)時間。第三十頁,共三十七頁,2022年,8月28日7-5-2 串行口的應(yīng)用串行口初始化編程格式:

SIO:MOVSCON,#控制狀態(tài)字;寫方式字且TI=RI=0 (MOVPCON,#80H) ;波特率加倍 (MOVTMOD,#20H) ;T1作波特率發(fā)生器 (MOVTH1,#X) ;選定波特率 (MOVTL1,#X) (SETBTR1) (SETBEA) ;開串行口中斷 (SETBES)第三十一頁,共三十七頁,2022年,8月28日發(fā)送程序:先發(fā)送一個字符,等待TI=1后再發(fā)送下一個字符。1.查詢方式:TRAM: MOV A,@R0 ;取數(shù)據(jù) MOV SBUF,A ;發(fā)送一個字符WAIT: JBC TI,NEXT ;等待發(fā)送結(jié)束 SJMP WAITNEXT: INC R0 ;準備下一次發(fā)送 SJMP TRAM2.中斷方式: ORG 0023H ;串行口中斷入口 AJMPSINTMAIN: … ;初始化編程TRAM: MOV A,@R0 ;取數(shù)據(jù) MOV SBUF,A ;發(fā)送第一個字符H: SJMP H ;其它工作SINT: CLRTI ;中斷服務(wù)程序 INC R0 MOV A,@R0 ;取數(shù)據(jù) MOV SBUF,A ;發(fā)送下一個字符 RETI第三十二頁,共三十七頁,2022年,8月28日接收程序:REN=1、RI=0等待接收,當RI=1,從SBUF讀取數(shù)據(jù)。1.查詢方式:WAIT: JBC RI,NEXT ;查詢等待 SJMP WAITNEXT: MOV A,SBUF ;讀取接收數(shù)據(jù) MOV @R0,A ;保存數(shù)據(jù) INC R0 ;準備下一次接收 SJMP WAIT2.中斷方式:

ORG 0023H AJMP RINTMAIN: … ;初始化編程H: SJMP H ;其它任務(wù)RINT: CLR RI ;清中斷標志 MOV A,SBUF ;讀取接收數(shù)據(jù) MOV @R0,A ;保存數(shù)據(jù) INC R0 RETI第三十三頁,共三十七頁,2022年,8月28日(一)串行口方式0用于擴展單片機的并行I/O接口。串行口實現(xiàn):并行→串行的數(shù)據(jù)轉(zhuǎn)換74LS165/74LS164實現(xiàn):串行→并行的數(shù)據(jù)轉(zhuǎn)換。(二)異步通訊程序舉例

1.發(fā)送程序:將片內(nèi)RAM50H起始單元的16個數(shù)由串行口發(fā)送。要求發(fā)送波特率為系統(tǒng)時鐘的32分頻,并進行奇偶校驗。MAINT:MOV SCON,#80H;串行口初始化 MOV PCON,#80H;波特率 SETB EA SETB ES ;開串行口中斷 MOV R0,#50H ;設(shè)數(shù)據(jù)指針 MOV R7,#10H ;數(shù)據(jù)長度LOOP: MOV A,@R0 ;取一個字符 MOV C,P ;加奇偶校驗 MOV TB8,C MOV SBUF,A ;啟動一次發(fā)送HERE: SJMP HERE ;CPU執(zhí)行其它任務(wù)第三十四頁,共三十七頁,2022年,8月28日 ORG 0023H ;串行口中斷入口 AJMP TRANI TRANI: PUSH A ;保護現(xiàn)場 PUSH PSW CLR TI ;清發(fā)送結(jié)束標志 DJNZ R7,NEXT ;是否發(fā)送完? CLR

溫馨提示

  • 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

提交評論