7第6章單片機(jī)定時(shí)計(jì)數(shù)器與串行接口ppt課件_第1頁
7第6章單片機(jī)定時(shí)計(jì)數(shù)器與串行接口ppt課件_第2頁
7第6章單片機(jī)定時(shí)計(jì)數(shù)器與串行接口ppt課件_第3頁
7第6章單片機(jī)定時(shí)計(jì)數(shù)器與串行接口ppt課件_第4頁
7第6章單片機(jī)定時(shí)計(jì)數(shù)器與串行接口ppt課件_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(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章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.1 定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 定時(shí)計(jì)數(shù)器結(jié)構(gòu)和工作原理定時(shí)計(jì)數(shù)器結(jié)構(gòu)和工作原理 定時(shí)計(jì)數(shù)器的控制寄存器定時(shí)計(jì)數(shù)器的控制寄存器 定時(shí)器的四種工作方式定時(shí)器的四種工作方式 定時(shí)計(jì)數(shù)器的應(yīng)用編程定時(shí)計(jì)數(shù)器的應(yīng)用編程5.2 串行接口串行接口第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 51系列單片機(jī)片內(nèi)有二個(gè)十六位定時(shí)系列單片機(jī)片內(nèi)有二個(gè)十六位定時(shí)/計(jì)數(shù)器:定時(shí)器計(jì)數(shù)器:定時(shí)器0(T0)和定時(shí)器和定時(shí)器1(T1)。 兩個(gè)定時(shí)器都有定

2、時(shí)或事件計(jì)數(shù)的功能,可用于定時(shí)控兩個(gè)定時(shí)器都有定時(shí)或事件計(jì)數(shù)的功能,可用于定時(shí)控制、延時(shí)、對(duì)外部事件計(jì)數(shù)和檢測(cè)等場(chǎng)合制、延時(shí)、對(duì)外部事件計(jì)數(shù)和檢測(cè)等場(chǎng)合 定時(shí)定時(shí)/計(jì)數(shù)器實(shí)際上是計(jì)數(shù)器實(shí)際上是16位加位加1計(jì)數(shù)器。計(jì)數(shù)器。 T0由由2個(gè)個(gè)8位持殊功能寄存器位持殊功能寄存器TH0和和TL0構(gòu)成,構(gòu)成, T1由由2個(gè)個(gè)8位持殊功能寄存位持殊功能寄存TH1和和TL1構(gòu)成。構(gòu)成。每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或每個(gè)定時(shí)器都可由軟件設(shè)置為定時(shí)工作方式或 計(jì)數(shù)工作方式。計(jì)數(shù)工作方式。T0和和T1受特殊功能寄存器受特殊功能寄存器TMOD和和TCON控制??刂?。 5.1.1 8051定時(shí)定時(shí)/計(jì)數(shù)器結(jié)

3、構(gòu)和工作原理計(jì)數(shù)器結(jié)構(gòu)和工作原理第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 1. 定時(shí)工作方式定時(shí)工作方式 設(shè)置為定時(shí)工作方式時(shí),定時(shí)器計(jì)數(shù)的脈沖是由設(shè)置為定時(shí)工作方式時(shí),定時(shí)器計(jì)數(shù)的脈沖是由51單片機(jī)單片機(jī)片內(nèi)振蕩器經(jīng)片內(nèi)振蕩器經(jīng)12分頻后產(chǎn)生的。分頻后產(chǎn)生的。 每經(jīng)過一個(gè)機(jī)器周期定時(shí)器每經(jīng)過一個(gè)機(jī)器周期定時(shí)器(T0或或T1)的數(shù)值加的數(shù)值加1直至計(jì)數(shù)直至計(jì)數(shù)滿產(chǎn)生溢出。滿產(chǎn)生溢出。 如:當(dāng)如:當(dāng)8051采用采用12MHz晶體時(shí),每個(gè)機(jī)器周期為晶體時(shí),每個(gè)機(jī)器周期為1s,計(jì)計(jì)5 個(gè)機(jī)器周期即為個(gè)機(jī)器周期即為5 s,即定時(shí),即定時(shí)5 s 。 第第5章章 單片機(jī)的定時(shí)

4、單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 2. 計(jì)數(shù)工作方式 設(shè)置為計(jì)數(shù)工作方式時(shí),通過引腳設(shè)置為計(jì)數(shù)工作方式時(shí),通過引腳T0(P34)和和T1(P35)對(duì)外部脈沖信號(hào)計(jì)數(shù)。對(duì)外部脈沖信號(hào)計(jì)數(shù)。 當(dāng)輸入脈沖信號(hào)產(chǎn)生由當(dāng)輸入脈沖信號(hào)產(chǎn)生由1至至0的下降沿時(shí),定時(shí)器的值加的下降沿時(shí),定時(shí)器的值加1, 在每個(gè)機(jī)器周期在每個(gè)機(jī)器周期CPU采樣采樣T0和和T1的輸入電平。若前一個(gè)機(jī)的輸入電平。若前一個(gè)機(jī)器周期采樣值為高,下一個(gè)機(jī)器周期采樣值為低,則計(jì)數(shù)器器周期采樣值為高,下一個(gè)機(jī)器周期采樣值為低,則計(jì)數(shù)器加加 1。 由于檢測(cè)一個(gè)由于檢測(cè)一個(gè)1至至0的跳變需要二個(gè)機(jī)器周期,故最高計(jì)數(shù)的跳變需要二個(gè)機(jī)

5、器周期,故最高計(jì)數(shù)頻率為振蕩頻率的二十四分之一。頻率為振蕩頻率的二十四分之一。 雖然對(duì)輸入信號(hào)的占空比無特殊要求,但為了確保某個(gè)電雖然對(duì)輸入信號(hào)的占空比無特殊要求,但為了確保某個(gè)電平在變化之前至少被采樣一次,要求電平保持時(shí)間至少是一平在變化之前至少被采樣一次,要求電平保持時(shí)間至少是一個(gè)完整的機(jī)器周期。個(gè)完整的機(jī)器周期。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.1.2 定時(shí)計(jì)數(shù)器的控制寄存器定時(shí)計(jì)數(shù)器的控制寄存器定時(shí)器共有兩個(gè)控制寄存器:定時(shí)器共有兩個(gè)控制寄存器: 定時(shí)器控制定時(shí)器控制TCON88H) 定時(shí)器工作模式寄存器定時(shí)器工作模式寄存器TMOD(89H)1

6、. 工作模式寄存器工作模式寄存器TMOD(89H) TMOD用于控制用于控制T0和和T1的操作模式。其各位的定義如下:的操作模式。其各位的定義如下: TMOD D7D6D5D4 D3D2D1D0 (89H)GATEC/TM1M0GATEC/TM1M0定時(shí)器定時(shí)器T0 定時(shí)器定時(shí)器T1第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 GATE:門控信號(hào):門控信號(hào) GATE=0,TRx=1時(shí)即可啟動(dòng)定時(shí)器工作時(shí)即可啟動(dòng)定時(shí)器工作 ; GATE=1,INTx=1才可啟動(dòng)定時(shí)器工作。才可啟動(dòng)定時(shí)器工作。 C/T:定時(shí)器:定時(shí)器/計(jì)數(shù)器選擇位計(jì)數(shù)器選擇位 C/T=1,為計(jì)數(shù)器方式;

7、,為計(jì)數(shù)器方式; C/T=0,為定時(shí)器方式。,為定時(shí)器方式。 M1 M0 工作模式選擇位工作模式選擇位 M1M0=00 工作方式工作方式013位方式)。位方式)。 M1M0=01 工作方式工作方式116位方式)。位方式)。 M1M0=10 工作方式工作方式28位自動(dòng)再裝入方式)。位自動(dòng)再裝入方式)。 M1M0=11 工作方式工作方式3T0為為2個(gè)個(gè)8位方式)。位方式)。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 TF1 TR1TF0 TR0 IE1IT1 IE0IT0T1 請(qǐng)求請(qǐng)求有有/無無 T1工作工作啟啟/停停 T0 請(qǐng)求請(qǐng)求有有/無無 T0 工作工作啟啟/停停

8、 INT1 請(qǐng)求請(qǐng)求有有/無無 INT1方式方式下沿下沿/ 低電低電平平 INT0請(qǐng)求請(qǐng)求有有/無無 INT0方式方式下沿下沿/低電低電平平 2. 控制寄存器控制寄存器TCON(88H) TCON寄存器寄存器 中定時(shí)器控制中定時(shí)器控制 僅用了其中高四位,其意義如僅用了其中高四位,其意義如下:下: TF1:T1溢出中斷請(qǐng)求標(biāo)志。溢出中斷請(qǐng)求標(biāo)志。 TF1=1,T1有溢出中斷請(qǐng)求。有溢出中斷請(qǐng)求。 TF1=0,T1無溢出中斷請(qǐng)求。無溢出中斷請(qǐng)求。 TR1:T1運(yùn)行控制位。運(yùn)行控制位。 TR1=1,啟動(dòng),啟動(dòng)T1工作。工作。 TR1=0,停止,停止T1工作。工作。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)

9、/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 TF0:T0溢出中斷請(qǐng)求標(biāo)志。溢出中斷請(qǐng)求標(biāo)志。 TF0=1,T0有溢出中斷請(qǐng)求。有溢出中斷請(qǐng)求。 TF0=0,T0無溢出中斷請(qǐng)求。無溢出中斷請(qǐng)求。 TR0:T0運(yùn)行控制位。運(yùn)行控制位。 TR0=1,啟動(dòng),啟動(dòng)T0工作。工作。 TR0=0,停止,停止T0工作。工作。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 定時(shí)計(jì)數(shù)器的內(nèi)部邏輯電路結(jié)構(gòu)定時(shí)計(jì)數(shù)器的內(nèi)部邏輯電路結(jié)構(gòu) &1C/TC/T第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.1.3 定時(shí)器的四種工作方式定時(shí)器的四種工作方式 對(duì)對(duì)TMOD寄存器的寄存器

10、的M1、M0位的設(shè)置,可選擇四種位的設(shè)置,可選擇四種工作方式,即方式工作方式,即方式0、方式、方式1、方式、方式2和方式和方式3。下面用下面用THX、TLXX=1或或0表示表示TH1 TL1 TH0 TL0。 1.方式方式 0定時(shí)器定時(shí)器(T0或或T1)工作于工作于13位定時(shí)、計(jì)數(shù)方式。位定時(shí)、計(jì)數(shù)方式。用于計(jì)數(shù)方式時(shí)最大計(jì)數(shù)值為用于計(jì)數(shù)方式時(shí)最大計(jì)數(shù)值為 213 8192個(gè)脈沖個(gè)脈沖用于定時(shí)工作時(shí),定時(shí)時(shí)間為:用于定時(shí)工作時(shí),定時(shí)時(shí)間為:t(213一一T0初值初值) 時(shí)鐘周期時(shí)鐘周期12在這種模式下,在這種模式下,16寄存器寄存器(THX和和TLX)只用只用13位,位,其中其中THX占高占高

11、8位。其中位。其中TLX占低占低5位,位, TLX的高的高3位位末用。末用。當(dāng)當(dāng)TLX的低的低5位溢出時(shí)向位溢出時(shí)向THX進(jìn)位進(jìn)位,而而THX溢出時(shí)溢出時(shí)硬件置位硬件置位TF0,并申請(qǐng)中斷。,并申請(qǐng)中斷。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 定時(shí)、計(jì)數(shù)溢出否可查詢定時(shí)、計(jì)數(shù)溢出否可查詢TF0TF0是否置位,如果開中斷是否置位,如果開中斷則產(chǎn)生溢出中斷。則產(chǎn)生溢出中斷。 2 .方式方式1 當(dāng)當(dāng)TMOD中中M1M0=01時(shí),定時(shí)計(jì)數(shù)器工作在方式時(shí),定時(shí)計(jì)數(shù)器工作在方式1。該模式是一個(gè)該模式是一個(gè)16位定時(shí)計(jì)數(shù)方式。位定時(shí)計(jì)數(shù)方式。寄存器寄存器TH0和和TL0是以全

12、是以全16位參與操作,位參與操作,計(jì)數(shù)方式時(shí)最大計(jì)數(shù)計(jì)數(shù)方式時(shí)最大計(jì)數(shù) 21665536(個(gè)外部脈沖個(gè)外部脈沖) 用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為:用于定時(shí)工作方式時(shí),定時(shí)時(shí)間為: t(216一一T0初值初值) 時(shí)鐘周期時(shí)鐘周期12 16寄存器寄存器(THX和和TLX) 中中THX提供高提供高8位、位、TLX提供低提供低8位計(jì)數(shù)初值位計(jì)數(shù)初值 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 3. 3. 方式方式2 2 當(dāng)當(dāng)TMODTMOD中中M1M0=10M1M0=10時(shí),定時(shí)器工作在方式時(shí),定時(shí)器工作在方式2 2。 方式方式2 2是是8 8位的可自動(dòng)重裝載的定時(shí)計(jì)數(shù)方式

13、。位的可自動(dòng)重裝載的定時(shí)計(jì)數(shù)方式。1616位的計(jì)數(shù)器被拆成兩個(gè)位的計(jì)數(shù)器被拆成兩個(gè)8 8位,其中位,其中TL0TL0用作用作8 8位計(jì)數(shù)器,位計(jì)數(shù)器, TH0TH0用以保持計(jì)數(shù)初值。當(dāng)用以保持計(jì)數(shù)初值。當(dāng)TL0TL0計(jì)數(shù)溢出,置位計(jì)數(shù)溢出,置位TF0TF0,TH0TH0中的初中的初值自動(dòng)裝入值自動(dòng)裝入TL0TL0,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)計(jì)數(shù)。,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)計(jì)數(shù)。用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值為:用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值為: 2828256(256(個(gè)外部脈沖個(gè)外部脈沖) )。 用于定時(shí)工作方式時(shí),其定時(shí)時(shí)間為;用于定時(shí)工作方式時(shí),其定時(shí)時(shí)間為; t t(28TH0(28TH0初值初值)

14、 )振蕩周期振蕩周期1212這種工作方式可省去用戶重裝常數(shù)的程序,并可產(chǎn)生精確的這種工作方式可省去用戶重裝常數(shù)的程序,并可產(chǎn)生精確的定時(shí)時(shí)間,特別適用作串行口波待率發(fā)生器。定時(shí)時(shí)間,特別適用作串行口波待率發(fā)生器。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 4.4.方式方式3 3當(dāng)當(dāng)TMODTMOD中中M1M0=11M1M0=11時(shí),定時(shí)器工作在方式時(shí),定時(shí)器工作在方式3 3。若將若將T0T0設(shè)置為模式設(shè)置為模式3 3,TL0TL0和和TH0TH0被分成為兩個(gè)互相獨(dú)立的被分成為兩個(gè)互相獨(dú)立的8 8位計(jì)數(shù)器位計(jì)數(shù)器TH0TH0和和 TL0 TL0 。 TL0TL0可工作

15、為定時(shí)方式或計(jì)數(shù)方式。占用原可工作為定時(shí)方式或計(jì)數(shù)方式。占用原T0T0的各控制位、的各控制位、引腳和中斷源。即引腳和中斷源。即C CT T、GATEGATE、TR0TR0、TF0TF0和和T0 (P3.4)T0 (P3.4)引腳、引腳、INT0 (P3.2)INT0 (P3.2)引腳。引腳。 TH0TH0只可用作定時(shí)功能,占用定時(shí)器只可用作定時(shí)功能,占用定時(shí)器T1T1的控制位的控制位TR1TR1和和T1T1的中斷標(biāo)志位的中斷標(biāo)志位TF1TF1,其啟動(dòng)和關(guān)閉僅受,其啟動(dòng)和關(guān)閉僅受TRlTRl的控制。的控制。定時(shí)器定時(shí)器T1T1無模式無模式 3, 3, 可工作于方式可工作于方式0 0、1 1、2

16、2,但不能使用,但不能使用中斷方式。中斷方式。 只有將只有將T1T1用做串行口的波特率發(fā)生器時(shí),用做串行口的波特率發(fā)生器時(shí),T0T0才工作在方才工作在方式式3 3,以便增加一個(gè)定時(shí)器。,以便增加一個(gè)定時(shí)器。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.1.4 定時(shí)計(jì)數(shù)器的應(yīng)用編程定時(shí)計(jì)數(shù)器的應(yīng)用編程5.1.4.1 5.1.4.1 定時(shí)器的計(jì)數(shù)初值定時(shí)器的計(jì)數(shù)初值C C的計(jì)算和裝入的計(jì)算和裝入 如前所述,如前所述,8xx518xx51定時(shí)器定時(shí)器/ /計(jì)數(shù)器不同工作方式的模值不計(jì)數(shù)器不同工作方式的模值不同,由于采用加同,由于采用加1 1計(jì)數(shù),因此計(jì)數(shù)初值應(yīng)為負(fù)值,計(jì)

17、算機(jī)中計(jì)數(shù),因此計(jì)數(shù)初值應(yīng)為負(fù)值,計(jì)算機(jī)中用有符號(hào)數(shù)采用補(bǔ)碼表示。用有符號(hào)數(shù)采用補(bǔ)碼表示。 計(jì)數(shù)初值計(jì)數(shù)初值C C的求法如下。的求法如下。計(jì)數(shù)方式:計(jì)數(shù)方式: 計(jì)數(shù)初值計(jì)數(shù)初值 C=C=模模-X-X其中其中X X為要計(jì)的脈沖個(gè)數(shù))為要計(jì)的脈沖個(gè)數(shù))定時(shí)方式:定時(shí)方式: 計(jì)數(shù)初值計(jì)數(shù)初值 C= t / MCC= t / MC補(bǔ)補(bǔ)= =模模t / MCt / MC 其中其中t t為欲定時(shí)時(shí)間,為欲定時(shí)時(shí)間,MCMC為為8xx518xx51的機(jī)器周的機(jī)器周MC=12/foscMC=12/fosc 當(dāng)采用當(dāng)采用12MHZ12MHZ晶振時(shí),晶振時(shí),MC=1usMC=1us; 當(dāng)采用當(dāng)采用6MHZ6MHZ

18、晶振時(shí),晶振時(shí),MC=2usMC=2us。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 方式方式0( 13位方式)位方式): C=(-64H補(bǔ)補(bǔ)=2000H64H=1F9CH 1F9CH0001 1111 1001 1100B 把把13位中的高八位位中的高八位1111 1100B裝入裝入TH0, 而把而把13位中的低五位位中的低五位xxx1 1100B裝入裝入TL0。 MOV TH0,#0FCH; MOV TL0,#1CH;(xxx用用“0填入填入)方式方式1(16位方式位方式): C=(-64H補(bǔ)補(bǔ)=10000H-64H=FF9CH 用指令裝入計(jì)數(shù)初值:用指令裝入計(jì)

19、數(shù)初值: MOV TH0,#0FFH MOV TL0,#9CH例例 要計(jì)要計(jì)100100個(gè)脈沖的計(jì)數(shù)初值個(gè)脈沖的計(jì)數(shù)初值第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 方式方式28位自動(dòng)再裝入方式)位自動(dòng)再裝入方式) C=(64H補(bǔ)補(bǔ)=100H64H=9CH 初值既要裝入初值既要裝入TH0,也要裝入,也要裝入TL0: MOV TH0,#9CH MOV TL0,#9CH第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.1.4.2 定時(shí)計(jì)數(shù)器的初始化編程定時(shí)計(jì)數(shù)器的初始化編程 定時(shí)計(jì)數(shù)器的初始化編程步驟:定時(shí)計(jì)數(shù)器的初始化編程步驟:1根據(jù)定時(shí)時(shí)間要

20、求或計(jì)數(shù)要求計(jì)算計(jì)數(shù)器初值;根據(jù)定時(shí)時(shí)間要求或計(jì)數(shù)要求計(jì)算計(jì)數(shù)器初值;2工作方式控制字送工作方式控制字送TMOD寄存器;寄存器;3送計(jì)數(shù)初值的高八位和低八位到送計(jì)數(shù)初值的高八位和低八位到THx和和TLx寄存寄存 器中;器中;4啟動(dòng)定時(shí)或計(jì)數(shù)),即將啟動(dòng)定時(shí)或計(jì)數(shù)),即將TRx置位。置位。 如果工作于中斷方式,需要置位如果工作于中斷方式,需要置位EA中斷總開關(guān)及中斷總開關(guān)及ETx允許定時(shí)允許定時(shí)/計(jì)數(shù)器中斷)。并編中斷服務(wù)程序。計(jì)數(shù)器中斷)。并編中斷服務(wù)程序。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 例例5-1 5-1 如圖如圖7-27-2所示,所示,P1P1中接有

21、八個(gè)發(fā)光二極中接有八個(gè)發(fā)光二極管,編程使八個(gè)管輪流管,編程使八個(gè)管輪流點(diǎn)亮,每個(gè)管亮點(diǎn)亮,每個(gè)管亮100ms100ms,設(shè)晶振為設(shè)晶振為6MHz6MHz。用定。用定時(shí)中斷方式時(shí)中斷方式. .5.1.4.3 5.1.4.3 應(yīng)用編程舉例應(yīng)用編程舉例第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 分析分析 利用利用T1T1完成完成100ms100ms的定時(shí),當(dāng)?shù)亩〞r(shí),當(dāng)P1P1口線輸出口線輸出“1”1”時(shí),發(fā)光二極管亮,每隔時(shí),發(fā)光二極管亮,每隔100ms100ms1 1左移一次,采左移一次,采用定時(shí)方式用定時(shí)方式1 1,先計(jì)算計(jì)數(shù)初值:,先計(jì)算計(jì)數(shù)初值: 每個(gè)脈沖周期每個(gè)

22、脈沖周期MC =2s MC =2s 100ms/2s =50000=C350H 100ms/2s =50000=C350H (C350HC350H補(bǔ)補(bǔ) =10000H-C350H=3CB0H=10000H-C350H=3CB0H 定時(shí)器工作在方式定時(shí)器工作在方式1,1,定時(shí)方式定時(shí)方式, ,初值是初值是 TH1=0X3CTH1=0X3C TL1=0XB0 TL1=0XB0 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 查詢方式如下:查詢方式如下: ORG 0030HORG 0030H MOV A MOV A,#01H#01H:置第一個(gè):置第一個(gè)LEDLED亮亮NEXT

23、NEXT:MOV P1MOV P1,A A MOV TMOD MOV TMOD,#10H #10H ;T1T1工作于定時(shí)方式工作于定時(shí)方式1 1 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H#0B0H; 定時(shí)定時(shí)100ms 100ms SETB TR1 SETB TR1 AGAI: JBC TF1,SHIAGAI: JBC TF1,SHI; 100ms100ms到轉(zhuǎn)到轉(zhuǎn)SHI,SHI,并清并清TF1TF1 SJMP AGAI SJMP AGAISHISHI: RL ARL A SJMP NEXT SJMP NEXT第第5章章 單片機(jī)的定時(shí)單片機(jī)的

24、定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 中斷方式中斷方式 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ;單片機(jī)復(fù)位后從;單片機(jī)復(fù)位后從0000H0000H開始執(zhí)行開始執(zhí)行 ORG 001BHORG 001BH AJMP IV1 AJMP IV1 ;轉(zhuǎn)移到;轉(zhuǎn)移到IV1IV1 ORG 0030H ORG 0030H ;主程序;主程序MAINMAIN:MOV AMOV A,#01H #01H MOV P1 MOV P1,A A ;置第一個(gè);置第一個(gè)LEDLED亮亮 MOV TMODMOV TMOD,#10H #10H ;T1T1工作于定時(shí)方式工作于定時(shí)方式1 1

25、 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H #0B0H ;定時(shí);定時(shí)100ms100ms SETB TR1 SETB TR1 ;啟動(dòng);啟動(dòng)T1T1工作工作 SETB ET1 SETB ET1 ;允許;允許T1T1中斷中斷WAITWAIT:SJMP WAIT SJMP WAIT ;等待中斷;等待中斷第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 IV1IV1:RL A RL A ;中斷服務(wù)程序,左移一位;中斷服務(wù)程序,左移一位 MOV P1MOV P1,A A ;下一個(gè)發(fā)光二極管亮;下一個(gè)發(fā)光二極管亮 MOV TH1MO

26、V TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H #0B0H ;重裝計(jì)數(shù)初值;重裝計(jì)數(shù)初值 RETI RETI ;中斷返回;中斷返回以上程序進(jìn)入循環(huán)執(zhí)行以上程序進(jìn)入循環(huán)執(zhí)行, ,八個(gè)八個(gè)LEDLED一直循環(huán)輪流點(diǎn)亮。一直循環(huán)輪流點(diǎn)亮。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 方法方法1:1:采用采用T0T0產(chǎn)生周期為產(chǎn)生周期為200ms200ms脈沖,即脈沖,即P1.0P1.0每每100ms100ms取反一次作取反一次作為為T1T1的計(jì)數(shù)脈沖,的計(jì)數(shù)脈沖,T1T1對(duì)下降沿計(jì)數(shù),因此對(duì)下降沿計(jì)數(shù),因此T1T1計(jì)計(jì)5 5個(gè)脈沖正好個(gè)脈沖正好10

27、0ms100ms。T0T0采用方式采用方式1 1,X= X= 得得X=3CB0HX=3CB0H,T1T1采用方式采用方式2 2,計(jì)數(shù)初值計(jì)數(shù)初值X = X = 5=FBH5=FBH均采用查詢方式,均采用查詢方式,流程圖和程序如下:流程圖和程序如下:162162210100382例例5-2 5-2 在在P1.7P1.7端接一個(gè)發(fā)光二極管端接一個(gè)發(fā)光二極管LEDLED,要求利用定時(shí)控制使,要求利用定時(shí)控制使LEDLED亮一秒滅一秒周而復(fù)始,設(shè)亮一秒滅一秒周而復(fù)始,設(shè)fosc=6MHZfosc=6MHZ。解解: 16: 16位定時(shí)最大為位定時(shí)最大為 * *2us=131.072ms2us=131.0

28、72ms,顯然不能滿足要,顯然不能滿足要求,可用以下兩種方法解決。求,可用以下兩種方法解決。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 ORG 0000H ORG 0000HMAINMAIN:CLR P1.7CLR P1.7 SETB P1.0 SETB P1.0 MOV TMOD MOV TMOD,#61H#61H MOV TH1 MOV TH1,#0FBH#0FBH MOV TL1 MOV TL1,#0FBH#0FBH SETB TR1 SETB TR1LOOP1:CPL P1.7LOOP1

29、:CPL P1.7 LOOP2 LOOP2:MOV TH0MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H#0B0H SETB TR0 SETB TR0 LOOP3: JBC TF0 LOOP3: JBC TF0,LOOP4LOOP4 SJMP LOOP3 SJMP LOOP3 LOOP4 LOOP4:CPL P1.0CPL P1.0 JBC TF1 JBC TF1,LOOP1LOOP1 AJMP LOOP2 AJMP LOOP2 END END 程序中用程序中用JBCJBC指令對(duì)定時(shí)指令對(duì)定時(shí)/ /計(jì)數(shù)溢出標(biāo)志位計(jì)數(shù)溢出標(biāo)志位進(jìn)行檢測(cè),當(dāng)標(biāo)志位為進(jìn)行檢測(cè),當(dāng)標(biāo)志位

30、為1 1時(shí)跳轉(zhuǎn)并清標(biāo)志。時(shí)跳轉(zhuǎn)并清標(biāo)志。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 方法方法2:T0每隔每隔100ms中斷一次,利用軟件對(duì)中斷一次,利用軟件對(duì)T0的中斷次數(shù)的中斷次數(shù)進(jìn)行計(jì)數(shù),中斷進(jìn)行計(jì)數(shù),中斷10次即實(shí)現(xiàn)了次即實(shí)現(xiàn)了1秒的定時(shí)。秒的定時(shí)。 ORG 000BH ;T0中斷服務(wù)程序入口中斷服務(wù)程序入口 AJMP IP0 ORG 0030H ;主程序開始;主程序開始 MAIN:CLR P1.7 ;T0定時(shí)定時(shí)100ms MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA第第5章章 單片機(jī)的定

31、時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 MOV R4 MOV R4,#0AH#0AH;中斷;中斷1010次計(jì)數(shù)次計(jì)數(shù) SETB TR0SETB TR0 SJMP SJMP ;等待中斷;等待中斷 IP0IP0:DJNZ R4DJNZ R4,RET0RET0; MOV R4MOV R4,#0AH#0AH CPL P1.7 CPL P1.7RET0RET0:MOV TH0MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H#0B0H SETB TR0 SETB TR0 RETI RETI第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 例例5-

32、 有有P3.4引腳引腳(T0)輸入一低頻信號(hào)輸入一低頻信號(hào)(其小于其小于0.5kHZ),要求要求P3.4每發(fā)每發(fā)生一次負(fù)跳變時(shí),生一次負(fù)跳變時(shí), P1.0輸出一個(gè)輸出一個(gè)500us同步負(fù)脈沖,同時(shí)同步負(fù)脈沖,同時(shí)P1.1輸出一個(gè)輸出一個(gè)1ms的同步正脈沖。已知晶振頻率為的同步正脈沖。已知晶振頻率為6MHZ。P3.4P3.4500us500us1ms1ms定時(shí)方式定時(shí)方式計(jì)數(shù)方式計(jì)數(shù)方式 計(jì)數(shù)方式計(jì)數(shù)方式(初值(初值FFH)定時(shí)方式定時(shí)方式1ms1ms500us500usP1.0P1.0P1.1P1.1第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 解得解得X=6X=6第

33、第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 源程序如下:源程序如下:BEGIN:MOV TMOD,#6H ; 設(shè)設(shè)T0為方式外部計(jì)數(shù)為方式外部計(jì)數(shù) MOV TH0,#0FFH ;計(jì)數(shù)一個(gè)脈沖;計(jì)數(shù)一個(gè)脈沖 MOV TL0,#0FFH CLR P1.1 ;P1.1初值為初值為0 SETB TR0 ;啟動(dòng)計(jì)數(shù)器;啟動(dòng)計(jì)數(shù)器DELL: JBC TF0,RESP1 ;檢測(cè)外跳變信號(hào);檢測(cè)外跳變信號(hào) AJMP DELLRESP1:CLR TR0 MOV TMOD,#02H;重置;重置T0為為500ms定時(shí)定時(shí) 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接

34、口 MOV TH0,#06H MOV TH0,#06H ;重置定時(shí)初值;重置定時(shí)初值 MOV TL0,#06HMOV TL0,#06H SETB P1.1 ; P1.1 SETB P1.1 ; P1.1置置1 1 CLR P1.0 ; P1.0 CLR P1.0 ; P1.0清清0 0 SETB TR0 ; SETB TR0 ; 啟動(dòng)定時(shí)計(jì)數(shù)器啟動(dòng)定時(shí)計(jì)數(shù)器DEL2: JBC TF0, RESP2 DEL2: JBC TF0, RESP2 ;檢測(cè)第一次;檢測(cè)第一次500us500us到否到否 AJMP DEL2AJMP DEL2RESP: SETB P1.0 RESP: SETB P1.0 ;

35、P1.0P1.0恢復(fù)恢復(fù)1 1DEL3: JBC TF0,RESP3 DEL3: JBC TF0,RESP3 ;檢測(cè)第二次;檢測(cè)第二次500us500us到否到否 AJMP DEL3AJMP DEL3RESP3: CLR P1.1 RESP3: CLR P1.1 ; P1.1P1.1復(fù)復(fù)0 0 CLR TR0 CLR TR0 AJMP BEGIN AJMP BEGIN第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.1.4.4 門控位的應(yīng)用門控位的應(yīng)用 門控位門控位GATE為為1時(shí),時(shí),TRx=1,INTx=1才能啟動(dòng)定時(shí)器。才能啟動(dòng)定時(shí)器。利用這個(gè)特性可以測(cè)量外部輸

36、入脈沖的寬度。利用這個(gè)特性可以測(cè)量外部輸入脈沖的寬度。例例7-4 利用利用T0門控位測(cè)試門控位測(cè)試 INT0引腳上出現(xiàn)的正脈沖寬度,已引腳上出現(xiàn)的正脈沖寬度,已知晶振頻率為知晶振頻率為12MHz,將所測(cè)得值最高位,將所測(cè)得值最高位 存入片內(nèi)存入片內(nèi)71H單元,低位存入單元,低位存入70H單元。單元。解:設(shè)外部脈沖解:設(shè)外部脈沖 由由(P3.2)輸入,輸入,T0工作于定時(shí)方式工作于定時(shí)方式 1 (16位計(jì)數(shù)位計(jì)數(shù)),GATE設(shè)為設(shè)為1。測(cè)試時(shí),應(yīng)在。測(cè)試時(shí),應(yīng)在INT0 低電平時(shí),低電平時(shí),設(shè)置設(shè)置TR0為為1(16位計(jì)數(shù)位計(jì)數(shù));當(dāng);當(dāng)INT0 變?yōu)楦唠娖綍r(shí),就啟動(dòng)計(jì)變?yōu)楦唠娖綍r(shí),就啟動(dòng)計(jì)數(shù);

37、數(shù); 再次變低時(shí),停止計(jì)數(shù)。此計(jì)數(shù)值與機(jī)器周期的乘積即再次變低時(shí),停止計(jì)數(shù)。此計(jì)數(shù)值與機(jī)器周期的乘積即為被測(cè)正脈沖的寬度。因?yàn)楸粶y(cè)正脈沖的寬度。因fosc=12MHZ,機(jī)器周期為,機(jī)器周期為1us,測(cè),測(cè)試過程如下。試過程如下。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 源程序如下:源程序如下: MOV TMOD,#09H ; 設(shè)設(shè)T0為方式為方式1 MOV TL0,#00H ;設(shè)計(jì)初值取最大值;設(shè)計(jì)初值取最大值 MOV TH0,#00H MOV R0,#70H JB P3.2, $ ;等;等P3.2(INT0 )變低變低 SETB TR0 ;啟動(dòng);啟動(dòng)T0準(zhǔn)備工作

38、準(zhǔn)備工作 JNB P3.2, $ ;等待;等待P3.2(INT0 ) JB P3.2,$ ; 等待等待P3.2(INT0 ) CLR TR0 ;停止計(jì)數(shù)停止計(jì)數(shù)T0從從0開始計(jì)數(shù)開始計(jì)數(shù)INT0INT0 09H (TMOD) 1 TR0 0 TR0T0停止計(jì)數(shù)停止計(jì)數(shù)第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 MOV R0,TL0 ;存放結(jié)果;存放結(jié)果 INC R0 MOV R0,TH0 SJMP $ 讀者不難編出讀者不難編出C語言程序。這種方案被測(cè)脈沖的寬度最大為語言程序。這種方案被測(cè)脈沖的寬度最大為65535個(gè)機(jī)器周個(gè)機(jī)器周期。由于靠軟件啟動(dòng)和停止計(jì)數(shù),有一定的

39、測(cè)量誤差。其可能的最大誤差與指期。由于靠軟件啟動(dòng)和停止計(jì)數(shù),有一定的測(cè)量誤差。其可能的最大誤差與指令的執(zhí)行時(shí)間有關(guān)。令的執(zhí)行時(shí)間有關(guān)。 此例中,在讀取定時(shí)器的計(jì)數(shù)之前,已把它停住。但在某些情況下,不希此例中,在讀取定時(shí)器的計(jì)數(shù)之前,已把它停住。但在某些情況下,不希望在讀計(jì)數(shù)值時(shí)打斷定時(shí)的過程,由于我們不可能在同一時(shí)刻讀取望在讀計(jì)數(shù)值時(shí)打斷定時(shí)的過程,由于我們不可能在同一時(shí)刻讀取THX和和TLX的內(nèi)容。讀取一個(gè)時(shí)恰好另一個(gè)產(chǎn)生溢出,在這種情況下,讀取的計(jì)數(shù)值的內(nèi)容。讀取一個(gè)時(shí)恰好另一個(gè)產(chǎn)生溢出,在這種情況下,讀取的計(jì)數(shù)值有可能是錯(cuò)的??梢越鉀Q錯(cuò)讀的方法是:有可能是錯(cuò)的。可以解決錯(cuò)讀的方法是:第第

40、5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 先讀先讀THX后讀后讀TLX,若兩次讀得的,若兩次讀得的THx沒有發(fā)生變化,沒有發(fā)生變化,則可確定讀到的內(nèi)容是正確的。若前后兩次讀到的則可確定讀到的內(nèi)容是正確的。若前后兩次讀到的THx有變有變化,則再重復(fù)上述過程,重復(fù)讀到的內(nèi)容就應(yīng)該是正確的了?;?,則再重復(fù)上述過程,重復(fù)讀到的內(nèi)容就應(yīng)該是正確的了。下面是按此下面是按此思路編寫的程序段,讀到的思路編寫的程序段,讀到的TH0 和和TL0放在放在R1和和R0內(nèi):內(nèi): RP:MOV A,TH0; MOV R0,TL0; CJNE A,TH0,RP; MOV R1,A第第5章章 單片機(jī)

41、的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.1.5 小小 結(jié)結(jié) 定時(shí)計(jì)數(shù)器應(yīng)用非常廣泛,如定時(shí)采樣、時(shí)間測(cè)定時(shí)計(jì)數(shù)器應(yīng)用非常廣泛,如定時(shí)采樣、時(shí)間測(cè)量、產(chǎn)生音響、作脈沖源、制作日歷時(shí)鐘、測(cè)量波量、產(chǎn)生音響、作脈沖源、制作日歷時(shí)鐘、測(cè)量波形的頻率和占空比、檢測(cè)電機(jī)轉(zhuǎn)速等。因此應(yīng)很好形的頻率和占空比、檢測(cè)電機(jī)轉(zhuǎn)速等。因此應(yīng)很好掌握。掌握。 51系列單片機(jī)既有兩個(gè)系列單片機(jī)既有兩個(gè)16位的定時(shí)計(jì)數(shù)器,有四位的定時(shí)計(jì)數(shù)器,有四種不同的工作方式,歸納于下表:種不同的工作方式,歸納于下表:第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 28=256=100H28=25

42、6=100H216=65536=10000H213=8192=2000H 模模 值值 (計(jì)數(shù)最大值計(jì)數(shù)最大值)TL0定時(shí),計(jì)數(shù)定時(shí),計(jì)數(shù)占用占用TR0、TF0 ;TH0定時(shí),運(yùn)用定時(shí),運(yùn)用T1 的的TR1、TF1此時(shí)此時(shí)T1作波特率作波特率發(fā)生器發(fā)生器定時(shí)、計(jì)數(shù)范圍小,定時(shí)、計(jì)數(shù)范圍小,不用重裝時(shí)間常數(shù),不用重裝時(shí)間常數(shù),多用于串行通信的波多用于串行通信的波特率發(fā)生器特率發(fā)生器用于用于定時(shí)時(shí)間定時(shí)時(shí)間 65.5ms,計(jì)數(shù)脈沖計(jì)數(shù)脈沖 65536 個(gè)個(gè)場(chǎng)所場(chǎng)所用于用于定時(shí)時(shí)間定時(shí)時(shí)間 8.19ms ,計(jì)數(shù)脈沖計(jì)數(shù)脈沖 8192 個(gè)個(gè)場(chǎng)所場(chǎng)所 應(yīng)用場(chǎng)合應(yīng)用場(chǎng)合(設(shè)設(shè)fosc12MHz)同方式同方式

43、0、1第一次裝入第一次裝入,啟動(dòng)工啟動(dòng)工作后作后,每次每次TL回零后回零后,不用程序裝入不用程序裝入,由由TH自動(dòng)裝入到自動(dòng)裝入到TL每啟動(dòng)一次工作每啟動(dòng)一次工作,需裝入一次需裝入一次計(jì)數(shù)初值計(jì)數(shù)初值 同左同左 TH TL高八位高八位 TH低八位低八位 TL高八位高八位 TH低五位低五位 TL 計(jì)數(shù)初值計(jì)數(shù)初值C的裝入的裝入方式方式 3 3T0T0兩個(gè)兩個(gè)8 8位位 方式方式方式方式 2 28 8位自動(dòng)位自動(dòng)重裝方式重裝方式方式方式 116位定時(shí)位定時(shí)計(jì)數(shù)方式計(jì)數(shù)方式 方式方式 013位定時(shí)位定時(shí)計(jì)數(shù)方式計(jì)數(shù)方式 方方 式式八位八位第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與

44、串行接口 定時(shí)和計(jì)數(shù)實(shí)質(zhì)都是對(duì)脈沖的計(jì)數(shù),只是被計(jì)脈沖的來源定時(shí)和計(jì)數(shù)實(shí)質(zhì)都是對(duì)脈沖的計(jì)數(shù),只是被計(jì)脈沖的來源不同,定時(shí)方式的被計(jì)脈沖來源于時(shí)鐘,計(jì)數(shù)方式的被計(jì)脈沖不同,定時(shí)方式的被計(jì)脈沖來源于時(shí)鐘,計(jì)數(shù)方式的被計(jì)脈沖來源于外部,定時(shí)方式的計(jì)數(shù)初值和被計(jì)脈沖周期有關(guān),計(jì)數(shù)來源于外部,定時(shí)方式的計(jì)數(shù)初值和被計(jì)脈沖周期有關(guān),計(jì)數(shù)方式的和被計(jì)脈沖的個(gè)數(shù)有關(guān)。方式的和被計(jì)脈沖的個(gè)數(shù)有關(guān)。 無論定時(shí)還是計(jì)數(shù),當(dāng)計(jì)滿規(guī)定的無論定時(shí)還是計(jì)數(shù),當(dāng)計(jì)滿規(guī)定的 脈沖個(gè)數(shù)產(chǎn)生溢出計(jì)脈沖個(gè)數(shù)產(chǎn)生溢出計(jì)數(shù)初值寄存器回零),置位數(shù)初值寄存器回零),置位TFx , 可以通過程序查詢,如果允可以通過程序查詢,如果允許中斷,會(huì)

45、產(chǎn)生中斷。許中斷,會(huì)產(chǎn)生中斷。 本章應(yīng)重點(diǎn)掌握定時(shí)計(jì)數(shù)器的應(yīng)用設(shè)計(jì)本章應(yīng)重點(diǎn)掌握定時(shí)計(jì)數(shù)器的應(yīng)用設(shè)計(jì)第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.2串行接口串行接口概述概述單片機(jī)串行口的結(jié)構(gòu)與工作原理單片機(jī)串行口的結(jié)構(gòu)與工作原理串行口的控制寄存器串行口的控制寄存器串行口的工作方式串行口的工作方式串行口的應(yīng)用編程串行口的應(yīng)用編程第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5 .2. 1 概 述 單片機(jī)應(yīng)用與數(shù)據(jù)采集或工業(yè)控制時(shí),往往作為前端機(jī)安裝在工業(yè)現(xiàn)場(chǎng),遠(yuǎn)離主機(jī),現(xiàn)場(chǎng)數(shù)據(jù)采用串行通信方式發(fā)往主機(jī)進(jìn)行處理,以降低通信成本,提高通信可靠性

46、。如下圖所示。 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 數(shù)據(jù)通信方式有兩種:并行通信與串行通信數(shù)據(jù)通信方式有兩種:并行通信與串行通信并行通信:并行通信: 所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收,所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收, 數(shù)據(jù)有多少位就需要多少根數(shù)據(jù)線。數(shù)據(jù)有多少位就需要多少根數(shù)據(jù)線。 特點(diǎn):特點(diǎn): 速度快,成本高,適合近距離傳輸速度快,成本高,適合近距離傳輸 如計(jì)算機(jī)并口,打印機(jī),如計(jì)算機(jī)并口,打印機(jī),8255 。 串行通信:所傳送數(shù)據(jù)的各位按順序一位一位串行通信:所傳送數(shù)據(jù)的各位按順序一位一位 地發(fā)送或接收。只需一根數(shù)據(jù),一根地線,共地發(fā)送或接收。只需一根數(shù)據(jù)

47、,一根地線,共2根根 (如雙向通信發(fā)送和接收各需(如雙向通信發(fā)送和接收各需1根數(shù)據(jù)線。)根數(shù)據(jù)線。) 特點(diǎn):成本低,硬件方便,適合遠(yuǎn)距離通信,特點(diǎn):成本低,硬件方便,適合遠(yuǎn)距離通信, 傳輸速度低。傳輸速度低。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 串行通信的分類:同步串行通信和異步串行通信串行通信的分類:同步串行通信和異步串行通信一、異步通信:一、異步通信: 通信的雙方應(yīng)該有一個(gè)約定,什么時(shí)候開始發(fā)送,什么通信的雙方應(yīng)該有一個(gè)約定,什么時(shí)候開始發(fā)送,什么時(shí)候發(fā)送完畢;接收方收到的信息是否正確

48、等,這就是通信時(shí)候發(fā)送完畢;接收方收到的信息是否正確等,這就是通信協(xié)議。協(xié)議。 異步串行通信一幀數(shù)據(jù)格式:異步串行通信一幀數(shù)據(jù)格式: 一個(gè)起始位一個(gè)起始位 “0”,表示字符的開始,然后是表示字符的開始,然后是58位數(shù)據(jù)即該位數(shù)據(jù)即該字符的代碼,規(guī)定低位在前,高位在后,接字符的代碼,規(guī)定低位在前,高位在后,接 下來是奇偶校驗(yàn)下來是奇偶校驗(yàn)位位(可省略可省略),最后以停止位,最后以停止位“1表示字符的結(jié)束。表示字符的結(jié)束。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 優(yōu)點(diǎn):硬件結(jié)構(gòu)簡(jiǎn)單。優(yōu)點(diǎn):硬件結(jié)構(gòu)簡(jiǎn)單。缺陷:傳輸速度慢。缺陷:傳輸速度慢。P1D0 D1D2 D3 D4

49、 D5 D6 D7P10第第n個(gè)字符一幀)個(gè)字符一幀)n-1n+10D0起起始始位位數(shù)據(jù)位數(shù)據(jù)位58位)位)校校驗(yàn)驗(yàn)位位停停止止位位第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 二、同步通信二、同步通信 在同步通信中,發(fā)送方在數(shù)據(jù)或字符開始處就用同步字符在同步通信中,發(fā)送方在數(shù)據(jù)或字符開始處就用同步字符(常約定常約定12個(gè)字節(jié)個(gè)字節(jié))指示一幀的開始指示一幀的開始 ,由時(shí)鐘來實(shí)現(xiàn)發(fā)送端和,由時(shí)鐘來實(shí)現(xiàn)發(fā)送端和接收端同步,接收方一旦檢測(cè)到與規(guī)定的同步字符符合,下面接收端同步,接收方一旦檢測(cè)到與規(guī)定的同步字符符合,下面 就連續(xù)按順序傳送若干個(gè)數(shù)據(jù)就連續(xù)按順序傳送若干個(gè)數(shù)據(jù)

50、,最后發(fā)校驗(yàn)字節(jié)。見下圖:,最后發(fā)校驗(yàn)字節(jié)。見下圖:SYN字符字符1SYN字符字符2數(shù)據(jù)數(shù)據(jù)1數(shù)據(jù)數(shù)據(jù)2.數(shù)據(jù)數(shù)據(jù)n連續(xù)傳送連續(xù)傳送n 個(gè)數(shù)據(jù)個(gè)數(shù)據(jù)校驗(yàn)校驗(yàn)第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 三、單工、半雙工、全雙工通信方式三、單工、半雙工、全雙工通信方式 按通信方向分類:?jiǎn)喂ぁ腚p工、全雙工通信方式按通信方向分類:?jiǎn)喂?、半雙工、全雙工通信方式 1 單工方式單工方式: 一端是發(fā)送端,另外一端是接收端:一端是發(fā)送端,另外一端是接收端: 2. 半雙工方式半雙工方式 每端口有一個(gè)發(fā)送器和一個(gè)接收器,通過開關(guān)每端口有一個(gè)發(fā)送器和一個(gè)接收器,通過開關(guān)連接在線路上,數(shù)據(jù)

51、可以雙向傳送,但不能同時(shí)連接在線路上,數(shù)據(jù)可以雙向傳送,但不能同時(shí)發(fā)送和接收發(fā)送和接收. 要通過換向器轉(zhuǎn)換方向。要通過換向器轉(zhuǎn)換方向。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 3. 全雙工方式全雙工方式 通信雙方用兩個(gè)獨(dú)立的收發(fā)器單獨(dú)連接通信雙方用兩個(gè)獨(dú)立的收發(fā)器單獨(dú)連接,可以可以同時(shí)發(fā)送和接收數(shù)據(jù)同時(shí)發(fā)送和接收數(shù)據(jù),因而提高了速度。因而提高了速度。 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 1.實(shí)現(xiàn)數(shù)據(jù)格式化實(shí)現(xiàn)數(shù)據(jù)格式化 因?yàn)橐驗(yàn)镃PU發(fā)出的數(shù)據(jù)是并行數(shù)據(jù),接口電路應(yīng)實(shí)現(xiàn)不同發(fā)出的數(shù)據(jù)是并行數(shù)據(jù),接口電路應(yīng)實(shí)現(xiàn)不同串行通信方式下的

52、數(shù)據(jù)格式化任務(wù),串行通信方式下的數(shù)據(jù)格式化任務(wù), 如自動(dòng)生成起止方式的如自動(dòng)生成起止方式的幀數(shù)據(jù)格式幀數(shù)據(jù)格式(異步方式異步方式)或在待傳送的數(shù)據(jù)塊前加上同步字符或在待傳送的數(shù)據(jù)塊前加上同步字符等。等。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 2.進(jìn)行串、并轉(zhuǎn)換進(jìn)行串、并轉(zhuǎn)換 在發(fā)送端,接口將在發(fā)送端,接口將CPU送來的并行信號(hào)轉(zhuǎn)換成串行數(shù)據(jù)進(jìn)送來的并行信號(hào)轉(zhuǎn)換成串行數(shù)據(jù)進(jìn)行傳送;而在接收端,接口要將接行傳送;而在接收端,接口要將接 收到串行數(shù)據(jù)變成并行數(shù)收到串行數(shù)據(jù)變成并行數(shù)據(jù)送往據(jù)送往CPU,由,由CPU進(jìn)行處理。進(jìn)行處理。3.控制數(shù)據(jù)的傳輸速率控制數(shù)據(jù)的傳輸

53、速率 接口應(yīng)具備對(duì)數(shù)據(jù)傳輸率接口應(yīng)具備對(duì)數(shù)據(jù)傳輸率波特率的控制選擇能力,即具波特率的控制選擇能力,即具有波特率發(fā)生器。有波特率發(fā)生器。4.進(jìn)行傳送錯(cuò)誤檢測(cè)進(jìn)行傳送錯(cuò)誤檢測(cè) 在發(fā)送時(shí),對(duì)傳送的數(shù)據(jù)自動(dòng)生成校驗(yàn)位或校驗(yàn)碼,在接在發(fā)送時(shí),對(duì)傳送的數(shù)據(jù)自動(dòng)生成校驗(yàn)位或校驗(yàn)碼,在接收端能檢查校驗(yàn)位或校驗(yàn)收端能檢查校驗(yàn)位或校驗(yàn) 碼,以確定傳送中是否有誤碼。碼,以確定傳送中是否有誤碼。 第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 51系列單片機(jī)內(nèi)有一個(gè)全雙工的異步通信接口,通過對(duì)串行接口寫控制字可以選擇其數(shù)據(jù)格 式,同時(shí)內(nèi)部有波特率發(fā)生器,提供可選的波特率,可完成雙機(jī)通信或多機(jī)通

54、信。四、四、 波特率波特率 單位時(shí)間內(nèi)傳送的信息量。在計(jì)算機(jī)中,以每秒傳單位時(shí)間內(nèi)傳送的信息量。在計(jì)算機(jī)中,以每秒傳送的二進(jìn)制位數(shù)為單位。送的二進(jìn)制位數(shù)為單位。例如:例如:100100字符字符/ /秒,秒,1 1個(gè)字符個(gè)字符1111位,位, 波特率為:波特率為:10010011=110011=1100波特)波特) 平均每位傳送占用時(shí)間平均每位傳送占用時(shí)間 Td = 1/1100=0.909msTd = 1/1100=0.909ms第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 (一通信線的連接(一通信線的連接 通信速率和通信距離這兩個(gè)方面是相互制約的,降低通信速率和通信

55、距離這兩個(gè)方面是相互制約的,降低通信速率,可以提高通信距離通信速率,可以提高通信距離. 不同的通信距離,串行通信電路有不同的連接方法。不同的通信距離,串行通信電路有不同的連接方法。五五. . 串行通信總線標(biāo)準(zhǔn)及接口串行通信總線標(biāo)準(zhǔn)及接口第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 RXD TXD GNDRXDTXDGNDRXDTXDGND電電平平轉(zhuǎn)轉(zhuǎn)換換RXDTXDGNDRXDTXDGND電平轉(zhuǎn)換RXDTXDGND微機(jī)微機(jī)微機(jī)其微機(jī)其他設(shè)備他設(shè)備較遠(yuǎn)距離傳送電路較遠(yuǎn)距離傳送電路近距離傳送電路近距離傳送電路第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串

56、行接口 微機(jī)接口調(diào)制解調(diào)器調(diào)制解調(diào)器接口微機(jī)電話分機(jī)電話分機(jī)遠(yuǎn)距離傳送電路遠(yuǎn)距離傳送電路 數(shù)字信號(hào)通過調(diào)制器變成模擬信號(hào)通過電話線傳數(shù)字信號(hào)通過調(diào)制器變成模擬信號(hào)通過電話線傳送到對(duì)方,接收方通過解調(diào)器將模擬信號(hào)轉(zhuǎn)換成數(shù)字送到對(duì)方,接收方通過解調(diào)器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)接收。信號(hào)接收。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 (二串行通信接口總線標(biāo)準(zhǔn)(二串行通信接口總線標(biāo)準(zhǔn) 測(cè)控系統(tǒng)中,計(jì)算機(jī)通信主要采用異步串行通信方式,常用的異步總測(cè)控系統(tǒng)中,計(jì)算機(jī)通信主要采用異步串行通信方式,常用的異步總線標(biāo)準(zhǔn)有三種:線標(biāo)準(zhǔn)有三種:RS-232RS-232A RS-232B

57、RS-232C)RS-449 (RS422 RS423 RS485)20mA電流環(huán)電流環(huán) 這里重點(diǎn)介紹這里重點(diǎn)介紹RS-232 RS-232C:速率:速率:20Kbit/S, 最大通信距離最大通信距離 : 15m RS422: 10Mbit/s, : 300m 90Kbit/s, :1200m第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 抗干擾能力抗干擾能力 采用標(biāo)準(zhǔn)的通信接口,本身具有一定的抗干擾能力,但是采用標(biāo)準(zhǔn)的通信接口,本身具有一定的抗干擾能力,但是工業(yè)現(xiàn)場(chǎng)的情況往往很惡劣,因而要根據(jù)具體情況進(jìn)行工業(yè)現(xiàn)場(chǎng)的情況往往很惡劣,因而要根據(jù)具體情況進(jìn)行選擇。選擇。 R

58、S232C:一般場(chǎng)合:一般場(chǎng)合 RS422: 共模信號(hào)比較強(qiáng)共模信號(hào)比較強(qiáng) 光纖:光纖: 電磁干擾較強(qiáng)電磁干擾較強(qiáng)第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 (三(三RSRS232C232C 美國(guó)電子工業(yè)協(xié)會(huì)美國(guó)電子工業(yè)協(xié)會(huì)EIA公布的一種異步通信標(biāo)公布的一種異步通信標(biāo)準(zhǔn)。準(zhǔn)。 RS232C標(biāo)準(zhǔn)是:標(biāo)準(zhǔn)是:設(shè)備之間通信的距離不大于設(shè)備之間通信的距離不大于15米米最大傳輸速率最大傳輸速率20KB/S采用負(fù)邏輯:采用負(fù)邏輯:“1” 5V 15V “0” +5V + 15V不帶負(fù)載時(shí)輸出電平:不帶負(fù)載時(shí)輸出電平:25V +25V輸出短路電流:輸出短路電流: 0.5A最大負(fù)

59、載電容最大負(fù)載電容: 2500pF 當(dāng)計(jì)算機(jī)采用當(dāng)計(jì)算機(jī)采用RS232標(biāo)準(zhǔn)時(shí)必須通過電平,標(biāo)準(zhǔn)時(shí)必須通過電平,MAX232 是是EIA和和TTL電平轉(zhuǎn)換芯片。內(nèi)部具有電電平轉(zhuǎn)換芯片。內(nèi)部具有電壓提升電路,并有兩路接收器和發(fā)送器。其連線壓提升電路,并有兩路接收器和發(fā)送器。其連線和引腳如圖和引腳如圖第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 TTL電平可以由專用集成電路轉(zhuǎn)換成電平可以由專用集成電路轉(zhuǎn)換成RS232C標(biāo)準(zhǔn)標(biāo)準(zhǔn); 如如: MC1488 或或 75188 TTL RS232C 從從MC1489 或或 75189 RS232C TTL 由于由于MC1488需要采

60、用需要采用12V電源,一般在單片機(jī)通信中大量使用的是只需要電源,一般在單片機(jī)通信中大量使用的是只需要+5V電源、具有發(fā)送和接電源、具有發(fā)送和接收的一體化芯片,如:收的一體化芯片,如:MAX232、ICL232、ADM202等。等。第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 MCS51之間的雙機(jī)通信 RXD TXD GNDTXDGND8xx518xx51RXD第第5章章 單片機(jī)的定時(shí)單片機(jī)的定時(shí)/計(jì)數(shù)器與串行接口計(jì)數(shù)器與串行接口 5.2.2 5.2.2 單片機(jī)串行口的結(jié)構(gòu)與工作原理單片機(jī)串行口的結(jié)構(gòu)與工作原理 51單片機(jī)有一個(gè)可編程的全雙工異串行通信接口,單片機(jī)有一個(gè)

溫馨提示

  • 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. 人人文庫(kù)網(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)論