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

下載本文檔

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

文檔簡(jiǎn)介

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

2、8 位地址和傳送8位數(shù)據(jù); P P2 2口作為高8位地址總線; P P3 3口也具有第二功能。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)每一個(gè)口都包含: 一個(gè)鎖存器一個(gè)鎖存器 一個(gè)輸出驅(qū)動(dòng)器一個(gè)輸出驅(qū)動(dòng)器 兩個(gè)兩個(gè)(P3口為3個(gè))輸入緩沖器輸入緩沖器 各口的結(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; 場(chǎng)效應(yīng)管和上拉電阻組成輸出驅(qū)動(dòng)器,以增

3、大負(fù)載能力; 三態(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)輸出方式)輸出方式: 單片機(jī)執(zhí)行執(zhí)行MOV PMOV P1 1, #data, #data指令時(shí),數(shù)據(jù)data經(jīng)內(nèi)部總線送入鎖存器鎖存,經(jīng)輸出驅(qū)動(dòng)器送到引腳。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口2 2、接口功能、接口功能(2 2)輸入方式)輸入方式 單片機(jī)執(zhí)行執(zhí)行MO

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

5、/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口 執(zhí)行這些指令時(shí),先是讀鎖存器信號(hào)有效,打開三態(tài)門2,將鎖存器的內(nèi)容讀出,按指令要求修改后再寫入鎖存器中,稱為“讀讀修改修改寫寫”指令。2 2、接口功能、接口功能(3 3)端口操作)端口操作一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口3 3、接口驅(qū)動(dòng)能力、接口驅(qū)動(dòng)能力 P1口輸出時(shí)能驅(qū)動(dòng)3個(gè)LSTTL負(fù)載(輸出電流要小于300A)一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(一)(一)P P1 1口口 P2口一位結(jié)構(gòu)如下圖所示,與P1相比,多了一個(gè)多路開關(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)地址總線)地址總線 單片機(jī)擴(kuò)展時(shí),“控制”信號(hào)使 MUX 打向右邊,內(nèi)部的地址線經(jīng)反相器與輸出驅(qū)動(dòng)器相連,于是內(nèi)部?jī)?nèi)部“地址地址”信號(hào)可以由信號(hào)可以由P P2 2口引腳輸口引腳輸出。出。2 2、接口功能、接口功能一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(二)(二)P P2 2口口(2 2)通用)通用I/OI/O接口接口 作為通用I/O口時(shí),“控制”信號(hào)使MUX 打向左邊,這時(shí)P2口電路結(jié)構(gòu)與P1口相同,其功能和用法亦與與

7、P P1 1口相同口相同。2、接口功能一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(二)(二)P P2 2口口 如果單片機(jī)無需擴(kuò)展程序存儲(chǔ)器,只需擴(kuò)展少量外部RAM(256字節(jié))時(shí),可用Ri間址,這時(shí)P2口仍可作為通用I/O口。2 2、接口功能、接口功能(2)通用I/O接口 P2口輸出時(shí)能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(二)(二)P P2 2口口 P3口一位的結(jié)構(gòu)如下圖所示,與P1口相比多了一個(gè)與非門和一個(gè)輸入緩沖器,所以它除了可作為一般一般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接口時(shí),“第二功能輸出”線為“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、接口功能、接口功能 當(dāng)P3作為第二功能使用時(shí),各位定義如下:各位定義如下: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口口 這些信號(hào)有輸出也有輸入,為使第二功能第二功能信號(hào)能順暢地輸入或輸出,該口鎖存器的狀態(tài)必須為口鎖存器的狀態(tài)必須為“1”1”。P3.4 T0(定時(shí)器0外部輸入)P3.5 T1(定時(shí)器1外部輸入)P3.6 WR(外部數(shù)據(jù)存貯器寫選通)P3.7 RD(外部數(shù)據(jù)存貯器讀選通)2 2、接口功能、接口功能P3口輸出時(shí)能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。一一、并行并行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ū)動(dòng)電路由一對(duì)場(chǎng)效應(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) 這時(shí)“控制”信號(hào)為1,MUX向上,地址/數(shù)據(jù)信號(hào)反相后經(jīng)多路開關(guān)送到下一個(gè)場(chǎng)效應(yīng)管的柵極。 若地址/數(shù)據(jù)信號(hào)為1,則下一個(gè)場(chǎng)效應(yīng)管截止上一個(gè)場(chǎng)效應(yīng)管導(dǎo)通,引腳為高電平; 若地址/數(shù)據(jù)信號(hào)為0,則下一個(gè)場(chǎng)效應(yīng)管導(dǎo)通上一個(gè)場(chǎng)效應(yīng)管截止,引腳為低電平。 即地址/數(shù)據(jù)信號(hào)可順利的到達(dá)引腳。2 2、接口功能、接口功能(2 2)通用)通用I/OI/O接口接口 此時(shí)“控制”信號(hào)

11、為“0”,MUX向下,輸出驅(qū)動(dòng)器處于開漏狀態(tài),故需外接上拉電需外接上拉電阻阻,此時(shí)電路結(jié)構(gòu)與P1相同,也是一個(gè)準(zhǔn)雙準(zhǔn)雙向向口。當(dāng)要作為輸入時(shí)輸入時(shí),必須先向口鎖存器先向口鎖存器寫寫“1”1”。P0口輸出時(shí)能驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。一一、并行并行I/OI/O口的功能結(jié)構(gòu)口的功能結(jié)構(gòu)(四)(四)P P0 0口口 作為I/O口應(yīng)用的一個(gè)實(shí)例,下面介紹80C31單片機(jī)的最小應(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)生接口控制信號(hào)的指令二、產(chǎn)生接口控制信號(hào)的指令、一般的輸入輸出指令、一般的輸入輸出指令 輸入指令執(zhí)行時(shí),內(nèi)部產(chǎn)生“讀引腳”信號(hào),直接從口線讀入,亦稱亦稱“讀引腳讀引腳”指令指令。見下面實(shí)例:MOV A,P1 相當(dāng)于輸入指令,其它口也可(總線口不能用)MOV R1,P1 可以將P1輸入的數(shù)據(jù)直接送到片內(nèi)RAM的某單元。MOVX A,Ri 可從擴(kuò)展的RAM或I/O口輸入,高位地址由P2提 供,Ri只提供低位地址。本指令產(chǎn)生本指令產(chǎn)生RDRD信號(hào)信號(hào)。 二、產(chǎn)生接口控制信號(hào)的指令二、產(chǎn)生接口控制信號(hào)的指令、一般的輸入輸出指令、一般的輸入輸出指令MOV P1 , AMOV P1

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

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

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

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

17、間沒有間隔,以一個(gè)基本的單位時(shí)間傳送一個(gè)數(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)單工單工通信:只允許向一個(gè)方向傳送數(shù)據(jù)。2)半雙工半雙工通信:允許雙向傳送數(shù)據(jù),但某一 時(shí)刻只能往某一個(gè)方向傳送。3)全雙工全雙工通信:允許向兩個(gè)方向同時(shí)進(jìn)行數(shù)據(jù) 傳送。一、串行

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

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

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

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

22、)4)有四種工作方式四種工作方式能適應(yīng)不同用途 二、二、80C5180C51單片機(jī)的串行通信接口單片機(jī)的串行通信接口波特率fosc(MHZ)SMOD 定時(shí)器T1C/T方式定時(shí)器初值62.5K12102FFH19.2K11.059102FDH9.6K11.059002FDH4.8K11.059002FAH2.4K11.059002F4H1.2K11.059002E8H137.5K11.0590021DH110600272H11012001FEEBH1 1、功能特點(diǎn)、功能特點(diǎn)(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(波特率該方式特別適用于該方式特別適用于多機(jī)通信多機(jī)通信。 二、二、80C5180C51單片機(jī)的串行通信接口單片機(jī)的串行通信接口4)有四種工作方式四種工作方式能適應(yīng)不同用途1 1、功能特點(diǎn)、功能特點(diǎn)(4 4)方式)方式3 3與方式2類似,唯一的區(qū)別是方式3的波特率可變波特率可變。的溢出率波特率1)322(TSMOD 該方式也適用于多機(jī)通信。(波特率(波特率的的計(jì)算公式計(jì)算公式同方式同方式1 1 ) 二、二、80C5180C51單片機(jī)的串行通信接口單片機(jī)的串行通信接口4)有四種工作方式

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

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

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

27、 D5 D4 D3 D2 D1 D0接收中斷標(biāo)志發(fā)送中斷標(biāo)志方式2,3時(shí),接收數(shù)據(jù)的第9位方式2,3,發(fā)送數(shù)據(jù)的第9位接收允許位多機(jī)通信控制位方式選擇位 二、二、80C5180C51單片機(jī)的串行通信接口單片機(jī)的串行通信接口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單片機(jī)的串行通信接口單片機(jī)的串行通信接口S

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

29、式2和方式3,TB8是要發(fā)送的第9位數(shù)據(jù),可用軟件置 “1”或“0”,RB8是接收到的第9位數(shù)據(jù)。 當(dāng)SMSM2 2=0=0時(shí),9位數(shù)據(jù)收齊后,不論第9位數(shù)據(jù)為0或1,都會(huì)把收到的數(shù)據(jù)裝入SBUF和RB8,置位RI; 當(dāng)SMSM2 2=1=1時(shí),收到的第第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單片機(jī)的串行通信接口單片機(jī)的串行通信接口SMSM2 2、TBTB8 8、RBRB8 8的用法說明:

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

31、80C51單片機(jī)串行口的應(yīng)用單片機(jī)串行口的應(yīng)用1 1、串行口在方式、串行口在方式0 0下的應(yīng)用下的應(yīng)用例1:用80C51串行口外接CD4049擴(kuò)展8位并行輸出口,如圖所示;8位并行輸出口的各位都接一個(gè)共陰極發(fā)光二極管,要求發(fā)光二極管從左到右以一定延時(shí)輪流顯示,且不斷循環(huán)。80C51 設(shè)數(shù)據(jù)串行發(fā)送采用查詢方式,顯示的延時(shí)依靠調(diào)用延時(shí)子程序DELAY來實(shí)現(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單片機(jī)串

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

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

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

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

36、MOVX A,DPTR ;取第一個(gè)發(fā)送字節(jié) MOV SBUF,A ;啟動(dòng)串行口發(fā)送 SJMP $ ;等待中斷三、三、80C5180C51單片機(jī)串行口的應(yīng)用單片機(jī)串行口的應(yīng)用甲甲機(jī)發(fā)送程序清單如下:中斷服務(wù)程序:INTSE1:CLR SCON.1 ;清中斷標(biāo)志 CJNE R0, #7FH, LOOP ;判別128個(gè)字節(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 ;啟動(dòng)串行口 ENDT: RETI ;中斷返回2

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

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

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

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

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

42、位=1?清SM2位中斷返回取數(shù)據(jù)送緩沖區(qū)判數(shù)據(jù)是否全部接收完畢?修改指針置SM2=1YNNYYN2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機(jī)串行口的應(yīng)用單片機(jī)串行口的應(yīng)用程序清單如下:主主機(jī): 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 ; 從機(jī)地址號(hào)R2 SETB EA ; CPU開中斷2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機(jī)串行口的應(yīng)用單片機(jī)串行口的應(yīng)用程序清單如下: 主機(jī)主程序 (續(xù)) SETB ES ; 串行口開中斷 SETB TR8 ; 置位TB8,作為地址幀標(biāo)識(shí) MOV A,R2 ; 發(fā)送地址幀信息 MOV SBUF,A SJMP $ ; 等待中斷2 2、串行口在其它方式下的應(yīng)用、串行口在其它方式下的應(yīng)用三、三、80C5180C51單片機(jī)串行口的應(yīng)用單片機(jī)串行口的應(yīng)用主機(jī)串行口中斷服務(wù)程序: INTSE1: CLR TI ;清發(fā)中斷標(biāo)志 CLR TB8 ;清TB8,準(zhǔn)備發(fā)送數(shù)據(jù)幀 MOVX A,DPTR ;發(fā)送一個(gè)數(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等.壓縮文件請(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)論