中斷及定時器(P3口) (2)_第1頁
中斷及定時器(P3口) (2)_第2頁
中斷及定時器(P3口) (2)_第3頁
中斷及定時器(P3口) (2)_第4頁
中斷及定時器(P3口) (2)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)的中斷系統(tǒng)中斷源中斷源 中斷申請中斷申請開放中斷開放中斷保護(hù)現(xiàn)場保護(hù)現(xiàn)場中斷服務(wù)中斷服務(wù)恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場中斷返回中斷返回中斷涉及的幾個環(huán)節(jié)手機(jī)手機(jī)鈴聲響了 提醒你去接你準(zhǔn)備去接電話一開始你正在看我的視頻教程在電腦上暫停我的這個視頻教程你開始接電話掛斷電話 回來繼續(xù)看我的視頻教程 S52 S52系列有系列有6 6個個中斷源中斷源(比(比S51S51多一個多一個T2T2) 2 2個外部中斷請求:個外部中斷請求:INT0INT0,INT1INT1 3 3個片內(nèi)定時器個片內(nèi)定時器/ /計數(shù)器計數(shù)器T0T0和和T1T1中斷請求:中斷請求: TF0TF0,TF1TF1,(TF2TF2) 1 1個串行

2、口中斷請求:個串行口中斷請求:TI/RITI/RI定時器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0IE0 IT0IT0TCONTCONTF0/TF1TF0/TF1:定時器定時器0/0/定時器定時器1 1溢出中斷申請標(biāo)志位:溢出中斷申請標(biāo)志位: =0=0:定時器未溢出;:定時器未溢出; =1=1:定時器溢出申請中斷,進(jìn)中斷后自動清零。定時器溢出申請中斷,進(jìn)中斷后自動清零。TR0/TR1TR0/TR1:定時器運(yùn)行啟??刂莆唬憾〞r器運(yùn)行啟??刂莆唬?=0=0:定時器停止運(yùn)行;:定時器停止運(yùn)行; =1=1:定時器啟動運(yùn)行。定

3、時器啟動運(yùn)行。TCONTCON:TimerTimer控制寄存器控制寄存器,是管理定時器工作的,是管理定時器工作的SFRSFR(其中低(其中低4 4位管外部中斷)位管外部中斷)定時器控制寄存器TCON (88H)TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0IE0 IT0IT0TCONTCONIE0/IE1IE0/IE1:外部中斷申請標(biāo)志位:外部中斷申請標(biāo)志位: =0=0:沒有外部中斷申請;:沒有外部中斷申請; =1=1:有外部中斷申請。有外部中斷申請。IT0/IT1IT0/IT1:外部中斷請求的觸發(fā)方式選擇位:外部中斷請求的觸發(fā)方式選擇位: =0=0

4、:在:在INT0/INT1INT0/INT1端申請中斷的信號端申請中斷的信號低電平低電平觸發(fā)觸發(fā); ; =1 =1:在在INT0/INT1INT0/INT1端申請中斷的信號端申請中斷的信號負(fù)跳變負(fù)跳變觸發(fā)觸發(fā). .TCONTCON:TimerTimer控制寄存器控制寄存器,低低4 4位管理外部中斷位管理外部中斷在在CPUCPU已經(jīng)開放了外部中斷允許的前提下:已經(jīng)開放了外部中斷允許的前提下:在在INT0INT0/ /INT1INT1引腳輸入一個引腳輸入一個負(fù)脈沖負(fù)脈沖或或低電平低電平, TCONTCON寄存器中的寄存器中的IE0/IE1IE0/IE1標(biāo)志位自動變標(biāo)志位自動變“1”1”,檢測到檢測

5、到IE0/IE1IE0/IE1變變“1”1”后后, ,將產(chǎn)生指令:將產(chǎn)生指令:執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序, ,并將并將IE0/IE1IE0/IE1標(biāo)志位自動清標(biāo)志位自動清“0”,0”,以備下次申請以備下次申請。外部中斷(INT0,INT1)申請過程TF1TF1 TR1TR1 TF0TF0 TR0TR0 IE1IE1 IT1IT1 IE0 IE0 IT0IT0TCONTCON EAEA ET2 ES ET1 EX1 ET0 EX0 ET2 ES ET1 EX1 ET0 EX0IEIE中斷允許寄存器中斷允許寄存器IE IE (0A8H)(0A8H) EX0/EX1/ET1/ET0/ES EX

6、0/EX1/ET1/ET0/ES 位位: 分別是分別是INT0/1INT0/1,Timer0/1Timer0/1,串行口,串行口的中斷允的中斷允 許控制位許控制位: : =0 =0 時禁止中斷;時禁止中斷; =1=1 時時允許允許中斷。中斷。ET2ET2:T2T2中斷允許控制位(僅中斷允許控制位(僅5252系列系列有)有) =0 =0 時禁止中斷;時禁止中斷; =1=1 時時允許允許中斷。中斷。EAEA:總的中斷允許控制位(總開關(guān)):總的中斷允許控制位(總開關(guān)): =0 =0 時禁止全部中斷;時禁止全部中斷;=1=1 時時允許允許中斷。中斷。中斷系統(tǒng)硬件結(jié)構(gòu)注注: :各中斷允許控制位各中斷允許

7、控制位=0,=0,開關(guān)斷開開關(guān)斷開; =1,=1,開關(guān)接通開關(guān)接通IE0IE0EX0EX0TF0TF0IE1IE1TF1TF1TITIESESET1ET1EX1EX1ET0ET0外部中斷外部中斷 請求請求0 0外部中斷外部中斷 請求請求1 1內(nèi)部內(nèi)部 定時器定時器0 0內(nèi)部內(nèi)部 定時器定時器1 1內(nèi)部內(nèi)部 串行口串行口T TR RRIRIIEIE寄存器寄存器 EA EA位位IPIP寄存器寄存器各單路開關(guān)各單路開關(guān) 總開關(guān)總開關(guān)中斷源標(biāo)志中斷源標(biāo)志位查詢機(jī)構(gòu)位查詢機(jī)構(gòu)高中斷級高中斷級中斷請求中斷請求低中斷級低中斷級中斷請求中斷請求中斷入口中斷入口中斷源中斷源標(biāo)志位標(biāo)志位INT0INT0INT1I

8、NT1中斷入口中斷入口中斷源中斷源標(biāo)志位標(biāo)志位 PT2 PS PT1PT2 PS PT1 PX1 PX1 PT0 PX0PT0 PX0IPIPPX0/PX1PX0/PX1:INTINT0/10/1優(yōu)先級控制位:優(yōu)先級控制位: =0=0 時屬時屬低低優(yōu)先級;優(yōu)先級; =1=1 時屬時屬高高優(yōu)先級。優(yōu)先級。PT0/PT1/PT2PT0/PT1/PT2:T0/1/2T0/1/2中斷優(yōu)先級控制位:中斷優(yōu)先級控制位: =0=0 時屬低優(yōu)先級;時屬低優(yōu)先級; =1=1 時屬時屬高高優(yōu)先級。優(yōu)先級。PS1PS1:串行口中斷優(yōu)先級控制位:串行口中斷優(yōu)先級控制位: =0=0 時屬時屬低低優(yōu)先級;優(yōu)先級; =1=

9、1 時屬時屬高高優(yōu)先級。優(yōu)先級。中斷優(yōu)先級控制寄存器中斷優(yōu)先級控制寄存器IP IP (0B8H)(0B8H)【例】PX1=1;外中斷INT1被設(shè)置成高優(yōu)先級PT0=0;定時器T0被設(shè)置成低優(yōu)先級總線方式IP=0 x04;/IP=0000 0100 將PX1設(shè)為1 PT0設(shè)為0;對對同時發(fā)生同時發(fā)生多個中斷申請時:多個中斷申請時:不同優(yōu)先級的中斷同時申請不同優(yōu)先級的中斷同時申請( (很難遇到很難遇到) ) 先高后低先高后低相同優(yōu)先級的中斷同時申請相同優(yōu)先級的中斷同時申請( (很難遇到很難遇到) ) 按序執(zhí)行按序執(zhí)行正處理低優(yōu)先級中斷又接到高級別中斷正處理低優(yōu)先級中斷又接到高級別中斷 高打斷低高打

10、斷低正處理高優(yōu)先級中斷又接到低級別中斷正處理高優(yōu)先級中斷又接到低級別中斷 高不理低高不理低中斷優(yōu)先級處理原則中斷矢量中斷矢量: 單片機(jī)的單片機(jī)的 6 6 個中斷源分別對應(yīng)有各個中斷源分別對應(yīng)有各自的自的中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址中斷矢量中斷矢量最高優(yōu)先級最高優(yōu)先級最低優(yōu)先級最低優(yōu)先級5interrupt m 修飾符修飾符 interrupt m C51中斷函數(shù)必須通過它進(jìn)行修飾。在中斷函數(shù)必須通過它進(jìn)行修飾。在C51程序設(shè)計中,當(dāng)函數(shù)定義時用了程序設(shè)計中,當(dāng)函數(shù)定義時用了interrupt m修飾符,修飾符,系統(tǒng)編譯時把對應(yīng)函數(shù)轉(zhuǎn)化為中斷函數(shù),自動加上程序頭系統(tǒng)編譯時把對應(yīng)函數(shù)轉(zhuǎn)

11、化為中斷函數(shù),自動加上程序頭段和尾段,并按段和尾段,并按51系統(tǒng)中斷的處理方式自動把它安排在程系統(tǒng)中斷的處理方式自動把它安排在程序存儲器中的相應(yīng)位置。序存儲器中的相應(yīng)位置。 在該修飾符中,在該修飾符中,m的取值為的取值為031,對應(yīng)的中斷情況如下:,對應(yīng)的中斷情況如下:0外部中斷外部中斷01定時定時/計數(shù)器計數(shù)器T02外部中斷外部中斷13定時定時/計數(shù)器計數(shù)器T14串行口中斷串行口中斷5定時定時/計數(shù)器計數(shù)器T2其它值預(yù)留。其它值預(yù)留。C51編譯器從絕對地址編譯器從絕對地址8m+3處產(chǎn)生一個中斷向量,其中處產(chǎn)生一個中斷向量,其中m為中斷號,也即為中斷號,也即interrupt后面的數(shù)字。該向量

12、包含一后面的數(shù)字。該向量包含一個到中斷函數(shù)入口地址的絕對跳轉(zhuǎn)。個到中斷函數(shù)入口地址的絕對跳轉(zhuǎn)?!纠烤帉懸粋€用于統(tǒng)計外中斷【例】編寫一個用于統(tǒng)計外中斷0的中斷次數(shù)的中的中斷次數(shù)的中斷服務(wù)程序斷服務(wù)程序int x;void int0() interrupt 0 using 1 x+;using n修飾符修飾符 修飾符修飾符using n用于指定本函數(shù)內(nèi)部使用的工作寄存用于指定本函數(shù)內(nèi)部使用的工作寄存器組,其中器組,其中n的取值為的取值為03,表示寄存器組號。,表示寄存器組號。可以省略可以省略 省略后系統(tǒng)自動選擇省略后系統(tǒng)自動選擇中斷函數(shù)注意如下:中斷函數(shù)注意如下:(1)中斷函數(shù)不能進(jìn)行參數(shù)傳遞,

13、如果中斷函數(shù)中包中斷函數(shù)不能進(jìn)行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導(dǎo)致編譯出錯。含任何參數(shù)聲明都將導(dǎo)致編譯出錯。(2)中斷函數(shù)沒有返回值,如果企圖定義一個返回值中斷函數(shù)沒有返回值,如果企圖定義一個返回值將得不到正確的結(jié)果,建議在定義中斷函數(shù)時將其定義將得不到正確的結(jié)果,建議在定義中斷函數(shù)時將其定義為為void類型,以明確說明沒有返回值。類型,以明確說明沒有返回值。單片機(jī)的定時/計數(shù)器這是邏輯圖,可以看到這是邏輯圖,可以看到T1是一個單刀雙擲開關(guān),說明定一個定時是一個單刀雙擲開關(guān),說明定一個定時/計數(shù)器計數(shù)器同一時刻要么作定時用,要么作計數(shù)用,不能同時用;同一時刻要么作定時用,要么作計

14、數(shù)用,不能同時用;接通接通T1引腳時作為外部計數(shù)用。(引腳時作為外部計數(shù)用。(T0的引腳是的引腳是P3.4,T1的引腳是的引腳是P3.5)。)。溢出的概念和設(shè)置任意定時計數(shù)的方法溢出的概念和設(shè)置任意定時計數(shù)的方法3 3個個1616位位定時器定時器/ /計數(shù)器計數(shù)器 ( (5151系列有系列有2 2個個1616位位TimerTimer少一個少一個T2)T2)定時器定時器: :對片內(nèi)機(jī)器時鐘對片內(nèi)機(jī)器時鐘( (周期方波周期方波) )進(jìn)行計數(shù)進(jìn)行計數(shù)計數(shù)器計數(shù)器: :對對TxTx引腳輸入的負(fù)脈沖進(jìn)行計數(shù)引腳輸入的負(fù)脈沖進(jìn)行計數(shù)與與TimerTimer工作有關(guān)的工作有關(guān)的特殊功能寄存器:特殊功能寄存器

15、: TCON TCON 和和 TMODTMODAT89S52單片機(jī)的定時器單片機(jī)的定時器/計數(shù)器計數(shù)器定時器的2個特殊功能寄存器(TCON)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0定時器定時器控制控制寄存器寄存器TCON TCON (88H)(88H)TF0/TF1TF0/TF1: : 定時器定時器0/10/1計數(shù)溢出標(biāo)志位。計數(shù)溢出標(biāo)志位。 =1 =1 計數(shù)溢出;計數(shù)溢出; =0 =0 計數(shù)未滿計數(shù)未滿 TF0/TF1TF0/TF1標(biāo)志位標(biāo)志位可用于可用于申請中斷申請中斷或或供供CPUCPU查詢查詢。 在進(jìn)入中斷服務(wù)程序時會自動清零;但在在進(jìn)入中斷服務(wù)程序時會自動清零;

16、但在 查詢方式時必須軟件清零。查詢方式時必須軟件清零。TR0/TR1TR0/TR1: : 定時器定時器0/10/1運(yùn)行控制位。運(yùn)行控制位。 =1 =1 啟動計數(shù);啟動計數(shù); =0 =0 停止計數(shù)停止計數(shù)TR0/TR1TR0/TR1:定時器:定時器0/10/1運(yùn)行控制位運(yùn)行控制位: TR0/TR1 =0 TR0/TR1 =0 時,時,Timer0/1Timer0/1停止計數(shù)停止計數(shù) TR0/TR1 =1 TR0/TR1 =1 時,時,Timer0/1Timer0/1啟動計數(shù)啟動計數(shù)定時器T0/T1 中斷申請過程 在已經(jīng)開放在已經(jīng)開放T0/T1T0/T1中斷允許且已被啟動的前提下:中斷允許且已被啟

17、動的前提下: T0/T1T0/T1加滿溢出加滿溢出時時 TF0/TF1TF0/TF1標(biāo)志位自動置標(biāo)志位自動置“1”1” 檢測到檢測到TCONTCON中中TF0/TF1TF0/TF1變變“1”1”后后, ,將產(chǎn)生指令:將產(chǎn)生指令: 執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序, , TF0/TF1TF0/TF1標(biāo)志位會自動清標(biāo)志位會自動清“0”,0”,以備下次中斷申請。以備下次中斷申請。 定時定時/ /計數(shù)器可按片內(nèi)計數(shù)器可按片內(nèi)機(jī)器周期機(jī)器周期定時,也可對由定時,也可對由T0/T1T0/T1引腳輸入一個引腳輸入一個負(fù)脈沖負(fù)脈沖進(jìn)行加法計數(shù)進(jìn)行加法計數(shù)TF1 TF1 TR1TR1 TF0 TF0 TR0TR

18、0 IE1 IT1 IE0 IT0IE1 IT1 IE0 IT0TCON TCON (88H)(88H)GATE C / T M1 M0 GATE C / T M1 M0定時器定時器方式方式寄存器寄存器TMOD TMOD (89H)(89H)T1T1T0T0M1,M0M1,M0:工作方式定義位工作方式定義位 ( ( 定義定義4 4 種方式種方式 ):):C/T C/T :計數(shù)器計數(shù)器/ /定時器選擇位定時器選擇位 = 1 = 1 外部事件外部事件計數(shù)器計數(shù)器。對。對T0/T1T0/T1引腳的引腳的負(fù)脈沖負(fù)脈沖計數(shù);計數(shù); = 0 = 0 片內(nèi)時鐘片內(nèi)時鐘定時器定時器。對。對機(jī)器周期脈沖機(jī)器周期

19、脈沖計數(shù)定時計數(shù)定時0 00 0:1313位位 定時器定時器幾乎不用幾乎不用0 10 1:1616位位 定時器定時器經(jīng)常用到經(jīng)常用到1 01 0:可自動重裝的:可自動重裝的 8 8位位 定時器定時器經(jīng)常用到經(jīng)常用到1 11 1:T0 T0 分為分為2 2個個8 8位位 TimerTimer;T1 T1 此時不工作此時不工作 幾乎不用幾乎不用GATE C / T M1 M0 GATE C / T M1 M0T1T0GATEGATE門控位門控位: : TimerTimer可由軟件與硬件兩者控制可由軟件與硬件兩者控制 GATE = 0 GATE = 0 普通用法普通用法 TimerTimer的的啟啟

20、/ /停停由由軟件軟件對對TRxTRx位寫位寫“1”/“0”1”/“0”控制控制定時器定時器方式方式寄存器寄存器TMODTMOD(89H)(89H) GATE = 1 GATE = 1 門控用法門控用法 TimerTimer的的啟啟/ /停停由由軟件軟件對對TR0/TR1TR0/TR1位寫位寫“1”/“0”1”/“0” 和和在在INT0/INT1INT0/INT1引腳引腳上出現(xiàn)的信號的上出現(xiàn)的信號的高高/ /低低共共同控制同控制振蕩器振蕩器 12TLx THx (8位位) (8位位)TFx申請申請中斷中斷TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C

21、/T=1控制控制 開開關(guān)關(guān)或門或門與門與門非門非門工作方式工作方式1 1:1616位的定時位的定時/ /計數(shù)器計數(shù)器振蕩器振蕩器 12 TLx THx (8位位) (8位位)TFx申請申請中斷中斷TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1開開關(guān)接通關(guān)接通或門或門與門與門在工作方式1下,計數(shù)器的計數(shù)值范圍是: 165536(216) 當(dāng)為定時工作方式1時,定時時間的計算公式為: (216計數(shù)初值)晶振周期12或 (216計數(shù)初值)機(jī)器周期 其時間單位與晶振周期或機(jī)器周期相同。 THx/TLxTHx/TLx賦初值賦初值:THxT

22、Hx賦高賦高8 8位,位,TLxTLx賦低賦低8 8位位工作方式工作方式1 1 的編程要點的編程要點: TMODTMOD選方式選方式: 寫寫“M1,M0”=01M1,M0”=01 選方式選方式1 1 若不用門控位若不用門控位, ,直接用軟件寫直接用軟件寫TRxTRx控制啟控制啟/ /停停 若使用門控位,先置位若使用門控位,先置位TRxTRx,然后由,然后由INTxINTx端端 的的高高/ /低電平低電平來控制其啟來控制其啟/ /停停 若要允許若要允許中斷中斷,還須先置位,還須先置位ETxETx、EAEA等中斷等中斷 允許控制位,并編寫允許控制位,并編寫中斷服務(wù)中斷服務(wù)程序程序 若不用中斷,可若

23、不用中斷,可查詢查詢“計數(shù)溢出標(biāo)志計數(shù)溢出標(biāo)志TFxTFx” 的方式工作,但溢出標(biāo)志的方式工作,但溢出標(biāo)志TFxTFx須軟件清須軟件清0 0工作方式工作方式2 2:8 8 位自動重裝的定時位自動重裝的定時/ /計數(shù)器計數(shù)器振蕩器振蕩器 12TLx (8位位)TFx申請申請中斷中斷TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1開關(guān)接通開關(guān)接通或門或門與門與門THx (8位位)溢溢出出位位門開門開 THx/TLxTHx/TLx賦相同初值賦相同初值 在在TLxTLx計數(shù)達(dá)到計數(shù)達(dá)到0FF0FFH H 再加再加“1”1”時,時,TL0T

24、L0 將溢出將溢出, ,進(jìn)位位進(jìn)位位直接進(jìn)入直接進(jìn)入“TFxTFx”去申請去申請 中斷中斷, ,同時同時打開三態(tài)門打開三態(tài)門,使,使THxTHx中的值中的值 自動自動重裝重裝(Copy)(Copy)進(jìn)進(jìn)TLxTLx工作方式工作方式 2 2 的編程:的編程: TMODTMOD寄存器選方式:寄存器選方式: 寫寫“M1M1,M0” = M0” = 1010選中方式選中方式2 2 其他用法與各種方式其他用法與各種方式1 1完全相同完全相同T0T0: 組織成組織成TL0TL0和和TH0TH0兩個兩個8 8位定時位定時/ /計數(shù)器計數(shù)器TimerTimer工作方式工作方式 3 3 幾乎無用幾乎無用T1T1

25、: 不再是不再是定時定時/ /計數(shù)器了計數(shù)器了 T1T1 的的TR1TR1和和TF1TF1出借給出借給TH0TH0當(dāng)控制位使用當(dāng)控制位使用, , 剩下的剩下的TH1/TL1TH1/TL1寄存器只能當(dāng)作普通寄存寄存器只能當(dāng)作普通寄存 器用。器用。振蕩器振蕩器 12TL0 (8位位)TF0申請申請中斷中斷T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11& &C/T=0C/T=1控制控制 =1開關(guān)接通開關(guān)接通或門或門與門與門TH0 (8位位)TF1申請申請中斷中斷TR1TR1位位控制控制 =1TimerTimer工作方式工作方式 3 3 結(jié)構(gòu):結(jié)構(gòu):T0T0成為雙成為雙 8

26、8位位Timer Timer T1T1不再有不再有TimerTimer功能功能 TF1TF1,TR1TR1出借給出借給TH0TH0 定時器小結(jié):定時器小結(jié): (2 2個個1616位加法計數(shù)器)位加法計數(shù)器)運(yùn)行運(yùn)行/ /停止停止由由TRxTRx位控制,位控制,( (當(dāng)當(dāng)GATE=1GATE=1時:時: 由由TRxTRx位和位和TxTx引腳上的信號共同控制引腳上的信號共同控制) )工作方式工作方式由由TMODTMOD決定決定; ; 計數(shù)計數(shù)/ /定時定時由由C/TC/T位決定位決定 工作方式工作方式0 0(1313位)位) 永遠(yuǎn)不用永遠(yuǎn)不用 工作方式工作方式3 3(T0T0拆為雙拆為雙8 8位)

27、位) 幾乎無用幾乎無用 工作方式工作方式1 1(1616位)位) 經(jīng)常用到經(jīng)常用到 工作方式工作方式2 2(8 8位自動重裝)位自動重裝) 經(jīng)常用到經(jīng)常用到從初值按機(jī)器周期或外部脈沖遞加,溢出位從初值按機(jī)器周期或外部脈沖遞加,溢出位 TFxTFx申請中斷申請中斷;中斷允許中斷允許由由ETxETx位和位和EAEA位控制,位控制,串行口與串行通信串行通信的基本特征是串行通信的基本特征是數(shù)據(jù)數(shù)據(jù)逐位順序逐位順序進(jìn)行傳送進(jìn)行傳送串行通信的格式及約定(如:同步方式、通訊速串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號電平率、數(shù)據(jù)塊格式、信號電平等)不同,形成等)不同,形成了多種串行通信的

28、協(xié)議與接口標(biāo)準(zhǔn)。了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見的有:常見的有:通用異步收發(fā)器通用異步收發(fā)器(UART)(UART)本課程介紹的串口本課程介紹的串口通用串行總線(通用串行總線(USBUSB)I2CI2C總線總線CANCAN總線總線SPISPI總線總線RS-232CRS-232C, RS-485, RS422ARS422A標(biāo)準(zhǔn)標(biāo)準(zhǔn)等等等等全雙工串行接口全雙工串行接口(UART)(UART)數(shù)據(jù)通信的數(shù)據(jù)通信的幾個術(shù)語:幾個術(shù)語: 并行并行:數(shù)據(jù)各位:數(shù)據(jù)各位同時同時進(jìn)行傳送進(jìn)行傳送 串行串行:數(shù)據(jù):數(shù)據(jù)逐位順序逐位順序進(jìn)行傳送進(jìn)行傳送全雙工全雙工:(:(串行通信串行通信) )收收/ /發(fā)發(fā)可

29、同時可同時進(jìn)行進(jìn)行 半雙工半雙工:(:(串行通信串行通信) )收收/ /發(fā)發(fā)不可不可同時進(jìn)行同時進(jìn)行異步串行通信異步串行通信: :以以字符字符為單位進(jìn)行傳送為單位進(jìn)行傳送 同步串行通信同步串行通信: :以以數(shù)據(jù)塊數(shù)據(jù)塊為單位進(jìn)行傳送為單位進(jìn)行傳送 波特率波特率(bps.)(bps.): :單位時間傳送的位數(shù)單位時間傳送的位數(shù)51單片機(jī)的串行接口SBUF(發(fā))(發(fā))SBUF(收)(收)發(fā)送控制器發(fā)送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率發(fā)發(fā)生生器器T1 1A累累加加器器(門門)移位寄存器移位寄存器RxDTxD去申請中斷去申請中斷引腳引腳引腳引腳CPU內(nèi)部內(nèi)部 SM

30、0 SM1 SM2 REN TB8 RB8 TI RISCONSCON SM0SM0,SM1SM1:串行口串行口4 4種工作方式的選擇位。種工作方式的選擇位。 0 0 0 0 方式方式0 0:8 8位移位寄存器位移位寄存器I/O,I/O,波特率波特率固定固定為為 f foscosc/12/12 0 1 0 1 方式方式1 1:8 8位位UARTUART(1 1+8+8+1 1位)位), 波特率波特率可變可變, ,按公式計算按公式計算 1 0 1 0 方式方式2 2:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位), 波特率波特率固定固定= =f fosc osc x1/32x

31、1/32或或1/641/64 1 1 1 1 方式方式3 3:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位), 波特率波特率可變可變,按公式計算,按公式計算 SM2SM2:串行口串行口多機(jī)通信多機(jī)通信控制位控制位 (作為方式(作為方式2 2、方式、方式3 3的的附加控制位附加控制位)串行口控制寄存器SCON(98H) RI,TIRI,TI:串行口收串行口收/ /發(fā)數(shù)據(jù)申請中斷標(biāo)志位發(fā)數(shù)據(jù)申請中斷標(biāo)志位 1 1 申請中斷;申請中斷; 0 0 不申請中斷不申請中斷 TB8TB8:方式方式2 2、3 3中,是要發(fā)送的第中,是要發(fā)送的第9 9位數(shù)據(jù)。位數(shù)據(jù)。 多機(jī)通信中多機(jī)通信中,

32、TB8=0 ,TB8=0 表示發(fā)送的是數(shù)據(jù);表示發(fā)送的是數(shù)據(jù); TB8=1 TB8=1 表示發(fā)送的是地址。(奇偶校驗)表示發(fā)送的是地址。(奇偶校驗) RB8RB8:在方式在方式2 2、3 3中,是收到的第中,是收到的第9 9位數(shù)據(jù)。位數(shù)據(jù)。 在多機(jī)通信中在多機(jī)通信中, ,用作區(qū)別地址幀用作區(qū)別地址幀/ /數(shù)據(jù)幀的數(shù)據(jù)幀的 標(biāo)志。(奇偶校驗)標(biāo)志。(奇偶校驗) SM0 SM1 SM2 REN TB8 RB8 TI R1 RENREN:串行口接收允許控制位串行口接收允許控制位 = 1 = 1 表示允許接收;表示允許接收; = 0 = 0 禁止接收。禁止接收。SCONSCONSMOD GF1 GF0

33、 PD 1DL電源控制寄存器 PCONPCON(97H97H)特殊功能寄存器特殊功能寄存器PCONPCON不能按位尋址不能按位尋址 SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,中, 是是波特率加倍位波特率加倍位 =1 =1 時,波特率加倍時,波特率加倍 =0 =0 時,波特率不加倍。時,波特率不加倍。 ( (在在PCONPCON中只有這一個位與串口有關(guān)中只有這一個位與串口有關(guān)) ) PCONPCON工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式發(fā)送:發(fā)送:SBUFSBUF中的串行中的串行數(shù)據(jù)數(shù)據(jù)由由RxDRxD逐位移出;逐位移出;

34、 TxDTxD輸出輸出移位時鐘移位時鐘,頻率,頻率=fosc1/12=fosc1/12; 每送出每送出8 8位數(shù)據(jù)位數(shù)據(jù) TITI就自動置就自動置1 1; 需要用需要用軟件清零軟件清零 TITI。 接收:串行接收:串行數(shù)據(jù)數(shù)據(jù)由由RxDRxD逐位移入逐位移入SBUFSBUF中;中; TxDTxD輸出輸出移位時鐘移位時鐘,頻率,頻率=fosc1/12=fosc1/12; 每接收每接收 8 8位數(shù)據(jù)位數(shù)據(jù)RIRI就自動置就自動置1 1; 需要用需要用軟件清零軟件清零 RIRI。經(jīng)常配合經(jīng)常配合“串入并出串入并出”“”“并入串出并入串出”移位移位 寄存器一起使用擴(kuò)展接口寄存器一起使用擴(kuò)展接口 74H

35、C164 74HC16574HC164 74HC165等等我們開發(fā)板不涉及這方面我們開發(fā)板不涉及這方面 所以不做講解所以不做講解工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式常用于串行通訊。除發(fā)常用于串行通訊。除發(fā)/ /收收8 8位數(shù)據(jù)外,還位數(shù)據(jù)外,還 在在D0D0位前有一個位前有一個起始位起始位“0”0”; 在在D7D7位后有一個位后有一個停止位停止位“1”1”。方式方式1 1工作時:工作時: 發(fā)送端發(fā)送端自動添加自動添加一個起始位和一個停止位;一個起始位和一個停止位; 接收端接收端自動去掉自動去掉一個起始位和一個停止位。一個起始位和一個停止位。工作方式工作方式

36、1 1: :8 8位位UARTUART( (1 1+8+8+1 1位位) )波特率波特率可變可變 波特率可變波特率可變 用定時器用定時器T1T1作波特率發(fā)生器:作波特率發(fā)生器: 公式:公式:波特率波特率 = =(2 2SMODSMOD/32/32) T1T1的溢出率的溢出率波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的頻繁程度溢出的頻繁程度 即:即:T1T1溢出一次所需時間的倒數(shù)。溢出一次所需時間的倒數(shù)。 初值初值 X = 2 2n n - - 2 2SMODSMOD fosc fosc3232 波特率波特率 1212 波特

37、率波特率 = =2 2SMODSMOD fosc fosc3232 12(2 12(2n n - - X X) )其中:其中:X X 是定時器初值是定時器初值 初值初值 X = 2 2n n - - 2 2SMODSMOD fosc fosc32 32 波特率波特率 1212 用用T1T1工作于工作于方式方式2 2來產(chǎn)生波特率來產(chǎn)生波特率12001200, 已知晶振頻率已知晶振頻率= =6MHz6MHz。要求出。要求出T1T1的的初值初值:初值初值 X = 2 28 8 - - 2 20 0 6 6 10106 63232 1200 1200 1212= 256 - - = 256 - - 1

38、3.026 6 10106 6460800460800 243 = 0F3H 結(jié)果后面要用到結(jié)果后面要用到 常用波特率和常用波特率和T1T1初值查表初值查表RxDRxD引腳為引腳為接收端接收端,TxDTxD引腳為引腳為發(fā)送發(fā)送端端, ,由波特率由波特率 發(fā)生器發(fā)生器T1T1控制發(fā)送速度控制發(fā)送速度, ,不同于方式不同于方式0 0:收:收/ /發(fā)都發(fā)都 需要由需要由TxDTxD送出移位時鐘送出移位時鐘。 T1T1作波特率發(fā)生器時作波特率發(fā)生器時初始化包括初始化包括: : 選選定時器定時器工作方式工作方式2 2(TMOD(TMOD選選8 8位自動重裝位自動重裝);); 將計算出的將計算出的初值初值

39、X X賦給賦給TH1,TL1TH1,TL1; ; 啟動啟動T1T1 ( (TR1=1TR1=1);); 注意!注意!對對T1T1不要開中斷不要開中斷 !工作方式工作方式1 1的接收的接收/ /發(fā)送發(fā)送串行口的初始化包括串行口的初始化包括: : 對對SCONSCON選工作方式選工作方式 對對PCONPCON設(shè)波特率加倍位設(shè)波特率加倍位“SMODSMOD”(”(缺省值缺省值=0)=0) 如果是接收數(shù)據(jù)如果是接收數(shù)據(jù), ,仍要先置仍要先置“1”1”RENREN位位 SM0 SM1 SM2 REN TB8 RB8 TI R1SCONSCON SM0SM0,SM1SM1:串行口工作方式選擇位。串行口工作

40、方式選擇位。 0 1 0 1 :方式:方式1 1,8 8位位UARTUART(1 1+8+8+1 1位)位) RENREN:串行口串行口接收允許接收允許位。位。 REN=1 REN=1 允許接收允許接收串行口控制寄存器串行口控制寄存器SCONSCON 0 1 0 1 0 0 0 0 TB8TB8,RB8RB8,TITI,RIRI等位由運(yùn)行中間的情況等位由運(yùn)行中間的情況 決定,可先寫成決定,可先寫成 “ “0”0” SM2SM2:串行口串行口多機(jī)通信多機(jī)通信控制位控制位, ,作為方式作為方式2 2、3 3 的的附加控制位附加控制位,此處不用,可寫成,此處不用,可寫成“0”0”由于波特率固定由于波

41、特率固定, ,常用于常用于單片機(jī)間單片機(jī)間通訊。通訊。 數(shù)據(jù)由數(shù)據(jù)由8+8+1 1位組成,通常附加的一位位組成,通常附加的一位 (TB8/RB8)(TB8/RB8)用于用于“奇偶校驗奇偶校驗”。 工作方式工作方式2 2: : 9 9位位UARTUART( (1 1+8+1+8+1+1 1位位) )兩種兩種波特率波特率 方式方式2 2的波特率的波特率 = fosc = fosc 2 2SMODSMOD/64/64 即即: : f fosc osc 1/32 1/32 或或 f fosc osc 1/64 1/64 兩種兩種奇偶校驗奇偶校驗是檢驗串行通信雙方傳輸?shù)臄?shù)據(jù)正確是檢驗串行通信雙方傳輸?shù)臄?shù)據(jù)正確與否的與否的一個措施一個措施,并不能保證通信數(shù)據(jù)的傳輸一并不能保證通信數(shù)據(jù)的傳輸一定

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論