第5章 80C51單片機中的輸入輸出口_第1頁
第5章 80C51單片機中的輸入輸出口_第2頁
第5章 80C51單片機中的輸入輸出口_第3頁
第5章 80C51單片機中的輸入輸出口_第4頁
第5章 80C51單片機中的輸入輸出口_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第5 5章章 80C5180C51單片機的單片機的I/OI/O口口 5.1 80C515.1 80C51單片機并行單片機并行I/OI/O口口思考與練習思考與練習 5.2 80C515.2 80C51單片機的串行通信接口單片機的串行通信接口一一、 并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)二、產(chǎn)生接口控制信號的指令二、產(chǎn)生接口控制信號的指令 5.1 80C515.1 80C51單片機并行單片機并行I/OI/O口口 80C5180C51單片機有4個8位并行I/O口,共占了32根I/O引腳。單片機擴展時,這些I/O引腳又作為擴展又作為擴展總線總線用。 P P0 0口作為地址/數(shù)據(jù)總線,分時輸出低

2、8 位地址和傳送8位數(shù)據(jù); P P2 2口作為高8位地址總線; P P3 3口也具有第二功能。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)每一個口都包含: 一個鎖存器一個鎖存器 一個輸出驅(qū)動器一個輸出驅(qū)動器 兩個兩個(P3口為3個)輸入緩沖器輸入緩沖器 各口的結(jié)構(gòu)有些差異,下面分別介紹。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)1 1、接口結(jié)構(gòu)、接口結(jié)構(gòu)P1口一位的結(jié)構(gòu)如下圖所示:一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口1 1、接口結(jié)構(gòu)、接口結(jié)構(gòu) 鎖存器起輸出鎖存作用,8位鎖存器組成特殊功能寄存器P1; 場效應(yīng)管和上拉電阻組成輸出驅(qū)動器,以增

3、大負載能力; 三態(tài)門1和三態(tài)門2分別用于控制輸入引腳和鎖存器的狀態(tài)。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口2 2、接口功能、接口功能 P1口只有一種功能通用輸入輸出接口,有以下三種工作方式三種工作方式:輸出輸出、輸入輸入和端端口操作口操作。(1 1)輸出方式)輸出方式: 單片機執(zhí)行執(zhí)行MOV PMOV P1 1, #data, #data指令時,數(shù)據(jù)data經(jīng)內(nèi)部總線送入鎖存器鎖存,經(jīng)輸出驅(qū)動器送到引腳。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口2 2、接口功能、接口功能(2 2)輸入方式)輸入方式 單片機執(zhí)行執(zhí)行MO

4、V A,PMOV A,P1 1指令指令時,控制器發(fā)出讀引腳信號,打開三態(tài)門1,引腳上的狀態(tài)經(jīng)三態(tài)門進入內(nèi)部總線,并送入A中。 由圖可見,要使P1引腳上的高/低電平均可輸入,必須使輸出驅(qū)動器處于截止狀態(tài),所以要將要將P P1 1作為作為輸入口時,應(yīng)先向口鎖存器寫輸入口時,應(yīng)先向口鎖存器寫“1”1”。因此P1口為為準雙向口準雙向口。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口2 2、接口功能、接口功能(3 3)端口操作)端口操作 單片機中設(shè)置了一類直接對端口進行操作的指令,如 INC P1 ANL P1 , A ORL P1 , #data 一一、并行并行I/OI

5、/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口 執(zhí)行這些指令時,先是讀鎖存器信號有效,打開三態(tài)門2,將鎖存器的內(nèi)容讀出,按指令要求修改后再寫入鎖存器中,稱為“讀讀修改修改寫寫”指令。2 2、接口功能、接口功能(3 3)端口操作)端口操作一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口3 3、接口驅(qū)動能力、接口驅(qū)動能力 P1口輸出時能驅(qū)動3個LSTTL負載(輸出電流要小于300A)一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口 P2口一位結(jié)構(gòu)如下圖所示,與P1相比,多了一個多路開關(guān)MUX,因此P2具有雙重功能雙重功能:通用通

6、用I/OI/O口和高高8 8位地址總線位地址總線口。1 1、接口結(jié)構(gòu)、接口結(jié)構(gòu)一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(二)(二)P P2 2口口(1 1)地址總線)地址總線 單片機擴展時,“控制”信號使 MUX 打向右邊,內(nèi)部的地址線經(jīng)反相器與輸出驅(qū)動器相連,于是內(nèi)部內(nèi)部“地址地址”信號可以由信號可以由P P2 2口引腳輸口引腳輸出。出。2 2、接口功能、接口功能一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(二)(二)P P2 2口口(2 2)通用)通用I/OI/O接口接口 作為通用I/O口時,“控制”信號使MUX 打向左邊,這時P2口電路結(jié)構(gòu)與P1口相同,其功能和用法亦與與

7、P P1 1口相同口相同。2、接口功能一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(二)(二)P P2 2口口 如果單片機無需擴展程序存儲器,只需擴展少量外部RAM(256字節(jié))時,可用Ri間址,這時P2口仍可作為通用I/O口。2 2、接口功能、接口功能(2)通用I/O接口 P2口輸出時能驅(qū)動4個LSTTL負載。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(二)(二)P P2 2口口 P3口一位的結(jié)構(gòu)如下圖所示,與P1口相比多了一個與非門和一個輸入緩沖器,所以它除了可作為一般一般I/OI/O口口外,還具有第二功能第二功能。1 1、接口結(jié)構(gòu)、接口結(jié)構(gòu)一一、并行并行I/OI/O口的功能

8、結(jié)構(gòu)口的功能結(jié)構(gòu)(三)(三)P P3 3口口(1 1)通用)通用I/OI/O接口接口 作為通用I/O接口時,“第二功能輸出”線為“1”,接口的電路結(jié)構(gòu)與P1口相同,所以功能和用法均與與P P1 1相同相同。2 2、接口功能、接口功能一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(三)(三)P P3 3口口(2 2)第二功能)第二功能 2 2、接口功能、接口功能 當P3作為第二功能使用時,各位定義如下:各位定義如下:P3.0 RXD(串行輸入通道)P3.1 TXD(串行輸出通道)P3.2 INT0(外中斷0輸入端)P3.3 INT1(外中斷1輸入端)一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的

9、功能結(jié)構(gòu)(三)(三)P P3 3口口 這些信號有輸出也有輸入,為使第二功能第二功能信號能順暢地輸入或輸出,該口鎖存器的狀態(tài)必須為口鎖存器的狀態(tài)必須為“1”1”。P3.4 T0(定時器0外部輸入)P3.5 T1(定時器1外部輸入)P3.6 WR(外部數(shù)據(jù)存貯器寫選通)P3.7 RD(外部數(shù)據(jù)存貯器讀選通)2 2、接口功能、接口功能P3口輸出時能驅(qū)動4個LSTTL負載。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(三)(三)P P3 3口口1 1、接口結(jié)構(gòu)、接口結(jié)構(gòu) P0口一位的結(jié)構(gòu)如下,輸出驅(qū)動電路由一對場效應(yīng)管組成,其工作狀態(tài)由輸出控制電路控制。P0口可作通用通用I/OI/O,也可作地址

10、地址/ /數(shù)據(jù)總線數(shù)據(jù)總線口。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(四)(四)P P0 0口口(四)(四)P P0 0口口2 2、接口功能、接口功能(1 1)地址)地址/ /數(shù)據(jù)總線數(shù)據(jù)總線 一、并行I/O口的功能結(jié)構(gòu) 這時“控制”信號為1,MUX向上,地址/數(shù)據(jù)信號反相后經(jīng)多路開關(guān)送到下一個場效應(yīng)管的柵極。 若地址/數(shù)據(jù)信號為1,則下一個場效應(yīng)管截止上一個場效應(yīng)管導通,引腳為高電平; 若地址/數(shù)據(jù)信號為0,則下一個場效應(yīng)管導通上一個場效應(yīng)管截止,引腳為低電平。 即地址/數(shù)據(jù)信號可順利的到達引腳。2 2、接口功能、接口功能(2 2)通用)通用I/OI/O接口接口 此時“控制”信號

11、為“0”,MUX向下,輸出驅(qū)動器處于開漏狀態(tài),故需外接上拉電需外接上拉電阻阻,此時電路結(jié)構(gòu)與P1相同,也是一個準雙準雙向向口。當要作為輸入時輸入時,必須先向口鎖存器先向口鎖存器寫寫“1”1”。P0口輸出時能驅(qū)動8個LSTTL負載。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(四)(四)P P0 0口口 作為I/O口應(yīng)用的一個實例,下面介紹80C31單片機的最小應(yīng)用系統(tǒng)如下圖所示:80C31一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu) 80C51指令系統(tǒng)中能與接口打交道的指令指令大體可分兩類分兩類:1 1、一般的輸入/輸出指令2 2、

12、“讀修改寫”指令二、產(chǎn)生接口控制信號的指令二、產(chǎn)生接口控制信號的指令、一般的輸入輸出指令、一般的輸入輸出指令 輸入指令執(zhí)行時,內(nèi)部產(chǎn)生“讀引腳”信號,直接從口線讀入,亦稱亦稱“讀引腳讀引腳”指令指令。見下面實例:MOV A,P1 相當于輸入指令,其它口也可(總線口不能用)MOV R1,P1 可以將P1輸入的數(shù)據(jù)直接送到片內(nèi)RAM的某單元。MOVX A,Ri 可從擴展的RAM或I/O口輸入,高位地址由P2提 供,Ri只提供低位地址。本指令產(chǎn)生本指令產(chǎn)生RDRD信號信號。 二、產(chǎn)生接口控制信號的指令二、產(chǎn)生接口控制信號的指令、一般的輸入輸出指令、一般的輸入輸出指令MOV P1 , AMOV P1

13、, RiMOVX Ri,AMOVX DPTR,AMOV P3,P1 直接從一個口輸入,又向另一個口輸出, 這是較為特殊的一種用法。MOVX A ,DPTR 作用同上一條指令。不過DPH由P2傳送,DPL由P0傳送。本指令產(chǎn)生 信號。 這四種相當于輸出指令,與相應(yīng)的“輸入”指令對應(yīng),后兩條指令產(chǎn)生后兩條指令產(chǎn)生 信信號。號。二、產(chǎn)生接口控制信號的指令二、產(chǎn)生接口控制信號的指令RDWR、“讀修改寫讀修改寫”指令指令 指令執(zhí)行時內(nèi)部產(chǎn)生“讀鎖存器”信號,亦稱讀鎖存器指亦稱讀鎖存器指令令。它們并不是直接從口線讀出,只是從接口鎖存器讀出,經(jīng)修改后再寫入鎖存器,故又稱為又稱為“讀修改寫讀修改寫”指令指令。

14、例如:ANL P1, A ;邏輯與ORL P2, A ;邏輯或XRL P3, A ;邏輯異或JBC P1.1 ,LOOP ;如某位為,跳轉(zhuǎn)并清零該位CPL P3.0 ;對接口某位求反二、產(chǎn)生接口控制信號的指令二、產(chǎn)生接口控制信號的指令、“讀修改寫讀修改寫”指令指令I(lǐng)NC P2 ;接口鎖存器加DEC P1 ;接口鎖存器內(nèi)容減DJNZ P3,LOOP ;減后不為零則跳轉(zhuǎn)還有三條雖不明顯,但也屬此列:MOV P1.1,C ;將進位位送接口的某位CLR P1.1 ;清零接口的某一位SETB P1.1 ;置位接口的某一位二、產(chǎn)生接口控制信號的指令二、產(chǎn)生接口控制信號的指令 5.2 80C515.2 80

15、C51單片機的串行通信接口單片機的串行通信接口一、一、 串行通信的基本概念串行通信的基本概念 三、三、 80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用 二、二、 80C5180C51單片機的串行通信接口單片機的串行通信接口計算機通信有兩種基本方式:計算機通信有兩種基本方式: 并行通信和串行通信并行通信:并行通信:數(shù)據(jù)的各位同時進行傳送, 如圖(a)所示。串行通信:串行通信:數(shù)據(jù)的各位是一位位按順序傳送, 如圖(b)所示。一、串行通信的基本概念一、串行通信的基本概念計算機通信有兩種基本方式:一、串行通信的基本概念一、串行通信的基本概念1 1、串行通信中數(shù)據(jù)傳送方式、串行通信中數(shù)據(jù)傳送方

16、式1)異步異步傳送方式(或稱字符同步字符同步方式) 傳送一個字符時,用一個起始位(低電平0)表示字符的開始,接著從低到高依次傳送數(shù)據(jù)位(58位,可插入奇偶校驗位),最后是停止位(高電平1,可1或1.5或2位)表示字符的結(jié)束,構(gòu)成一幀信息,如下圖所示。一、串行通信的基本概念一、串行通信的基本概念1 1、串行通信中數(shù)據(jù)傳送方式、串行通信中數(shù)據(jù)傳送方式 異步通信中,雙方必須約好字符格式字符格式和波特率波特率。 波特率表示每秒鐘傳送二進制代碼的位數(shù)(包括起始位和停止位)一、串行通信的基本概念一、串行通信的基本概念2)同步同步傳送方式(或稱數(shù)據(jù)塊同步數(shù)據(jù)塊同步方式) 在數(shù)據(jù)塊前加上同步字符同步字符,數(shù)據(jù)

17、間沒有間隔,以一個基本的單位時間傳送一個數(shù)據(jù), 如下圖所示。傳送速率高,但硬件設(shè)備復(fù)雜。1 1、串行通信中數(shù)據(jù)傳送方式、串行通信中數(shù)據(jù)傳送方式一、串行通信的基本概念一、串行通信的基本概念同步通信的數(shù)據(jù)格式同步字符1同步字符2數(shù)據(jù)塊CRC字符#1CRC字符#2開始終了1 1、串行通信中數(shù)據(jù)傳送方式、串行通信中數(shù)據(jù)傳送方式一、串行通信的基本概念一、串行通信的基本概念2 2、串行通信中數(shù)據(jù)傳送方向、串行通信中數(shù)據(jù)傳送方向1)單工單工通信:只允許向一個方向傳送數(shù)據(jù)。2)半雙工半雙工通信:允許雙向傳送數(shù)據(jù),但某一 時刻只能往某一個方向傳送。3)全雙工全雙工通信:允許向兩個方向同時進行數(shù)據(jù) 傳送。一、串行

18、通信的基本概念一、串行通信的基本概念2 2、串行通信中數(shù)據(jù)傳送方向、串行通信中數(shù)據(jù)傳送方向如下圖所示:一、串行通信的基本概念一、串行通信的基本概念1 1、功能特點、功能特點1)為全雙工全雙工串行口,用P3.0和P3.1作為接收數(shù)據(jù)線RXD和發(fā)送數(shù)據(jù)線TXD。 2)具有緩沖接收緩沖接收功能即在接收到的前一個字節(jié)未被CPU讀走之前,就可以逐位接收下一個字節(jié)數(shù)據(jù),直到下一個字節(jié)全部收齊為止,若前一個字節(jié)仍未取走,才被下一個字節(jié)取代。 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口 發(fā)送緩沖器發(fā)送緩沖器和接收緩沖器接收緩沖器共用一個地址,但它們是獨立的物理空間。1 1、 功能特點

19、功能特點3)可用程序控制程序控制 內(nèi)部有專用寄存器SCONSCON(98H)和PCONPCON(87H)用于控制串行通信,包括方式的選擇、接收控制、多機通信控制、波特率是否加倍等;定時器T1可作為串行口的波特率發(fā)生器,可改變串行口通信的定時。 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口1 1、功能特點、功能特點4)有四種工作方式四種工作方式能適應(yīng)不同用途(1 1)方式)方式0 0 為移位寄存器移位寄存器I/OI/O方式方式,數(shù)據(jù)從RXD端串行輸入或輸出,以8位為一幀,按先低位后高位先低位后高位依次傳送;同步信號從TXD端輸出,波特率固定波特率固定為fosc/12。 二

20、、二、80C5180C51單片機的串行通信接口單片機的串行通信接口1 1、功能特點、功能特點(2 2)方式)方式1 1 為8 8位的異步通信接口位的異步通信接口,傳送一幀信息為10位,其中,1位起始位(0),8位數(shù)據(jù)位(低位在前),1位停止位(1)。 這時定時器T T1 1作為波特率發(fā)生器作為波特率發(fā)生器(T1應(yīng)關(guān)中斷)。 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口4)有四種工作方式四種工作方式能適應(yīng)不同用途(2 2)方式)方式1 1 (續(xù))(續(xù)) 波特率= (T1的溢出率)/ n 所以波特率=( 2SMOD/32) (T1的溢出率)=)1(,16)0(,32SMOD

21、SMODn其中1 1、功能特點、功能特點(T T1 1的溢出率的溢出率T T1 1定時時間的倒數(shù))定時時間的倒數(shù)) 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口4)有四種工作方式四種工作方式能適應(yīng)不同用途1 1、功能特點、功能特點 T1的溢出率溢出率,即T1每秒鐘溢出的次數(shù),如果T1定時為TxfxTTTnoscnc212112111的溢出率則xfnosc212 式中Tc為機器周期,n為計數(shù)器T1的位數(shù),x為時間常數(shù)初值的補碼。 下表列出了常用波特率與T1參數(shù)的關(guān)系 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口(2 2)方式)方式1 1 (續(xù))(續(xù)

22、)4)有四種工作方式四種工作方式能適應(yīng)不同用途 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口波特率fosc(MHZ)SMOD 定時器T1C/T方式定時器初值62.5K12102FFH19.2K11.059102FDH9.6K11.059002FDH4.8K11.059002FAH2.4K11.059002F4H1.2K11.059002E8H137.5K11.0590021DH110600272H11012001FEEBH1 1、功能特點、功能特點(3 3)方式)方式2 2 為9 9位的異步通信接口位的異步通信接口,傳送一幀信息為11位,其中1位起始位(0)、1位停止位

23、(1)、9位數(shù)據(jù)位(8位再加上1位附加的可編程為0或1的第九位數(shù)據(jù)位在RB8或TB8)。oscSMODf)642(波特率該方式特別適用于該方式特別適用于多機通信多機通信。 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口4)有四種工作方式四種工作方式能適應(yīng)不同用途1 1、功能特點、功能特點(4 4)方式)方式3 3與方式2類似,唯一的區(qū)別是方式3的波特率可變波特率可變。的溢出率波特率1)322(TSMOD 該方式也適用于多機通信。(波特率(波特率的的計算公式計算公式同方式同方式1 1 ) 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口4)有四種工作方式

24、四種工作方式能適應(yīng)不同用途2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理1 1)串行口的發(fā)送和接收電路)串行口的發(fā)送和接收電路 發(fā)送電路包括SBUF(發(fā)送)、零檢測器和發(fā)送控制器。 發(fā)送發(fā)送過程可通過通過MOV SBUF, AMOV SBUF, A指令指令發(fā)出。 接收電路包括SBUF(接收)、接收移位寄存器和接收控制器等。 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口1 1)串行口的發(fā)送和接收電路)串行口的發(fā)送和接收電路80C512 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理 接收接收過程基于采樣脈沖(RXC16)對RXD線的監(jiān)視,當“1到

25、0跳變檢測器”連續(xù)9次采樣到低電平,確認出現(xiàn)起始位起始位,此后接收器從下一個數(shù)據(jù)位開始改為對第對第7 7、8 8、9 9三個脈沖采樣RXD線,按三中取二按三中取二原則決定所檢測的值原則決定所檢測的值是“0”還是“1” ,如下圖所示:2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理1 1)串行口的發(fā)送和接收電路)串行口的發(fā)送和接收電路 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口 接收電路連續(xù)接收到一幀字符后自動置“1”RI,并向CPU發(fā)中斷請求信號。CPU響應(yīng)中斷后,執(zhí)行指令MOV A,SBUF 把接收到的字符讀入A中。2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理1 1)串行口的發(fā)送和接收電路)串行口的發(fā)送和

26、接收電路 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理2 2)專用寄存器)專用寄存器PCONPCON和波特率和波特率 PCONPCON的最高位是串行口波特率系數(shù)控制位SMOD,當SMOD=1時,使波特率加倍。SMODGF1GF0PDIDL1,波特率加倍1,進入待機方式1,進入掉電方式通用標志位0通用標志位1 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口 2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCONSM0SM1SM2RENTB8RB8TIRISCONSCON格式如下: D7 D6

27、 D5 D4 D3 D2 D1 D0接收中斷標志發(fā)送中斷標志方式2,3時,接收數(shù)據(jù)的第9位方式2,3,發(fā)送數(shù)據(jù)的第9位接收允許位多機通信控制位方式選擇位 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCONSMSM0 0,SM,SM1 1工作方式選擇位,詳見下表:SM0SM1方式功能波特率000同步移位寄存器fosc/1201110位異步收發(fā)可變10211位異步收發(fā)fosc/64或fosc/3211311位異步收發(fā)可變 2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口S

28、MSM2 2、TBTB8 8、RBRB8 8的用法說明:的用法說明:在方式0,SM2應(yīng)為0,TB8和RB8不用。在方式1,TB8不用。 如果如果SMSM2 2=0=0,當收到8位數(shù)據(jù)后,又收到停止位,則不論該停止位為0或為1,都進入RB8,8位數(shù)據(jù)進入SBUF,且置位RI; 如果如果SMSM2 2=1=1,則只有收到有效的停止位(為有效的停止位(為1 1)才進入RB8,8位數(shù)據(jù)才進入SBUF,并激活RI,否則將丟失已收到的一幀數(shù)據(jù)。 2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCON 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口在方

29、式2和方式3,TB8是要發(fā)送的第9位數(shù)據(jù),可用軟件置 “1”或“0”,RB8是接收到的第9位數(shù)據(jù)。 當SMSM2 2=0=0時,9位數(shù)據(jù)收齊后,不論第9位數(shù)據(jù)為0或1,都會把收到的數(shù)據(jù)裝入SBUF和RB8,置位RI; 當SMSM2 2=1=1時,收到的第第9 9位數(shù)據(jù)必須為位數(shù)據(jù)必須為1 1,才把收到的數(shù)據(jù)裝入SBUF和RB8,并置位RI,否則將丟失已收到的一幀信息,也不置位RI。2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCON 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口SMSM2 2、TBTB8 8、RBRB8 8的用法說明:

30、的用法說明: 利用這一特點,可實現(xiàn)主、從多機通信,方法是: 平時,從機將SM2置“1”,當主機要發(fā)送一個數(shù)據(jù)給幾個從機之一時,它先發(fā)一個目標從機的地址字節(jié)(地址字節(jié)第地址字節(jié)第9 9位為位為1 1,數(shù)據(jù)字節(jié)第,數(shù)據(jù)字節(jié)第9 9位為位為0 0),它可以中斷所有從機,每臺從機都接收該地址字節(jié),并判斷主機是否要尋址本機?若是,則清“0” SM2位,準備接收數(shù)據(jù)字節(jié);而未被尋址的從機仍保持SM2=1,不理睬主機發(fā)出的數(shù)據(jù)字節(jié)。 2 2、結(jié)構(gòu)原理、結(jié)構(gòu)原理3 3)串行口的控制寄存器)串行口的控制寄存器SCONSCON 二、二、80C5180C51單片機的串行通信接口單片機的串行通信接口三、三、80C51

31、80C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用1 1、串行口在方式、串行口在方式0 0下的應(yīng)用下的應(yīng)用例1:用80C51串行口外接CD4049擴展8位并行輸出口,如圖所示;8位并行輸出口的各位都接一個共陰極發(fā)光二極管,要求發(fā)光二極管從左到右以一定延時輪流顯示,且不斷循環(huán)。80C51 設(shè)數(shù)據(jù)串行發(fā)送采用查詢方式,顯示的延時依靠調(diào)用延時子程序DELAY來實現(xiàn): ORG 2000H MOV SCON, #00H ;串行口方式初始化 MOV A, #80H ;最左一位發(fā)光管先亮 CLR P1.0 ;關(guān)閉并行輸出1 1、串行口在方式、串行口在方式0 0下的應(yīng)用下的應(yīng)用三、三、80C5180C51單片機串

32、行口的應(yīng)用單片機串行口的應(yīng)用 設(shè)數(shù)據(jù)串行發(fā)送采用查詢方式,顯示的延時依靠調(diào)用延時子程序DELAY來實現(xiàn):START:MOV SBUF, A ;開始串行輸出 LOOP:JNB TI, LOOP ;查詢TI SETB P1.0 ;啟動并行輸出 ACALL DELAY ;顯示延時一段時間 CLR TI ;清發(fā)送中斷標志 RR A ;準備右移一位顯示 CLR P1.0 ;關(guān)閉并行輸出 SJMP START ;再一次串行輸出 1 1、串行口在方式、串行口在方式0 0下的應(yīng)用下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用例

33、2:設(shè)有甲、乙兩臺單片機,編出兩臺單片機間實現(xiàn)如下串行通訊功能的程序:甲機發(fā)送甲機發(fā)送:將首址為ADDRT的128個字節(jié)的數(shù)據(jù) 塊順序向乙機發(fā)送;乙機接收乙機接收:將接收的128個字節(jié)的數(shù)據(jù)塊,順序存放在以首址為ADDRR的數(shù)據(jù)緩沖區(qū)中。三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用解解:編制該類程序的要點是: 選定正確的控制字控制字,以保證接口功能的初始化; 選擇合適的波特率波特率,這主要是選擇定時器1的方式和時間常數(shù)的確定; 在串行中斷服務(wù)程序中要設(shè)置清除中斷標志的指設(shè)置清除中斷標志的指令令,否則將產(chǎn)生另一個中斷。2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用

34、三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用甲甲機發(fā)送程序流程圖如下:串行口初始化定時器1初始化送400bit/s的時間常數(shù)啟動定時器1開中斷置初值取首址數(shù)據(jù)啟動串行發(fā)送等待中斷清中斷標志數(shù)據(jù)塊發(fā)送完?修改指針取發(fā)送數(shù)據(jù)啟動串行發(fā)送中斷返回關(guān)串行口中斷主程序:發(fā)送數(shù)據(jù)中斷服務(wù)程序:YN2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用甲甲機發(fā)送程序清單如下: ORG 0000H LJMP MAINT ;跳至主程序入口 ORG 0023H LJMP INTSE1 ;轉(zhuǎn)至串行中斷服務(wù)程序MAINT:MOV

35、SCON,#01000000B ;置串行口工作方式 MOV TMOD,#20H ;定時器1為定時方式2 MOV TH1,#0D9H ;產(chǎn)生400波特率的時常數(shù) MOV TL1,#0D9H 2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用甲甲機發(fā)送程序清單如下:(續(xù)1) SETB TCON.6 ;啟動定時器1 SETB EA ;CPU開中斷 SETB ES ;串行口開中斷 MOV DPTR,ADDRT ;數(shù)據(jù)區(qū)首址DPTR MOV R0,#00H ;傳送字節(jié)數(shù)初值

36、MOVX A,DPTR ;取第一個發(fā)送字節(jié) MOV SBUF,A ;啟動串行口發(fā)送 SJMP $ ;等待中斷三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用甲甲機發(fā)送程序清單如下:中斷服務(wù)程序:INTSE1:CLR SCON.1 ;清中斷標志 CJNE R0, #7FH, LOOP ;判別128個字節(jié)都發(fā)送完? CLR ES ;發(fā)送完畢,禁止串行口中斷 SJMP ENDT ;轉(zhuǎn)中斷返回 LOOP: INC R0 ;修改字節(jié)數(shù)指針 INC DPTR ;修改地址指針 MOVX A, DPTR ;取發(fā)送數(shù)據(jù) MOV SBUF , A ;啟動串行口 ENDT: RETI ;中斷返回2

37、2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用(續(xù)2)乙機接收程序流程圖如下:串行口初始化定時器1初始化送400bit/s的時間常數(shù)啟動定時器1開中斷置初值等待中斷主程序:禁止串行中斷中斷服務(wù)程序:清中斷標志取接收數(shù)據(jù)數(shù)據(jù)送相應(yīng)緩沖區(qū)修改指針數(shù)據(jù)接收完?中斷返回YN2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用乙乙機接收程序清單如下: ORG 0000H LJMP MAINR ; 轉(zhuǎn)主程序 ORG 0023H LJMP INTSE2 ;轉(zhuǎn)串行口中斷

38、服務(wù)程序MAINR: MOV SCON,#01010000B ; 串口接收,工作方式1 MOV TMOD,#20H ; 定時器1為定時方式2 MOV TH1,#0D9H ;產(chǎn)生400波特率的時常數(shù) MOV TL1,#0D9H 2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用 乙乙機接收程序清單如下:機接收程序清單如下: (續(xù)1) SETB TCON.6 ;啟動定時器1 SETB EA ;CPU 開中斷 SETB ES ;串行口開中 MOV DPTR,ADDRR ;

39、數(shù)據(jù)緩沖區(qū)首址DPTR MOV R0,#00H ;置傳送字節(jié)數(shù)初值 SJMP $ ;等待中斷三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用乙乙機接收程序清單如下: (續(xù)2)中斷服務(wù)程序:INTSE2: CPL SCON.0 ; 清中斷標志 MOV A,SBUF ; 取接收的數(shù)據(jù) MOVX DPTR,A ; 接收的數(shù)據(jù)緩沖區(qū) CJNE R0,#7FH,LOOP ; 128個字節(jié)接收完沒有? CLR ET1 ; 接收完畢則關(guān)T1及關(guān)串行口中斷 CLR ES SJMP SEND LOOP: INC R0 ; 修改計數(shù)指針 INC DPTR ; 修改地址指針 SEND: RETI ;

40、 中斷返回2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用例例3 3設(shè)多機單工通訊如圖所示。通訊程序應(yīng)實現(xiàn)如下功能:主主機:先向從機發(fā)送一幀地址信息,然后再向從機發(fā)送10個數(shù)據(jù)信息。從從機:接收主機發(fā)來的地址信息,并與本機的地址號相比較,若不符合,仍保持SM2=1不變;若相符,則使SM2清零,準備接收后續(xù)數(shù)據(jù)信息,直至接收完10個數(shù)據(jù)信息。2 2、口在其它方式下的應(yīng)用、口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用80C51主主機程序流程如下:初始化設(shè)置指針開中斷置TB8=1,發(fā)送地

41、址信息等待中斷主程序主程序清發(fā)送中斷標志清TB8位準備發(fā)送后續(xù)數(shù)據(jù)信息啟動發(fā)送修改指針判全部數(shù)據(jù)發(fā)送完否關(guān)串行口中斷中斷返回NY串行口中斷服務(wù)程序串行口中斷服務(wù)程序2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用從從機程序流程如下:設(shè)置指針開中斷等待中斷初始化SM2=1主程序主程序2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用與本機地址相比較是否相符合從從機程序流程如下:串行口中斷服務(wù)程序串行口中斷服務(wù)程序清接收中斷標志RI從串行口取數(shù)據(jù)判RB8

42、位=1?清SM2位中斷返回取數(shù)據(jù)送緩沖區(qū)判數(shù)據(jù)是否全部接收完畢?修改指針置SM2=1YNNYYN2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用程序清單如下:主主機: ORG 0000H LJMP MAINT ; 主程序入口地址 ORG 0023H LJMP INTSE1 ; 串行口中斷入口地址 MAINT: MOV PCON,#80H ; 波特率加倍 MOV SCON,#80H ; 串行口方式2 MOV DPTR,#DAADT ; 置數(shù)據(jù)地址指針 MOV R0,#00H ; 置發(fā)送數(shù)據(jù)字節(jié)初值 MOV R2,#ADAD

43、1 ; 從機地址號R2 SETB EA ; CPU開中斷2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用程序清單如下: 主機主程序 (續(xù)) SETB ES ; 串行口開中斷 SETB TR8 ; 置位TB8,作為地址幀標識 MOV A,R2 ; 發(fā)送地址幀信息 MOV SBUF,A SJMP $ ; 等待中斷2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機串行口的應(yīng)用單片機串行口的應(yīng)用主機串行口中斷服務(wù)程序: INTSE1: CLR TI ;清發(fā)中斷標志 CLR TB8 ;清TB8,準備發(fā)送數(shù)據(jù)幀 MOVX A,DPTR ;發(fā)送一個數(shù)據(jù)字節(jié) MOV SBUF,A INC DPTR ;修改指針 INC R0 CJNE R0,#0AH,LOP ;判數(shù)據(jù)字節(jié)是否發(fā)完 CLR ES ; 發(fā)送完則關(guān)串行口中斷 LOP: RETI ; 中斷返回2

溫馨提示

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

評論

0/150

提交評論