版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第4章 輸入/輸出、中斷、定時與串行通信,4.1 I/O概述 4.2 MCS-51單片機的中斷系統(tǒng) 4.3 定時器/計數器 4.4 單片機串行通信 4.5 PC機與單片機的通信,本章內容提要,介紹I/O的基本概念、I/O數據傳遞方式,中斷的基本概念,串行通信基本概念。主要介紹單片機中斷系統(tǒng)結構、特點及使用方法;片內定時器/計數器結構、原理及使用;片內串行口結構、原理以及雙機和多機通信實現(xiàn)方法;PC機與單片機通信實現(xiàn)
2、方法。,,,4.1 I/O概述4.1.1 I/O的概念 在單片機內部結構中,除了CPU之外,單片機集成有內部數據寄存器、程序存儲器、定時器/計數器、并行I/O口、串行口、中斷控制系統(tǒng)等。CPU通過內部總線與片內的I/O連接,通過片內I/O,單片機可與外設或單片機系統(tǒng)交換信息。此外,單片機可以由P0、P2和P3口構成外部總線,擴展外部I/O,構成更加復雜的系統(tǒng),滿足實際應用的需求。 1. 接口與端口 接
3、口是CPU與外設之間交換信息的連接部件,也稱為接口電路。接口電路通常包含有數據寄存器用來保存輸入/輸出數據、狀態(tài)寄存器保存接口的狀態(tài)信息、控制寄存器保存單片機的控制命令等。數據的I/O操作通過數據寄存器的操作完成。 通常接口電路中可編址并能進行讀寫操作的寄存器稱為端口或簡稱口。一個接口電路中可能包括多個口,例如數據口、狀態(tài)口、控制口,即包含有多個口地址。同一單片機系列中,片內集成的I/O模塊各有不同,當片內I/O不能滿足實際需求
4、時,可擴展外部I/O。 2. I/O的分類 按照信號的傳遞方式,可將I/O分為串行和并行兩類。 按照I/O連接的信號大致可分為模擬量、數字量、脈沖量I/O三類。 3. 數據總線隔離技術 為了正確地進行數據的I/O傳遞,必須解決數據總線的隔離問題,即在任一時刻,CPU只對一個I/O進行操作。為此,對輸出設備的接口電路要使用鎖存器,對輸入設備的接口電路,使用三態(tài)緩沖器。,,4. 單片機I/O
5、編址方式 每一個I/O都需要編址,以便CPU分別進行尋址。常用的I/O編址方式有兩種:獨立編址方式和統(tǒng)一編址方式。 獨立編址方式: I/O和存儲器分開編址,有各自獨立的地址空間,采用不同的控制總線,使用不同的指令分別尋址。 統(tǒng)一編址方式: I/O與數據存儲器在同一地址空間編址,尋址方式相同,采用相同的地址、數據、控制總線,使用相同的指令尋址。 4.1.2 輸入/輸出的傳遞方式 單片機系統(tǒng)中有不
6、同類型的I/O,由于I/O所連接的外設或I/O接口本身的速度與CPU的處理速度相比,通常低于CPU的速度,為了實現(xiàn)數據的正確傳輸,CPU通常采用三種控制方式,即無條件傳送方式、查詢方式和中斷控制方式。 1. 無條件傳送方式 I/O或與I/O連接的外設隨時都處于準備好狀態(tài),這時CPU不需要測試外設狀態(tài),隨時直接對其進行操作。 2. 查詢方式 I/O接口或外設的狀態(tài)以適當的方式輸入CPU,
7、CPU通過對狀態(tài)信號的查詢,在判別外設準備好之后,對其進行輸入/輸出操作。 查詢方式的特點:實現(xiàn)簡單,通用性強,適合各種設備數據的輸入/輸出;其缺點是需要占用CPU的時間,外設速度較慢時,效率較低。,,,圖4.1 查詢方式流程圖,,3. 中斷方式 中斷方式下外設的狀態(tài)信號以中斷申請方式輸入CPU。 CPU響應中斷,暫停正在執(zhí)行的程序,轉而執(zhí)行中斷服務程序,在中斷服務程序中對外設進行輸入/輸出操作,中斷返回后,再繼
8、續(xù)執(zhí)行被中斷的程序。 中斷方式可提高單片機系統(tǒng)的效率,特別適用于電池供電的低功耗系統(tǒng)。,,4.2 MCS-51單片機的中斷系統(tǒng) 中斷是一項重要的計算機技術。當CPU正在處理某件事時,外界發(fā)生了緊急事件請求,要求CPU暫停當前的工作,轉而去處理這個緊急事件。處理完后再回到原來被中斷的位置,繼續(xù)原來的工作,這一過程稱為中斷,實現(xiàn)這種功能的部件稱為中斷系統(tǒng)。當多個中斷源同時向CPU申請中斷時,CPU將根據每個中斷源的優(yōu)
9、先級,優(yōu)先響應級別最高的中斷請求。 當中斷系統(tǒng)有多個中斷優(yōu)先級時,CPU暫停較低級的中斷服務程序,轉而處理優(yōu)先級更高的中斷請求源,處理完后再處理較低級的中斷服務程序,這樣的過程稱為中斷嵌套。這樣的中斷系統(tǒng)稱為多級中斷系統(tǒng)。 51系列單片機的中斷系統(tǒng)有5個中斷源:2個外部中斷源、2個定時器中斷源和一個串行口中斷源,具有兩個中斷優(yōu)先級,可實現(xiàn)兩級中斷服務程序嵌套。,,圖4.2 二級中斷嵌套,,4.2.1 中斷系統(tǒng)的結構
10、 單片機中斷控制系統(tǒng)的結構如圖4.3,中斷控制系統(tǒng)由中斷源、中斷選擇、中斷標志、中斷允許寄存器(中斷源允許、全局中斷允許)、中斷優(yōu)先級寄存器和查詢電路組成。,,圖4.3 中斷控制系統(tǒng)的結構,,5個中斷源符號、名稱及產生條件分別為:(1) INT0 .:外部中斷0,由P3.2管腳輸入,低電平或下降沿有效。通過設置定時器控制寄存器TCON的相應控制位選擇。 (2) INT1:外部中斷1,由P3.3管腳輸入,低電平或下降沿有
11、效。通過設置定時器控制寄存器TCON的相應控制位選擇。 (3) T0:定時器/計數器0中斷,由T0回零溢出有效。(4) T1:定時器/計數器1中斷,由T1回零溢出有效。(5) TI/RI:串行口完成一幀數據的發(fā)送/接收后有效。 中斷產生時,對應的中斷標志位被置位為“1”,當中斷響應時,由硬件復位或在中斷服務程序中,用軟件復位清除中斷標志。串行口中斷為發(fā)送和接收共用,當串行口中斷時,通過查詢定時器工作方式控制寄存器TMOD
12、中的TI和RI判別是發(fā)送還是接收中斷,并用軟件復位中斷標志。中斷系統(tǒng)的控制通過對特殊功能寄存器的操作完成。 1. 定時器控制寄存器TCON TCON為特殊功能寄存器,字節(jié)地址為88H,可位操作,位地址由低位到高位為88H~8FH。對TCON的設置可完成定時器的運行控制和外部中斷觸發(fā)方式的選擇,同時,定時器和外部中斷發(fā)生時,會影響TCON的中斷請求標志位。 TCON的格式如下:,,,,TCON每一位的功能如下:
13、 (1) IT0(TCON.0)和IT1(TCON.2):外部中斷中斷觸發(fā)方式控制位。IT0(IT1)=0,電平觸發(fā)方式,低電平觸發(fā);IT0(IT1)=1,脈沖觸發(fā)方式,下降沿觸發(fā)。 (2) IE0(TCON.1)和IE1(TCON.3):外部中斷請求標志位。IE0(IE1)=0,無中斷請求;IE0(IE1)=1,有中斷請求。當中斷觸發(fā)信號為下降沿有效時,IE0(IE1)由硬件置位為“1”,中斷響應時,硬件自動復位為“0”;電平觸發(fā)
14、方式下,IE0(IE1)標志由外部觸發(fā)信號控制,不由片內硬件控制。當中斷觸發(fā)信號為低電平信號時,IE0(IE1)=1,當中斷觸發(fā)信號為高電平信號時,IE0(IE1)=0。 (3) TF0(TCON.5)和TF1(TCON.7):定時器/計數器0和定時器/計數器1溢出中斷請求標志位。TF0(TF1)=0,無中斷請求;TF0(TF1)=1,有中斷請求。當定時器/計數器0 (定時器/計數器1)溢出時,硬件置位TF0(TF1)=1,中斷響應時
15、片內硬件自動復位TF0(TF1)=0。查詢TF0(TF1)時,需用軟件復位TF0(TF1)=0。 (4) TR0(TCON.4)和TR1(TCON.6):定時器/計數器0和定時器/計數器1運行控制位。TR0(TR1)=0,關閉定時器/計數器;TR0(TR1)=1,打開定時器/計數器 。 2. 中斷允許寄存器IE 中斷允許寄存器IE為兩級允許控制(如圖4.3所示):第一級為局部中斷允許,可選擇某個或幾個中斷源允
16、許中斷,第二級為全局允許。只有當全局中斷允許有效時,局部中斷允許的中斷信號才可以申請中斷。IE在特殊功能寄存器中,可位操作。字節(jié)地址為0A8H,位地址由低位到高位為A8H~AFH。IE的格式如下:,,,,,IE寄存器的每個位信號定義為: (1) EX0(IE.0)和EX1(IE.2):外部中斷允許控制位。EX0(EX1)=0,外部中斷禁止;EX0(EX1)=1,外部中斷允許。 (2) ET0(IE.1)和ET1(IE.3):定時器
17、/計數器0和定時器/計數器1中斷允許控制位。ET0(ET1)=0,定時器/計數器禁止中斷;ET0(ET1)=1,定時器/計數器允許中斷。 (3) ES(IE.4):串行口中斷允許控制位。ES=0,串行口禁止中斷;ES=1,串行口允許中斷。 (4) EA(IE.7):全局中斷允許控制位。EA=0,禁止全局中斷;EA=1,允許全局中斷。 (5) IE.5、IE.6:保留位。 3. 串行口控制寄存器SCON 串行口
18、控制寄存器SCON在特殊功能寄存器中,可位操作。字節(jié)地址為98H,位地址由低位到高位為98H~9FH。SCON的格式如下:,,,,,與中斷有關的控制位有2位: (1) RI(SCON.0):串行口接收中斷標志位。當接收完一幀數據后,由硬件置位為“1”。中斷響應后,在中斷服務程序中須用軟件復位為“0”。 (2) TI(SCON.1):串行口發(fā)送中斷標志位。當發(fā)送完一幀數據后,由硬件置位為“1”。中斷響應后,在中斷服
19、務程序中須用軟件復位為“0”。,,4. 中斷優(yōu)先級控制寄存器IP 每個中斷源有兩個優(yōu)先級,可用程序對中斷優(yōu)先級控制寄存器IP的控制位置位或復位來選擇。特殊功能寄存器IP的字節(jié)地址為B8H,位地址由低位到高位為B8H~BFH。IP的格式如下:,,,,,與中斷優(yōu)先級有關的控制位有5位: (1) PX0(IP.0)和PX1(IP.2):外部中斷0和外部中斷1中斷優(yōu)先級控制位。PX0(PX1)=0,低優(yōu)先級;PX0(P
20、X1)=1,高優(yōu)先級。 (2) PT0(IP.1)和PT1(IP.3):定時器/計數器0和定時器/計數器1中斷優(yōu)先級控制位。PT0(PT1)=0,低優(yōu)先級;PT0(PT1)=1,高優(yōu)先級。 (3) PS(IP.4):串行口中斷優(yōu)先級控制位。PS=0,低優(yōu)先級;PS=1,高優(yōu)先級。 (4) IP.5~IP.7:保留位。 51系列單片機中,兩個優(yōu)先級的結構可實現(xiàn)中斷嵌套服務,中斷優(yōu)先級的控制原則:
21、 (1) 高優(yōu)先級中斷請求可以打斷低優(yōu)先級中斷服務形成中斷嵌套 (2) 同級中斷之間不能形成中斷嵌套 (3) 同級中斷源有多個同時向CPU請求中斷時,CPU的響應順序為:外部中斷0→定時中斷0→外部中斷1→定時中斷1→串行口中斷,,,4.2.2 中斷系統(tǒng)的初始化與中斷控制寄存器的設置 中斷控制系統(tǒng)中,系統(tǒng)上電或復位時,控制寄存器均被復位,所有中斷均被禁止
22、。因此,用戶需根據自己的需要對上述4個控制寄存器賦值,即通過程序對中斷系統(tǒng)進行初始化設置,以便使用中斷系統(tǒng)。例如,外部中斷初始化包括:外部中斷觸發(fā)方式設定、外部中斷允許、全局中斷允許,以及中斷優(yōu)先級控制。假設對外部中斷0的初始化使用如下指令: MOVIE,#81H 或使用位操作指令: SETBEA SETBEX0 則
23、結合復位時控制寄存器的狀態(tài),外部中斷0被設置為低電平觸發(fā)的低級中斷源。4.2.3 中斷響應過程 1. 中斷采樣 單片機在每個機器周期的S5P2對中斷標志進行采樣,在下一個機器周期根據優(yōu)先級順序查詢中斷標志。如果中斷標志在前一個機器周期的S5P2被置位,則后一個周期中斷系統(tǒng)就可以發(fā)現(xiàn)這個中斷請求信號。 外部中斷源為脈沖觸發(fā)時,若INT0(INT1)管腳在一個機器周期為
24、高電平,另一個機器周期為低電平,則TCON寄存器的中斷請求標志IE0(IE1)將置位,標志位IE0(IE1)請求中斷。由于外部中斷管腳每個機器周期采樣一次,因此,管腳上的高電平和低電平至少都要持續(xù)一個機器周期以上,以保證下降沿被采樣到。,,,,,,,2. 中斷響應 中斷系統(tǒng)查詢到有中斷請求時,如果處于以下情形,系統(tǒng)將阻止長調用LCALL指令的執(zhí)行而不運行中斷服務程序 : (1) 同級或高優(yōu)先級的中斷
25、響應正在執(zhí)行中 (2) 正在執(zhí)行的指令未到指令最后一個周期,即當前指令未執(zhí)行完 (3) 當前指令是RETI或訪問IE、IP寄存器 條件(2)保證在得到中斷向量之前,運行指令必須完整執(zhí)行。條件(3)保證執(zhí)行RETI或訪問IE、IP寄存器后,至少還要執(zhí)行一條指令才能響應中斷。在上述情形之外,當CPU查詢到有效中斷請求時,系統(tǒng)硬件將產生一條長調用指令LCALL,即將程序計數器值PC壓入堆棧
26、,把相應的中斷入口地址裝入PC,轉到相應中斷服務程序中去執(zhí)行。各中斷源的入口地址是: 由于各中斷入口地址之間僅相隔8個字節(jié),不能存儲較長的中斷服務程序,通常在中斷入口地址開始的單元中,安排一條轉移指令,轉移到相應中斷源的中斷服務程序中。,,,,3. 中斷響應時間 外部中斷電平有效時,在機器周期的S5P2采樣后鎖存到IE0(IE1),IE0(IE1)在下一個機器周期由電路查詢,如果中斷請求立刻響應,則中斷服
27、務程序成為下一條執(zhí)行的指令。長調用指令自身需要2個機器周期,因此,從外部中斷觸發(fā)到中斷服務程序第一條指令開始執(zhí)行最少需要3個完整的機器周期。 當前面所述的三個條件不滿足,則中斷響應需要更長的時間。如果指令是RETI或對寄存器IE和IP操作,則附加的等待時間不會多于5個周期,即最多一個周期完成當前指令,下一條指令為MUL或DIV再加4個周期。所以,一個中斷發(fā)生時,中斷響應時間為3~8個周期。 4. 中斷請求的撤銷
28、 中斷請求標志在中斷響應后應當清除,以免一次中斷申請被多次重復查詢和響應。 串行口中斷請求標志需要在中斷服務程序中用軟件清除,定時器和外部中斷的中斷標志在響應后硬件自動復位清除。但外部中斷為電平觸發(fā)時,如果中斷響應后, 管腳仍為低電平,則會重新置位中斷請求,為此可以在系統(tǒng)中增加輔助電路解決。 圖4.4 電平方式外部中斷請求的撤銷電路,,,,,并在中斷服務程序中增加如下指令,使得的INT0輸
29、入變?yōu)楦唠娖?。ORLP1,#01HANLP1,#0FEH 5. 軟件模擬第三優(yōu)先級中斷 在某些應用中需要三個中斷優(yōu)先級,這時可用簡單的軟件方法產生第三優(yōu)先級效果。首先,通過中斷優(yōu)先級寄存器IP可設置高優(yōu)先級和低優(yōu)先級分別為第一、第二優(yōu)先級中斷,然后在第二級中斷服務程序中包含如下程序:PUSHIEMOVIE,#MASKCALLLABEL*** 執(zhí)行第三級中斷
30、服務程序 ***POPRET LABEL:RETI 只要有中斷響應,中斷允許寄存器重新定義,禁止除第一優(yōu)先級以外的中斷,然后用CALL指令調用RETI指令,清除第二優(yōu)先級中斷標志位,則第二優(yōu)先級中斷允許中斷服務。用POP指令恢復IE寄存器,RET終止中斷服務程序。當晶振為12MHz時,附加的指令需要10μs。,,,,,4.3 定時器/計數器 定時器/計數器通常用于定時采樣、
31、順序控制、數字時鐘等。51系列單片機有兩個16位的定時器/計數器:T0和T1。T0由兩個8位的定時寄存器TH0和TL0構成16位寄存器,同樣,T1由兩個8位的定時寄存器TH1和TL1構成16位寄存器,它們分別映射在特殊功能寄存器中。TH0、TL0的地址分別為8CH、8AH,TH1和TL1的地址分別為8DH和8BH。(1)定時功能,定時寄存器每個機器周期自動加1,可以看作是機器周期的計數器。由于每個機器周期為12個時鐘振蕩周期,所以計數
32、頻率為振蕩頻率的1/12。(2)計數功能,定時寄存器在單片機外部引腳T0或T1有“1”到“0”的跳變時自動加1。外部輸入在每個機器周期的S5P2被采樣,當前一個機器周期采樣為高電平,后一個機器周期采樣為低電平時,計數器在下一個機器周期S3P1進行計數。由于一個下降沿的識別需要2個機器周期,故計數器最高計數頻率為振蕩頻率的1/24。4.3.1 工作方式 無論作為定時器還是計數器,T0和T1都有4種工作方式:方式0、方式1、方
33、式2和方式3。其中,T0和T1的前三種工作方式相同,方式3不同。下面以定時/計數器1為例分述四種工作方式的特點和用法。 1.方式0 13位計數方式。在方式0中,時間寄存器配置為13位寄存器,是為與MCS-48兼容而設置,由TH1的全部8位和TL1的低5位構成,TL1的高三位棄之不用,當寄存器中所有13位中的全“1”翻轉為“0”時,設置定時器中斷標志TF1。圖4.5是定時器/ 計數器1在工作方式0的邏輯結構圖。,,,圖
34、4.5 定時器/計數器1方式0:13位計數器 C/T:定時/計數選擇,由定時器工作方式特殊功能寄存器TMOD的位設置選擇 C/T=0,T1為定時器,計數器對機器周期進行計數實現(xiàn)定時 C/T =1,T1為計數器,計數來自引腳T1的外部脈沖數 定時器/計數器是否啟動受TR1、GATE和 引腳的控制,GATE和TR1由定時器工作方式控制寄存器TMOD和控制寄存TCON中相應的位
35、狀態(tài)確定。由圖4.5中的邏輯電路可知:要啟動定時/計數器,必須TR1=1,同時GATE=0或 引腳=1。通常設置GATE=0,用TR1的狀態(tài)控制T1的工作。 當GATE=1,TR1=1時,T1能否計數由引腳的輸入狀態(tài)控制,可以對INT1輸入高電平脈沖寬度進行測量。,,,,定時器啟動后,定時或計數脈沖加到TL1的低5位,從預先設置的初值(時間常數)開始計數,TL1計滿后,向TH1進位,當TL1、TH1的
36、13位都為1變?yōu)槿?,即計數器溢出時,中斷標志位TF1置“1”,表明定時時間或計數次數已到。在中斷系統(tǒng)允許時,向CPU請求中斷。 方式0沒有時間常數自動重裝功能,如果需進一步定時/計數,需用指令重裝時間常數。 2.工作方式1 16位計數方式。計數器由8位TL1和8位TH1構成,工作方式1與方式0僅計數器長度不同,其他均相同,如圖4.6。,,,,圖4.6 定時器/計數器1方式1:16位計數器,,3.工作方式2
37、 8位計數器帶時間常數自動重裝功能。如圖4.7。 工作方式2與工作方式0、1的功能相同,只是由TL1構成8位計數器,TH1用來存放時間常數。,,,,圖4.7 定時器/計數器1方式2:8位自動重裝,,啟動時,TL1和TH1均裝入相同的時間常數,當TL1計數器溢出時,中斷標志TF1置“1”,同時,控制將TH1中的時間常數重新裝入TL1中。與方式0和方式1相比,方式2采用的硬件重裝時間常數,提高了定時精度,操作簡便。缺點是定時/計數范
38、圍較小 。,,4.工作方式3 當T0為工作方式3時,TL0和TH0分別作為兩個獨立的8位計數器,其硬件邏輯框圖如圖4.8。TL0既可作定時器也可作計數器,并使用定時器0的控制位:C/T、GATE、TR0、 和TF0。TH0鎖定為定時器功能,并使用定時器1的控制位TR1和TH1,這時,TH0控制了“定時器1”的中斷。,,,,,圖4.8 定時器/計數器0方式3:兩個8位計數器 當定時器0工作于方式3時,單片
39、機可看作有3個定時/計數器,這時定時器1只能工作于方式0、1或2,并且可以通過設置它是否為工作方式3來控制其計數器的啟動和停止。由于這時的定時器1的中斷請求標志已被定時器0占用,因而定時器1不能產生中斷請求,故一般用于不要求產生中斷的串行口的波特率發(fā)生器。,,,,,,,4.3.2 定時器/計數器控制寄存器 1.定時器控制寄存器TCON TCON寄存器既參與中斷控制又參與定時控制。定時器通過設置控制TR位的狀態(tài)控制定時
40、器/計數器的啟、停。TF標志定時/計數器是否溢出而請求中斷。 2.工作方式控制寄存器TMOD TMOD在特殊功能寄存器中,字節(jié)地址89H,不能位尋址。TMOD的格式為:,,,,TMOD的高4位用于T1,低4位用于T0,符號的定義如下: (1) GATE:門控位。GATE和軟件控制位TR、外引腳( )的狀態(tài),共用控制定時器/計數器的啟動和停止。(2) C/T:定時/計數器方式選
41、擇位。 C/T =1為計數方式; C/T =0為定時方式。(3) M1 M0:工作方式選擇位。 M1 M0=00;方式0 M1 M0=01;方式1 M1 M0=10;方式2 M1 M0=11;方式3。,,3.定時/計數器初值的求取 51系列單片機定時器/計數器采用增量式計數,其內部的計數器在定時器方式下對機器周期加“1”計數,在計數器方式下對外部引腳上的脈沖計數
42、,計數器加滿回零溢出時,置中斷請求標志TF。在不同的工作方式下,定時器/計數器初值的計算方法基本相同,只是采用了不同長度的計數器,設置時間常數時略有不同。 方式0,計數范圍:1~8192(213)定時工作方式時,定時時間=(213-計數初值)×晶振周期×12 或 定時時間=(213-計數初值)×機器周期 [例4.1]設單片機晶振頻率fosc=
43、6MHz,用定時器1以方式0、查詢方式產生周期為500µs的等寬方波脈沖,由P1.0輸出。 (1) 確定計數初值X本題可在P1.0以250µs交替輸出高、低電平實現(xiàn)所需的脈沖,定時時間為250µs。晶振頻率6MHz對應的機器周期為2µs。則:(213-X)×2×10-6=250×10-6 求得X=8067對應二進制X=11111
44、10000011。高8位放入TH1,即TH1=11111100=FCH;低5位放入TL1,即TL1=00011=03H。 (2) 寄存器初始化 包括定時器初始化和中斷系統(tǒng)初始化,主要對IP、IE、TCON、TMOD的相應位進行正確的設置,并將時間常數送入定時器。本例中,IE、TCON、TMOD均應初始化為00H。,,,,,(3) 程序設計本例假設系統(tǒng)是從復位開始運行,則IE、TCON、TMOD均不需要操作。
45、MOVTH1, #0FCH;T1置初值MOVTL1, #03HSETBTR1;啟動T1LOOP:JBCTF1, LOOP1;T1溢出轉LOOP1 SJMPLOOP;T1未溢出,繼續(xù)查詢LOOP1:MOVTH1, #0FCH;T1重新置初值MOVTL1, #03HCLRTF1 ;清T1溢出標志位CPLP1.0;輸出取反SJMPLOOP;繼續(xù)查詢,,,,,(
46、3) 程序設計本例假設系統(tǒng)是從復位開始運行,則IE、TCON、TMOD均不需要操作。MOVTH1, #0FCH;T1置初值MOVTL1, #03HSETBTR1;啟動T1LOOP:JBCTF1, LOOP1;T1溢出轉LOOP1 SJMPLOOP;T1未溢出,繼續(xù)查詢LOOP1:MOVTH1, #0FCH;T1重新置初值MOVTL1, #03HCLRTF1 ;清T1溢出
47、標志位CPLP1.0;輸出取反SJMPLOOP;繼續(xù)查詢方式1,計數范圍:1~65536(216)定時工作方式時,定時時間=(216-計數初值)×晶振周期×12 或 定時時間=(216-計數初值)×機器周期,,,,,[例4.2] 將例4.1改以方式1實現(xiàn)。(1) 確定計數初值X(216-X)×2×10
48、-6=250×10-6 求得X=65411對應二進制X=1111111110000011。高8位放入TH1,即TH1=11111111=FFH;低5位放入TL1,即TL1=10000011=83H。(2) 程序設計與例1程序對應,僅T1置初值程序不同,將對應的程序修改即可:MOVTH1, #0FFH;T1置初值MOVTL1, #83H方式2,計數范圍:1~256(28)定時工作方式時,定
49、時時間=(28-計數初值)×晶振周期×12或 定時時間=(28-計數初值)×機器周期與方式0和方式1不同,方式2為8位重裝計數方式,所以,高8位計數器和低8位計數器在初始化時裝入的是相同的計數初始值。在計數到之后,不需要軟件重裝計數初始值。,,,,,4.4 單片機串行通信 本節(jié)在介紹串行通信基礎知識之后,介紹單片機串行口的結構、特點、工作
50、方式以及單片機雙機、多機、單片機與PC機之間的通信技術。 4.4.1 串行通信基礎 通常把計算機與外界的數據傳輸稱為通信,計算機的數據通信方式有兩種:并行通信和串行通信。 并行通信是將數據以成組的方式在兩條以上的并行通道上傳輸。它可以同時傳輸一組數據位,每個數據位使用單獨的一條導線。因此,并行通信的物理信道為并行內總線或并行外總線。并行通信的特點是:硬件上有多根數據線,各數據位同時傳送,速度快,效率高,傳送距離通常小
51、于30米。如計算機和外圍設備之間的通信,CPU、存儲器模塊和設備控制器之間的通信等。 串行通信中,數據流以串行方式逐位地在一條信道上傳輸,每次只能發(fā)送或接收一個數據位。串行通信的特點是:硬件上最少只需要一對傳輸線即可完成,數據傳送按位進行,適用于數據位數多、遠距離傳輸場合。串行通信使得設備之間的連線大為減少,但也帶來了數據的串/并轉換、并/串轉換以及位計數等問題。 串行通信有兩種基本通信方式:同步通信和異步通信。,,,
52、,,1. 串行異步通信幀格式 異步串行通信以字符為單位,以相同的幀格式傳送。每一幀信息由起始位,數據位,奇偶校驗位和停止位組成。如圖4.9所示。 圖4.9 串行異步通信幀格式(1) 起始位。通信線在沒有數據傳輸時處于邏輯“1”狀態(tài),當發(fā)送器要發(fā)送一個字符的數據時,首先發(fā)送一個邏輯“0”信號,表示其后所傳輸的為數據。起始位表示字符傳輸開始。(2) 數據位。起始位之后為數據位。數據位的個數是5、6、7或8位,低位
53、在前,高位在后。(3) 奇偶校驗位。奇偶校驗用于有限差錯檢測,是通信雙方約定一致的檢錯方式。奇偶校驗位為冗余位,可由用戶根據需要選擇使用。(4) 停止位。在奇偶位或數據位(當無奇偶校驗時)之后是停止位??梢允?位、 位或2位,表示一個字符傳輸的結束。在發(fā)送的間隙,即空閑時,通信線路總處于邏輯“1”狀態(tài)。,,,,,,2. 單工、半雙工、全雙工通信方式 串行數據通信有以下三種數據通路形式:單工(Simplex)
54、、半雙工(Half-duplex) 、全雙工(Full-duplex) 圖4.10 單工形式串行通信圖 4.11 半雙工形式串行通信 圖4.12 全雙工形式串行通信,,,,,,,,,3.波特率 通信線上的數據按位傳送,每一位量度(位信號持續(xù)時間)由數據傳送速率決定。每秒傳送的位數量稱之為波特率(baud rate)。如每秒傳送一位就是1波特,即:
55、 1波特=1位/秒(1bps) 串行通信中常用的標準波特率有:600、1200、2400、4800、9600、19200等。 4.4.2 EIA-232-D接口標準 EIA-232-D是由美國電子工業(yè)協(xié)會正式公布的串行總線標準,也是目前最常用的串行接口標準,用來實現(xiàn)計算機之間、計算機與外設之間的數據通信。EIA-232-D總線接口適用于設備之間距離不大于15米,傳輸速
56、度最大20kb/s。 1.EIA-232-D信號引腳定義 EIA-232-D定義了22根線,采用標準25芯 (DB-25) 插頭座,在EIA-232中描述的連接器還有DB-9。如表4.1和4.2所示。 2.電氣特性 EIA-232-D采用負邏輯,即:邏輯“1”:-3V~-15V 邏輯“0”:+3V~+15V EIA-232-D的邏輯電平與TTL電平不兼容,為了與TTL器件相連
57、必須進行電平轉換。,,,,,,,,,3. EIA-232-D端口的直接連接 兩臺計算機可通過調制解調器(Modem),由電話線連接實現(xiàn)長距離通信。在工業(yè)數據通信中,常直接將兩臺計算機的EIA-232端口連接。在通信過程中,不需要握手時,只需要3根連接線,DB-9連接器的接線如圖4.13(a)所示。在需要握手時,還需要將請求發(fā)送、允許發(fā)送、準備就緒等信號端形成如圖4.13(b)所示的交叉連接形式。,,,,,,,,,,(a) 無
58、握手 (b) 全握手 圖4.13 EIA-232端口的直接連接,,4.4.3 MCS-51單片機串行口 MCS-51單片機內部有一個全雙工的串行口,有兩個獨立的接收、發(fā)送緩沖器SBUF(地址都是99H,屬于特殊功能寄存器),可同時發(fā)送和接收數據。發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,用讀、寫指令加以區(qū)分。由于串口接收部分由輸入移位寄存
59、器和接收緩沖器構成雙緩沖結構,所以在接收緩沖器讀出數據之前,串行口可以開始接收第二個字節(jié)。但是如果第二個字節(jié)已接收完畢時,第一個字節(jié)還沒有讀出,則將丟失其中一個字節(jié)。MCS-51串行口除了用于數據通信之外,還可以非常方便地構成一個或多個并行輸入/輸出口,或作為串→并轉換,用來驅動鍵盤或顯示器。 1.串行口控制寄存器 串行口有四種工作方式,串行口的控制寄存器有兩個,即特殊功能寄存器SCON和PCON。(1)串行口控制寄存器S
60、CON SCON為特殊功能寄存器,字節(jié)地址為98H,可位尋址,位地址從98H到9FH,SCON的格式為: SCON控制寄存器的定義: ① SM0、SM1:控制串行口工作方式。定義如表4.3,,,,,,,,,,,,表4.3 串行口工作方式
61、
62、 ② SM2:為多機通信設置的控制位,允許工作在方式2和方式3的單片機實現(xiàn)多機通信。在工作方式2或方式3,若SM2=1,當接收到的第9位數據(RB8)為0時,RI=0,接收的數據丟棄; 當RB8=1時,置RI=1,接收數據有效。在工作方式1,若SM2=1,當接收有效停止位時,置RI=1,數據有效;沒有接收到
63、有效停止位時,RI=0,數據無效。在方式0時,SM2應為0。③ REN:接收允許控制位。通過軟件置“1”/清零使得串行口允許/禁止接收數據。④ TB8:在方式2和方式3中要發(fā)送的第9數據位,可根據需要置“1”或清零。 ⑤ RB8:在方式2和方式3中接收的第9數據位。在方式1,SM2=0,RB8 接收的是停止位。在方式0,RB8不用。⑥ TI:發(fā)送中斷標志。在串行發(fā)送時,在方式0發(fā)送完第8位數據時由硬件置位TI, 在其他方式下,開
64、始發(fā)送停止位時硬件置位TI。必須由軟件清零。⑦ RI:接收中斷標志。在串行接收(不考慮SM2)時,在方式0接收完第8位數據時由硬件置位RI, 在其他方式下,接收停止位中硬件置位RI。必須由軟件清零。,,,,,,,,,,,,(2)電源控制寄存器PCON PCON其字節(jié)地址為87H,無位地址。其中與串行口有關的只有D7位。
65、
66、 SMOD:波特率加倍位。在計算串行方式1、2、3的波特率時,SMOD=0,波特率不加倍;SMOD=1,波特率加倍。 2.串行口工作方式 (1) 方式0在方式0下,串行口為同步移位寄存器方式,波特率固定,為fosc/12。數據由RxD(P3
67、.0)端出入,同步移位脈沖由TXD(P3.1)端輸出,發(fā)送、接收都是8位數據,低位在前,高位在后。圖4.14為串行口在方式0下的功能框圖。,,,,,,,,,,,,,,,,,,,,,圖4.14 串行口在方式0下的功能框圖,,發(fā)送階段CPU在S6P2時刻向緩沖器SBUF寫操作時,“1”被裝入發(fā)送移位寄存器的第9位,并告之發(fā)送控制模塊開始發(fā)送。當寫有效后,相隔一個機器周期發(fā)送控制端SEND有效(高電平),允許移位寄存器的輸出從RxD(P3.
68、0)引腳發(fā)送,同時允許移位時鐘SHIFT CLOCK從TxD(P3.1)引腳輸出。每個機器周期的S6P2時刻,SEND有效時,發(fā)送移位寄存器向右移一位。每向右移一位,從左邊向最高位移入一個“0”位。當數據的最高位到達移位寄存器的輸出位后,最初裝入在第9位的“1”移到了最高位的左邊,并且其左邊所有的位都為“0”,這一條件標志發(fā)送控制模塊在將最高位移出后將使SEND無效,并置TI=1。 接收的初始化的條件為:REN=1和RI=0。在
69、下個周期S6P2時刻,接收控制單元將11111110寫入接收移位寄存器,相隔一個機器周期使接收控制RECEIVE有效。RECEIVE允許移位時鐘SHIFT CLOCK從TxD(P3.1)引腳輸出,當RECEIVE有效時,每個機器周期的S6P2時刻,接收移位寄存器的內容左移一位,右邊進來的值是S5P2 時刻從P3.0引腳采樣的值。當初始化裝入的值11111110左邊的“1”逐步移出,“0”到達移位寄存器的最左邊時,標志著接收控制模塊再作最
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 51單片機學習第四章
- 第四章細胞物質輸出和輸入
- 通信原理答案第四章
- 習題4答案單片機的中斷系統(tǒng)、定時器與串行通信
- 第四章AVR單片機指令系統(tǒng).PDF
- 第四章AVR單片機指令系統(tǒng).PDF
- 第四章 細胞的物質輸入和輸出
- 現(xiàn)代通信原理與技術答案第四章
- sdh原理第四章
- 制冷原理第四章
- 第四章em78系列單片機程序設計基礎
- 第六章 單片機的中斷與定時系統(tǒng)
- 通信電路第四章答案
- 單片機中定時產生的中斷
- 第四-6章單片機輸出電路設計
- 第四章_gps定位原理
- 第四章 流體潤滑原理
- 雙單片機串行通信
- 第四章 細胞的物質輸入和輸出 單元練習題
- 幾何光學課件第四章
評論
0/150
提交評論