![單片機C語言5課件_第1頁](http://file4.renrendoc.com/view/7dd3f0431f3b6bcfd1bbf6bf213c5126/7dd3f0431f3b6bcfd1bbf6bf213c51261.gif)
![單片機C語言5課件_第2頁](http://file4.renrendoc.com/view/7dd3f0431f3b6bcfd1bbf6bf213c5126/7dd3f0431f3b6bcfd1bbf6bf213c51262.gif)
![單片機C語言5課件_第3頁](http://file4.renrendoc.com/view/7dd3f0431f3b6bcfd1bbf6bf213c5126/7dd3f0431f3b6bcfd1bbf6bf213c51263.gif)
![單片機C語言5課件_第4頁](http://file4.renrendoc.com/view/7dd3f0431f3b6bcfd1bbf6bf213c5126/7dd3f0431f3b6bcfd1bbf6bf213c51264.gif)
![單片機C語言5課件_第5頁](http://file4.renrendoc.com/view/7dd3f0431f3b6bcfd1bbf6bf213c5126/7dd3f0431f3b6bcfd1bbf6bf213c51265.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、任務(wù)1 簡易電子計分器任務(wù)2 方波信號發(fā)生器任務(wù)3 簡易頻率計任務(wù)4 主從呼叫器任務(wù)1 簡易電子計分器1了解單片機中斷概念及工作過程。 2掌握單片機外部中斷相關(guān)寄存器的設(shè)置方法。 3掌握單片機外部中斷初始化過程、中斷處理及應(yīng)用。 4能夠設(shè)計并制作簡易電子計分器。 在舉行一些體育比賽時,如乒乓球、羽毛球、排球和籃球等球類比賽,經(jīng)常會用到電子計分器來給參賽的每一支隊伍進行計分。多功能的電子計分器不僅可以顯示比賽雙方的分數(shù),而且還可以顯示獲勝局數(shù)及倒計時等功能。本任務(wù)主要完成對比賽選手的計分功能,使用兩位LED數(shù)碼管顯示參賽者的得分信息,并手動實現(xiàn)加、減分功能。由于是兩位計數(shù)顯示,因此最大計數(shù)值為9
2、9,當(dāng)超過99時,重新從0開始計數(shù)。具體控制要求如下: 1單片機的P0口依次連接兩位一體共陰數(shù)碼管ag端,分別用于顯示計數(shù)值的十位和個位;2單片機的P2口任選兩個端口作為兩位共陰數(shù)碼管的位選端;3單片機的P3口作為按鍵輸入端,按鍵具體功能見下表:按鍵編號連接端口按鍵功能說明K1P3.2( )加分按鍵,計數(shù)值每次加1K2P3.3( )減分按鍵,計數(shù)值每次減1K3RST復(fù)位按鍵,計數(shù)值歸0一、中斷的概念 執(zhí)行主程序主程序繼續(xù)執(zhí)行 主程序斷點中斷請求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回當(dāng) CPU 正在處理某項事務(wù)時,如果外界或者內(nèi)部發(fā)生了緊急事件,要求 CPU 暫停正在處理工作而去處理這個緊急事件,待處
3、理完后,再回到原來中斷的地方,繼續(xù)執(zhí)行原來被中斷的程序,這個過程就成為中斷。 二、中斷源 產(chǎn)生中斷的請求源稱為中斷源。 MCS-51單片機的中斷源可分為兩類:外部中斷和內(nèi)部中斷 。1. 外部中斷源 外部中斷0(INT0):來自 P3.2 引腳,采集到低電平或者下降沿時,產(chǎn)生中斷請求。外部中斷1(INT1):來自 P3.3 引腳,采集到低電平或者下降沿時,產(chǎn)生中斷請求。2. 內(nèi)部中斷源 定時器計數(shù)器0( T0 ):定時功能時,計數(shù)脈沖來自片內(nèi);計數(shù)功能時,計數(shù)脈沖來自片外 P3.4 引腳。發(fā)生溢出時,產(chǎn)生中斷請求。定時器計數(shù)器1( T1 ):定時功能時,計數(shù)脈沖來自片內(nèi);計數(shù)功能時,計數(shù)脈沖來自
4、片外 P3.5 引腳。發(fā)生溢出時,產(chǎn)生中斷請求。串行口:為完成串行數(shù)據(jù)傳送而設(shè)置。單片機完成接受或發(fā)送一組數(shù)據(jù)時,產(chǎn)生中斷請求。MCS-51單片機內(nèi)部有5個中斷源,但對于8052系列的單片機內(nèi)部則增加了一個定時計數(shù)器2(T2)的中斷,即有6個中斷源。三、中斷特殊功能寄存器TCON(88H)位地址8FH8EH8DH8CH8BH8AH89H88H位符號TF1TR1TF0TR0IE1IT1IE0IT0 IT0 和IT1外部中斷0和1觸發(fā)方式控制位 IT0 (IT1)1 脈沖觸發(fā)方式,下降沿有效; IT0 (IT1)0 電平觸發(fā)方式,低電平有效。 IE0和IE1外部中斷0和1請求標志位1定時/計數(shù)器控
5、制寄存器(TCON)對脈沖觸發(fā)方式的外部中斷,CPU響應(yīng)中斷后硬件自動清除中斷請求標志IE0和IE1,但對電平觸發(fā)方式的外部中斷,由于CPU響應(yīng)中斷速度較快,容易導(dǎo)致連續(xù)多次中斷,因此,選擇外部中斷觸發(fā)方式時,最好選擇下降沿觸發(fā)方式。2中斷允許控制寄存器(IE)IE(A8H)位地址AFHAEHADHACHABHAAHA9HA8H位符號EA/(ET2)ESET1EX1ET0EX0 EA 中斷允許總控制位 EA 0 中斷總禁止,禁止所有中斷; EA 1 中斷總允許,總允許后中斷的禁止或允許由各中斷源的中斷允許控制位進行設(shè)置。 EX0和EX1 外部中斷0和1允許控制位 EX0(EX1) 0 禁止外部
6、中斷 0(1)的中斷; EX0(EX1) 1 允許外部中斷 0(1)的中斷。 ET0和ET1 定時/計數(shù)器0和1中斷允許控制位 ET0(ET1) 0 禁止定時/計數(shù)器 T0(T1)的中斷; ET0(ET1) 0 允許定時/計數(shù)器 T0(T1)的中斷。 ES 串行中斷允許控制位 ES=0 禁止串行中斷; ES=1 允許串行中斷。 ET2 定時/計數(shù)器2中斷允許控制位 (8052系列單片機使用)。3中斷優(yōu)先級控制寄存器(IP)IP(B8H)位地址BFHBEHBDHBCHBBHBAHB9HB8H位符號/(PT2)PSPT1PX1PT0PX0 PX0 外部中斷0優(yōu)先級設(shè)定位。 PT0 定時/計數(shù)器T0
7、優(yōu)先級設(shè)定位。 PX1 外部中斷1優(yōu)先級設(shè)定位。 PT1 定時/計數(shù)器T1優(yōu)先級設(shè)定位。 PS 串行中斷優(yōu)先級設(shè)定位。 PT2 定時/計數(shù)器T2優(yōu)先級設(shè)定位。四、中斷入口地址及響應(yīng)過程中斷源入口地址中斷號說 明中斷優(yōu)先級外部中斷00003H0P3.2( )引腳上的低電平/下降沿引起的中斷高定時/計數(shù)器0000BH1T0計數(shù)器溢出后引起的中斷外部中斷10013H2P3.3( )引腳上的低電平/下降沿引起的中斷定時/計數(shù)器1001BH3T1計數(shù)器溢出后引起的中斷串口中斷0023H4串行口接收或發(fā)送完一幀數(shù)據(jù)后引起的中斷定時/計數(shù)器2002BH5T2計數(shù)器溢出后引起的中斷(51系列單片機沒有此中斷)
8、低關(guān)于中斷的優(yōu)先級有三條原則:1CPU同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級最高的中斷請求。2正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。3正在進行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請求中斷。五、C51中的中斷函數(shù)1中斷號在C51中,每一個中斷源都有一個指定的中斷號,中斷服務(wù)函數(shù)中必須聲明對應(yīng)的中斷號,用中斷號確定該中斷服務(wù)程序是哪個中斷所對應(yīng)的中斷服務(wù)程序。2中斷函數(shù)的格式函數(shù)類型 函數(shù)名(參數(shù)) interrupt 中斷號 using 寄存器組號其中,函數(shù)類型和參數(shù)都取為 void。using 寄存器組號用于指定該中斷函數(shù)內(nèi)部使用的工作寄存器組,寄存器組號的取值為03,可以
9、省略不作設(shè)置。3中斷服務(wù)程序的執(zhí)行外部中斷設(shè)置工作示意圖4外部中斷初始化流程中斷入口地址定義開外部中斷使能(IE)設(shè)置外部中斷觸發(fā)方式(TCON)設(shè)置中斷優(yōu)先級(IP)根據(jù)中斷需要開放相應(yīng)中斷使能根據(jù)需要對TCON中的IT0、IT1設(shè)置為脈沖或電平觸發(fā)方式設(shè)置中斷優(yōu)先級別,當(dāng)不發(fā)生中斷沖突時,可不做設(shè)置根據(jù)中斷使用情況定義相應(yīng)入口地址一、設(shè)計并繪制簡易電子計分器電路原理圖二、程序設(shè)計1TCON的設(shè)置TCON位符號TF1TR1TF0TR0IE1IT1IE0IT0位設(shè)置00000101 TCON = 0 x05; / 字節(jié)操作,選擇下降沿觸發(fā)方式有效或 IT1=1; IT0=1; / 位操作TCO
10、N的初始化設(shè)置如下:2IE的設(shè)置IE位符號EA/(ET2)ESET1EX1ET0EX0位設(shè)置10000101IE的初始化設(shè)置如下: IE = 0X85 ; /開中斷總允許(EA),開外部中斷0和1的中斷或 EA=1; EX1=1; EX0=1; / 位操作 本次設(shè)計不需要考慮中斷優(yōu)先的問題,因此可以省去對中斷優(yōu)先控制寄存器(IP)的設(shè)置,即默認外部中斷( )優(yōu)先。在編程對中斷相關(guān)控制寄存器進行設(shè)置時,既可以采用字節(jié)賦值方式,也可以采用位操作的方式。a) 外部中斷0服務(wù)程序b) 主程序c) 外部中斷1服務(wù)程序根據(jù)上述設(shè)計思路編寫的完整程序: 三、程序輸入及仿真運行四、制作硬件電路并調(diào)試步 驟說
11、明示 范 圖 片1焊接前材料準備參照元器件清單表步 驟說 明示 范 圖 片2硬件焊接電路板元件布局圖步 驟說 明示 范 圖 片3程序燒入、運行并調(diào)試加分運行圖減分運行圖單擊此處返回目錄任務(wù)2 方波信號發(fā)生器 1了解定時/計數(shù)器的工作原理。 2掌握定時/計數(shù)器相關(guān)寄存器的設(shè)置方法。 3掌握定時器中斷的初始化過程及在不同工作方式下初始值的計算方法。 4能夠設(shè)計并制作方波信號發(fā)生器。單片機內(nèi)部含有定時器和計數(shù)器,主要用于延時、定時控制、外部計數(shù)和檢測等。利用單片機定時器輸出指定周期的方波,既可作為其他電路的信號源,也可直接驅(qū)動音響設(shè)備,用來制作報警器和簡易電子琴等電子產(chǎn)品。本任務(wù)將利用定時器中斷方式
12、產(chǎn)生如下圖所示周期為1s的等寬連續(xù)正方波脈沖,并在P1.0口輸出。單片機系統(tǒng)的外接晶振頻率fOSC=12MHz。一、定時/計數(shù)器簡介在51系列單片機內(nèi)部有兩個16位可編程的定時/計數(shù)器,簡稱為T0和T1。它們的核心部件都是16位加法計數(shù)器,當(dāng)計數(shù)計滿回零時,自動產(chǎn)生溢出發(fā)出中斷請求,表示定時時間已到或計數(shù)已滿,使用時可通過編程設(shè)置為定時或計數(shù)模式。 定時/計數(shù)器的寄存器是一個16位的寄存器,由兩個8位寄存器組成,高8位為TH,低8位為TL,見下表: 定時/計數(shù)器名稱寄存器(高8位)寄存器(低8位)T0TH0TL0T1TH1TL1二、定時/計數(shù)器的控制寄存器(TCON)TCON(88H)位地址8
13、FH8EH8DH8CH8BH8AH89H88H位符號TF1TR1TF0TR0IE1IT1IE0IT0 TR0和TR1 定時器運行控制位 TR0(TR1) 0 定時器/計數(shù)器 0(1)停止工作 TR0(TR1) 1 定時器/計數(shù)器 0(1)開始工作 TF0和TF1 T0和T1的溢出標志位 對定時/計數(shù)器T0、T1的中斷,CPU響應(yīng)中斷后,硬件自動清除中斷請求標志TF0和TF1。如果編程中不使用中斷服務(wù)程序,也可在主程序中利用查詢中斷請求標志TF0和TF1的狀態(tài),完成相應(yīng)的中斷功能。 TMOD(89H)位符號GATEM1M0GATEM1M0控制定時器 T1控制定時器 T0三、定時/計數(shù)器的方式控制
14、寄存器(TMOD) GATE 定時器動作開關(guān)控制位,也稱門控位 GATE = 1 時,當(dāng)外部中斷引腳 ( )出現(xiàn)高電平且控制寄存器TCON中TR0(TR1)控制位為1時,才啟動定時器T0(T1)。 GATE = 0 時,只要控制寄存器TCON中TR0(TR1)控制位為1,便啟動定時器T0(T1)。 定時/計數(shù)器模式選擇位 =0時,設(shè)置為定時器模式,定時/計數(shù)器的計數(shù)脈沖輸入來自單片機內(nèi)部系統(tǒng)時鐘提供的工作脈沖(系統(tǒng)晶振輸出脈沖經(jīng)12分頻),計數(shù)值乘以機器周期就是定時的時間。 =1時,設(shè)置為計數(shù)器模式,定時/計數(shù)器的計數(shù)脈沖輸入來自外部引腳 T0(P3.4)或 T1(P3.5)輸入的外部脈沖。
15、M1、M0 工作方式選擇位M1M0工作方式功 能 說 明00方式013位定時/計數(shù)器,TLx只用低5位01方式116位定時/計數(shù)器(常用)10方式2自動重裝初值的8位定時/計數(shù)器,THx的值保持不變,TLx溢出時,THx的值自動裝入TLx中(常用)11方式3僅適用于T0,T0分成2個獨立的8位計數(shù)器,T1停止計數(shù)TMOD不能位尋址,只能是整個字節(jié)進行設(shè)置,如程序中TMOD=0X01; 語句就是對TMOD進行整體設(shè)置。CPU復(fù)位時TMOD所有位清0。四、定時/計數(shù)器的工作方式1工作方式1該模式是一個16位定時/計數(shù)方式,最大計數(shù)值為216=65536。寄存器THx和TLx是以全16位參與操作,當(dāng)
16、要定時任意時間時,采用預(yù)置數(shù)的方法,THx賦高8位,TLx賦低8位。定時工作方式時,定時時間為:T定 =(216 - 初值) 機器周期Tm例 若單片機晶振頻率fosc=12MHz,使用定時器T0工作在方式1下,定時50ms中斷,試計算寄存器TH0和TL0裝入的初始值。 解: 已知 fosc = 12MHz,則: 振蕩周期 Tc = 1/12MHz = 1/12s 機器周期 Tm = 12Tc = 12(1/12) = 1s 因為 T定 =(216 - 初值)Tm 50 000 s =(65 536 - 初值 ) 1 s 所以 初值 = 65 536 - 50 000 = 15 536 = 3C
17、B0H在C51程序設(shè)計時,一般將裝入初值以表達式形式賦值,這樣在編譯程序時會自動將計算結(jié)果換算成對應(yīng)的數(shù)值賦值給THx和TLx,其初始值設(shè)置命令為:THx = (216TfOSC/12)/256 = (65536TfOSC/12)/256; TLx = (216TfOSC/12)%256 = (65536TfOSC/12)%256;2工作方式0該模式是一個13位定時/計數(shù)方式,最大計數(shù)值為213=8192。由寄存器THx的8位和TLx的低5位構(gòu)成,TLx高3位未用。工作原理與方式1一樣,定時工作方式時,定時時間為:T定 =(213 - 初值)機器周期Tm在C51程序設(shè)計中,其初始值設(shè)置命令為:
18、THx = (213TfOSC/12)/32 = (8192- TfOSC/12)/32; TLx = (213TfOSC/12) %32 = (8192- TfOSC/12)%32;3工作方式2該模式是一個8位自動裝入定時/計數(shù)方式,最大計數(shù)值為28=256。TLx用作8位計數(shù)器,THx用作保存計數(shù)初值。在初始化編程時,TLx和THx由指令賦予相同的初值,一旦TLx計數(shù)溢出,則將TFx置“1”,同時將保存在THx中的計數(shù)初值自動重裝入TLx,繼續(xù)計數(shù),THx中的內(nèi)容保持不變,即TLx是一個自動恢復(fù)初值的8位計數(shù)器。定時工作方式時,定時時間為:T定 =(28 - 初值) 機器周期Tm在C51程
19、序設(shè)計中,其初始值設(shè)置命令為:THx = 256 Tfosc/12 ;TLx = 256 Tfosc/12 ;4工作方式3該模式下定時/計數(shù)器T0 被分成兩個獨立的8位定時/計數(shù)器TL0和TH0。其中,TL0既可作定時器,又可作計數(shù)器使用,而TH0則被固定為一個8位定時器(不能作外部計數(shù)模式)。T0被分成兩個來用,那就要兩套控制及溢出標記:TL0還是用原來的T0的標記,而TH0則使用定時器T1的狀態(tài)控制位TR1和TF1。TL0定時工作方式時,定時時間為:T定 =(28 - 初值) 機器周期Tm五、定時/計數(shù)器的初始化中斷入口地址定義開定時中斷使能(IE)確定定時器工作方式(TMOD)預(yù)置定時器
20、的初值(TH/TL)啟動定時器工作(TCON)對TMOD進行設(shè)置,確定啟動方式、計數(shù)/定時功能和工作方式根據(jù)定時時間,計算出定時器的初值,并裝入THx和TLx啟動相應(yīng)定時器開始工作根據(jù)中斷需要開放相應(yīng)中斷使能程序頭定義相應(yīng)中斷的入口地址一、設(shè)計并繪制方波信號發(fā)生器電路原理圖TMOD位符號GATEM1M0GATEM1M0位設(shè)置00000001二、程序設(shè)計1定時中斷相關(guān)SFR的設(shè)置(1)TMOD的設(shè)置TMOD的初始化設(shè)置如下:TMOD = 0 x01; /選擇定時器T0工作于方式1(2)TCON的設(shè)置TCON位符號TF1TR1TF0TR0IE1IT1IE0IT0位設(shè)置00010000TCON的初始
21、化設(shè)置如下: TCON = 0 x10; /字節(jié)操作,啟用定時器T0或 TR0=1; /位操作(3)IE的設(shè)置IE位符號EA/(ET2)ESET1EX1ET0EX0位設(shè)置10000010IE的初始化設(shè)置如下: IE = 0 x82; /*字節(jié)操作,開中斷總允許(EA), 開定時器T0中斷。*/或 EA=1; ET0=1; / 位操作2定時時間的計算本設(shè)計選擇定時器T0工作于方式1,設(shè)置每次定時基準為50ms,定時時間到則計數(shù)1次,連續(xù)定時10次,剛好為0.5s(500ms),然后每隔0.5s再對P1.0口輸出取反一次。每次定時中斷50ms時計數(shù)初始值為: TH0 = (65536-50000)
22、 / 256; /高八位的初始值 TL0 = (65536-50000)%256; /低八位的初始值主程序及中斷服務(wù)程序設(shè)計流程圖:根據(jù)上述設(shè)計思路編寫的完整程序: 三、程序輸入及仿真運行四、制作硬件電路并調(diào)試步驟說明示范圖片1焊接前材料準備參照元器件清單表步驟步驟步驟2硬件焊接電路板元件布局圖3程序燒入、運行并調(diào)試示波器測量的輸出波形圖單擊此處返回目錄任務(wù)3 簡易頻率計 1了解定時器與計數(shù)器之間的關(guān)系。 2掌握計數(shù)器中斷的初始化編程。 3能夠設(shè)計并制作簡易頻率計。利用AT89S51單片機的T0、T1定時/計數(shù)功能設(shè)計一個簡易頻率計,完成對輸入信號頻率的測量,測量結(jié)果通過六位數(shù)碼管動態(tài)顯示出來
23、。測量信號頻率范圍設(shè)置在0100kHz,具體控制要求如下:1P0口依次與一個六位一體共陰數(shù)碼管的碼段端相連,用作頻率的輸出顯示。2P2口連接六位一體共陰數(shù)碼管的位選端,控制數(shù)碼管動態(tài)顯示時的位選。3單片機的P3.4(T0)口作為被測信號的輸入口。一、頻率測量原理用定時器T1來產(chǎn)生一個1s的時鐘基準,同時計數(shù)器T0對由P3.4口輸入的脈沖信號的下降沿進行累積計數(shù),1s定時到,則其頻率=M(Hz)。TMOD位符號GATEM1M0GATEM1M0位設(shè)置00010101二、計數(shù)器相關(guān)SFR1方式控制寄存器(TMOD)TMOD的初始化設(shè)置如下: TMOD = 0 x15; /T0計數(shù)功能,工作于方式1;
24、 /T1定時功能,也工作于方式12定時/計數(shù)器的控制寄存器(TCON)TCON位符號TF1TR1TF0TR0IE1IT1IE0IT0位設(shè)置01010000TCON的初始化設(shè)置如下: TCON = 0 x50; /啟用定時/計數(shù)器T0、T1 或 TR0=1; / T0開始計數(shù); TR1=1; / T1開始定時3中斷允許控制寄存器(IE)IE位符號EA/(ET2)ESET1EX1ET0EX0位設(shè)置10001010IE的初始化設(shè)置如下: IE = 0 x8a; /開中斷總允許(EA), /開定時/計數(shù)器T0、T1中斷 或 EA = 1; ET0 = 1; ET1 = 1; 一、設(shè)計并繪制簡易頻率計電
25、路原理圖二、程序設(shè)計 c)計數(shù)中斷T0服務(wù)程序a) 主程序 b) 定時中斷T1服務(wù)程序 本次設(shè)計僅用計數(shù)方式對P3.4引腳輸入的脈沖進行計數(shù),當(dāng)在頻率較高時測量的相對誤差較大,因此主要用于低頻測量,如能綜合采用計數(shù)法和測周法同步法測量方式,做到脈沖測量時的啟停同步,無計數(shù)誤差,將大大提高測量的精度。根據(jù)上述設(shè)計思路編寫的完整程序: 三、程序輸入及仿真運行四、制作硬件電路并調(diào)試 步 驟說 明示 范 圖 片1焊接前 材料準備參照元器件清單表步驟說明示范圖片2硬件焊接電路板元件布局圖步驟說明示范圖片3程序燒入、運行并調(diào)試無輸入信號時,頻率值顯示為“000000” Hz輸入脈沖信號頻率為500Hz時,
26、顯示為“498”Hz步驟說明示范圖片3程序燒入、運行并調(diào)試輸入脈沖信號頻率為1000Hz時,顯示為“995”Hz單擊此處返回目錄任務(wù)4 主從呼叫器 1了解串行通信的基本概念及通信方式。 2掌握串口不同工作方式下波特率的計算。 3掌握串口中斷初始化及服務(wù)程序的編寫。 4能夠設(shè)計并制作主從呼叫器控制系統(tǒng)。 工業(yè)控制中,用戶常常使用單片機的串口通信功能實現(xiàn)與上位機的信息交換。本任務(wù)通過設(shè)計一套主從呼叫器(包含主機、從機兩部分)來演示單片機的串口通信過程。主機從機其具體控制要求為:1主機一臺,安裝在主控室;從機一臺,放置在被控室中。2從機設(shè)置四個呼叫鍵,通過按鍵可使從機向主機發(fā)送呼叫信號,主機利用一位
27、數(shù)碼管顯示從機呼叫號,當(dāng)從機有呼叫信號時指示燈點亮,并且向主機發(fā)送鍵值。3主機監(jiān)視人員看到從機的呼叫信號后,可按下回應(yīng)鍵,向從機回送信號并滅從機呼叫指示燈,告知從機已收到呼叫信號,并關(guān)閉主機上的顯示信息。一、通信的基本概念并行通信示意圖串行通信示意圖計算機與外部設(shè)備或計算機與計算機之間的信息交換稱為通信,通信可分為并行通信和串行通信兩種基本方式。 二、串行通信的基本方式 1異步通信 起始位:位于數(shù)據(jù)幀的開頭,占1位,為0(低電平),表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。 有效數(shù)據(jù)位:緊跟起始位后,低位在前,高位在后,數(shù)據(jù)位共8位。 奇偶校驗位:緊跟數(shù)據(jù)位后,占1位,視有效數(shù)據(jù)位中1的個數(shù)是奇數(shù)還是偶數(shù)由
28、系統(tǒng)自動確定(偶數(shù)0,奇數(shù)1)。 停止位:位于數(shù)據(jù)幀的末尾,占一位,為1(高電平),表示一幀數(shù)據(jù)發(fā)送完畢。2同步通信同步通信則要求發(fā)送設(shè)備和接收設(shè)備使用完全相同的時鐘頻率,使雙方達到完全同步。同步通信以一串字符為一個傳送單位,字符間不加標識位,在一串字符開始時用同步字符標識,硬件要求高,通信雙方須嚴格同步。同步通信的傳輸速率高(可達56KB/s或更高),但需要保證發(fā)送設(shè)備和接收設(shè)備的完全同步,因此硬件設(shè)備比較復(fù)雜。異步通信速度比較慢,但是設(shè)備簡單,使用方便,對通信設(shè)備要求較低(收、發(fā)設(shè)備的時鐘基本同步即可),可遠距離傳輸數(shù)據(jù),應(yīng)用較廣。3數(shù)據(jù)通信形式串行通信中的數(shù)據(jù)通信形式有三種,分別為單工通
29、信、半雙工通信、全雙工通信。 單工通信:通信雙方,一方只能發(fā)送,另一方只能接收,傳送方向是單一的。 半雙工通信:通信雙方只有一根傳輸線(共地),但任何一方都可以發(fā)送,當(dāng)一方發(fā)送時,另一方只能接收。 全雙工通信:需要通信雙方連接兩條傳輸線(共地),一條是將數(shù)據(jù)從甲方送到乙方,另一條是從乙方送到甲方,允許雙向同時發(fā)送。51系列單片機的串行通信屬于全雙工通信方式。三、單片機雙機異步通信系統(tǒng)四、串口控制相關(guān)寄存器1串行數(shù)據(jù)緩沖器(SBUF) SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器,以便能以全雙工方式進行通信。在邏輯上,SBUF只有一個,它既表示發(fā)送寄存器,又表示接收寄存器,具有同一個單
30、元地址99H。但在物理結(jié)構(gòu)上,則有兩個完全獨立的SBUF,一個是發(fā)送緩沖寄存器SBUF,另一個是接收緩沖寄存器SBUF。 指令: SBUF = ACC /啟動一次數(shù)據(jù)發(fā)送, /可向SBUF再發(fā)送下一個數(shù)指令: ACC = SBUF /完成一次數(shù)據(jù)接收, /SBUF可再接收下一個數(shù)2串行口控制寄存器(SCON)SCON(98H)位地址9FH9EH9DH9CH9BH9AH99H98H位符號SM0SM1SM2RENTB8RB8TIRI SM0、SM1 串行口工作方式選擇位。 SM0SM1工作方式功 能 說 明波 特 率00方式0移位寄存器(用于I/O口擴展)01方式110位UART(8位數(shù)據(jù))波特率
31、可變(由T1溢出率確定)10方式211位UART(9位數(shù)據(jù)) 或11方式311位UART(9位數(shù)據(jù))波特率可變(由T1溢出率確定) SM2 在方式2、3時,用作多機主從串行通信時的控制位。 REN 允許串行口接收控制位(相當(dāng)于串行通信的開關(guān))。REN =0 禁止串行口接收由RXD(P3.0)口輸入的串行數(shù)據(jù)。REN =1 允許串行口接收由RXD(P3.0)口輸入的串行數(shù)據(jù)。 TB8 在方式2、3時,是發(fā)送的第9位數(shù)據(jù),需要時由軟件置位或復(fù)位。 RB8 在方式2、3時,是接收到的第9位數(shù)據(jù);在方式1時,RB8是接收到的停止位;方式0時,不使用RB8。 TI 發(fā)送中斷標志位,數(shù)據(jù)發(fā)送結(jié)束后,由硬件
32、對其置位(TI=1)??捎绍浖樵僒I位標志,也可以向CPU申請中斷,但都必須由軟件清0。 RI 接收中斷標志位。接收數(shù)據(jù)結(jié)束后,由硬件對其置位(RI=1)??捎绍浖樵僐I位標志,也可以向CPU申請中斷,但都必須由軟件清0。在AT89S51中,串行發(fā)送中斷TI和接收中斷RI的中斷號同是interrupt 4,因此在中斷程序中必須由軟件查詢TI和RI的狀態(tài)才能確定究竟是接收還是發(fā)送中斷,進而作出相應(yīng)的處理。單片機復(fù)位時,SCON所有位均清0。3電源控制寄存器(PCON)PCON(87H)位序號D7D6D5D4D3D2D1D0位符號SMOD/GF1GF0PDIDLSMOD位為波特率倍增位。 當(dāng)
33、SMOD = 1時,串行口波特率增加一倍。 當(dāng) SMOD = 0時,串行口波特率為設(shè)定值。 當(dāng) 系統(tǒng)復(fù)位時,SMOD=0。五、串行口的工作方式1方式0串行口工作在方式0時,作同步移位寄存器使用,以8位數(shù)據(jù)為一幀,無起始位和停止位。串行數(shù)據(jù)由RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)端輸出。 這種工作方式常用于擴展I/O口中,外接移位寄存器實現(xiàn)數(shù)據(jù)并行輸入或輸出。工作在方式0時,波特率固定為fosc/12,即每個機器周期輸入或輸出一位數(shù)據(jù)。(1)數(shù)據(jù)發(fā)送當(dāng)數(shù)據(jù)寫入SBUF后,從RXD端輸出,在移位脈沖的控制下,逐位移入74LS164,74LS164完成數(shù)據(jù)的串并轉(zhuǎn)換。當(dāng)8位
34、數(shù)據(jù)全部輸出后,由硬件將TI置“1”,發(fā)出中斷請求。數(shù)據(jù)由74LS164并行輸出,其接口電路如下圖所示,RXD端接74LS164的串行輸入端A、B,TXD接74LS164的時鐘脈沖輸入端CLK,P2.7接74LS164的清零端。 (2)數(shù)據(jù)接收要實現(xiàn)接收數(shù)據(jù),必須首先把SCON中的允許接收位REN置“1”。當(dāng)REN為1時,數(shù)據(jù)在移位脈沖的控制下,從RXD端輸入。當(dāng)接收完8位數(shù)據(jù)時,將接收中斷標志位RI置“1”,發(fā)出中斷請求。 2方式1方式1為10位異步串行通信方式。其幀格式為1個起始位、8個數(shù)據(jù)位和1個停止位,其波特率可調(diào)。(1)數(shù)據(jù)發(fā)送數(shù)據(jù)寫入SBUF后,就啟動發(fā)送器開始發(fā)送,此時由硬件加入
35、起始位和停止位,構(gòu)成一幀數(shù)據(jù),由TXD串行輸出。發(fā)送完一幀數(shù)據(jù)后,將TI置“1”,通知CPU可以進行下一個數(shù)據(jù)的發(fā)送。(2)數(shù)據(jù)接收REN=1且接收到起始位后,就開始接收一幀數(shù)據(jù)。當(dāng)停止位到來后,把停止位送入RB8中,并置位RI,通知CPU接收到一個數(shù)據(jù),將其從SBUF中取走。(3)波特率確定例 串口通信波特率為9600bit/s,晶振頻率fosc=11.0592MHz,使用定時器T1工作在方式2產(chǎn)生波特率,SMOD0,則計數(shù)器初值N= 。 解: 已知 fosc = 12MHz,波特率 = 9600 bit/s。 SMOD=0,T1工作于方式2 因為 所以 即: TH1=0 xfd; TL1=
36、0 xfd;3方式2方式2為11位異步串行通信方式。其幀格式為1個起始位、9個數(shù)據(jù)位和1個停止位。與方式1相比增加了一個第9位數(shù)據(jù)位(D8),其功能由用戶確定,是一個可編程位。(1)數(shù)據(jù)發(fā)送發(fā)送前先根據(jù)通信協(xié)議用指令設(shè)置好SCON中的TB8,然后將要發(fā)送的數(shù)據(jù)(D0D7)寫入SBUF中,而D8位的內(nèi)容則由硬件電路從TB8中直接送到發(fā)送移位寄存器的第9位,并以此來啟動串行發(fā)送。一幀發(fā)送完畢,將TI位置“1”,其他過程與方式1相同。(2)數(shù)據(jù)接收方式2的接收過程也與方式1基本類似,所不同的只在第9位數(shù)據(jù)上,串行口把接收到的前8位數(shù)據(jù)送入SBUF,而把第9位數(shù)據(jù)送入RB8。在接收前先將REN位置“1”,將RI位清“0”。然后根據(jù)SM2的狀態(tài)和接收到的RB8的狀態(tài)決定串行口在數(shù)據(jù)到來后是否使RI置“1”,如RI置“1”則接收數(shù)據(jù),否則不接收數(shù)據(jù)。(3)波特率確定方式2
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售合同管理excel表格系統(tǒng)臺賬登記統(tǒng)計到期提醒Excel表
- 政治教師教學(xué)工作總結(jié)
- 大一學(xué)生期末自我總結(jié)
- 高二下學(xué)期語文教師工作總結(jié)
- 村委會婦女主任個人總結(jié)
- 店鋪經(jīng)營權(quán)轉(zhuǎn)讓協(xié)議書范本
- 個人車輛給公司租賃協(xié)議書范本
- 專業(yè)技術(shù)人員職務(wù)崗位聘用合同范本
- 體育組聽評課活動記錄
- 隴南家庭固化地坪施工方案
- 三年級上冊數(shù)學(xué)脫式計算大全600題及答案
- 計算機控制系統(tǒng) 課件 第10章 網(wǎng)絡(luò)化控制系統(tǒng)的分析與設(shè)計
- 魯教版(五四制)七年級數(shù)學(xué)上冊期末考試卷-附帶答案
- 南京大學(xué)儀器分析習(xí)題集
- 空調(diào)維保應(yīng)急預(yù)案
- 小學(xué)六年級數(shù)學(xué)上冊解決問題專項必考題西師大版
- 2023年高考語文全國乙卷作文范文及導(dǎo)寫(解讀+素材+范文)課件版
- 模塊建房施工方案
- 多域聯(lián)合作戰(zhàn)
- 美容美發(fā)場所衛(wèi)生規(guī)范
- 《隧道工程》(第二版)課件 第1、2章 緒論、隧道工程勘測
評論
0/150
提交評論