第四章I、O應(yīng)用技術(shù)_第1頁(yè)
第四章I、O應(yīng)用技術(shù)_第2頁(yè)
第四章I、O應(yīng)用技術(shù)_第3頁(yè)
第四章I、O應(yīng)用技術(shù)_第4頁(yè)
第四章I、O應(yīng)用技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩125頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第四章 I/O應(yīng)用技術(shù)第一節(jié) MCS-51單片機(jī)的中斷系統(tǒng)一、概述一、概述 與上對(duì)比,單片機(jī)中也有同樣的問題。與上對(duì)比,單片機(jī)中也有同樣的問題。CPU正正 在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行 新程序。新程序。CPU執(zhí)行新程序結(jié)束后,又回到原程序中執(zhí)行新程序結(jié)束后,又回到原程序中 繼續(xù)執(zhí)行。這樣的過程就叫繼續(xù)執(zhí)行。這樣的過程就叫 。 什么叫中斷?什么叫中斷? 舉例:某同學(xué)正在教室寫作業(yè),忽然被人叫出去,回來舉例:某同學(xué)正在教室寫作業(yè),忽然被人叫出去,回來 后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。 對(duì)突發(fā)

2、事故,做出緊急處理。對(duì)突發(fā)事故,做出緊急處理。 根據(jù)現(xiàn)場(chǎng)隨時(shí)變化的各種參數(shù)、信息,做出實(shí)時(shí)監(jiān)控。根據(jù)現(xiàn)場(chǎng)隨時(shí)變化的各種參數(shù)、信息,做出實(shí)時(shí)監(jiān)控。 CPUCPU與外部設(shè)備并行工作與外部設(shè)備并行工作, ,以中斷方式相聯(lián)系以中斷方式相聯(lián)系, ,提高工提高工作效率。作效率。 解決快速解決快速CPU與慢速外設(shè)之間的矛盾。與慢速外設(shè)之間的矛盾。 在多項(xiàng)外部設(shè)備同時(shí)提出中斷請(qǐng)求情況下,在多項(xiàng)外部設(shè)備同時(shí)提出中斷請(qǐng)求情況下,CPUCPU能根能根據(jù)輕重緩急響應(yīng)外設(shè)的中斷請(qǐng)求。據(jù)輕重緩急響應(yīng)外設(shè)的中斷請(qǐng)求。 中斷的作用:中斷的作用:對(duì)于對(duì)于MCS-51單片機(jī)中斷系統(tǒng)的組成可以用一句話來講,單片機(jī)中斷系統(tǒng)的組成可以

3、用一句話來講,叫做:叫做:“五源中斷,兩級(jí)管理五源中斷,兩級(jí)管理” 五個(gè)中斷源:五個(gè)中斷源: 入口地址入口地址 外部中斷外部中斷0(/INT0) 0003H T0溢出中斷溢出中斷 000BH 外部中斷外部中斷1(/INT1) 0013H T1溢出中斷溢出中斷 001BH 串口中斷串口中斷 0023H 二、中斷請(qǐng)求源(二、中斷請(qǐng)求源(“五源中斷五源中斷”)中斷源的中斷請(qǐng)中斷源的中斷請(qǐng)求 , 如 何 通 知求 , 如 何 通 知CPU?利用中斷請(qǐng)求標(biāo)志位來通知!利用中斷請(qǐng)求標(biāo)志位來通知!以上以上6個(gè)中斷請(qǐng)求標(biāo)志位分別分布在個(gè)中斷請(qǐng)求標(biāo)志位分別分布在TCON、SCON兩個(gè)寄存器中。兩個(gè)寄存器中。TC

4、ONIT0IE0IT1IE1TR0TF0TR1TF1TF1 T1的溢出中斷標(biāo)志的溢出中斷標(biāo)志 硬件置硬件置1,硬件清,硬件清0(也可軟件清(也可軟件清0)TF0 T0的溢出中斷標(biāo)志。(同的溢出中斷標(biāo)志。(同TF1,只是針對(duì)只是針對(duì)T0的)的)IE1 外部中斷外部中斷1(/INT1)請(qǐng)求標(biāo)志。請(qǐng)求標(biāo)志。 外部有中斷請(qǐng)求時(shí),硬件使外部有中斷請(qǐng)求時(shí),硬件使IE1置置1,硬件清,硬件清0。IE0 外部中斷外部中斷0(/INT0)請(qǐng)求標(biāo)志。請(qǐng)求標(biāo)志。IT1 外部中斷外部中斷1(/INT1)觸發(fā)類型控制位。觸發(fā)類型控制位。 IT1 = 0 ,低電平觸發(fā)。低電平觸發(fā)。IT1 = 1 IT1 = 1 , 下降

5、沿觸發(fā)。下降沿觸發(fā)。 IT0 外中斷外中斷0(/INT0)觸發(fā)類型控制位,用法同觸發(fā)類型控制位,用法同IT1。 SCONSCON RI TIRB8TB8RENSM2SM1SM0TI 串口發(fā)送中斷標(biāo)志位。串口發(fā)送中斷標(biāo)志位。 發(fā)送完數(shù)據(jù),硬件使發(fā)送完數(shù)據(jù),硬件使TI置置1,軟件清,軟件清0(CLR TI) RI 串行口接收中斷標(biāo)志位。串行口接收中斷標(biāo)志位。 硬件置硬件置1,軟件清,軟件清0。 在中斷源與CPU之間有二級(jí)中斷允許控制邏輯電路,類似開關(guān),其中第一級(jí)為一個(gè)總開關(guān),第二級(jí)為五個(gè)分開關(guān),由IE控制。 三、中斷控制(兩級(jí)管理)三、中斷控制(兩級(jí)管理)1、中斷屏蔽(第一級(jí)管理)、中斷屏蔽(第一

6、級(jí)管理)IEEX0ET0EX1ET1 ES EAEA 總控制位總控制位 “” 未定義位未定義位ES 串口控制位串口控制位 ET1 T1中斷控制位中斷控制位 EX1 /INT1控制位控制位 ET0 T0中斷控制位中斷控制位 EX0 /INT0控制位控制位 若為若為“1”,開關(guān)接通,允,開關(guān)接通,允許許例如例如 SETB EA若為若為“0”,開關(guān)斷開,不,開關(guān)斷開,不允許允許例如例如 CLR IE.72、中斷優(yōu)先級(jí)(第二級(jí)管理)、中斷優(yōu)先級(jí)(第二級(jí)管理)為什么要有為什么要有中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)?CPU同一時(shí)間只能響應(yīng)一個(gè)中斷請(qǐng)求。同一時(shí)間只能響應(yīng)一個(gè)中斷請(qǐng)求。若同時(shí)來了兩個(gè)或兩個(gè)若同時(shí)來了兩個(gè)或兩

7、個(gè)以上中斷請(qǐng)求,就必須有先有后。以上中斷請(qǐng)求,就必須有先有后。 ! 為此將為此將5個(gè)中斷源分成高級(jí)、低級(jí)兩個(gè)級(jí)別,高級(jí)優(yōu)先,由個(gè)中斷源分成高級(jí)、低級(jí)兩個(gè)級(jí)別,高級(jí)優(yōu)先,由IP控制??刂?。 IPPX0PT0PX1PT1 PSP S 串口的中斷優(yōu)先級(jí)別串口的中斷優(yōu)先級(jí)別PT1 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器T1的中斷優(yōu)先級(jí)別的中斷優(yōu)先級(jí)別PX1 外部中斷外部中斷1 的中斷優(yōu)先級(jí)別的中斷優(yōu)先級(jí)別PT0 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器T0的中斷優(yōu)先級(jí)別的中斷優(yōu)先級(jí)別PX0 外部中斷外部中斷0 的中斷優(yōu)先級(jí)別的中斷優(yōu)先級(jí)別該位是該位是“1”時(shí),為高級(jí)優(yōu)先級(jí)時(shí),為高級(jí)優(yōu)先級(jí)該位是該位是“ 0”時(shí),為低級(jí)優(yōu)先時(shí),為

8、低級(jí)優(yōu)先級(jí)級(jí)同一級(jí)中的同一級(jí)中的5個(gè)中斷源的優(yōu)先順序是:個(gè)中斷源的優(yōu)先順序是: /INT0中斷中斷 T0溢出中斷溢出中斷 /INT1中斷中斷 T1溢出中斷溢出中斷 串口中斷串口中斷 高高低低出廠前已由廠家固化順序出廠前已由廠家固化順序事先約定事先約定中斷優(yōu)先原則:(概括為四句話)中斷優(yōu)先原則:(概括為四句話)1、低級(jí)不打斷高級(jí)、低級(jí)不打斷高級(jí)2、高級(jí)不睬低級(jí)、高級(jí)不睬低級(jí)3、同級(jí)不能打斷、同級(jí)不能打斷4、同級(jí)、同時(shí)中斷、同級(jí)、同時(shí)中斷,事先約定事先約定。 事件事件1事件事件2子程序子程序2子程序子程序1中斷中斷嵌套嵌套的概念:的概念: 主程序主程序中斷中斷中斷中斷四、四、MCS-51中斷的響應(yīng)

9、過程中斷的響應(yīng)過程 CPU每個(gè)機(jī)器周期都需要順序檢查每個(gè)中斷源,當(dāng)檢測(cè)到有每個(gè)機(jī)器周期都需要順序檢查每個(gè)中斷源,當(dāng)檢測(cè)到有中斷請(qǐng)求時(shí),能否響應(yīng),還要看下述情況是否存在:中斷請(qǐng)求時(shí),能否響應(yīng),還要看下述情況是否存在: (1)CPU正處理相同級(jí)別或更高級(jí)別的中斷;正處理相同級(jí)別或更高級(jí)別的中斷;(2)正在執(zhí)行指令,還未到最后一個(gè)機(jī)器周期;)正在執(zhí)行指令,還未到最后一個(gè)機(jī)器周期;(3)正在執(zhí)行的指令是)正在執(zhí)行的指令是RETI或訪問或訪問IP、IE指令,則執(zhí)行完上指令,則執(zhí)行完上 述指令后,再執(zhí)行一條指令后,才會(huì)響應(yīng)新中斷。述指令后,再執(zhí)行一條指令后,才會(huì)響應(yīng)新中斷。 日常生活中日常生活中的中斷與的

10、中斷與單片機(jī)單片機(jī)中斷的比較:中斷的比較: 某同學(xué)某同學(xué) 單片機(jī)單片機(jī) 過程說明過程說明正在看書正在看書 執(zhí)行主程序執(zhí)行主程序有人找出去有人找出去 中斷信號(hào)中斷信號(hào) 中斷請(qǐng)求中斷請(qǐng)求暫??磿鴷和?磿?暫停執(zhí)行主程序暫停執(zhí)行主程序 中斷響應(yīng)中斷響應(yīng)書中作記號(hào)書中作記號(hào) 當(dāng)前當(dāng)前PCPC入棧入棧 保護(hù)斷點(diǎn)保護(hù)斷點(diǎn)出去做事出去做事 執(zhí)行中斷程序執(zhí)行中斷程序 中斷服務(wù)中斷服務(wù)回來繼續(xù)看回來繼續(xù)看 返回主程序返回主程序 中斷返回中斷返回響應(yīng)過程:(假設(shè)已使某中斷請(qǐng)求標(biāo)志置響應(yīng)過程:(假設(shè)已使某中斷請(qǐng)求標(biāo)志置1)(1)先使相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置)先使相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置1;(2)執(zhí)行一個(gè)硬件子程序的調(diào)用

11、,)執(zhí)行一個(gè)硬件子程序的調(diào)用, 1)硬件清零相應(yīng)中斷請(qǐng)求標(biāo)志()硬件清零相應(yīng)中斷請(qǐng)求標(biāo)志(TI、RI除外)除外) 2)將當(dāng)前)將當(dāng)前PC內(nèi)容壓入堆棧內(nèi)容壓入堆棧保護(hù)斷點(diǎn);保護(hù)斷點(diǎn); 3)將中斷服務(wù)子程序入口地址送)將中斷服務(wù)子程序入口地址送PC轉(zhuǎn)移。轉(zhuǎn)移。 返回過程:(返回過程:(RETI執(zhí)行后)執(zhí)行后)(1)使相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器清)使相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器清0。(2)從堆棧中彈出棧頂?shù)膬蓚€(gè)字節(jié)內(nèi)容送)從堆棧中彈出棧頂?shù)膬蓚€(gè)字節(jié)內(nèi)容送PC恢復(fù)斷點(diǎn)。恢復(fù)斷點(diǎn)。(3)CPU接著中斷處繼續(xù)執(zhí)行原程序。接著中斷處繼續(xù)執(zhí)行原程序。 注意:注意:1)保護(hù)斷點(diǎn)與保護(hù)現(xiàn)場(chǎng)以及恢復(fù)斷點(diǎn)與恢復(fù)現(xiàn)場(chǎng)的區(qū)別。)保護(hù)斷

12、點(diǎn)與保護(hù)現(xiàn)場(chǎng)以及恢復(fù)斷點(diǎn)與恢復(fù)現(xiàn)場(chǎng)的區(qū)別。 2)外部中斷響應(yīng)時(shí)間在)外部中斷響應(yīng)時(shí)間在3 8個(gè)機(jī)器周期之間。個(gè)機(jī)器周期之間。 利用外部中斷實(shí)現(xiàn)單步操作利用外部中斷實(shí)現(xiàn)單步操作: : 80310INT+5v在主程序中在主程序中:CLR IT0SETB EASETB PX0SETB EX0 在中斷服務(wù)子程序中在中斷服務(wù)子程序中:JNB P3.2 , $JB P3.2 , $RETI小結(jié):小結(jié):1、MCS-51單片機(jī)中斷系統(tǒng)有幾個(gè)中斷源?分別是什么?單片機(jī)中斷系統(tǒng)有幾個(gè)中斷源?分別是什么? 事先約定的優(yōu)先順序是怎樣的?事先約定的優(yōu)先順序是怎樣的?2、如何進(jìn)行中斷允許控制?如何進(jìn)行中斷優(yōu)先級(jí)控制?、如

13、何進(jìn)行中斷允許控制?如何進(jìn)行中斷優(yōu)先級(jí)控制?3、中斷優(yōu)先的規(guī)則是什么?、中斷優(yōu)先的規(guī)則是什么? 4-2 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器一、定時(shí)一、定時(shí)/ 計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)4-2 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器一、定時(shí)一、定時(shí)/ 計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)4-2 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器一、定時(shí)一、定時(shí)/ 計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)4-2 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器一、定時(shí)一、定時(shí)/ 計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)51子系列單片機(jī)內(nèi)有子系列單片機(jī)內(nèi)有兩個(gè)兩個(gè)十六位十六位增一增一 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器TH0計(jì)數(shù)值高八位計(jì)數(shù)值高八位TL0計(jì)數(shù)值低八位計(jì)數(shù)值低八位TH1計(jì)數(shù)值高八位計(jì)數(shù)值高八位TL1計(jì)數(shù)

14、值低八位計(jì)數(shù)值低八位TMODTCON工作方式工作方式定時(shí)定時(shí) / 計(jì)數(shù)控制計(jì)數(shù)控制控控 制制 控控制制1、工作方式控制寄存器、工作方式控制寄存器 TMOD TMOD M0 M1C / GATE M0 M1C / GATETTT1T0GATE 門控位。門控位。 GATE = 0 啟動(dòng)不受啟動(dòng)不受 /INT0或或 /INT1的控制;的控制; GATE = 1 啟動(dòng)受啟動(dòng)受 /INT0 或或 /INT1 的控制。的控制。 C/T 外部計(jì)數(shù)器外部計(jì)數(shù)器 / 定時(shí)器方式選擇位定時(shí)器方式選擇位 C/T = 0 定時(shí)方式;定時(shí)方式; C /T = 1 計(jì)數(shù)方式計(jì)數(shù)方式。 M1M0 工作模式選擇位(編程可決定

15、四種工作模式)工作模式選擇位(編程可決定四種工作模式)。 2、定時(shí)、定時(shí) / 計(jì)數(shù)器控制寄存器計(jì)數(shù)器控制寄存器TCON TCONTF1 TR1 TF0 TR0 IE1IT1IE0IT0 能否啟動(dòng)定時(shí)能否啟動(dòng)定時(shí) / 計(jì)數(shù)器工作與計(jì)數(shù)器工作與GATE有關(guān),分兩種情況:有關(guān),分兩種情況: GATE = 0 時(shí),若時(shí),若TRi = 1,開啟開啟Ti計(jì)數(shù)工作;計(jì)數(shù)工作;(i = 0或或1) 若若TRi = 0,停止停止Ti計(jì)數(shù)。計(jì)數(shù)。 GATE = 1 時(shí),若時(shí),若TRi = 1 且且/INTi = 1時(shí)開啟時(shí)開啟Ti計(jì)數(shù);計(jì)數(shù); 若若TRi = 1 且且/INTi = 0時(shí)不能開啟時(shí)不能開啟Ti計(jì)數(shù)

16、。計(jì)數(shù)。 若若TRi = 0, 停止停止Ti計(jì)數(shù)。計(jì)數(shù)。 TR0 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器0運(yùn)行控制位。運(yùn)行控制位。 軟件置位,軟件復(fù)位。軟件置位,軟件復(fù)位。 TR1 定時(shí)定時(shí) / 計(jì)數(shù)器計(jì)數(shù)器1運(yùn)行控制位。(運(yùn)行控制位。(用法與用法與TR1類似)類似) 二、定時(shí)二、定時(shí) / 計(jì)數(shù)器的四種工作模式計(jì)數(shù)器的四種工作模式 M1 M0 模式模式 說明說明 0 0 0 13位定時(shí)位定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 高八位高八位TH(7 0)+ 低五位低五位TL(4 0) 0 1 1 16位定時(shí)位定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 TH(7 0)+ TL(7 0) 1 0 2 8位計(jì)數(shù)初值自動(dòng)重裝位計(jì)數(shù)初值自動(dòng)重裝 TL(7 0)

17、 TH(7 0) 1 1 3 T0運(yùn)行,而運(yùn)行,而T1停止工作,停止工作,8位定時(shí)位定時(shí)/計(jì)數(shù)。計(jì)數(shù)。 二、定時(shí)二、定時(shí) / 計(jì)數(shù)器的四種工作模式計(jì)數(shù)器的四種工作模式1、模式、模式0計(jì)數(shù)寄存器計(jì)數(shù)寄存器TLi 低低5位位 + THi8位位 (T1、T0的等效邏輯結(jié)構(gòu))的等效邏輯結(jié)構(gòu)) TLi(5位)THi(8位)TFi中斷控制BAC/T=0振蕩器1/12&1TiTRiGATEINTiC/T=104 07C/T = 0 定時(shí);定時(shí); C/T = 1 對(duì)外計(jì)數(shù)。對(duì)外計(jì)數(shù)。定時(shí):定時(shí):fosc / 12 = 1 /(12/fosc) = 1 / T 波形等間隔,次數(shù)已定,時(shí)間確定波形等間隔,

18、次數(shù)已定,時(shí)間確定即對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。即對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。 左圖定時(shí)時(shí)間為左圖定時(shí)時(shí)間為 N*TN個(gè)方波個(gè)方波 T計(jì)數(shù):脈沖不等間隔。計(jì)數(shù):脈沖不等間隔。 每個(gè)下降沿計(jì)數(shù)一次每個(gè)下降沿計(jì)數(shù)一次 確認(rèn)一次負(fù)跳變需兩個(gè)機(jī)器周期,確認(rèn)一次負(fù)跳變需兩個(gè)機(jī)器周期, 所以,計(jì)數(shù)頻率最高為所以,計(jì)數(shù)頻率最高為fosc / 24。 2、模式、模式1與模式與模式0相似。相似。與模式與模式0的區(qū)別:計(jì)數(shù)位數(shù)不同。的區(qū)別:計(jì)數(shù)位數(shù)不同。計(jì)數(shù)計(jì)數(shù) 寄寄 存存 器:器:THi(高高8位)位)+ TLi(低低8位)位) TFi中斷TLi(8位)THi(8位)07 07控制BAC/T=0振蕩器1/12&1TiT

19、RiGATEINTiC/T=13、模式、模式2與模式與模式0、1的區(qū)別:的區(qū)別:1)計(jì)數(shù)位數(shù)不同;)計(jì)數(shù)位數(shù)不同; 2)初值自動(dòng)重裝。)初值自動(dòng)重裝。 TFi中斷TLi(8位)THi(8位)控制BAC/T=0振蕩器1/12&1TiTRiGATEINTiC/T=14、模式、模式3T0定時(shí)定時(shí)/計(jì)數(shù),而計(jì)數(shù),而T1停止計(jì)數(shù),但可作波特率發(fā)生器。停止計(jì)數(shù),但可作波特率發(fā)生器。T0分成兩獨(dú)立定時(shí)分成兩獨(dú)立定時(shí)/計(jì)數(shù)計(jì)數(shù)器器TL0和和TH0。TL0使用使用C/T、GATE、TR0、/INT0、TF0定時(shí)定時(shí)/計(jì)數(shù),計(jì)數(shù),TH0使用使用TR1、TF1 因此,只能用于定時(shí)因此,只能用于定時(shí) TF0中

20、斷控制BAC/T=0振蕩器1/12&1TiTRiGATEINTiC/T=1TL0(8位)振蕩器1/12TH0TF1中斷(a)TL0作8位定時(shí)/計(jì)數(shù)器(b)TH0作8位定時(shí)器模式模式3時(shí),時(shí),T1可定時(shí)為模式可定時(shí)為模式0、1、2的定時(shí)的定時(shí)/計(jì)數(shù),但不可中斷,所計(jì)數(shù),但不可中斷,所以一般只作串口波特率發(fā)生器用。以一般只作串口波特率發(fā)生器用。 振蕩器1/12TL1(5位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)振蕩器1/12TL1(8位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)TLi(8位)THi(8位)振蕩器1/12C/T=0C/T=1T1(P3.5)串

21、行口(a) T0模式模式3時(shí)時(shí)T1模式模式0(b) T0模式模式3時(shí)時(shí)T1模式模式1(c) T0模式模式3時(shí)時(shí)T1模式模式2編程前確定參數(shù):編程前確定參數(shù):(1)定時(shí))定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 T0、T1選擇其一,選擇其一,(2)工)工 作作 方方 式式 C/T及及GATA,(3)計(jì)計(jì) 數(shù)數(shù) 初初 值值 加加1計(jì)數(shù)、計(jì)數(shù)、16位。位。 計(jì)數(shù):計(jì)數(shù):X=MN;M=213=8192(模式模式0) M=216=65536(模式模式1) M=28=256 (模式模式2、 模式模式3)定時(shí):定時(shí): X=MN =M t/T(t為所要求的為所要求的 定時(shí)時(shí)間,定時(shí)時(shí)間,T為機(jī)器周期)為機(jī)器周期) (4 4)工)工

22、 作作 模模 式式 M1M1、M0M0 N0010 10 4 6MX四、定時(shí)四、定時(shí)/計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用編制初始化程序:編制初始化程序:1)寫)寫TMOD;2)確定確定IE、IP;3)寫計(jì)數(shù)初值;寫計(jì)數(shù)初值;4)啟動(dòng)計(jì)數(shù)()啟動(dòng)計(jì)數(shù)(TRi) 例例1、設(shè)計(jì)一個(gè)能產(chǎn)生、設(shè)計(jì)一個(gè)能產(chǎn)生t=1ms的周期信號(hào)發(fā)生器,試編程的周期信號(hào)發(fā)生器,試編程。解:選解:選T0; C/T=0,GATE= 0 N = t / T = t /12(1/fosc)= 500 所以,所以, X = M 500 , 模式模式0、模式、模式1均可,取模式均可,取模式0,M=213=8192X = 8192500 = 76

23、92 = 1E0CH = 0001 1110 000 0 1100B, 1E0CH01100TL011110000TH0F0H0CH先將低五位放入先將低五位放入TL0中,再將剩余的數(shù)從右中,再將剩余的數(shù)從右向左數(shù)出八位放入向左數(shù)出八位放入TH0中。中。 LJMP MAIN ORG 000BH LJMP INSE1 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H SETB TR0 SETB ET0 SETB EA SJMP ORG 0000H INSE1: MOV TL0,#0CH MOV TH0,#0F0

24、H CPL P10 RETI 小結(jié):小結(jié):1、MCS-51單片機(jī)內(nèi)有幾個(gè)定時(shí)計(jì)數(shù)器?單片機(jī)內(nèi)有幾個(gè)定時(shí)計(jì)數(shù)器? 如何計(jì)數(shù)?如何計(jì)數(shù)? 2、T0、T1有幾種工作方式?有幾種工作方式? 3、編程應(yīng)用前要事先確定的參數(shù)有幾個(gè)?、編程應(yīng)用前要事先確定的參數(shù)有幾個(gè)? 4-3 定時(shí)定時(shí) / 計(jì)數(shù)器的應(yīng)用計(jì)數(shù)器的應(yīng)用 TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0 M0 M1C / GATE M0 M1 C/ GATETTTMODTCON例例2、設(shè)、設(shè)fosc = 6MHz,利用單片機(jī)內(nèi)定時(shí)利用單片機(jī)內(nèi)定時(shí)/計(jì)數(shù)器及計(jì)數(shù)器及P10口線輸出口線輸出1000個(gè)脈沖,脈沖周期為個(gè)脈沖,脈沖周期為2m

25、as,試編程。試編程。 8031 P1.0 T12ms T = 121/fosc = 2us 選取選取T0定時(shí);定時(shí);T1計(jì)數(shù)。計(jì)數(shù)。 設(shè)設(shè)T0采用中斷方式產(chǎn)生周期為采用中斷方式產(chǎn)生周期為2ms方波,方波,T1對(duì)該方波計(jì)數(shù),當(dāng)輸對(duì)該方波計(jì)數(shù),當(dāng)輸出至第出至第1000個(gè)脈沖時(shí),使個(gè)脈沖時(shí),使TF1置置1。 在主程序中用查詢方法,檢在主程序中用查詢方法,檢測(cè)到測(cè)到TF1變變1時(shí),關(guān)掉時(shí),關(guān)掉T0,停止輸出方波。停止輸出方波。 T0、T1參數(shù)的確定:參數(shù)的確定:T0模式模式0、定時(shí):脈寬為脈沖周期的一半、定時(shí):脈寬為脈沖周期的一半所以,所以,X = 2131ms / 2us = 0001 1110

26、0000 1100BTH0 = 0F0H ; TL0 = 0CH T1模式模式1、計(jì)數(shù):、計(jì)數(shù):N = 1000 則則 X = 655361000 = 64536 = 0FC18H (若選模式若選模式0也可以,此時(shí)也可以,此時(shí)X = 7192=1C18H) 程序:程序: ORG 0000H LJMP MAIN ORG 000BH LJMP TOS ORG 1000H MAIN: MOV TMOD,#50H;T0定時(shí),模式定時(shí),模式0;T1計(jì)數(shù),模式計(jì)數(shù),模式1 MOV TL0,#0CH MOV TH0,#0F0H MOV TL1,#18H MOV TH1,#0FCH SETB TR1 SETB

27、 TR0 SETB ET0 SETB EA WAIT: JNB TF1,WAIT;查詢查詢1000個(gè)脈沖計(jì)夠沒有到個(gè)脈沖計(jì)夠沒有到? CLR EA CLR ET0 ANL TCON,#0FH ; 停停T0、T1 SJMP TOS: MOV TL0,#0CH MOV TH0,#0F0H CPL P10 RETI END 例例3、脈沖參數(shù)測(cè)量、脈沖參數(shù)測(cè)量GATE功能的使用。功能的使用。 脈沖高電平(計(jì)數(shù))長(zhǎng)度值存于脈沖高電平(計(jì)數(shù))長(zhǎng)度值存于21H、20H中,中, 脈沖低電平長(zhǎng)度存于脈沖低電平長(zhǎng)度存于23H、22H中。中。 電路連接如下圖所示。電路連接如下圖所示。解:解: 復(fù)習(xí)復(fù)習(xí)GATE的用法

28、:的用法: GATE = 0時(shí),時(shí),TRi = 1,即可啟動(dòng)即可啟動(dòng)Ti定時(shí)定時(shí) / 計(jì)數(shù)計(jì)數(shù) GATE = 1時(shí),時(shí),TRi = 1,且且 =1,才啟動(dòng)定時(shí)才啟動(dòng)定時(shí) / 計(jì)數(shù)。計(jì)數(shù)。INTi80310INT1INTP3.2P3.11被測(cè)信號(hào)被測(cè)信號(hào)21a3T0計(jì)數(shù)計(jì)數(shù)T1計(jì)數(shù)計(jì)數(shù) ORG 0000H LJMP MAIN ORG 2000HMAIN:MOV TMOD,#99H ;T0、T1均工作在定時(shí),均工作在定時(shí), ;模式;模式1,GATE=1 MOV A,#00H ;T0、T1賦計(jì)數(shù)初值賦計(jì)數(shù)初值00H, ; 定時(shí)最長(zhǎng)時(shí)間為定時(shí)最長(zhǎng)時(shí)間為0000 65536 MOV TL0,A MOV

29、TH0,A MOV TL1,A MOV TH1,A TEST0: JB P32,TEST0 ;檢測(cè)是否到檢測(cè)是否到a點(diǎn)點(diǎn) SETB TR0 ;到到a點(diǎn),點(diǎn),TR0 = 1,做好取計(jì)時(shí)值準(zhǔn)備。做好取計(jì)時(shí)值準(zhǔn)備。TEST1: JNB P32,TEST1 ;檢測(cè)是否到檢測(cè)是否到1點(diǎn)點(diǎn) SETB TR1 ;到到1點(diǎn)點(diǎn)T0計(jì)時(shí);計(jì)時(shí);TR1 = 1,做好做好T1計(jì)時(shí)準(zhǔn)備。計(jì)時(shí)準(zhǔn)備。TEST2:JB P32,TEST2 ;檢測(cè)是否到檢測(cè)是否到2點(diǎn)點(diǎn) CLR TR0 ;到到2點(diǎn),停止點(diǎn),停止T0計(jì)時(shí),計(jì)時(shí),T1開始計(jì)時(shí)。開始計(jì)時(shí)。 MOV 20H,TH0 ;保存保存T0計(jì)時(shí)結(jié)果計(jì)時(shí)結(jié)果 MOV 21H,TL

30、0TEST3:JB P33,TEST3 ;檢測(cè)是否到檢測(cè)是否到3點(diǎn)點(diǎn) CLR TR1 ;到到3點(diǎn),停止點(diǎn),停止T1計(jì)數(shù)計(jì)數(shù) MOV 22H,TH1 ;保存保存T1計(jì)數(shù)結(jié)果計(jì)數(shù)結(jié)果 MOV 23H,TL1 LCALL DISP SJMP 小結(jié):小結(jié):1、定時(shí)、定時(shí)/計(jì)數(shù)的四種方式是怎樣的?計(jì)數(shù)的四種方式是怎樣的? 2、如何計(jì)算計(jì)數(shù)初值?如何編程送入計(jì)數(shù)初值?、如何計(jì)算計(jì)數(shù)初值?如何編程送入計(jì)數(shù)初值? 3、GATE的用法是怎樣的?的用法是怎樣的? 8051803180C318751805280328752(DIP封裝)15915204036312921VccP0.0 / AD0P0.7 / AD7

31、EA / VPPALE / PROGPSENP2.0 / A8P0.1 / AD1P0.2 / AD2P0.3 / AD3P0.4 / AD4P0.5 / AD5P0.6 / AD6P2.6 / A14P2.7 / A15P2.5 / A13P2.4 / A12P2.3 / A11P2.2 / A10P2.1 / A9T2 / P1.0T2EX / P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD / P3.0TXD / P3.1INT0 / P3.2INT1 / P3.3T0 / P3.4T1 / P3.5WR / P3.6RD / P3.7XTALXTAL1VSS4-4

32、 MCS-51單片機(jī)串行接口單片機(jī)串行接口一、串行通信概述一、串行通信概述1 1、什么叫串行通信?、什么叫串行通信? 在生活中同學(xué)們排橫隊(duì)行走在生活中同學(xué)們排橫隊(duì)行走 并行;排縱隊(duì)行走并行;排縱隊(duì)行走 串行。串行。計(jì)算機(jī)中在傳輸信息、數(shù)據(jù)時(shí)也有并行、串行的問題。計(jì)算機(jī)中在傳輸信息、數(shù)據(jù)時(shí)也有并行、串行的問題。0010001001P1.0P1.1P1.2P1.3RXDTXD單片機(jī)單片機(jī)外設(shè)外設(shè)1外設(shè)外設(shè)2111111 0 1 01 0 0 0并行通信的特點(diǎn)并行通信的特點(diǎn):短距離、高速度,傳輸線多。:短距離、高速度,傳輸線多。 串行通信的特點(diǎn)串行通信的特點(diǎn):傳輸線少,方便、長(zhǎng)距離傳輸。:傳輸線少,

33、方便、長(zhǎng)距離傳輸。接收設(shè)備接收設(shè)備發(fā)送設(shè)備發(fā)送設(shè)備2、同步通信、異步通信、同步通信、異步通信 同步同步發(fā)送設(shè)備時(shí)鐘與接收設(shè)備時(shí)鐘嚴(yán)格一致。發(fā)送設(shè)備時(shí)鐘與接收設(shè)備時(shí)鐘嚴(yán)格一致。校驗(yàn)字符校驗(yàn)字符2校驗(yàn)字符校驗(yàn)字符1 數(shù) 據(jù)數(shù) 據(jù) n 數(shù) 據(jù)數(shù) 據(jù) 2 數(shù) 據(jù)數(shù) 據(jù) 1同步字符同步字符2同步字符同步字符1異步異步 發(fā)送時(shí)鐘與接收時(shí)鐘不一定相等。發(fā)送時(shí)鐘與接收時(shí)鐘不一定相等??臻e位空閑位停止位停止位奇偶校驗(yàn)位奇偶校驗(yàn)位58位數(shù)據(jù)位數(shù)據(jù)起始位起始位空閑位空閑位 異步通信的幀格式(由異步通信的幀格式(由4部分組成):部分組成): 起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位。起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位。 異

34、步通信的特點(diǎn)異步通信的特點(diǎn): (1)每幀傳送一個(gè)字符(字節(jié)),字符間不)每幀傳送一個(gè)字符(字節(jié)),字符間不一定相連;一定相連; (2)系統(tǒng)簡(jiǎn)單可靠、造價(jià)低,)系統(tǒng)簡(jiǎn)單可靠、造價(jià)低, (3)傳輸速度較低。)傳輸速度較低。 異步通信的幀格式(由異步通信的幀格式(由4部分組成):部分組成):起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位。起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位。 異步通信的特點(diǎn)異步通信的特點(diǎn):(1)每幀傳送一個(gè)字符(字節(jié)),字符間不一定相連;)每幀傳送一個(gè)字符(字節(jié)),字符間不一定相連;(2)系統(tǒng)簡(jiǎn)單可靠、造價(jià)低,)系統(tǒng)簡(jiǎn)單可靠、造價(jià)低,(3)傳輸速度較低。)傳輸速度較低。二、同步通信二、同步通信

35、同步通信的含義:同步通信的含義:發(fā)送端和接收端使用同一個(gè)時(shí)鐘,同步發(fā)、收。發(fā)送端和接收端使用同一個(gè)時(shí)鐘,同步發(fā)、收。 同步通信的幀格式:同步通信的幀格式:由同步字符和多個(gè)(大量)連續(xù)的數(shù)據(jù)構(gòu)成。由同步字符和多個(gè)(大量)連續(xù)的數(shù)據(jù)構(gòu)成。 同步通信的特點(diǎn)同步通信的特點(diǎn):傳輸速度高、系統(tǒng)復(fù)雜、造價(jià)高。傳輸速度高、系統(tǒng)復(fù)雜、造價(jià)高。異步異步 發(fā)送時(shí)鐘與接收時(shí)鐘不一定相等。發(fā)送時(shí)鐘與接收時(shí)鐘不一定相等??臻e位空閑位停止位停止位奇偶校驗(yàn)位奇偶校驗(yàn)位58位數(shù)據(jù)位數(shù)據(jù)起始位起始位空閑位空閑位3、串行通信的方向、串行通信的方向單工單工 A 發(fā)發(fā) B 發(fā)發(fā)半雙工半雙工 A 發(fā)發(fā) 收收 B 收收 發(fā)發(fā)例如:廣播電臺(tái)

36、例如:廣播電臺(tái) 收音機(jī)收音機(jī)例如:例如: 對(duì)講機(jī)對(duì)講機(jī)全雙工全雙工 A 發(fā)發(fā) 收收 B 收收 發(fā)發(fā)例如:例如: 電話機(jī)電話機(jī)4、波特率、波特率即串行通信速率。即串行通信速率。 b/s 、 bps 在異步通信中,單位時(shí)間內(nèi)所傳送的有效二進(jìn)制位數(shù)在異步通信中,單位時(shí)間內(nèi)所傳送的有效二進(jìn)制位數(shù)波特率。波特率。舉例、設(shè)有一幀信息,舉例、設(shè)有一幀信息,1個(gè)起始位、個(gè)起始位、8個(gè)數(shù)據(jù)位、個(gè)數(shù)據(jù)位、1個(gè)停止位,傳輸個(gè)停止位,傳輸速率為每秒速率為每秒240個(gè)字符。求波特率。個(gè)字符。求波特率。解:解:(181)240 = 2400 b/s = 2400波特。波特。 三、波特率三、波特率 是描述是描述數(shù)據(jù)傳輸速率

37、數(shù)據(jù)傳輸速率的物理量。的物理量。定義為:定義為:每秒鐘傳送的二進(jìn)制代碼的位數(shù)。每秒鐘傳送的二進(jìn)制代碼的位數(shù)。 單位:?jiǎn)挝唬罕忍兀ū忍兀╞/s)9. 1. 4 串行通信協(xié)議串行通信協(xié)議(異步協(xié)議)(異步協(xié)議) 協(xié)議:協(xié)議:是對(duì)數(shù)據(jù)傳送方式的規(guī)定。是對(duì)數(shù)據(jù)傳送方式的規(guī)定。 幀格式幀格式1、起始位、起始位2、數(shù)據(jù)位:、數(shù)據(jù)位:58位位3、奇偶校驗(yàn)位:、奇偶校驗(yàn)位:1位位4、停止位:、停止位:12位位5、波特率、波特率6、握手信號(hào)、握手信號(hào) 9.2 串行口及應(yīng)用串行口及應(yīng)用 8051有一可編程的全雙工串行通信接口,可用有一可編程的全雙工串行通信接口,可用作作異步串行通信異步串行通信,也可用作,也可用作

38、同步移位寄存器同步移位寄存器;可單;可單機(jī)通信,也可多機(jī)通信;其幀格式有機(jī)通信,也可多機(jī)通信;其幀格式有8位、位、10位、位、11位;可設(shè)置不同波特率。位;可設(shè)置不同波特率。 9. 2. 1 8051串行口串行口 一、一、 8051串行口結(jié)構(gòu)串行口結(jié)構(gòu) 1、發(fā)送部分、發(fā)送部分 發(fā)送寄存器發(fā)送寄存器SBUF、發(fā)送移位寄存器(并、發(fā)送移位寄存器(并串)串) 2、接收部分、接收部分 接收移位寄存器(接收移位寄存器(串串并并) 、接收寄存器、接收寄存器SBUF 3、時(shí)鐘部分(產(chǎn)生波特率)、時(shí)鐘部分(產(chǎn)生波特率) 定時(shí)器定時(shí)器T1、分頻器分頻器(2、16分頻)等分頻)等 8051串行口結(jié)構(gòu)串行口結(jié)構(gòu)1、

39、發(fā)送部分、發(fā)送部分 2、接收部分、接收部分 3、時(shí)鐘部分、時(shí)鐘部分發(fā)送發(fā)送接收接收5、串行通信接口、串行通信接口發(fā)送:發(fā)送:CPUD7D6D5D4D3D2D1D0發(fā)送寄存器發(fā)送寄存器SBUF 0 1D0D1D2D3D4D5D6D7發(fā)送時(shí)鐘發(fā)送時(shí)鐘:接收接收:D0D1D2D3D4D5D6D7 1 0D7D6D5D4D3D2D1D0CPU接收時(shí)鐘接收時(shí)鐘接收數(shù)據(jù)寄接收數(shù)據(jù)寄存器存器SBUF二、二、MCS-51機(jī)串行接口機(jī)串行接口單片機(jī)內(nèi)有通用異步接收單片機(jī)內(nèi)有通用異步接收/發(fā)送器發(fā)送器 UART。全雙工,全雙工,4種工作方式,波特率可編程設(shè)置,可中斷。種工作方式,波特率可編程設(shè)置,可中斷。 1、串

40、口的組成、串口的組成 從編程角度講來看主要由以下寄存器組成。從編程角度講來看主要由以下寄存器組成。 SBUF 串行發(fā)送串行發(fā)送 / 接收數(shù)據(jù)緩沖器接收數(shù)據(jù)緩沖器 是兩個(gè)物理單元,共用一個(gè)地址(是兩個(gè)物理單元,共用一個(gè)地址(99H)SMODPCON 電源管理寄存器電源管理寄存器SMOD位用于決定波特率的倍數(shù)。位用于決定波特率的倍數(shù)。 0 20 = 1倍倍 1 21 = 2倍倍SCON 串行口控制寄存器串行口控制寄存器SM0SM1SM2RENTB8RB8 TI RITI / RI :中斷請(qǐng)求標(biāo)志位(前面已講過)中斷請(qǐng)求標(biāo)志位(前面已講過)RB8:接收的第九位數(shù)接收的第九位數(shù)TB8:發(fā)送的第九位數(shù)發(fā)

41、送的第九位數(shù)REN:允許接收控制位允許接收控制位SM2:多機(jī)通信控制位(常與多機(jī)通信控制位(常與RB8配合,決定是否激活配合,決定是否激活RI)SM0、SM1:工作方式選擇位(四種工作方式)工作方式選擇位(四種工作方式)三、三、 串行通信工作方式串行通信工作方式 8051有有4種工作方式,有種工作方式,有3種幀格式,波特率可變。種幀格式,波特率可變。1、串行口方式、串行口方式0 方式方式0為同步移位寄存器輸入為同步移位寄存器輸入/輸出方式輸出方式,常用于擴(kuò),常用于擴(kuò)展展I/O口。口。 此時(shí),此時(shí),SM0=0、SM1=0 (1)方式)方式0的特點(diǎn):的特點(diǎn):1)一幀僅有)一幀僅有8位數(shù)據(jù),無起始和

42、結(jié)束位,低位在前。位數(shù)據(jù),無起始和結(jié)束位,低位在前。2)RXD引腳用于傳送數(shù)據(jù),引腳用于傳送數(shù)據(jù),TXD用于傳送時(shí)鐘。用于傳送時(shí)鐘。3)波特率固定,其值為)波特率固定,其值為 osc/12。2、串行口的工作方式、串行口的工作方式(1)方式)方式0:同步移位寄存器方式同步移位寄存器方式 波特率固定為波特率固定為fosc / 12 RXD 接收發(fā)送數(shù)據(jù)接收發(fā)送數(shù)據(jù) TXD 產(chǎn)生同步移位脈沖產(chǎn)生同步移位脈沖 接收接收/發(fā)送完,置位發(fā)送完,置位RI / TI ,(,(要求要求SM2 = 0) D7 D6 D5 D4 D3 D2 D1 D0 D0 D1 D2 D3 D4 D5 D6 D7發(fā)送發(fā)送接收接收

43、無起始位,無停止位無起始位,無停止位 。可用于并口的擴(kuò)展??捎糜诓⒖诘臄U(kuò)展。2、串行口的工作方式串行口的工作方式(1)方式)方式0: 2、串行口的工作方式串行口的工作方式(1)方式)方式0: (2)方式)方式0發(fā)送發(fā)送 用于擴(kuò)展并行輸出口用于擴(kuò)展并行輸出口,用,用74LS164芯片。芯片。 啟動(dòng)輸出啟動(dòng)輸出(發(fā)送)(發(fā)送)用用“向向SBUF寫寫數(shù)據(jù)指令數(shù)據(jù)指令”。用用RXD引腳引腳傳送數(shù)據(jù),傳送數(shù)據(jù),TXD引腳引腳傳送時(shí)鐘。傳送時(shí)鐘。 74LS164可級(jí)連多片??杉?jí)連多片。 (3)方式)方式0接收接收 用于擴(kuò)展并行輸入口用于擴(kuò)展并行輸入口,用,用74LS165芯片。芯片。 啟動(dòng)輸入啟動(dòng)輸入(接

44、收):(接收):REN置置1(且(且RI=0)。 用用RXD引引腳傳送數(shù)據(jù),腳傳送數(shù)據(jù),用用TXD引腳引腳傳送時(shí)鐘。傳送時(shí)鐘。 74LS165可級(jí)連多片??杉?jí)連多片。移位移位/置數(shù)置數(shù)時(shí)鐘禁止時(shí)鐘禁止 162、串行口方式、串行口方式1 方式方式1是真正用于串行發(fā)送和接收,為是真正用于串行發(fā)送和接收,為10位通用異位通用異步接口。步接口。 此時(shí),此時(shí),SM0=0、SM1=1 (1)特點(diǎn):)特點(diǎn):1)一幀有)一幀有10位,位,1位起始,位起始,8位數(shù)據(jù)位,位數(shù)據(jù)位,1位停止位。位停止位。接收時(shí)接收時(shí)停止位進(jìn)入停止位進(jìn)入SCON的的RB8。2)RXD引腳引腳用于接收用于接收數(shù)據(jù),數(shù)據(jù),TXD引腳引腳

45、用于發(fā)送用于發(fā)送數(shù)據(jù)。數(shù)據(jù)??梢酝瑫r(shí)進(jìn)行收、發(fā)??梢酝瑫r(shí)進(jìn)行收、發(fā)。3)波特率可變,由)波特率可變,由T1的溢出率決定的溢出率決定。(2)方式)方式1:8位位UART 波特率為(波特率為(2SMODT1的溢出率)的溢出率)/ 32 ,可變。,可變。 一幀信息一幀信息10位。位。D0D1D2D3D4D5D6D7停止位停止位起始位起始位發(fā)送發(fā)送D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收送送 RB8發(fā)送完置位發(fā)送完置位TI。當(dāng)接收到數(shù)據(jù)后,置位當(dāng)接收到數(shù)據(jù)后,置位RI是有條件的。即:是有條件的。即:REN = 1,RI = 0 且且SM2 = 0 或或SM2 = 1且接收到的停

46、止位為且接收到的停止位為1。此時(shí),數(shù)據(jù)裝載此時(shí),數(shù)據(jù)裝載SBUF, RI置置1 ,停止位進(jìn)入停止位進(jìn)入RB8。 (2)方式)方式1發(fā)送發(fā)送啟動(dòng)發(fā)送啟動(dòng)發(fā)送: 用用“向向SBUF寫數(shù)據(jù)指令寫數(shù)據(jù)指令”便啟動(dòng)了發(fā)送。數(shù)據(jù)從便啟動(dòng)了發(fā)送。數(shù)據(jù)從TXD引腳送出。數(shù)據(jù)發(fā)完后引腳送出。數(shù)據(jù)發(fā)完后TI置置1。 發(fā)送時(shí)序如下圖所示。發(fā)送時(shí)序如下圖所示。 (3)方式)方式1接收接收1)接收條件:)接收條件:SCON中的中的REN置置12)接收過程:)接收過程: REN置置1后,串行口對(duì)接收引腳后,串行口對(duì)接收引腳RXD檢檢測(cè),當(dāng)測(cè),當(dāng)RXD由高變低時(shí)開始移位接收;接收完后將由高變低時(shí)開始移位接收;接收完后將停止

47、位裝入停止位裝入RB8中。中。3)接收的數(shù)據(jù)有效的條件:)接收的數(shù)據(jù)有效的條件: a)RI=0; b)SM2=0,或者,或者SM2=1并且并且RB8=1 滿足以上滿足以上2條,條,則將則將8位數(shù)據(jù)裝入位數(shù)據(jù)裝入SBUF中,并且中,并且RI 置置1。有以下情況之一則數(shù)據(jù)無效:有以下情況之一則數(shù)據(jù)無效: a) RI=1; b) SM2=1并且并且RB8=0 注意:除了方式注意:除了方式2、3的多機(jī)通信之外,的多機(jī)通信之外,SM2應(yīng)清應(yīng)清0 接收時(shí)序如下圖所示。接收時(shí)序如下圖所示。(2)方式)方式1:8位位UART 波特率為(波特率為(2SMODT1的溢出率)的溢出率)/ 32 ,可變。,可變。方式

48、方式1 1為為1010位通用異步接口:一位起始位、位通用異步接口:一位起始位、8 8位數(shù)據(jù)位和一位停位數(shù)據(jù)位和一位停止位,此時(shí)止位,此時(shí)SCONSCON中的中的SMoSMo、SMlSMl兩位為兩位為0101。串行口電路在發(fā)送時(shí)。串行口電路在發(fā)送時(shí)能能自動(dòng)插入起始位和停止位自動(dòng)插入起始位和停止位,在接收數(shù)據(jù)時(shí),停止位進(jìn)入特殊,在接收數(shù)據(jù)時(shí),停止位進(jìn)入特殊功能寄存器功能寄存器SCONSCON的某一位。方式的某一位。方式1 1的傳送波特率是可變的。的傳送波特率是可變的。 方式方式1 1發(fā)送:數(shù)據(jù)從引腳加發(fā)送:數(shù)據(jù)從引腳加(P3.1)(P3.1)端輸出,當(dāng)執(zhí)行數(shù)據(jù)寫入端輸出,當(dāng)執(zhí)行數(shù)據(jù)寫入發(fā)送數(shù)據(jù)緩沖

49、器發(fā)送數(shù)據(jù)緩沖器SBuFSBuF命令時(shí),就啟動(dòng)了發(fā)送器開始。發(fā)送時(shí)的命令時(shí),就啟動(dòng)了發(fā)送器開始。發(fā)送時(shí)的定時(shí)信號(hào),也就是發(fā)送移位時(shí)鐘定時(shí)信號(hào),也就是發(fā)送移位時(shí)鐘(Tx(Tx時(shí)鐘時(shí)鐘) ),它是由定時(shí)器,它是由定時(shí)器TT送送來的溢出信號(hào)經(jīng)過來的溢出信號(hào)經(jīng)過1616分頻或分頻或3232分頻分頻( (取決取決SMODSMOD的值的值) )而取得的。而取得的。發(fā)送開始的同時(shí),內(nèi)部控制信號(hào)有效,將起始位向發(fā)送開始的同時(shí),內(nèi)部控制信號(hào)有效,將起始位向TxD輸出,輸出,此后每過一個(gè)此后每過一個(gè)TxTx時(shí)鐘周期就產(chǎn)生時(shí)鐘周期就產(chǎn)生一一個(gè)移位脈沖,并由個(gè)移位脈沖,并由TxDTxD輸出輸出一個(gè)數(shù)據(jù)位,當(dāng)一個(gè)數(shù)據(jù)位

50、,當(dāng)8 8位數(shù)據(jù)位全部發(fā)完后,置位位數(shù)據(jù)位全部發(fā)完后,置位TITI,并申請(qǐng)中斷。,并申請(qǐng)中斷。(2)方式)方式1:8位位UART 方式方式1 1接收:數(shù)據(jù)從引腳接收:數(shù)據(jù)從引腳RXD(P3.0)RXD(P3.0)端輸入。接收端輸入。接收是在是在SCONSCON寄存器中寄存器中RENREN位置位置“l(fā)”l”的前提下,并檢測(cè)到的前提下,并檢測(cè)到起始位起始位(RxD(RxD上檢測(cè)上檢測(cè)“1-0”1-0”的跳變,即起始位的跳變,即起始位) )而開始。而開始。 在第在第9 9位數(shù)據(jù)收齊之后位數(shù)據(jù)收齊之后(8(8位數(shù)據(jù),一位停止位位數(shù)據(jù),一位停止位) ),必須同時(shí)滿足兩個(gè)條件,這次接收才真正有效:必須同時(shí)

51、滿足兩個(gè)條件,這次接收才真正有效:RI=0RI=0和和SM2=0SM2=0或者接收到的停止位為或者接收到的停止位為1 1。 如果不滿足這兩個(gè)條件,則這一次收到的數(shù)據(jù)就如果不滿足這兩個(gè)條件,則這一次收到的數(shù)據(jù)就不裝入不裝入SBuF中,實(shí)際上就意味著丟失了一組數(shù)據(jù)。因中,實(shí)際上就意味著丟失了一組數(shù)據(jù)。因?yàn)榇锌隈R上又開始尋找下一個(gè)起始位準(zhǔn)備接收下一為串行口馬上又開始尋找下一個(gè)起始位準(zhǔn)備接收下一組數(shù)據(jù)了。組數(shù)據(jù)了。3、串行口方式、串行口方式2和方式和方式3 此時(shí),此時(shí),SM0=1、SM1=0、1 (1)特點(diǎn):)特點(diǎn):1)一幀有)一幀有11位。位。1位起始,位起始,8位數(shù)據(jù)位,位數(shù)據(jù)位,1位校驗(yàn)位校驗(yàn)

52、/特征特征位(接收時(shí)位(接收時(shí)該位進(jìn)入該位進(jìn)入SCON的的RB8),),1位停止位。位停止位。2)RXD引腳引腳用于接收用于接收數(shù)據(jù),數(shù)據(jù),TXD引腳引腳用于發(fā)送用于發(fā)送數(shù)據(jù)。數(shù)據(jù)??梢酝瑫r(shí)進(jìn)行收、發(fā)。可以同時(shí)進(jìn)行收、發(fā)。3)方式)方式2波特率固定有兩種值;方式波特率固定有兩種值;方式3波特率可變,由波特率可變,由T1的溢出率決定的溢出率決定。4)可以進(jìn)行多機(jī)通信。)可以進(jìn)行多機(jī)通信。(3)方式)方式2、方式、方式3 :9位位UART 一般一般用于多機(jī)通信。一幀信息用于多機(jī)通信。一幀信息1111位。位。 D0D1D2D3D4D5D6D7TB8停止位停止位起始位起始位發(fā)送發(fā)送發(fā)送完數(shù)據(jù)置位發(fā)送完

53、數(shù)據(jù)置位TI。 TB8D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收接收到有效數(shù)據(jù)完畢,置位接收到有效數(shù)據(jù)完畢,置位RI的條件的條件:REN = 1,RI = 0 且且SM2 = 0或接收到第或接收到第9位數(shù)據(jù)為位數(shù)據(jù)為1,此時(shí),數(shù)據(jù)裝載此時(shí),數(shù)據(jù)裝載SBUF,RI置置1,第,第9位數(shù)據(jù)(位數(shù)據(jù)(TB8) RB8。 送送RB8 (2)方式)方式2、3的發(fā)送與接收的發(fā)送與接收 與方式與方式1類似,從略。時(shí)序如下圖所示,僅多了類似,從略。時(shí)序如下圖所示,僅多了1位。位。發(fā)送時(shí)序發(fā)送時(shí)序接收時(shí)序接收時(shí)序四、波特率設(shè)計(jì)四、波特率設(shè)計(jì) 波特率是串行通信協(xié)議中的一個(gè)重要內(nèi)容。波特率是串行

54、通信協(xié)議中的一個(gè)重要內(nèi)容。 在在8051單片機(jī)串行通信的單片機(jī)串行通信的4種工作方式中種工作方式中,方式方式0和和方式方式2的波特率固定,方式的波特率固定,方式1和方式和方式3的波特率可變,的波特率可變,由由T1的溢出率確定。的溢出率確定。1、方式、方式0的波特率的波特率 波特率產(chǎn)生原理如下圖所示。波特率產(chǎn)生原理如下圖所示。波特率值波特率值= osc/12書中用書中用,示數(shù)據(jù)關(guān)系示數(shù)據(jù)關(guān)系2、方式、方式2的波特率的波特率 波特率產(chǎn)生原理如下圖所示。波特率產(chǎn)生原理如下圖所示。 波特率值波特率值=(2SMOD /64 ) osc SMOD是是PCON中的最高位,中的最高位,稱為波特率加倍位,稱為波

55、特率加倍位,為為1時(shí)加倍。時(shí)加倍。3、方式、方式1和方式和方式3的波特率的波特率 波特率產(chǎn)生原理如下圖所示。波特率產(chǎn)生原理如下圖所示。方式方式2波特率:(固定)波特率:(固定)2SMOD / 64 fosc3、波特率的設(shè)置、波特率的設(shè)置方式方式0、方式、方式2固定。固定。方式方式1,方式,方式3可變。波特率可變。波特率 = 2SMOD / 32 (T1的溢出率)的溢出率) T1溢出率溢出率 = 單位時(shí)間內(nèi)溢出次數(shù)單位時(shí)間內(nèi)溢出次數(shù) = 1 /(T1的定時(shí)時(shí)間)的定時(shí)時(shí)間)而而T1的定時(shí)時(shí)間的定時(shí)時(shí)間t就是就是T1溢出一次所用的時(shí)間。此情況下,一般設(shè)溢出一次所用的時(shí)間。此情況下,一般設(shè)T1工作在

56、模式工作在模式2(8位自動(dòng)重裝初值)。位自動(dòng)重裝初值)。 N = 28 t / T, t = (28N)T =(28N)12 / fosc所以,所以,T1溢出率溢出率 = 1/t = fosc / 12(28N),),故,故, 波特率波特率 = 2SMOD / 32 fosc / 12(256N)。)。若已知波特率,則可求出若已知波特率,則可求出T1的計(jì)數(shù)初值:的計(jì)數(shù)初值: y = 2562SMODfosc / (波特率波特率3212) 波特率值波特率值=(2SMOD /32 )(T1T1溢出率)溢出率)T1T1溢出率溢出率=1/=1/定時(shí)時(shí)間定時(shí)時(shí)間t t=(2N-初值初值X)*機(jī)器周期機(jī)器

57、周期Tcy =(2N-初值初值X)12/12/osc 波特率值波特率值=(2SMOD /32 ) osc/ /(1212(2N-X) = = osc(SMOD+1SMOD+1)/ /(384384(2N-X) 初值初值X=X= 2N - osc(SMOD+1SMOD+1)/ /(384384波特率值)波特率值) 1313 T1 T1以模式以模式0 0工作工作 81928192N= 16N= 16 T1 T1以模式以模式1 1工作工作 對(duì)應(yīng)對(duì)應(yīng) 2N = 65536= 65536 8 8 T1 T1以模式以模式2 2工作工作 256256注意:注意:T1T1以模式以模式0 0、1 1工作時(shí),(工

58、作時(shí),(1 1)需要編寫中斷處理)需要編寫中斷處理程序,在程序中需重新賦初值;(程序,在程序中需重新賦初值;(2 2)且有時(shí)間誤差,)且有時(shí)間誤差,可調(diào)整初值補(bǔ)償??烧{(diào)整初值補(bǔ)償。 T1T1以模式以模式2 2工作無這些問題。工作無這些問題。例、若例、若fosc = 6MHz,波特率為波特率為2400波特,設(shè)波特,設(shè)SMOD = 1,則定時(shí)則定時(shí)/計(jì)計(jì)數(shù)器數(shù)器T1的計(jì)數(shù)初值為多少?并進(jìn)行初始化編程。的計(jì)數(shù)初值為多少?并進(jìn)行初始化編程。 解:解:X= 2562SMODfosc / (24003212)= 242.98243 = F3H fosc = 11.0592MHz,波特率為波特率為2400,

59、設(shè),設(shè)SMOD = 0,則則 X = F4H 。初始化編程:初始化編程: MOV TMOD,#20H MOV PCON,#80H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 MOV SCON,#50H 常用的波常用的波特率與特率與T1的初的初值、值、SMOD、振蕩頻率等振蕩頻率等參數(shù)的對(duì)應(yīng)關(guān)參數(shù)的對(duì)應(yīng)關(guān)系如表系如表9-2所示。所示。 例例9-1 8051單片機(jī)的時(shí)鐘振蕩頻率為單片機(jī)的時(shí)鐘振蕩頻率為11.0592MHz,選用定時(shí)器選用定時(shí)器T1工作于模式工作于模式2作為波特率發(fā)生器,波特作為波特率發(fā)生器,波特率為率為2400b/s。求。求T1的初值的初值X,并編寫初

60、始化程序段。,并編寫初始化程序段。解:設(shè)波特率加倍位解:設(shè)波特率加倍位SMOD=0 X=256-11.0592 106 (0+1)/(384(0+1)/(3842400)2400) =244 =244 =F4H =F4H 初始化程序段:初始化程序段: :MOV TMOD,#20HMOV TH1,#0F4HMOV TL1,#0F4HSETB TR1 :二、串行口方式二、串行口方式1的發(fā)送和接收的發(fā)送和接收 例例9-5 用用8051的的串行口以方式串行口以方式1發(fā)送發(fā)送ASCII數(shù)據(jù)塊,數(shù)據(jù)塊,要求波特率為要求波特率為1200b/s,進(jìn)行校驗(yàn)進(jìn)行校驗(yàn)。試編寫。試編寫采用查詢采用查詢方式方式發(fā)送的程序。設(shè)數(shù)據(jù)在片內(nèi)發(fā)送的程序。設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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)論