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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機的中斷系統中斷源中斷源 中斷申請中斷申請開放中斷開放中斷保護現場保護現場中斷服務中斷服務恢復現場恢復現場中斷返回中斷返回中斷涉及的幾個環節手機手機鈴聲響了 提醒你去接你準備去接電話一開始你正在看我的視頻教程在電腦上暫停我的這個視頻教程你開始接電話掛斷電話 回來繼續看我的視頻教程 S52 S52系列有系列有6 6個個中斷源中斷源(比(比S51S51多一個多一個T2T2) 2 2個外部中斷請求:個外部中斷請求:INT0INT0,INT1INT1 3 3個片內定時器個片內定時器/ /計數器計數器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溢出中斷申請標志位:溢出中斷申請標志位: =0=0:定時器未溢出;:定時器未溢出; =1=1:定時器溢出申請中斷,進中斷后自動清零。定時器溢出申請中斷,進中斷后自動清零。TR0/TR1TR0/TR1:定時器運行啟停控制位:定時器運行啟停控制位: =0=0:定時器停止運行;:定時器停止運行; =1=1:定時器啟動運行。定

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

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

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

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

7、制位=0,=0,開關斷開開關斷開; =1,=1,開關接通開關接通IE0IE0EX0EX0TF0TF0IE1IE1TF1TF1TITIESESET1ET1EX1EX1ET0ET0外部中斷外部中斷 請求請求0 0外部中斷外部中斷 請求請求1 1內部內部 定時器定時器0 0內部內部 定時器定時器1 1內部內部 串行口串行口T TR RRIRIIEIE寄存器寄存器 EA EA位位IPIP寄存器寄存器各單路開關各單路開關 總開關總開關中斷源標志中斷源標志位查詢機構位查詢機構高中斷級高中斷級中斷請求中斷請求低中斷級低中斷級中斷請求中斷請求中斷入口中斷入口中斷源中斷源標志位標志位INT0INT0INT1IN

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

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

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

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

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

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

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

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

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

17、前提下: T0/T1T0/T1加滿溢出加滿溢出時時 TF0/TF1TF0/TF1標志位自動置標志位自動置“1”1” 檢測到檢測到TCONTCON中中TF0/TF1TF0/TF1變變“1”1”后后, ,將產生指令:將產生指令: 執行中斷服務程序執行中斷服務程序, , TF0/TF1TF0/TF1標志位會自動清標志位會自動清“0”,0”,以備下次中斷申請。以備下次中斷申請。 定時定時/ /計數器可按片內計數器可按片內機器周期機器周期定時,也可對由定時,也可對由T0/T1T0/T1引腳輸入一個引腳輸入一個負脈沖負脈沖進行加法計數進行加法計數TF1 TF1 TR1TR1 TF0 TF0 TR0TR0

18、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 :計數器計數器/ /定時器選擇位定時器選擇位 = 1 = 1 外部事件外部事件計數器計數器。對。對T0/T1T0/T1引腳的引腳的負脈沖負脈沖計數;計數; = 0 = 0 片內時鐘片內時鐘定時器定時器。對。對機器周期脈沖機器周期脈沖

19、計數定時計數定時0 00 0:1313位位 定時器定時器幾乎不用幾乎不用0 10 1:1616位位 定時器定時器經常用到經常用到1 01 0:可自動重裝的:可自動重裝的 8 8位位 定時器定時器經常用到經常用到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引腳引腳上出現的信號的上出現的信號的高高/ /低低共共同控制同控制振蕩器振蕩器 12TLx THx (8位位) (8位位)TFx申請申請中斷中斷TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &

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

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

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

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

25、式工作方式 3 3 幾乎無用幾乎無用T1T1: 不再是不再是定時定時/ /計數器了計數器了 T1T1 的的TR1TR1和和TF1TF1出借給出借給TH0TH0當控制位使用當控制位使用, , 剩下的剩下的TH1/TL1TH1/TL1寄存器只能當作普通寄存寄存器只能當作普通寄存 器用。器用。振蕩器振蕩器 12TL0 (8位位)TF0申請申請中斷中斷T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11& &C/T=0C/T=1控制控制 =1開關接通開關接通或門或門與門與門TH0 (8位位)TF1申請申請中斷中斷TR1TR1位位控制控制 =1TimerTimer工作

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

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

28、塊格式、信號電平等)不同,形成等)不同,形成了多種串行通信的協議與接口標準。了多種串行通信的協議與接口標準。常見的有:常見的有:通用異步收發器通用異步收發器(UART)(UART)本課程介紹的串口本課程介紹的串口通用串行總線(通用串行總線(USBUSB)I2CI2C總線總線CANCAN總線總線SPISPI總線總線RS-232CRS-232C, RS-485, RS422ARS422A標準標準等等等等全雙工串行接口全雙工串行接口(UART)(UART)數據通信的數據通信的幾個術語:幾個術語: 并行并行:數據各位:數據各位同時同時進行傳送進行傳送 串行串行:數據:數據逐位順序逐位順序進行傳送進行傳

29、送全雙工全雙工:(:(串行通信串行通信) )收收/ /發發可同時可同時進行進行 半雙工半雙工:(:(串行通信串行通信) )收收/ /發發不可不可同時進行同時進行異步串行通信異步串行通信: :以以字符字符為單位進行傳送為單位進行傳送 同步串行通信同步串行通信: :以以數據塊數據塊為單位進行傳送為單位進行傳送 波特率波特率(bps.)(bps.): :單位時間傳送的位數單位時間傳送的位數51單片機的串行接口SBUF(發)(發)SBUF(收)(收)發送控制器發送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率發發生生器器T1 1A累累加加器器(門門)移位寄存器移位寄存器RxDT

30、xD去申請中斷去申請中斷引腳引腳引腳引腳CPU內部內部 SM0 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位)位),

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

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

33、禁止接收。禁止接收。SCONSCONSMOD GF1 GF0 PD 1DL電源控制寄存器 PCONPCON(97H97H)特殊功能寄存器特殊功能寄存器PCONPCON不能按位尋址不能按位尋址 SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,中, 是是波特率加倍位波特率加倍位 =1 =1 時,波特率加倍時,波特率加倍 =0 =0 時,波特率不加倍。時,波特率不加倍。 ( (在在PCONPCON中只有這一個位與串口有關中只有這一個位與串口有關) ) PCONPCON工作方式工作方式0 0:8 8位移位寄存器位移位寄存器I/OI/O方式方式發送:發送:SBUFSBUF

34、中的串行中的串行數據數據由由RxDRxD逐位移出;逐位移出; TxDTxD輸出輸出移位時鐘移位時鐘,頻率,頻率=fosc1/12=fosc1/12; 每送出每送出8 8位數據位數據 TITI就自動置就自動置1 1; 需要用需要用軟件清零軟件清零 TITI。 接收:串行接收:串行數據數據由由RxDRxD逐位移入逐位移入SBUFSBUF中;中; TxDTxD輸出輸出移位時鐘移位時鐘,頻率,頻率=fosc1/12=fosc1/12; 每接收每接收 8 8位數據位數據RIRI就自動置就自動置1 1; 需要用需要用軟件清零軟件清零 RIRI。經常配合經常配合“串入并出串入并出”“”“并入串出并入串出”移

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

36、起始位和一個停止位。一個起始位和一個停止位。工作方式工作方式1 1: :8 8位位UARTUART( (1 1+8+8+1 1位位) )波特率波特率可變可變 波特率可變波特率可變 用定時器用定時器T1T1作波特率發生器:作波特率發生器: 公式:公式:波特率波特率 = =(2 2SMODSMOD/32/32) T1T1的溢出率的溢出率波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的頻繁程度溢出的頻繁程度 即:即:T1T1溢出一次所需時間的倒數。溢出一次所需時間的倒數。 初值初值 X = 2 2n n - - 2 2SMODSMO

37、D fosc fosc3232 波特率波特率 1212 波特率波特率 = =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來產生波特率來產生波特率12001200, 已知晶振頻率已知晶振頻率= =6MHz6MHz。要求出。要求出T1T1的的初值初值:初值初值 X = 2 28 8 - - 2 20 0 6 6 10106 63232 1200

38、1200 1212= 256 - - = 256 - - 13.026 6 10106 6460800460800 243 = 0F3H 結果后面要用到結果后面要用到 常用波特率和常用波特率和T1T1初值查表初值查表RxDRxD引腳為引腳為接收端接收端,TxDTxD引腳為引腳為發送發送端端, ,由波特率由波特率 發生器發生器T1T1控制發送速度控制發送速度, ,不同于方式不同于方式0 0:收:收/ /發都發都 需要由需要由TxDTxD送出移位時鐘送出移位時鐘。 T1T1作波特率發生器時作波特率發生器時初始化包括初始化包括: : 選選定時器定時器工作方式工作方式2 2(TMOD(TMOD選選8

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

40、SM0SM0,SM1SM1:串行口工作方式選擇位。串行口工作方式選擇位。 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等位由運行中間的情況等位由運行中間的情況 決定,可先寫成決定,可先寫成 “ “0”0” SM2SM2:串行口串行口多機通信多機通信控制位控制位, ,作為方式作為方式2 2、3 3 的的附加控制位附加控制位,此處

41、不用,可寫成,此處不用,可寫成“0”0”由于波特率固定由于波特率固定, ,常用于常用于單片機間單片機間通訊。通訊。 數據由數據由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 兩種兩種奇偶校驗奇偶校驗是檢驗串行通信雙方傳輸的數據正確是檢驗串行通信雙方傳輸的數據正確與否的與否的一個措施一個措施,并不能保證通信數據的傳輸一并不能保證通信數據的傳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論