單片機(jī)課件 第五章_第1頁(yè)
單片機(jī)課件 第五章_第2頁(yè)
單片機(jī)課件 第五章_第3頁(yè)
單片機(jī)課件 第五章_第4頁(yè)
單片機(jī)課件 第五章_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用 (第5章) 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 C51單片機(jī)最小系統(tǒng)除了有 CPU、存儲(chǔ)器和并行I/O口之 外,還包括定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)和串行接口。對(duì)于一 些增強(qiáng)型單片機(jī)而言,內(nèi)部還集成了看門狗、A/D轉(zhuǎn)換器 等。 l5.1 中斷系統(tǒng) n5.1.1中斷概述 中斷是CPU平常可以處理自己的工作,只有外設(shè)需要和 CPU之間進(jìn)行信息傳送的時(shí)候,才采用中斷的方式,暫停 CPU的工作,使CPU轉(zhuǎn)去處理外設(shè)的請(qǐng)求,處理完外設(shè)請(qǐng)求 后,CPU繼續(xù)執(zhí)行原來(lái)被暫停的工作。中斷傳輸是CPU與外 設(shè)間最常用的一種數(shù)據(jù)傳輸方式。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 采用中斷傳輸

2、方式的功能: (1)CPU與外設(shè)同步工作:CPU與外設(shè)間由串行工作變?yōu)椴?行工作。在CPU啟動(dòng)程序后,執(zhí)行主程序。當(dāng)外設(shè)準(zhǔn)備好 傳送數(shù)據(jù)后,才要求CPU對(duì)其進(jìn)行處理,發(fā)出中斷申請(qǐng), 處理后CPU回到主程序繼續(xù)執(zhí)行,而外設(shè)得到新的數(shù)據(jù)后 也可工作。實(shí)現(xiàn)CPU和外設(shè)的并行工作,大大提高了單片 機(jī)的效率。 (2)實(shí)時(shí)處理:所謂“實(shí)時(shí)”指單片機(jī)能夠?qū)ΜF(xiàn)場(chǎng)采集到 的信息及時(shí)做出分析和處理,以便對(duì)被控對(duì)象立即做出響 應(yīng),使被控對(duì)象保持最佳工作狀態(tài)。利用中斷技術(shù)可及時(shí) 處理隨機(jī)輸入的各種參數(shù)和信息,使單片機(jī)具備實(shí)時(shí)處理 和控制功能。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (3)故障處理:CPU在運(yùn)行過(guò)程中,會(huì)

3、隨機(jī)出現(xiàn)一些無(wú)法預(yù) 料的故障,如電源和硬件故障,數(shù)據(jù)運(yùn)送錯(cuò)誤等。利用中 斷系統(tǒng),CPU可根據(jù)故障源發(fā)出的中斷請(qǐng)求,立即執(zhí)行相 應(yīng)的故障處理程序而不必停機(jī),從而提高了單片機(jī)的可靠 性。 n5.1.2 中斷的相關(guān)概念 (1)中斷:當(dāng)CPU正在執(zhí)行某項(xiàng)任務(wù)A,而外界或內(nèi)部發(fā)生 了緊急事件B,向CPU提出中斷請(qǐng)求, CPU暫停原來(lái)的任務(wù) A(中斷響應(yīng)),轉(zhuǎn)去處理事件(中斷服務(wù)),對(duì)事件B處 理完畢后,再回到原來(lái)任務(wù)A被中斷的地方(即斷點(diǎn))繼 續(xù)處理事件A(中斷返回),這一過(guò)程稱為中斷。 (2)中斷源:向CPU提出中斷請(qǐng)求的來(lái)源、引起中斷的原因, 稱為中斷源。中斷源可以是I/O設(shè)備、故障、時(shí)鐘及調(diào)試 中

4、的設(shè)置。C51中一共有5個(gè):兩個(gè)外部中斷,兩個(gè)定時(shí)/ 計(jì)數(shù)器中斷,一個(gè)串行口中斷。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (3)中斷響應(yīng):CPU在滿足條件情況下接受中斷申請(qǐng),終止 現(xiàn)行程序執(zhí)行,轉(zhuǎn)而為申請(qǐng)中斷的對(duì)象服務(wù)稱中斷響應(yīng)。 (4)斷點(diǎn):現(xiàn)行程序被中斷的地址稱為斷點(diǎn)。 (5)中斷嵌套及中斷優(yōu)先級(jí):當(dāng)幾個(gè)中斷源同時(shí)向CPU發(fā)出 中斷請(qǐng)求時(shí),CPU應(yīng)優(yōu)先響應(yīng)最需要緊急處理的中斷請(qǐng)求, 需要規(guī)定各個(gè)中斷源的優(yōu)先級(jí),優(yōu)先級(jí)高的請(qǐng)求處理完畢 后,再響應(yīng)優(yōu)先級(jí)低的請(qǐng)求,這種預(yù)先安排好的響應(yīng)次序 叫做中斷優(yōu)先級(jí) (6)中斷系統(tǒng):實(shí)現(xiàn)中斷的硬件邏輯和實(shí)現(xiàn)中斷功能的指 令,統(tǒng)稱為中斷系統(tǒng)。 (7)中斷服務(wù)程

5、序和中斷返回:實(shí)現(xiàn)中斷功能的處理程序 稱為中斷服務(wù)程序;完成中斷服務(wù)程序后,返回到被中斷 的程序繼續(xù)執(zhí)行,該過(guò)程稱為中斷返回。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 n5.1.3中斷系統(tǒng) 中斷請(qǐng)求是在執(zhí)行程序的過(guò)程中隨機(jī)發(fā)生的,中斷系統(tǒng)要 解決如下問(wèn)題: (1)CPU在不斷執(zhí)行指令的過(guò)程中,如何檢測(cè)到隨機(jī)發(fā)生的 中斷請(qǐng)求? (2)如何使中斷的雙方(CPU和中斷源)均能人為控制 允許中斷或禁止中斷? (3)由于中斷的產(chǎn)生存在隨機(jī)性,因此不可能在程序中使 用子程序調(diào)用指令或轉(zhuǎn)移指令,那么如何實(shí)現(xiàn)正確的轉(zhuǎn)移, 從而更好地為該中斷源服務(wù)? (4)中斷源有多個(gè),而CPU只有一個(gè),當(dāng)有多個(gè)中斷源同時(shí) 有中斷

6、請(qǐng)求時(shí),用戶怎樣控制CPU按照自己的需要安排響 應(yīng)次序? 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (5)中斷服務(wù)完畢,如何正確地返回到斷點(diǎn)? 1. 中斷系統(tǒng)結(jié)構(gòu) 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 C51系列單片機(jī)中不同型號(hào)芯片的中斷源數(shù)量是不同的, 最基本的C51單片機(jī)有5個(gè)中斷源,分別是兩個(gè)外部中斷 (P3.2)和 (P3.3),2個(gè)片內(nèi)定時(shí)/計(jì)數(shù)器溢出中斷TF0和 TF1,一個(gè)片內(nèi)串行口中斷TI和RI。 特殊功能寄存器包括定時(shí)/計(jì)數(shù)器控制寄存器TCON、串 行口控制寄存器SCON、中斷允許寄存器IE和中斷優(yōu)先級(jí)寄 存器IP,主要用于控制中斷的打開(kāi)和關(guān)閉、保存中斷信息、 設(shè)置優(yōu)先級(jí)別。 2.C

7、51的中斷源: C51單片機(jī)的5個(gè)中斷源分別是: 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (1) 外部中斷請(qǐng)求0,由引腳(P3.2)輸入,低電 平/負(fù)跳變有效,在每個(gè)機(jī)器周期的S5P2采樣,請(qǐng)求標(biāo)志 位為IE0。 (2)外部中斷請(qǐng)求1,由引腳(P3.3)輸入,低電平 /負(fù)跳變有效,在每個(gè)機(jī)器周期的S5P2采樣,請(qǐng)求標(biāo)志位 為IE1。 (3)定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求,請(qǐng)求標(biāo)志位為TF0。 (4)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求,請(qǐng)求標(biāo)志位為TF1。 (5)串行口中斷請(qǐng)求,當(dāng)串行口完成一幀數(shù)據(jù)的發(fā)送和 接收時(shí)請(qǐng)求中斷,請(qǐng)求標(biāo)志位為TI或RI。 3.相關(guān)寄存器 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 C51

8、中斷系統(tǒng)在4個(gè)特殊功能寄存器控制下工作。4個(gè)特 殊功能寄存器是定時(shí)/計(jì)數(shù)器控制寄存器(TCON)、串行 口控制寄存器(SCON)、中斷允許控制寄存器(IE)和中 斷優(yōu)先級(jí)控制寄存器(IP)。 (1)中斷允許寄存器IE(A8H) C51對(duì)中斷源的允許或屏蔽是由中斷允許寄存器IE控制, 可按位尋址。單片機(jī)復(fù)位時(shí),IE被清0。通過(guò)對(duì)IE的各位 置1或清0,實(shí)現(xiàn)允許或屏蔽某個(gè)中斷。 D7D6D5D4D3D2D1 D0 IEEAESET1EX1ET1EX0 0A8H0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 EA:總中斷允許控制位。EA=0時(shí),屏

9、蔽所有中斷;EA=l時(shí), 開(kāi)放所有中斷。 ES:串口中斷允許控制位。ES=0時(shí),屏蔽串口中斷;ES=l 且EA=1時(shí),允許串口中斷。 ETl:定時(shí)計(jì)數(shù)器Tl中斷允許控制位。ETl=0時(shí),屏蔽Tl 溢出中斷;ETl= l且EA=1時(shí),允許Tl溢出中斷。 EXl:外部中斷中斷允許控制位。EXl=0時(shí),屏蔽外部中斷; EXl=l且EA=1時(shí),允許外部中斷。 ET0:定時(shí)計(jì)數(shù)器T0中斷允許控制位。功能與ETl類似。 EX0:外部中斷的中斷允許控制位。功能與EXl類似。 單片機(jī)采用兩級(jí)中斷控制,1個(gè)總的開(kāi)關(guān)控制EA,5個(gè)中 斷源控制位, 設(shè)置中斷允許時(shí),各個(gè)中斷控制位應(yīng)該和 中斷允許總控制位配合使用。

10、第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (2)中斷優(yōu)先級(jí)控制寄存器IP(B8H) 中斷系統(tǒng)中,用戶對(duì)中斷的管理還體現(xiàn)在當(dāng)有多個(gè)中斷 源有中斷請(qǐng)求時(shí),用戶控制CPU按照自己的需要安排響應(yīng) 次序。這種管理通過(guò)對(duì)特殊功能寄存器IP的設(shè)置來(lái)完成, 可位尋址。 D7D6D5D4D3D2D1 D0 IPPSPT1PX1PT0 PX0 0B8H0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H PX0、PT0、PXl、PTl和PS分別為、T0、Tl和串口中斷優(yōu) 先級(jí)控制位。當(dāng)相應(yīng)的位為0時(shí),所對(duì)應(yīng)的中斷源定義為 低優(yōu)先級(jí),相反則定義為高優(yōu)先級(jí)。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 CPU響應(yīng)中斷的

11、優(yōu)先級(jí)控制原則是: (1)若多個(gè)中斷請(qǐng)求同時(shí)有效,CPU優(yōu)先響應(yīng)優(yōu)先權(quán)最高的 中斷。如果是同級(jí)中斷,則按照CPU查詢次序確定哪個(gè)中 斷被響應(yīng)。 (2)同級(jí)的中斷或更低級(jí)的中斷不能打斷CPU正在響應(yīng)的中 斷過(guò)程。一直到該中斷服務(wù)程序結(jié)束,返回主程序且執(zhí)行 了主程序中的一條指令后,CPU才響應(yīng)新的中斷請(qǐng)求。 (3)低優(yōu)先權(quán)的中斷響應(yīng)過(guò)程可被高優(yōu)先權(quán)的中斷請(qǐng)求所 中斷,CPU會(huì)暫時(shí)中止當(dāng)前低優(yōu)先權(quán)的中斷過(guò)程,而響應(yīng) 高優(yōu)先權(quán)中斷 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 n5.1.4中斷響應(yīng)過(guò)程 1.中斷請(qǐng)求及中斷撤除 (1)中斷請(qǐng)求:若是外部中斷源,則需將外部中斷源接到 單片機(jī)的P3.2()或P3.3(

12、)引腳上。當(dāng)外部中斷源發(fā)出有效 中斷信號(hào)時(shí),相應(yīng)的中斷請(qǐng)求標(biāo)志位IE0或IE1置“1”, 提出中斷請(qǐng)求。若是內(nèi)部中斷源發(fā)出有效中斷信號(hào),如T0、 T1溢出,則相應(yīng)的中斷請(qǐng)求標(biāo)志位TF0或TF1置“1”,提 出中斷請(qǐng)求。 (2)中斷請(qǐng)求的撤除:CPU響應(yīng)中斷請(qǐng)求,轉(zhuǎn)向中斷服務(wù) 程序執(zhí)行,在其執(zhí)行中斷返回指令RETI之前,中斷請(qǐng)求信 號(hào)必須撤除,否則將會(huì)再一次引起中斷而出錯(cuò)。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 2.中斷響應(yīng) (1)單片機(jī)響應(yīng)中斷的條件:單片機(jī)響應(yīng)中斷的條件是中斷源 有請(qǐng)求且CPU開(kāi)中斷(即EA=1) 無(wú)同級(jí)或高級(jí)中斷正在處理。 現(xiàn)行指令執(zhí)行到最后1個(gè)機(jī)器周期且已結(jié)束。 若現(xiàn)行指令

13、為RETI或訪問(wèn)特殊功能寄存器IE、IP的指令 時(shí),執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。 (2)中斷響應(yīng)過(guò)程: 置位中斷優(yōu)先級(jí)有效觸發(fā)器,即關(guān)閉同級(jí)和低級(jí)中斷; 轉(zhuǎn)入中斷服務(wù)程序入口地址,斷點(diǎn)入棧保護(hù); 進(jìn)入中斷服務(wù)程序。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (3)響應(yīng)時(shí)間:從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地 址所需的機(jī)器周期數(shù)。 最快響應(yīng)時(shí)間 以外部中斷的電平觸發(fā)為最快。 從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期: 1個(gè)周期(查詢)2個(gè)周期(保護(hù)斷點(diǎn),相當(dāng)于LCALL指 令)。 最長(zhǎng)時(shí)間 若當(dāng)前指令是RET、RETI和訪問(wèn)IP、IE指令,緊接著下一 條是乘除指令,則

14、最長(zhǎng)為8個(gè)周期:2個(gè)周期執(zhí)行當(dāng)前指令 (其中含有1個(gè)周期查詢)4個(gè)周期乘除指令2個(gè)周期 長(zhǎng)調(diào)用8個(gè)周期。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 3.中斷服務(wù)程序 (1)中斷服務(wù)程序設(shè)計(jì)的基本任務(wù): 設(shè)置IE,允許相應(yīng)的中斷請(qǐng)求。 設(shè)置IP,確定并分配所使用的中 斷優(yōu)先級(jí)。 若是外部中斷源,還要設(shè)置中斷 請(qǐng)求的觸發(fā)方式IT1或IT0,以決定 采用電平觸發(fā)還是邊沿觸發(fā)。 編寫(xiě)中斷服務(wù)程序,處理中斷請(qǐng) 求。 (2)中斷服務(wù)程序的流程 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 4.恢復(fù)現(xiàn)場(chǎng):與保護(hù)現(xiàn)場(chǎng)相對(duì)應(yīng),在返回前(即執(zhí)行返回指 令RETI前),通過(guò)“POP direct”指令將保護(hù)現(xiàn)場(chǎng)時(shí)壓入 堆棧的內(nèi)容彈

15、出,送到相關(guān)的存儲(chǔ)單元后,再中斷返回。 5.中斷返回:中斷處理程序的最后一條指令是RETI,它的功 能是使CPU結(jié)束中斷處理程序的執(zhí)行,返回到斷點(diǎn)處,繼 續(xù)執(zhí)行主程序。 n5.1.5中斷的編程及應(yīng)用 對(duì)中斷系統(tǒng)進(jìn)行初始化,即對(duì)幾個(gè)特殊功能寄存器的有 關(guān)控制位進(jìn)行賦值 (1)開(kāi)中斷和允許中斷源中斷,設(shè)置IE。 (2)確定各中斷源的優(yōu)先級(jí),設(shè)置IP。 (3)若為外部中斷,應(yīng)規(guī)定是電平觸發(fā)還是邊沿觸發(fā), 設(shè)置中斷請(qǐng)求的觸發(fā)方式ITx(x=0/1)。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 在中斷服務(wù)程序中需完成下面幾個(gè)必要工作: (1)現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù) (2)開(kāi)中斷和關(guān)中斷 (3)中斷處理 (4)中斷

16、返回 l5.2 定時(shí)/計(jì)數(shù)器 n5.2.1 概述 1.計(jì)數(shù)容量 :C51單片機(jī)中有兩個(gè)計(jì)數(shù)器,分別稱之為T0 和T1,這兩個(gè)計(jì)數(shù)器分別是由兩個(gè)8位的RAM單元組成,即 每個(gè)計(jì)數(shù)器都是16位,最大計(jì)數(shù)容量是65536。 2.定時(shí):定時(shí)/計(jì)數(shù)器是單片機(jī)中最常用、最基本的重要 組成功能部件之一,可用來(lái)實(shí)現(xiàn)定時(shí)控制、延時(shí)、頻率測(cè) 量、脈沖寬度測(cè)量、信號(hào)發(fā)生、信號(hào)檢測(cè)等功能。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 3.溢出:計(jì)數(shù)器溢出時(shí),將使標(biāo)志位TF0/TF1置“1”。一旦 TF0/TF1由0變1,就會(huì)引發(fā)事件,像定時(shí)的時(shí)間一到,鬧 鐘會(huì)響。 4.定時(shí)方法:1)硬件定時(shí)-硬件定時(shí)方法的特點(diǎn)是定 時(shí)功能全

17、部由硬件電路完成,不占CPU時(shí)間,可通過(guò)修改 電路中的元件參數(shù)(電阻或電容值)來(lái)調(diào)節(jié)定時(shí)時(shí)間,但 硬件連接好以后,定時(shí)值不能由軟件進(jìn)行控制和修改,即 不可編程。2)軟件定時(shí)-讓CPU循環(huán)執(zhí)行一段程序以 實(shí)現(xiàn)延遲,延遲時(shí)間可通過(guò)選擇指令和設(shè)計(jì)循環(huán)次數(shù)來(lái)實(shí) 現(xiàn)。軟件定時(shí)的特點(diǎn)是時(shí)間精確,且無(wú)需外加硬件電路。 3)可編程定時(shí)-通過(guò)對(duì)系統(tǒng)時(shí)鐘脈沖的計(jì)數(shù)來(lái)實(shí)現(xiàn)。 計(jì)數(shù)值容易用程序來(lái)設(shè)定和修改,使用既靈活又方便。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 5.單片機(jī)時(shí)鐘特點(diǎn)及與微機(jī)的區(qū)別:設(shè)單片機(jī)外接12MHz晶 振。單片機(jī)中,定時(shí)/計(jì)數(shù)器實(shí)際是一個(gè)加1計(jì)數(shù)器,每輸 入一個(gè)脈沖,計(jì)數(shù)器的值就會(huì)自動(dòng)加1,而花費(fèi)的

18、時(shí)間恰 好是1微秒;只要相鄰兩個(gè)計(jì)數(shù)脈沖間的時(shí)間間隔相等, 則計(jì)數(shù)值就代表了時(shí)間的流逝。PC機(jī)上的CPU主頻是晶振 經(jīng)過(guò)倍頻之后的頻率,這一點(diǎn)恰好與C51單片機(jī)的相反。 而C51單片機(jī)的主頻是晶振經(jīng)過(guò)分頻之后的頻率。所以, C51單片機(jī)中的時(shí)間概念是通過(guò)測(cè)量計(jì)數(shù)脈沖的個(gè)數(shù)得到 n5.2.2 定時(shí)/計(jì)數(shù)的結(jié)構(gòu)與工作原理 1. 定時(shí)/計(jì)數(shù)器結(jié)構(gòu): C51單片機(jī)內(nèi)部設(shè)有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器:定 時(shí)器0和定時(shí)器1。T0由2個(gè)定時(shí)寄存器TH0和TL0構(gòu)成,T1 則由TH1和TL1構(gòu)成,它們分別映射在特殊功能寄存器中。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 2.

19、 定時(shí)/計(jì)數(shù)器工作原理 16位定時(shí)/計(jì)數(shù)器的控制電路受軟件控制、切換。當(dāng)定 時(shí)/計(jì)數(shù)器設(shè)置為定時(shí)工作方式時(shí),計(jì)數(shù)器對(duì)內(nèi)部機(jī)器 周期計(jì)數(shù),每過(guò)一個(gè)機(jī)器周期,計(jì)數(shù)器加1,直至計(jì)滿 溢出。定時(shí)器的定時(shí)時(shí)間與系統(tǒng)的振蕩頻率緊密相關(guān), 因?yàn)镃51單片機(jī)的一個(gè)機(jī)器周期等于12個(gè)振蕩周期,如 果單片機(jī)系統(tǒng)采用12MHz晶振,即計(jì)數(shù)頻率 fcount=fosc,則計(jì)數(shù)周期為: usT1 1012 12 6 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 計(jì)數(shù)寄存器的溢出: (1)每來(lái)一個(gè)脈沖,計(jì)數(shù)器寄存器加1; (2)計(jì)數(shù)器計(jì)滿時(shí),再來(lái)一脈沖加1,計(jì)數(shù)器溢出,產(chǎn)生 溢出信號(hào),TF0或TF1置1; (3)計(jì)數(shù)器溢出事件表示

20、定時(shí)時(shí)間到或計(jì)數(shù)值已滿,需要 單片機(jī)處理,計(jì)數(shù)的初值為: 計(jì)數(shù)初值=2n-計(jì)數(shù)值。 3. 定時(shí)/計(jì)數(shù)器的控制寄存器 在定時(shí)/計(jì)數(shù)器開(kāi)始工作前,CPU必須將控制字寫(xiě)入定時(shí) /計(jì)數(shù)器的相關(guān)寄存器,實(shí)現(xiàn)定時(shí)/計(jì)數(shù)器初始化。在初始 化過(guò)程中,要將工作方式控制字寫(xiě)入方式寄存器,工作狀 態(tài)字寫(xiě)入控制寄存器,賦定時(shí)/計(jì)數(shù)初值。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (1)定時(shí)/計(jì)數(shù)器控制寄存器TCON(88H) TCON為定時(shí)計(jì)數(shù)器控制寄存器,地址為88H,可位尋 址,位地址范圍為88H8FH。其功能是控制定時(shí)器的啟動(dòng) 和停止,它除了控制定時(shí)數(shù)器T0、Tl的溢出中斷外,還 控制著兩個(gè)外部中斷源的觸發(fā)方式和鎖存

21、兩個(gè)外部中斷源 的中斷請(qǐng)求標(biāo)志IE0和IE1。 TCON T1 T1 T0 T0 INT1 INT1 INT0 INT0 中斷標(biāo)志 運(yùn)行標(biāo)志 中斷標(biāo)志 運(yùn)行標(biāo)志 中斷標(biāo)志 觸發(fā)方式 中斷標(biāo)志 觸發(fā)方式 名稱TF1TR1TF0TR0IE1IT1IE0IT0 位地址8FH8EH8DH8CH8BH8AH89H 88H 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 TF1/TF0:C/T1、C/T0溢出中斷請(qǐng)求標(biāo)志位 TR1/TR0:C/T1、C/T0運(yùn)行控制位。 IT0/IT1:外部中斷0(或1)的中斷觸發(fā)方式控制 位 IE0/IE1:外部中斷0(或1)的中斷請(qǐng)求標(biāo)志位 (2)定時(shí)/計(jì)數(shù)器方式寄存器TMOD(

22、89H) TMOD在特殊功能寄存器中,字節(jié)地址為89H,無(wú)位 地址,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。 TMODGATEC/T M1 M0 GATE C/T M1 M0 89HD7D6 D5 D4 D3 D2 D1 D0 定時(shí)器1 定時(shí)器0 T 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 n5.2.3 定時(shí)/計(jì)數(shù)器工作方式 C51系列單片機(jī)的定時(shí)/計(jì)數(shù)器還有4種工作方式(方式0、 方式1、方式2和方式3)。除方式3外,T0和T1有完全相同 的工作狀態(tài)。 1.工作方式0及其應(yīng)用 工作方式0是13位計(jì)數(shù)器方式。最大計(jì)數(shù)值213 = 8192。 定時(shí)時(shí)間為: t=(213T0初值)機(jī)器周期=(213

23、T0初 值)振蕩周期12 最大定時(shí)時(shí)間:213機(jī)器周期 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 定時(shí)/計(jì)數(shù)器0工作在方式0時(shí)電路邏輯結(jié)構(gòu)如圖 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 當(dāng)=0時(shí),定時(shí)/計(jì)數(shù)器被設(shè)置為定時(shí)方式,單片機(jī)系統(tǒng) 時(shí)鐘振蕩器產(chǎn)生的振蕩信號(hào)被12分頻后作為時(shí)基脈沖,加 法計(jì)數(shù)器對(duì)機(jī)器周期計(jì)數(shù);當(dāng)=1時(shí),定時(shí)/計(jì)數(shù)器被設(shè)置 為計(jì)數(shù)方式,外部信號(hào)被選中,由T0端(P3.4腳)輸入作 為計(jì)數(shù)脈沖,當(dāng)計(jì)數(shù)脈沖發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1,實(shí) 現(xiàn)計(jì)數(shù)功能。 2.工作方式1及其應(yīng)用 方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式。邏輯結(jié)構(gòu)如圖5-10所 示。TL0:存放計(jì)數(shù)初值的低8位。TH0存放計(jì)數(shù)初值的高8

24、位。 定時(shí)時(shí)間的計(jì)算: 定時(shí)時(shí)間=(216-定時(shí)初值)機(jī)器周期 最大定時(shí)時(shí)間:216機(jī)器周期。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:165536 (216) 當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間計(jì)算公式為: t=(216計(jì)數(shù)初值)晶振周期12 或 t=(216計(jì)數(shù)初值)機(jī)器周期 3.工作方式2及其應(yīng)用 方式2為可自動(dòng)重裝時(shí)間常數(shù)的8位定時(shí)/計(jì)數(shù)器。TL0為8 位的定時(shí)/計(jì)數(shù)器,而TH0為8位預(yù)置寄存器,用于保存計(jì) 數(shù)初值。工作過(guò)程:當(dāng)TL0計(jì)滿溢出時(shí),TF0置1,向CPU發(fā) 出中斷請(qǐng)求;同時(shí)引起重裝操作(TH0的計(jì)數(shù)初值送到 TL

25、0),進(jìn)行新一輪計(jì)數(shù)。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 優(yōu)點(diǎn):模式2能夠進(jìn)行自動(dòng)重裝載。模式0和1計(jì)數(shù)溢出后, 計(jì)數(shù)器為全0。循環(huán)定時(shí)或計(jì)數(shù)時(shí),需要重新設(shè)置初值。 故當(dāng)模式2能夠滿足計(jì)數(shù)/定時(shí)要求時(shí),盡可能使用模式2。 缺點(diǎn):這種方式的定時(shí)/計(jì)數(shù)范圍要小于方式0和方式1。 4.工作方式3及其應(yīng)用 方式3為兩個(gè)獨(dú)立的8位計(jì)數(shù)器,即把定時(shí)器0的兩個(gè)8位 計(jì)數(shù)寄存器TH0和TL0分開(kāi)使用。但此方式僅適用于T0,T1 無(wú)方式3。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 n5.2.4 定時(shí)/計(jì)數(shù)器的應(yīng)用 1.定時(shí)/計(jì)數(shù)器的初始化 (1)確定工作方式,盡可能地選擇方式2,若 N256選擇方 式2,否則選擇

26、方式1;如果需要增加一個(gè)定時(shí)/計(jì)數(shù)器則 選擇方式3; (2)預(yù)置定時(shí)或計(jì)數(shù)初值(可直接將初值寫(xiě)入TH0、TL0或 TH1、TL1); (3)根據(jù)需要開(kāi)放定時(shí)/計(jì)數(shù)器的中斷(直接對(duì)IE位賦值); (4)啟動(dòng)定時(shí)/計(jì)數(shù)器(若已規(guī)定用軟件啟動(dòng),則可把 TR0或TR1置“1”;若已規(guī)定由外中斷引腳電平啟動(dòng),則 需給外引腳加啟動(dòng)電平。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 2.定時(shí)/計(jì)數(shù)器初值計(jì)算 (1)工作于定時(shí)方式 計(jì)數(shù)脈沖由內(nèi)部的時(shí)鐘提供,每個(gè)機(jī)器周期進(jìn)行加1。設(shè) 晶振頻率為fosc,則計(jì)數(shù)脈沖的頻率為fosc/12,計(jì)數(shù)脈 沖周期T=1/(fosc/12)。設(shè)定時(shí)時(shí)間為t,求計(jì)數(shù)初值X, 則: t

27、=(2n -X)12/fosc (2)工作于計(jì)數(shù)方式 當(dāng)工作在計(jì)數(shù)方式時(shí),對(duì)外部脈沖計(jì)數(shù)。利用計(jì)數(shù)器計(jì)數(shù) 結(jié)束產(chǎn)生溢出的特性,來(lái)計(jì)算初值X 。則有: X= 2n計(jì)數(shù)次數(shù) 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 l5.3 C51單片機(jī)串行通 信與串行接口 5.3.1串行通信基礎(chǔ)知識(shí) 1. 并行通信方式:并行通信 將數(shù)據(jù)字節(jié)的各位用多條 數(shù)據(jù)線同時(shí)傳送,每一位 數(shù)據(jù)都需要一條傳輸線, 如圖 2.串行通信方式: 串行通信 將數(shù)據(jù)的各位一位一位地 依次傳送。只需要一條數(shù) 據(jù)線,外加一條公共信號(hào) 地線和若干控制信號(hào)線 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 3.串行通信的分類:按照同步時(shí)鐘的不同,串行通信可分

28、為同步通信和異步通信。在單片機(jī)中使用的大都是異步串 行通信 1)異步通信:異步通信中數(shù)據(jù)通常是以字符(或字節(jié))為 單位組成字符幀傳送。字符幀由發(fā)送端到接收端一幀一幀 地發(fā)送和接收,這兩個(gè)時(shí)鐘彼此獨(dú)立,互不同步 在異步通信方式中,接收器和發(fā)送器有各自的時(shí)鐘,它 們是非同步工作。通常,在無(wú)數(shù)據(jù)傳送時(shí),發(fā)送線為高電 平(邏輯“ 1 ”),每當(dāng)接收端檢測(cè)到傳輸線上發(fā)送過(guò) 來(lái)的低電平邏輯“ 0 ”(字符幀中起始位)時(shí)就知道發(fā) 送端已開(kāi)始發(fā)送,每當(dāng)接收端接收到字符幀中停止位時(shí)就 知道一幀字符信息已發(fā)送完畢。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (1)異步串行通信的字符格式 在異步通信中,接收端是依靠字符幀

29、格式來(lái)判斷發(fā)送端 開(kāi)始發(fā)送和結(jié)束發(fā)送的時(shí)間。字符幀也叫數(shù)據(jù)幀,由4部 分組成: 起始位、 數(shù)據(jù)位、 奇偶校驗(yàn)位和停止位. (2)異步通信的傳輸速率 異步串行通信的傳送速率用波特率表示。波特率的定義 為每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù)(亦稱比特?cái)?shù)),單位是 bps(bit per second),即位秒 (3)傳輸距離與傳輸速率的關(guān)系 串行接口或終端直接傳送串行信息位流的最大距離與傳 輸速率及傳輸線的電氣特性有關(guān)。傳輸距離是隨傳輸速率 的增加而減小。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (4)異步通信的傳輸方式 根據(jù)同一時(shí)刻串行通信的數(shù)據(jù)方向,異步串行通信可分 為單工、半雙工、全雙工和多工方式等多種數(shù)

30、據(jù)通路形式。 單工方式:數(shù)據(jù)僅按一個(gè)固定方向傳送。 半雙工方式式:數(shù)據(jù)可實(shí)現(xiàn)雙向傳送,但不能同時(shí)進(jìn)行, 實(shí)際的應(yīng)用采用某種協(xié)議實(shí)現(xiàn)收/發(fā)開(kāi)關(guān)轉(zhuǎn)換。 全雙工方式式:允許雙方同時(shí)進(jìn)行數(shù)據(jù)雙向傳送,但一 般全雙工傳輸方式的線路和設(shè)備較復(fù)雜。 多工方式:以上三種傳輸方式都是用同一線路傳輸一種 頻率信號(hào),為了充分地利用線路資源,可通過(guò)使用多路復(fù) 用器或多路集線器,采用頻分、時(shí)分或碼分復(fù)用技術(shù),可 實(shí)現(xiàn)在同一線路上資源共享功能,稱之為多工傳輸方式。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 2)同步通信 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的方式, 一次通信 只傳送一幀信息,同步通信格式中,發(fā)送器和接收器由同 一個(gè)時(shí)

31、鐘源控制。在異步通信中,每傳輸一幀字符都必須 加上起始位和停止位,占用了傳輸時(shí)間,在要求傳送數(shù)據(jù) 量較大的場(chǎng)合,速度就慢得多。為克服這一缺點(diǎn),同步傳 輸方式去掉了這些起始位和停止位,只在傳輸數(shù)據(jù)塊時(shí)先 送出一個(gè)同步頭(字符)標(biāo)志即可。 同步通信中,在數(shù)據(jù)開(kāi)始傳送前用同步字符來(lái)指示(常約 定12個(gè)),并由時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端同步,即檢 測(cè)到規(guī)定的同步字符后,連續(xù)按順序傳送數(shù)據(jù)。 同步傳送時(shí),字符與字符之間沒(méi)有間隙,僅在數(shù)據(jù)塊開(kāi)始 時(shí)用同步字符SYNC來(lái)指示,其數(shù)據(jù)格式如圖5-20所示。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 4.串行通信的校驗(yàn) 異步通信時(shí)可能

32、會(huì)出現(xiàn)幀格式錯(cuò)、超時(shí)錯(cuò)等傳輸錯(cuò)誤, 因此,應(yīng)對(duì)數(shù)據(jù)進(jìn)行差錯(cuò)校驗(yàn)。常用差錯(cuò)校驗(yàn)方法有奇偶 校驗(yàn)、和校驗(yàn)及循環(huán)冗余碼校驗(yàn)。 (1) 奇偶校驗(yàn):發(fā)送數(shù)據(jù)時(shí), 數(shù)據(jù)位尾隨1位數(shù)據(jù), 為 奇偶校驗(yàn)位(1或0)。 當(dāng)設(shè)置為奇校驗(yàn)(0)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位 “1”的個(gè)數(shù)之和應(yīng)為奇數(shù)。 當(dāng)設(shè)置為偶校驗(yàn)(1)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位 “1”的個(gè)數(shù)之和應(yīng)為偶數(shù)。 接收時(shí),接收方應(yīng)具有與發(fā)送方一致的差錯(cuò)檢驗(yàn)設(shè)置。 當(dāng)接收一個(gè)字符時(shí),對(duì)“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若二者不 一致,則說(shuō)明數(shù)據(jù)傳送出現(xiàn)差錯(cuò)。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (2) 和校驗(yàn): 發(fā)送方將所發(fā)送的數(shù)據(jù)塊求和(字節(jié)數(shù)求和), 并產(chǎn)生

33、一個(gè)字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。 接收方接收數(shù)據(jù)時(shí)也是先對(duì)數(shù)據(jù)塊求和,將所得結(jié)果與發(fā) 送方的校驗(yàn)和進(jìn)行比較,相符則無(wú)差錯(cuò),否則出現(xiàn)差錯(cuò)。 特點(diǎn)是無(wú)法檢驗(yàn)出字節(jié)位序的錯(cuò)誤。 (3)循環(huán)冗余碼校驗(yàn) 這種校驗(yàn)是對(duì)一個(gè)數(shù)據(jù)塊校驗(yàn)一次。例如對(duì)磁盤信息的訪 問(wèn)、ROM或RAM存儲(chǔ)區(qū)的完整性等的檢驗(yàn)。這種方法廣泛應(yīng) 用于串行通信方式。 n5.3.2 C51串行接口編程結(jié)構(gòu) C51單片機(jī)內(nèi)部有一個(gè)全雙工、異步、串行、通信接口, 通過(guò)引腳TXD(P3.1)和RXD(P3.0)實(shí)現(xiàn)串行數(shù)據(jù)的發(fā)送和接 收。它既可實(shí)現(xiàn)串行異步通信,也可作為同步移位寄存器 使用。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 1.

34、 C51 串行口結(jié)構(gòu) C51單片機(jī)串行口包括發(fā)送緩沖寄存器(SBUF)、發(fā)送控 制器、發(fā)送控制門、接收緩沖寄存器(SBUF)、接收控制寄 存器、移位寄存器和中斷構(gòu)成。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 2.C51串行口相關(guān)寄存器 控制C51單片機(jī)串口的寄存器有兩個(gè)SCON和PCON。與串 行通信有關(guān)的控制寄存器共有4個(gè):SBUF、SCON、PCON和 IE (1)串行口控制寄存器SCON(98H) C51串行通信的方式選擇、接收和發(fā)送控制以及串行口 的狀態(tài)標(biāo)志等由特殊功能寄存器SCON控制和指示,其控制 字格式如圖 復(fù)位時(shí),SCON所有位均清0。SCON可位尋址,字節(jié)地址98H, 位地址9F

35、H98H。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 串行口工作方式選擇位SM0、SM1(SCON.7,SCON.6) 兩個(gè)選擇位對(duì)應(yīng)4種工作方式,如表5.7所示。其中,fosc 是振蕩頻率。SM0、SM1由軟件置1或清0,用于選擇串行口 的4種工作方式(方式0、1、2、3)。 SM0 SM1 工作方式 說(shuō)明 波特率 0 0 方式0 同步移位寄存器 fosc/12 0 1 方式1 10位異步收發(fā)器(8位數(shù)據(jù))有定時(shí) 器控制 1 0 方式2 11位異步收發(fā)器(9位數(shù)據(jù)) fosc/32,fosc/64 1 1 方式3 11位異步收發(fā)器(9位數(shù)據(jù))有定時(shí) 器控制 第5

36、章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 多機(jī)通信控制位SM2(SCON.5) 主要用于方式2和方式3。當(dāng)串行口在方式2或方式3下進(jìn) 行數(shù)據(jù)接收時(shí),如果SM2=1(允許多機(jī)通信)。 若SM2=0,單機(jī)通信方式,當(dāng)收到RB8(0或1),則接收 一貞數(shù)據(jù)后,不管第九位數(shù)據(jù)是0還是1,都置RI=1,使接 收到的數(shù)據(jù)裝入SBUF。 若置SM2=1,則允許多機(jī)通信。當(dāng)一片C51(主機(jī))與多片 C51(從機(jī))通信時(shí),所有從機(jī)的SM2位都置1。主機(jī)首先 發(fā)送一幀數(shù)據(jù)為地址,即從機(jī)編號(hào),其中第9位為1,所有 的從機(jī)接收到數(shù)據(jù)后,將其中第9位裝入RB8中。各個(gè)從機(jī) 根據(jù)收到的第9位數(shù)據(jù)(RB8中)的值來(lái)決定從機(jī)可否再接

37、收主機(jī)的信息。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 當(dāng)SM2=1,REN=1時(shí),若從機(jī)接收到的(RB8)0,說(shuō)明是 數(shù)據(jù)幀,收到的信息丟棄,不激活RI;若(RB8)1,說(shuō) 明是地址幀,數(shù)據(jù)裝入SBUF并置RI1,中斷所有從機(jī), 被尋址的目標(biāo)從機(jī)清除SM2以接收主機(jī)發(fā)來(lái)的一幀數(shù)據(jù)。 其他從機(jī)仍然保持SM21。 允許接收控制位REN(SCON.4) 由軟件置1或清0,只有當(dāng)REN1時(shí)才允許接收;若REN 0,則禁止接收。 發(fā)送數(shù)據(jù)D8位TB8(SCON.3) 發(fā)送數(shù)據(jù)的第9位(D8)裝入TB8中。TB8是方式2、方式3 中要發(fā)送的第9位數(shù)據(jù),事先用軟件寫(xiě)入1或0。方式0、方 式1不用。 第5章 C

38、51單片機(jī)最小系統(tǒng)及應(yīng)用 接收數(shù)據(jù)D8位RB8(SCON.2) 接收數(shù)據(jù)的第9位。在方式2或方式3中,由硬件將接收 到的第九位數(shù)據(jù)存入RB8位。它或是約定的奇/偶校驗(yàn)位, 或是約定的地址/數(shù)據(jù)標(biāo)識(shí)位。在方式2和方式3多機(jī)通信 中,若SM21,如果RB81,說(shuō)明收到的數(shù)據(jù)為地址幀。 發(fā)送中斷標(biāo)志位TI(SCON.1) 當(dāng)串口以一定方式發(fā)送數(shù)據(jù)時(shí),每發(fā)送完一幀數(shù)據(jù),由硬 件自動(dòng)將Tl位置l,可用軟件查詢。它同時(shí)也申請(qǐng)中斷, TI置位意味著向CPU提供“發(fā)送緩沖器SBUF已空”的信息, CPU可準(zhǔn)備發(fā)送下一幀數(shù)據(jù)。串行口發(fā)送中斷被響應(yīng)后, TI不會(huì)自動(dòng)清0,必須由軟件清0。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 接收中斷標(biāo)志位RI(SCON.0) 在接收到一幀有效數(shù)據(jù)后由硬件置位。在方式0中,第8 位數(shù)據(jù)發(fā)送結(jié)束時(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論