(單片機(jī)-汪文)4.輸入-輸出、中斷、定時(shí)與串行通信_(tái)第1頁
(單片機(jī)-汪文)4.輸入-輸出、中斷、定時(shí)與串行通信_(tái)第2頁
(單片機(jī)-汪文)4.輸入-輸出、中斷、定時(shí)與串行通信_(tái)第3頁
(單片機(jī)-汪文)4.輸入-輸出、中斷、定時(shí)與串行通信_(tái)第4頁
(單片機(jī)-汪文)4.輸入-輸出、中斷、定時(shí)與串行通信_(tái)第5頁
已閱讀5頁,還剩160頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章輸入/輸出、中斷、定時(shí)與串行通信主要內(nèi)容:介紹I/O的基本概念、I/O數(shù)據(jù)傳遞方式,中斷的基本概念,串行通信基本概念。主要介紹單片機(jī)中斷系統(tǒng)結(jié)構(gòu)、特點(diǎn)及使用方法;片內(nèi)定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)、原理及使用;片內(nèi)串行口結(jié)構(gòu)、原理以及雙機(jī)和多機(jī)通信實(shí)現(xiàn)方法;PC機(jī)與單片機(jī)通信實(shí)現(xiàn)方法。1精選2021版課件4.1輸入/輸出概述

4.1.1輸入/輸出的基本概念

輸入/輸出設(shè)備又稱為計(jì)算機(jī)外圍設(shè)備;簡稱外設(shè)或I/O設(shè)備。單片機(jī)應(yīng)用系統(tǒng)常用的輸入設(shè)備有按鈕、鍵盤、各種傳感器等。常用的輸出設(shè)備有LED(發(fā)光二極管顯示器)、LCD(液晶顯示器)等。二、輸入/輸出信息種類

計(jì)算機(jī)與輸入/輸出設(shè)備之間交換信息,有三種信息形式:數(shù)據(jù)信息、控制信息和狀態(tài)信息。一、輸入/輸出設(shè)備2精選2021版課件

三、輸入/輸出接口與端口

CPU與外設(shè),并不直接相連,而是通過接口電路進(jìn)行連接。輸入/輸出設(shè)備與主機(jī)的連接部分稱為輸入/輸出接口,簡稱I/O接口。輸入/輸出接口的作用是:

2.鎖存與緩沖作用:一般用D觸發(fā)器進(jìn)行鎖存。

1.隔離與尋址作用:例如右圖用三態(tài)門組成的接口。3.信號(hào)電平或形式變換:例如A/D、D/A、232/485的變換。3精選2021版課件

通常接口電路中可編址并能進(jìn)行讀寫操作的寄存器稱為端口或簡稱口。一個(gè)接口電路中可能包括多個(gè)口,例如數(shù)據(jù)口、狀態(tài)口、控制口,即包含有多個(gè)口地址。同一單片機(jī)系列中,片內(nèi)集成的I/O模塊各有不同,當(dāng)片內(nèi)I/O不能滿足實(shí)際需求時(shí),可擴(kuò)展外部I/O。

四、I/O的分類

按照信號(hào)的傳遞方式,可將I/O分為串行和并行兩類。按照I/O連接的信號(hào)大致可分為模擬量、數(shù)字量、脈沖量I/O三類。五、數(shù)據(jù)總線隔離技術(shù)

為了正確地進(jìn)行數(shù)據(jù)的I/O傳遞,必須解決數(shù)據(jù)總線的隔離問題,即在任一時(shí)刻,CPU只對(duì)一個(gè)I/O進(jìn)行操作。為此,對(duì)輸出設(shè)備的接口電路要使用鎖存器,對(duì)輸入設(shè)備的接口電路,使用三態(tài)緩沖器。4精選2021版課件六、單片機(jī)I/O編址方式

每一個(gè)I/O都需要編址,以便CPU分別進(jìn)行尋址。常用的I/O編址方式有兩種:獨(dú)立編址方式和統(tǒng)一編址方式。

獨(dú)立編址方式:I/O和存儲(chǔ)器分開編址,有各自獨(dú)立的地址空間,采用不同的控制總線,使用不同的指令分別尋址。

統(tǒng)一編址方式:I/O與數(shù)據(jù)存儲(chǔ)器在同一地址空間編址,尋址方式相同,采用相同的地址、數(shù)據(jù)、控制總線,使用相同的指令尋址。5精選2021版課件4.1.2輸入輸出的傳送方式單片機(jī)系統(tǒng)中有不同類型的I/O設(shè)備,由于I/O所連接的外設(shè)或I/O接口本身的速度與CPU的處理速度相比,通常低于CPU的速度,為了實(shí)現(xiàn)數(shù)據(jù)的正確傳輸,CPU通常采用三種控制方式,即無條件傳送方式、查詢方式和中斷控制方式。一、無條件傳送方式

I/O或與I/O連接的外設(shè)隨時(shí)都處于準(zhǔn)備好狀態(tài),這時(shí)CPU不需要測試外設(shè)狀態(tài),隨時(shí)直接對(duì)其進(jìn)行操作。

6精選2021版課件查詢方式流程圖

二、查詢方式查詢方式是指CPU在執(zhí)行輸入輸出指令之前,先對(duì)外圍設(shè)備的狀態(tài)進(jìn)行檢測,以判別外設(shè)是否準(zhǔn)備就緒。如果已經(jīng)準(zhǔn)備就緒,CPU就可以執(zhí)行輸入輸出指令。如果還沒有準(zhǔn)備就緒,必須繼續(xù)查詢(如右圖所示)。查詢方式的特點(diǎn):實(shí)現(xiàn)簡單,通用性強(qiáng),適合各種設(shè)備數(shù)據(jù)的輸入/輸出;其缺點(diǎn)是需要占用CPU的時(shí)間,外設(shè)速度較慢時(shí),效率較低。7精選2021版課件三、中斷方式中斷方式下外設(shè)的狀態(tài)信號(hào)以中斷申請方式輸入CPU。CPU響應(yīng)中斷,暫停正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序,在中斷服務(wù)程序中對(duì)外設(shè)進(jìn)行輸入/輸出操作,中斷返回后,再繼續(xù)執(zhí)行被中斷的程序。中斷方式可提高單片機(jī)系統(tǒng)的效率。8精選2021版課件4.2.1中斷的概念當(dāng)CPU正在處理某件事情的時(shí)候,內(nèi)部或外部發(fā)生的某一事件(如一個(gè)電平的變化,一個(gè)脈沖沿的發(fā)生或定時(shí)器計(jì)數(shù)溢出等)請求CPU迅速去處理,于是,CPU暫時(shí)中止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件以后,再回到原來被中止的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。4.2MCS-51單片機(jī)的中斷系統(tǒng)9精選2021版課件一、中斷源

中斷源是指向CPU申請中斷的事件來源。例如外部輸入輸出設(shè)備,定時(shí)/計(jì)數(shù)器,串行接口都可以作為中斷源。二、中斷優(yōu)先權(quán)

中斷優(yōu)先權(quán)也叫中斷排序,是用戶根據(jù)中斷源的性質(zhì)和重要性自行排列的先后次序。在多個(gè)中斷源同時(shí)提出申請時(shí),保證優(yōu)先權(quán)高的中斷源首先得到響應(yīng),縱使CPU正在處理一個(gè)中斷,也要暫時(shí)停止較低級(jí)的中斷。響應(yīng)優(yōu)先權(quán)更高的中斷源請求。這個(gè)過程稱為中斷嵌套或多重中斷。優(yōu)先權(quán)排序可以用軟件也可以用硬件實(shí)現(xiàn)。10精選2021版課件三、中斷系統(tǒng)的功能:(1)可實(shí)現(xiàn)高速CPU與慢速外設(shè)之間的配合。因?yàn)樵S多外圍設(shè)備的速度比CPU慢,二者間無法同步地進(jìn)行數(shù)據(jù)交換。為此可通過中斷方式實(shí)現(xiàn)CPU與外圍設(shè)備之間的協(xié)調(diào)工作。

(2)可實(shí)現(xiàn)實(shí)時(shí)處理。實(shí)時(shí)處理是自動(dòng)控制系統(tǒng)對(duì)計(jì)算機(jī)提出的要求,各控制參量可以隨時(shí)向CPU發(fā)出中斷申請,而CPU也必須做出快速響應(yīng)和及時(shí)處理,以便使被控對(duì)象總保持在最佳工作狀態(tài)。(3)實(shí)現(xiàn)故障的緊急處理。當(dāng)外圍設(shè)備或計(jì)算機(jī)出現(xiàn)故障時(shí),可以利用中斷系統(tǒng)請求CPU及時(shí)處理這些故障。(4)便于人機(jī)聯(lián)系。操作人員可以利用鍵盤中斷等,實(shí)現(xiàn)人機(jī)聯(lián)系,完成人的干預(yù)。11精選2021版課件

四、中斷響應(yīng)過程1)尋找中斷源。(中斷識(shí)別)2)將當(dāng)前PC值(下一條指令的地址)壓入堆棧(即保護(hù)斷點(diǎn)),以便中斷返回時(shí)使用。3)尋找中斷入口,以便轉(zhuǎn)向執(zhí)行中斷服務(wù)程序。4)保護(hù)現(xiàn)場。5)執(zhí)行中斷服務(wù)程序(中斷處理)。6)執(zhí)行完中斷服務(wù)程序后,恢復(fù)現(xiàn)場并返回主程序(中斷返回)。12精選2021版課件4.2.2MCS-51單片機(jī)的中斷系統(tǒng)一、中斷源與中斷標(biāo)志位

8051/8031型單片機(jī)提供了5個(gè)中斷源:兩個(gè)外部中斷源和三個(gè)內(nèi)部中斷源。每一個(gè)中斷源都有一個(gè)中斷申請標(biāo)志,但串行口占兩個(gè)中斷標(biāo)志位,一共六個(gè)中斷標(biāo)志,下表給出了它們各自的名稱。分類中斷源名稱中斷申請標(biāo)志觸發(fā)方式中斷入口地址外部中斷外部中斷0IE0(TCON.1)INT0(P3.2)引腳上的低電平/下降沿引起的中斷0003H內(nèi)部中斷T0定時(shí)器/計(jì)數(shù)器0中斷IF0(TCON.5)T0計(jì)數(shù)器溢出后引起的中斷000BH外部中斷外部中斷1IE1(TCON.3)INT1(P3.3)引腳上的低電平/下降沿引起的中斷0013H內(nèi)部中斷T1定時(shí)器/計(jì)數(shù)器1中斷IF1(TCON.7)T1計(jì)數(shù)器溢出后引起的中斷001BH內(nèi)部中斷串口中斷RI(SCON.0)TI(SCON.1)串行口接收完成或發(fā)送完一幀數(shù)據(jù)后引起的中斷0023H中斷源和中斷申請標(biāo)志13精選2021版課件MCS-51中斷系統(tǒng)MCS-51中斷系統(tǒng)結(jié)構(gòu)框圖

中斷源中斷選擇中斷標(biāo)志14精選2021版課件

1.中斷源(1)外部中斷0請求,由P3.2引腳輸入??捎捎脩粼O(shè)定為兩種觸發(fā)方式,(電平觸發(fā)方式還是邊沿觸發(fā)方式)。一旦輸入信號(hào)有效,則向CPU申請中斷,并且將中斷標(biāo)志IE0置1。(2)外部中斷1請求,由P3.3引腳輸入。亦可由用戶設(shè)定為電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸人信號(hào)有效,則向CPU申請中斷,并將中斷標(biāo)志IE1置1。

(3)片內(nèi)定時(shí)器T0溢出中斷請求。當(dāng)定時(shí)器T0產(chǎn)生溢出時(shí),T0中斷請求標(biāo)志TF0置1,請求中斷處理。(4)片內(nèi)定時(shí)器T1溢出中斷請求。當(dāng)定時(shí)器T1產(chǎn)生溢出時(shí),T1中斷請求標(biāo)志TF1置l,請求中斷處理。(5)片內(nèi)串行口發(fā)送/接收中斷請求。當(dāng)通過串行口發(fā)送或接收完一幀串行數(shù)據(jù)時(shí),串行口中斷請求標(biāo)志TI或RI置1,請求中斷處理。15精選2021版課件因此,與中斷有關(guān)的特殊功能寄存器有:

中斷允許控制寄存器(IE)

定時(shí)器/計(jì)數(shù)器控制寄存器(TCON)

中斷優(yōu)先級(jí)控制寄存器(IP)

串行口控制寄存器(SCON)

MCS-51單片機(jī)的中斷系統(tǒng)中,使用何種中斷,采用何種觸發(fā)方式,可通過定時(shí)器/計(jì)數(shù)器控制寄存器TCON和串行口控制寄存器SCON的有關(guān)位來規(guī)定。只要根據(jù)這些位的狀態(tài)就能確定有無中斷請求及中斷的來源。

在中斷源與CPU之間有二級(jí)中斷允許控制邏輯電路,一級(jí)為總允許,第二級(jí)為源允許,由IE控制。中斷優(yōu)先級(jí)由IP控制。16精選2021版課件2.中斷請求標(biāo)志

(1)TCON的中斷標(biāo)志

TCON是專用寄存器,字節(jié)地址為88H,它鎖存了外部中斷請求標(biāo)志及T0和T1的溢出中斷請求標(biāo)志。TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0

IT0/IT1:外部中斷請求的觸發(fā)方式選擇位:=0:在INT0/INT1端申請中斷的信號(hào)低電平有效;=1:在INT0/INT1端申請中斷的信號(hào)負(fù)跳變有效.IE0/IE1:外部中斷申請標(biāo)志位:=0:沒有外部中斷申請;=1:有外部中斷申請。

TF0/TF1:定時(shí)器溢出中斷申請標(biāo)志位:=0:定時(shí)器未溢出;=1:定時(shí)器溢出申請中斷,進(jìn)中斷后自動(dòng)清零。TR0/TR1:定時(shí)器運(yùn)行啟??刂莆唬?0:定時(shí)器停止運(yùn)行;=1:定時(shí)器啟動(dòng)運(yùn)行。17精選2021版課件(2)SCON的中斷標(biāo)志

SCON是串行口控制寄存器,與中斷有關(guān)的是它的低兩位TI和RI。

TI(SCON.1):串行口發(fā)送中斷標(biāo)志位。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能清除TI,TI必須由軟件清除。

RI(SCON.0):串行口接收中斷標(biāo)志位,當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。同樣,RI必須由軟件清除。SCONRI

TIRB8TB8RENSM2SM1SM018精選2021版課件二、MCS—51的中斷管理

1、中斷允許寄存器IE——中斷的允許與開放

在中斷源與CPU之間有兩級(jí)中斷允許控制邏輯電路,一級(jí)為總允許,第二級(jí)為源允許,由IE控制。19精選2021版課件2.中斷優(yōu)先級(jí)寄存器IP

——中斷優(yōu)先級(jí)控制

內(nèi)部自然優(yōu)先級(jí):入口地址INT0高0003HT0000BHINT10013HT1001BHTI/RI低0023H20精選2021版課件3.同一級(jí)中的5個(gè)中斷源的優(yōu)先順序

/INT0中斷T0溢出中斷/INT1中斷T1溢出中斷串口中斷

高低自然優(yōu)先級(jí)中斷優(yōu)先原則:(概括為四句話)1)低級(jí)不中斷高級(jí)2)高級(jí)不睬低級(jí)3)同級(jí)不能打斷4)同級(jí)、同時(shí)中斷,按自然優(yōu)先級(jí)21精選2021版課件MCS-51中斷系統(tǒng)MCS-51中斷系統(tǒng)結(jié)構(gòu)框圖

中斷源中斷選擇中斷標(biāo)志22精選2021版課件中斷處理過程一般分為三個(gè)階段,即中斷響應(yīng)、中斷處理和中斷返回。

三、中斷響應(yīng)的條件及過程

1.中斷響應(yīng)(1)中斷響應(yīng)的條件:1)有中斷源發(fā)出請求信號(hào)2)中斷是開放的(總允許、源允許)3)沒有封鎖(受阻),受阻情況是:①CPU正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序;②現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,即現(xiàn)行指令完成前.不響應(yīng)任何中斷請求;③當(dāng)前正在執(zhí)行的是中斷返回指令RETI或訪問專用寄存器IE或IP的指令。也就是說,在執(zhí)行RETI或是訪問IE、IP的指令后,至少需要再執(zhí)行一條其他指令,才會(huì)響應(yīng)中斷請求。23精選2021版課件

(2)中斷響應(yīng)過程

進(jìn)入中斷響應(yīng)周期。CPU在中斷響應(yīng)周期要完成下列操作:1)根據(jù)中斷請求源的優(yōu)先級(jí)高低,使相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1。2)清相應(yīng)中斷請求標(biāo)志位IE0、IE1、TF0或TF1。3)保留斷點(diǎn),把PC內(nèi)容壓入堆棧保存。4)把被響應(yīng)的中斷源的服務(wù)程序入口地址送入PC,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。24精選2021版課件(3)中斷響應(yīng)時(shí)間

從查詢中斷請求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。1)最快響應(yīng)時(shí)間以外部中斷的電平觸發(fā)為最快。從查詢中斷請求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期:1個(gè)周期(查詢)+2個(gè)周期(長調(diào)用LCALL)2)最長時(shí)間若當(dāng)前指令是RET、RETI和IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長為8個(gè)周期:2個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢)+4個(gè)周期乘除指令+2個(gè)周期長調(diào)用=8個(gè)周期。25精選2021版課件2.中斷處理(服務(wù))與返回

在編寫中斷服務(wù)程序時(shí)加注意的幾點(diǎn):(1)因各入口地址之間只相隔8個(gè)字節(jié),所以通常在中斷入口地址單元處存放一條無條件轉(zhuǎn)移指令,使中斷服務(wù)程序靈活地安排在64KB程序存儲(chǔ)器的任何空間。(2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可先用軟件關(guān)閉CPU中斷(全局中斷),或禁止某中斷源中斷(局部中斷),在中斷返回前再開放中斷。(3)注意保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。(4)中斷服務(wù)程序的最后一條是返回指令RETI,該指令將清除響應(yīng)中斷時(shí)被置位的優(yōu)先級(jí)狀態(tài)觸發(fā)器,然后自動(dòng)將斷點(diǎn)地址從棧頂彈出,裝入PC,使程序返回到被中斷處,繼續(xù)向下執(zhí)行。26精選2021版課件中斷服務(wù)程序流程圖27精選2021版課件3.中斷請求的撤除

CPU響應(yīng)中斷請求后,在中斷返回(RETI)前,該中斷請求信號(hào)必須撤除,否則會(huì)引起另外一次中斷。注意:(1)采用邊沿觸發(fā)的外部中斷標(biāo)志IE0或IEl和定時(shí)器中斷標(biāo)志TF0或TFl,CPU響應(yīng)中斷后能用硬件自動(dòng)情除;(2)在電平觸發(fā)時(shí),IE0或IEl受外部引腳中斷信號(hào)的直接控制,CPU無法控制IE0或IEl,需要另外考慮撤除中斷請求信號(hào)的措施,如通過外加硬件電路(見下頁所示),并配合軟件來解決;(3)串行口中斷請求標(biāo)志TI和RI也不能由硬件自動(dòng)清除,需要在中斷服務(wù)程序中,用軟件來清除相應(yīng)的中斷請求標(biāo)志.

。28精選2021版課件并在中斷服務(wù)程序中增加如下指令,使得的/INT0輸入變?yōu)楦唠娖健?/p>

ORL P1,#01H

ANL P1,#0FEH

外部中斷為電平觸發(fā)時(shí),如果中斷響應(yīng)后,管腳仍為低電平,則會(huì)重新置位中斷請求,為此可以在系統(tǒng)中增加輔助電路解決。29精選2021版課件1.在CPU已經(jīng)開放了外部中斷允許的前提下;2.在INT0/INT1引腳輸入一個(gè)負(fù)脈沖或低電平;3.TCON寄存器中的IE0/IE1標(biāo)志位自動(dòng)變“1”;4.檢測到IE0/IE1變“1”后,將產(chǎn)生指令:LCALL0003H(/0013H)執(zhí)行中斷服務(wù)程序;4并將IE0/IE1標(biāo)志位自動(dòng)清“0”或用硬件電路撤除中斷請求信號(hào),以備下次申請。外部中斷(INT0,INT1)申請過程:30精選2021版課件例1假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其他中斷。試根據(jù)假設(shè)條件設(shè)置IE的相應(yīng)值。解:根據(jù)題目要求,要允許內(nèi)部定時(shí)器中斷,就需要將IE寄存器的EA、ET1、ET0置1,其他位清0,可分別通過字節(jié)尋址或者位尋址進(jìn)行。(1)用字節(jié)操作指令:MOVIE,#8AH或MOVA8H,#8AH(2) 用位操作指令: SETB ET0 ;定時(shí)器/計(jì)數(shù)器0允許中斷 SETB ET1 ;定時(shí)器/計(jì)數(shù)器1允許中斷 SETB EA ;CPU開中斷31精選2021版課件例2系統(tǒng)要求設(shè)定8051的片外中斷為高優(yōu)先級(jí)中斷,片內(nèi)中斷為低優(yōu)先級(jí)。請寫出相應(yīng)的指令。解:根據(jù)題目要求,需要將8051的外部中斷優(yōu)先級(jí)控制位PX0、PX1設(shè)置為1,而內(nèi)部中斷優(yōu)先級(jí)控制位PT0、PT1、PS清為0。(1) 用字節(jié)操作指令:MOVIP,#05H(2) 用位操作指令:SETBPX0SETBPX1CLRPSCLRPT0CLRPT132精選2021版課件4.3MCS-51單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)定時(shí)器/計(jì)數(shù)器的工作方式定時(shí)器/計(jì)數(shù)器應(yīng)用33精選2021版課件實(shí)現(xiàn)定時(shí)或延時(shí)控制有三種方法:軟件定時(shí)、不可編程硬件定時(shí)器、可編程硬件定時(shí)器??删幊痰挠布〞r(shí)器就是其工作方式、定時(shí)值和定時(shí)范圍可以很方便地由軟件來確定和改變。通常,一個(gè)可編程定時(shí)/計(jì)數(shù)器的主要用途有:①以均勻分布的時(shí)間間隔中斷分時(shí)操作系統(tǒng),以便切換程序。②向I/O設(shè)備輸出精確的定時(shí)信號(hào),該信號(hào)的周期由程序控制。③用作可編程波特率或速率發(fā)生器。④檢測外部事件發(fā)生的頻率或周期。⑤統(tǒng)計(jì)外部事件處理過程中某一事件發(fā)生的次數(shù)。⑥在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值之后,產(chǎn)生輸出信號(hào),向CPU申請中斷。34精選2021版課件51系列單片機(jī)有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器:T0和T1。T0由兩個(gè)8位的定時(shí)寄存器TH0和TL0構(gòu)成16位寄存器,同樣,T1由兩個(gè)8位的定時(shí)寄存器TH1和TL1構(gòu)成16位寄存器,它們分別映射在特殊功能寄存器中。TH0、TL0的地址分別為8CH、8AH,TH1和TL1的地址分別為8DH和8BH。其內(nèi)部還有2個(gè)8位的專用寄存器TMOD(88H)和TCON(89H)

。其中TMOD是定時(shí)器的工作方式寄存器,TCON是控制寄存器,主要用于定時(shí)/計(jì)數(shù)器管理與控制。

4.3.1定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)35精選2021版課件8051單片機(jī)的定時(shí)器結(jié)構(gòu)T0T136精選2021版課件一、定時(shí)器/計(jì)數(shù)器的定時(shí)和計(jì)數(shù)功能

在TMOD中,各有一個(gè)控制位(C/T),分別用于控制定時(shí)器/計(jì)數(shù)器T0和T1是工作在定時(shí)器方式還是計(jì)數(shù)器方式。1.定時(shí)功能----計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使寄存器的值加1。所以,計(jì)數(shù)頻率是振蕩頻率的1/12。2.計(jì)數(shù)功能----計(jì)數(shù)脈沖來自相應(yīng)的外部輸入引腳,T0為P3.4,T1為P3.5。即對(duì)由T0/T1引腳輸入的負(fù)脈沖進(jìn)行加法計(jì)數(shù)。定時(shí)器/計(jì)數(shù)器的核心部件是二進(jìn)制加1計(jì)數(shù)器(TH0、TL0或TH1、TL1)。其輸入的計(jì)數(shù)脈沖有兩個(gè)來源(內(nèi)部時(shí)鐘脈沖和外部輸入引腳)。當(dāng)加到計(jì)數(shù)器為全“1”時(shí),再輸入一個(gè)脈沖,就使計(jì)數(shù)器回零,同時(shí)產(chǎn)生溢出脈沖使TCON中溢出中斷標(biāo)志TF0或TF1置1,并可向CPU申請中斷。37精選2021版課件二、定時(shí)器/計(jì)數(shù)器的控制寄存器與定時(shí)器/計(jì)數(shù)器有關(guān)的控制寄存器有:1.定時(shí)器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中斷請求標(biāo)志觸發(fā)方式選擇啟動(dòng)定時(shí)器/計(jì)數(shù)器0低電平1下降沿0停止1啟動(dòng)38精選2021版課件2.工作方式控制寄存器TMOD

T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—門控位C/T—計(jì)數(shù)/定時(shí)選擇M1M0—工作方式選擇用于選定定時(shí)/計(jì)數(shù)器的工作方式、啟動(dòng)方式等。39精選2021版課件TMOD的高4位用于T1控制,低4位用于T0控制,符號(hào)的定義如下:(1)GATE:門控位。GATE和軟件控制位TR、外引腳(/INT0、/INT1)的狀態(tài),共同控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)和停止。

GATE=0——普通用法Timer的啟/停由軟件對(duì)TRx位寫“1”/“0”控制。

GATE=1——門控用法

Timer的啟/停由軟件對(duì)TRx位寫“1”/“0”和在INTx引腳上出現(xiàn)的信號(hào)的高/低共同控制。(2)C/T:定時(shí)/計(jì)數(shù)器方式選擇位。C/T=1為計(jì)數(shù)方式;C/T=0為定時(shí)方式。(3)M1M0:工作方式選擇位。M1M0=00;方式0M1M0=01;方式1M1M0=10;方式2M1M0=11;方式3。40精選2021版課件4.3.2定時(shí)器的工作方式一、方式0定時(shí)/計(jì)數(shù)器工作于方式0時(shí)為一個(gè)13位的計(jì)數(shù)器。選擇定時(shí)器(T0或T1)的高8位和低5位組成的一個(gè)13位定時(shí)器/計(jì)數(shù)器。下圖是T0在方式0時(shí)的邏輯電路結(jié)構(gòu)。T1的模式0電路結(jié)構(gòu)與T0相同。定時(shí)器T0的方式0邏輯電路MCS-51單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器是一種可編程器件,可設(shè)置為四種工作方式,由兩個(gè)8位專用寄存器TMOD和TCON進(jìn)行管理與控制。注:此時(shí),/INT0(須為1)不是外部中斷請求信號(hào),而只是對(duì)定時(shí)/計(jì)數(shù)器的一個(gè)附加控制信號(hào)。41精選2021版課件(1)加1計(jì)數(shù)器為13位。TL0=5位,TH0=8位(2)(GATE+INT0)?TR0為真則啟動(dòng)定時(shí)器。(3)C/T=1為計(jì)數(shù)工作方式,計(jì)數(shù)脈沖由T0引腳輸入。

計(jì)數(shù)個(gè)數(shù)N=(213—初值)(4)C/T=0為定時(shí)工作方式,時(shí)鐘頻率為fosc/12。

定時(shí)時(shí)間t=(213—初值)*時(shí)鐘周期*12顯然:在機(jī)器周期固定的情況下,定時(shí)時(shí)間的長短與計(jì)數(shù)器事先裝入的初值有關(guān),裝入的初值越大,定時(shí)越短。

(5)計(jì)數(shù)器溢出,TF0置1。由硬件申請中斷。42精選2021版課件二、方式1

定時(shí)/計(jì)數(shù)器工作于方式1時(shí)為一個(gè)16位的計(jì)數(shù)器。其邏輯結(jié)構(gòu)、操作及運(yùn)行控制幾乎與方式0完全—樣,差別僅在于計(jì)數(shù)器的位數(shù)不同。在方式1中TL0和TH0均為8位,TL0和TH0一起構(gòu)成了l6位計(jì)數(shù)器。定時(shí)工作方式1時(shí),定時(shí)時(shí)間為:定時(shí)時(shí)間t=(216-計(jì)數(shù)初值)×機(jī)器周期用于計(jì)數(shù)器工作方式時(shí):最大計(jì)數(shù)值為:216=65536。43精選2021版課件定時(shí)器T0的方式1邏輯電路44精選2021版課件三、方式2定時(shí)/計(jì)數(shù)器工作于方式2時(shí),將兩個(gè)8位計(jì)數(shù)器THx、TLx分成獨(dú)立的兩部分,組成一個(gè)可自動(dòng)重裝載的8位定時(shí)/計(jì)數(shù)器。其邏輯結(jié)構(gòu)如下圖所示。方式2的控制運(yùn)行與方式0、方式1相同。用于定時(shí)工作方式時(shí),定時(shí)時(shí)間t為:t=(28-計(jì)數(shù)初值X)×機(jī)器周期方式2用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值(初值=0時(shí))是28。方式2特別適合于用作較精確的定時(shí)和脈沖信號(hào)發(fā)生器。還常用作串行口波特率發(fā)生器。45精選2021版課件四、方式3

方式3只適用于定時(shí)器T0。在方式3下,T0被分成兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器TL0和TH0,如下圖所示。(1)TH0和TL0變成2個(gè)分開的獨(dú)立計(jì)數(shù)器。(2)TL0占用了全部的定時(shí)器控制位(C/T,GATE,TR0,TF0)。(3)TH0只能用于定時(shí)方式,運(yùn)行控制位和溢出標(biāo)志位則借用定時(shí)器1的TR1和TF1。此時(shí)的定時(shí)器1用于串行口波特率發(fā)生器。注:在T0設(shè)置為方式3工作時(shí),一般是將定時(shí)器T1作為串行口波特率發(fā)生器,或用于不需要中斷的場合。46精選2021版課件定時(shí)器T0的方式3(a)T0方式3時(shí)的T1方式0(b)T0方式3時(shí)的T1方式147精選2021版課件4.3.3定時(shí)器/計(jì)數(shù)器應(yīng)用一、定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)初始化1.定時(shí)器/計(jì)數(shù)器的初始化方法初始化的主要內(nèi)容是對(duì)TCON和TMOD編程,計(jì)算和裝載T0和T1的計(jì)數(shù)初值。(1)確定相關(guān)參數(shù)1)分析定時(shí)器/計(jì)數(shù)器的工作方式,將方式字寫入TMOD寄存器;(即確定:定/計(jì)、內(nèi)/外啟動(dòng)、工作方式)2)計(jì)算T0或T1中的計(jì)數(shù)初值,并將其寫入TH0、TL0或TH1、TL1;3)根據(jù)需要開放CPU和定時(shí)器/計(jì)數(shù)器的中斷,即對(duì)IE和IP寄存器編程;4)啟動(dòng)定時(shí)器/計(jì)數(shù)器工作:若要求用軟件啟動(dòng),編程時(shí)對(duì)TCON中的TR0或TR1置位即可啟動(dòng);若由外部中斷引腳電平啟動(dòng),則對(duì)TCON中的TR0或TR1置位后,還需給外部引腳加啟動(dòng)電平。48精選2021版課件(2)計(jì)算定時(shí)器/計(jì)數(shù)器的初值1)計(jì)數(shù)器方式時(shí)的計(jì)數(shù)初值

TC=2M-N(M為計(jì)數(shù)器位數(shù),N為要求的計(jì)數(shù)值)方式0:M=13,計(jì)數(shù)器的最大計(jì)數(shù)值213=8192;方式1:M=16,計(jì)數(shù)器的最大計(jì)數(shù)值216=65536;方式2:M=8,計(jì)數(shù)器的最大計(jì)數(shù)值28=256;方式3同方式2。例如,設(shè)T0工作在計(jì)數(shù)器方式2,求計(jì)數(shù)10個(gè)脈沖的計(jì)數(shù)初值。TC=28-10=246=(11110110)B=0F6H2)定時(shí)器方式時(shí)的計(jì)數(shù)初值在定時(shí)器方式下,定時(shí)器T0(或T1)是對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)的。定時(shí)時(shí)間為:t=(2M-計(jì)數(shù)初值X)×機(jī)器周期。故:

計(jì)數(shù)初值X=2M-(t/(12*Tosc))=49精選2021版課件

注意:不同方式下,M的取值不同。若系統(tǒng)時(shí)鐘頻率fOSC=12MHz。則方式0:M=13,定時(shí)器的最大定時(shí)值為:213*機(jī)器周期=8192μS;方式1:M=16,定時(shí)器的最大定時(shí)值為:216*機(jī)器周期=65536μS;方式2:M=8,定時(shí)器的最大定時(shí)值為:28*機(jī)器周期=256μS;方式3同方式2。例如:若fOSC=6MHz,定時(shí)時(shí)間為10ms,使用定時(shí)器T0工作于方式1,則定時(shí)器T0的初值為

:TC0==60536=0EC78H

注意時(shí)鐘頻率(HZ)和定時(shí)時(shí)間(S)的單位換算!50精選2021版課件2.定時(shí)器/計(jì)數(shù)器初始化舉例編寫初始化程序的步驟:

(1)方式控制字送TMOD;MOVTMOD,#——(2)計(jì)數(shù)器的初值送TH、TL(0/1);MOVTH0,#——MOVTL0,#——(3)根據(jù)需要開放中斷和設(shè)定優(yōu)先級(jí);即對(duì)IE和IP賦初值。(4)啟動(dòng)T0/T1開始工作---置位TR0/TR1;SETBTR0/TR1(5)等待溢出信號(hào)的出現(xiàn)(如何進(jìn)入處理程序?)(有查詢法或中斷法)51精選2021版課件例1:要求定時(shí)器T1工作于方式1,定時(shí)50ms,由軟件啟動(dòng),允許中斷。設(shè)系統(tǒng)時(shí)鐘頻率fOSC=6MHz,編寫初始化程序段。解:1)方式控制字為00010000B=10H2)計(jì)數(shù)初值為TC1=T1初始化程序段如下:MOV TMOD,#10H ;寫入工作方式字MOV TH1,#9EH ;寫入計(jì)數(shù)初值MOV TL1,#58HSETB ET1 ;開放T1中斷SETB EA ;開放CPU中斷SETB TR1 ;啟動(dòng)T1工作┋52精選2021版課件例2:

要求利用定時(shí)/計(jì)數(shù)器T0對(duì)T0引腳(P3.4)出現(xiàn)的脈沖計(jì)數(shù),每計(jì)數(shù)100個(gè)脈沖向CPU申請中斷,設(shè)由軟件啟動(dòng)。編寫初始化程序段。解:1)經(jīng)分析,可設(shè)定時(shí)器T0工作于方式2計(jì)數(shù),方式控制字為00000110B=06H2)要求的計(jì)數(shù)值N=100,則計(jì)數(shù)初值為28-100=156初始化程序段如下:MOV TMOD,#06H ;寫入工作方式字MOV TH0,#156 ;寫入計(jì)數(shù)初值MOV TL0,#156MOV IE,#10000010B ;開放T0、CPU中斷SETB TR0 ;啟動(dòng)T0工作53精選2021版課件二、定時(shí)器/計(jì)數(shù)器應(yīng)用舉例

在應(yīng)用定時(shí)器/計(jì)數(shù)器時(shí),溢出標(biāo)志TFx置位后既可由硬件向CPU申請中斷;也可通過用戶程序查詢TFx的狀態(tài),因此對(duì)計(jì)數(shù)溢出信息的處理有以下兩種方法:中斷法:在定時(shí)器初始化時(shí)要開放對(duì)應(yīng)的源允許(ET0或ET1)和總允許,在啟動(dòng)后等待中斷。當(dāng)計(jì)數(shù)器溢出中斷時(shí),CPU將程序轉(zhuǎn)到中斷服務(wù)程序入口,因此應(yīng)在中斷服務(wù)程序中安排相應(yīng)的處理程序。查詢法:在定時(shí)器初始化并啟動(dòng)后,在程序中安排指令查詢TFx的狀態(tài)。LP:JBCTF0,NEXT;TF0為1,轉(zhuǎn)后面的處理程序,并將TF0復(fù)位SJMP LP;TF0為0,繼續(xù)查詢NEXT:┋54精選2021版課件采用查詢方式時(shí)的一般編程模式為:ORG0030HMAIN:MOVTMOD,#——MOVTH0,#——MOVTL0,#——--------------SETBTR0WAIT:JBCTF0,NEXT;SJMPWAIT;NEXT:MOVTH0,#——;重裝MOVTL0,#——;初值----------;處理程序SLMPWAIT注意問題:1)方式0、1、3溢出后要重裝初值,方式2可自動(dòng)重裝初值。2)方式0時(shí)TH為8位,TL為5位。采用中斷方式時(shí)的一般編程模式為:ORG0000HSJMPMAINORG000BH(001BH)LJMPT0SORG0030HMAIN:MOVTMOD,#——MOVTH0,#——MOVTL0,#——SETBET0;SETBEA;------------------;置其他初值SETBTR0;SJMP$T0S:MOVTH0,#——MOVTL0,#——;重裝初值--------------;處理程序RETI假設(shè)使用T0,則:55精選2021版課件

1.定時(shí)器/計(jì)數(shù)器定時(shí)方式的應(yīng)用例3:

利用定時(shí)/計(jì)數(shù)器定時(shí)產(chǎn)生周期信號(hào)。要求用定時(shí)器T0定時(shí),在P1.7引腳上輸出頻率為50Hz的方波。設(shè)晶振頻率為12MHz。解:1)按題意分析:方波周期T=1/50=20ms,可用T0方式1定時(shí)10ms,使P1.7每隔10ms取反一次,即可得到周期為20ms的方波。設(shè)T0工作在方式1,由軟件啟動(dòng)。2)TMOD控制字為00000001B3)初值計(jì)算:因fosc=12MHz,則機(jī)器周期為1μs。初值=216-10×103/1=65536-10000=55536=D8F0H,即有TH0=D8H,TL0=F0H。56精選2021版課件4)編程a.若采用查詢法,編程如下:ORG0030HSTAR:MOVTMOD,#01H;寫方式字MOVTH0,#0D8H;寫入計(jì)數(shù)初值MOVTL0,#0F0HSETBTR0 ;啟動(dòng)T0LP:JBCTF0,NEXT ;TF0為1轉(zhuǎn)NXETSJMPLP ;TF0為0,繼續(xù)查詢NEXT:MOVTH0,#0D8H;重裝初值MOVTL0,#0F0HCPLP1.7;P1.7取反輸出方波AJMPLP;反復(fù)循環(huán)57精選2021版課件b.若采用中斷法,編程如下:主程序:

ORG0000HSJMPSTAR ORG000BH;定義T0服務(wù)程序入口AJMPDVT0ORG0030HSTAR:MOVTMOD,#01H;寫入工作方式字MOVTH0,#0D8H;寫入計(jì)數(shù)初值MOVTL0,#0F0HSETBET0;SETBEA;開放T0和CPU中斷SETBTR0 ;啟動(dòng)T0SJMP$;等待中斷中斷服務(wù)程序:

DVT0:MOVTH0,#0D8H ;重裝初值MOVTL0,#0F0H;CPLP1.7;RETI58精選2021版課件2.定時(shí)器/計(jì)數(shù)器計(jì)數(shù)方式的應(yīng)用

例4:

某系統(tǒng)要求用定時(shí)器T1對(duì)由P3.5(T1)引腳輸入的脈沖計(jì)數(shù),每計(jì)滿100個(gè)脈沖,在P1.0引腳輸出一個(gè)正脈沖。解:1)據(jù)題意分析,可將定時(shí)器T1設(shè)置為方式2計(jì)數(shù),由軟件啟動(dòng)。2)方式控制字:TMOD=01100000B=60H3)計(jì)數(shù)初值:TC1=28-100=156=9CH,即有TH1=TL1=9CH59精選2021版課件4)程序如下:ORG0000HSJMPMAIN ORG001BH;定義T1服務(wù)程序入口AJMPDVT1ORG0030HMAIN:MOVTMOD,#60H;寫入工作方式字MOVTH1,#9CH;寫入計(jì)數(shù)初值MOVTL1,#9CHSETBET1;開放T1中斷SETBEA;開放CPU中斷CLRP1.0SETBTR1;啟動(dòng)T1SJMP$;等待中斷

DVT1:SETBP1.0 NOP NOPCLRP1.0;RETI

60精選2021版課件3.定時(shí)時(shí)間的擴(kuò)展

為什么要擴(kuò)展?因?yàn)榫д耦l率為6MHz時(shí)一個(gè)定時(shí)器最長的定時(shí)時(shí)間為:例如,若用T0定時(shí)50ms,每次溢出后就計(jì)數(shù)一次,則計(jì)數(shù)20次就得1秒的定時(shí)。較常用的是軟件計(jì)數(shù)擴(kuò)展法。軟件擴(kuò)展是利用內(nèi)存單元作溢出次數(shù)的計(jì)數(shù)器。如果定時(shí)時(shí)間長,8位計(jì)數(shù)器不夠,還可采用16位計(jì)數(shù)器或用更多字節(jié)單元計(jì)數(shù)。61精選2021版課件例5:要求利用軟件擴(kuò)展方法實(shí)現(xiàn)1秒定時(shí),使得由P1口控制的8個(gè)LED指示燈每隔一秒輪流閃亮(輸出為低電平時(shí)亮),設(shè)fOSC=6MHz。解:1)分析:設(shè)利用定時(shí)器T0工作于方式1,定時(shí)50ms,并用R2作軟件計(jì)數(shù)器,取R2的初值為20,作減法計(jì)數(shù),每次T0溢出時(shí),R2減1,當(dāng)R2減到0,則定時(shí)1秒完成。2)即有:TMOD=00000001B=01H,TH0=9EH,TL0=58H(見前PPT52例1)62精選2021版課件主程序:ORG0000HSJMPMAIN ORG000BH;定義T0服務(wù)程序入口AJMPDVT0ORG0030HMAIN:MOVTMOD,#01H;置工作方式字MOVTH0,#9EHMOVTL0,#58H;置計(jì)數(shù)初值SETBET0SETBEA;;開放中斷

MOVR2,#20;置軟件計(jì)數(shù)初值MOVA,#0FEHMOVP1,A;從P1輸出一位低電平SETBTR0SJMP$;等待中斷;中斷服務(wù)程序DVT0:MOVTH0,#9EH MOVTL0,#58H;重置計(jì)數(shù)值

DJNZR2,RTN

MOVP1,A

RLA;A循環(huán)左移一位MOVR2,#20;再置計(jì)數(shù)值RTN:RETI若采用中斷法,編程如下:63精選2021版課件4.利用定時(shí)器/計(jì)數(shù)器擴(kuò)展外部中斷源

利用定時(shí)/計(jì)數(shù)器來擴(kuò)展外部中斷源。方法是將定時(shí)器/計(jì)數(shù)器設(shè)置成計(jì)數(shù)器方式2計(jì)數(shù),計(jì)數(shù)初值設(shè)定為THx、TLx均為0FFH,并將待擴(kuò)展的外部中斷源接到定時(shí)器/計(jì)數(shù)器的外部脈沖計(jì)數(shù)引腳.例如,利用定時(shí)器/計(jì)數(shù)器T0擴(kuò)展一個(gè)外部中斷源。將T0設(shè)置為計(jì)數(shù)器方式,按方式2工作,TH0、TL0的初值均為0FFH,T0允許中斷,CPU開放中斷。其初始化程序段如下:MOV TMOD,#06H ;置T0為計(jì)數(shù)器方式2MOV TL0,#0FFH ;置計(jì)數(shù)初值MOV TH0,#0FFHSETBTR0 ;啟動(dòng)T0工作SETBEA ;CPU開中斷SETBET0 ;允許T0中斷64精選2021版課件5.門控位GATE的應(yīng)用例6:利用定時(shí)/計(jì)數(shù)器T0的門控位GATE,測量引腳上出現(xiàn)的脈沖寬度,并將結(jié)果(機(jī)器周期數(shù))存入內(nèi)部RAM的30H和31H單元中。解:1)由題意分析,外部脈沖由引腳輸入,可設(shè)T0工作于定時(shí)器方式1,計(jì)數(shù)初值為0,在一個(gè)完整的外部脈沖寬度內(nèi)對(duì)機(jī)器周期計(jì)數(shù)(定時(shí)方式),顯然計(jì)數(shù)值乘上機(jī)器周期就是脈沖寬度。2)設(shè)定GATE=1,當(dāng)TR0置1時(shí),由外部脈沖上升沿啟動(dòng)T0開始工作。加1計(jì)數(shù)器開始對(duì)機(jī)器周期計(jì)數(shù);引腳變?yōu)榈碗娖綍r(shí),停止計(jì)數(shù),這時(shí)讀出TH0、TL0的值,該計(jì)數(shù)值即為被測信號(hào)的脈沖寬度對(duì)應(yīng)的機(jī)器周期數(shù)。測試過程如圖所示.65精選2021版課件3)程序設(shè)計(jì)工作方式字:TMOD=00001001B計(jì)數(shù)初值:TH0=00H,TL0=00HORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#09H;GATE=1MOVTH0,#00H;置計(jì)數(shù)初值MOVTL0,#00HMOVR0,#30H WAIT1:JBP3.2,WAIT1;等待變低SETBTR0;預(yù)啟動(dòng)T0

WAIT2:JNBP3.2,WAIT2;等待INT0變高、啟動(dòng)計(jì)數(shù)WAIT3:JBP3.2,WAIT3 ;等待INT0再變低CLRTR0;停止計(jì)數(shù)MOV@R0,TL0 ;讀取計(jì)數(shù)值,存入指定單元INCR0,MOV@R0,TH0AJMPDATA ;轉(zhuǎn)數(shù)據(jù)處理程序66精選2021版課件

主要內(nèi)容:串行通信基礎(chǔ);MCS-51單片機(jī)串行通信接口的結(jié)構(gòu);MCS-51單片機(jī)串行通信的工作原理及其工作方式;MCS-51單片機(jī)串行接口應(yīng)用編程。重點(diǎn):MCS-51單片機(jī)串行接口的工作原理及工作方式;MCS-51單片機(jī)串行接口應(yīng)用程序設(shè)計(jì)方法。4.4單片機(jī)的串行通信67精選2021版課件

串行通信優(yōu)點(diǎn):便于長距離傳送缺點(diǎn):傳送速度較慢計(jì)算機(jī)與外界信息交換稱為通信。通信的基本方式可分為并行通信和串行通信:并行通信是數(shù)據(jù)的各位同時(shí)發(fā)送或同時(shí)接收;串行通信是數(shù)據(jù)的各位依次逐位發(fā)送或接收。并行通信優(yōu)點(diǎn):傳送速度快

缺點(diǎn):不便長距離傳送68精選2021版課件

(a)并行通信 (b)串行通信通信的兩種基本方式69精選2021版課件

異步通信對(duì)硬件要求較低,實(shí)現(xiàn)起來比較簡單、靈活,適用于數(shù)據(jù)的隨機(jī)發(fā)送/接收,但因每個(gè)字節(jié)都要建立一次同步,即每個(gè)字符都要額外附加兩位,所以工作速度較低,在單片機(jī)中主要采用異步通信方式。4.4.1串行通信基礎(chǔ)

串行通信有兩種基本通信方式:異步通信和同步通信。在此,只介紹異步通信。一、異步串行通信的字符格式異步通信依靠起始位、停止位保持通信同步。異步通信數(shù)據(jù)傳送按幀傳輸,一幀數(shù)據(jù)包含起始位、數(shù)據(jù)位、校驗(yàn)位和停止位。

70精選2021版課件幀異步串行通信的字符格式起始位數(shù)據(jù)位[0~(n

1)位]奇偶位停止位起始位位時(shí)間

異步串行通信以字符為單位,即一個(gè)字符一個(gè)字符的傳送。71精選2021版課件(b)有空閑位串行異步通信的幀格式(a)無空閑位72精選2021版課件

⑶奇偶效驗(yàn)位——用于對(duì)字符的傳送作正確性檢查,因此奇偶效驗(yàn)位是可選擇的,共有3種可能,即奇效驗(yàn)、偶效驗(yàn)和無效驗(yàn),由用戶根據(jù)需要選定。⑴起始位——開始一個(gè)字符的傳送的標(biāo)志位。起始位使數(shù)據(jù)線處于“0”狀態(tài)。

⑵數(shù)據(jù)位——起始位之后傳送的數(shù)據(jù)信號(hào)位。在數(shù)據(jù)位中,低位在前(左)高位在后(右)。由于字符編碼方式的不同,數(shù)據(jù)位可以是5、6、7或8位。⑷停止位——用以標(biāo)志一個(gè)字符的結(jié)束,它對(duì)應(yīng)于“1”狀態(tài)。停止位在一幀的最后,它可能是1、1.5或2位,在實(shí)際中根據(jù)需要確定。73精選2021版課件⑸位時(shí)間——一個(gè)格式位的時(shí)間寬度。

⑹幀(frame)——從起始位開始到停止位結(jié)束的全部內(nèi)容稱之為一幀。幀是一個(gè)字符的完整通信格式,因此也就把串行通信的字符格式稱之為幀格式。二、異步串行通信的信號(hào)形式

1、近程通信

近程通信又稱本地通信。

近程通信采用數(shù)字信號(hào)直接傳送形式,即在傳送過程中不改變原數(shù)據(jù)代碼的波形和頻率。這種數(shù)據(jù)傳送方式稱之為基帶傳送方式。74精選2021版課件寄存器串行接口TTL電平寄存器串行接口TTL電平計(jì)算機(jī)A計(jì)算機(jī)BRS-232電平標(biāo)準(zhǔn)

近程串行通信

計(jì)算機(jī)內(nèi)部的數(shù)據(jù)信號(hào)是TTL電平標(biāo)準(zhǔn),而通信線上的數(shù)據(jù)信號(hào)卻是RS

232C電平標(biāo)準(zhǔn)。然而,盡管電平標(biāo)準(zhǔn)不同,但數(shù)據(jù)信號(hào)的波形和頻率并沒有改變。近程串行通信只需用傳輸線把兩端的接口電路直接連起來即可實(shí)現(xiàn),既方便又經(jīng)濟(jì)。75精選2021版課件2、遠(yuǎn)程通信

在遠(yuǎn)程串行通信中,應(yīng)使用專用的通信電纜,但出于經(jīng)濟(jì)上的考慮也可以使用電話線作為傳輸線。

數(shù)字信號(hào)計(jì)算機(jī)MODEM計(jì)算機(jī)電話線MODEM

遠(yuǎn)程串行通信模擬信號(hào)數(shù)字信號(hào)

遠(yuǎn)距離直接傳送數(shù)字信號(hào),信號(hào)會(huì)發(fā)生畸變,因此要把數(shù)字信號(hào)變?yōu)槟M信號(hào)再進(jìn)行傳送。信號(hào)形式的轉(zhuǎn)變通常使用頻率調(diào)制法,即以不同頻率的載波信號(hào)代表數(shù)字信號(hào)的兩種不同電平狀態(tài)。這種數(shù)據(jù)傳送方式就稱為頻帶傳送方式。

76精選2021版課件

波特率對(duì)于CPU與外界的通信是很重要的。相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。在通信中發(fā)、接雙方有兩次約定:

字符格式————幀格式傳送速率————波特率三、串行通信波特率

波特率bps(bitpersecond)為數(shù)據(jù)傳送速率,表示每秒鐘傳送二進(jìn)制代碼的位數(shù),它的單位是b/s。即:1波特=1位/秒(1bps)作用:1.反映串行通信的速率;2.反映對(duì)傳輸通道的要求:波特率越高,要求的傳輸通道的頻帶寬度就越寬。77精選2021版課件

假如數(shù)據(jù)傳送的速率是120個(gè)字符/秒,每一個(gè)字符規(guī)定包含10個(gè)位(一個(gè)起始位、8個(gè)數(shù)據(jù)位和1個(gè)停止位),則傳送的波特率為:10×120=1200位/秒=1200波特(bps)每一位的傳送時(shí)間即為波特率的倒數(shù)。

注意:時(shí)鐘頻率和波特率不是同一個(gè)概念,時(shí)鐘頻率比波特率高得多。78精選2021版課件四、串行通信的制式

串行通信按照數(shù)據(jù)傳送方向可分為三種制式:

單工制式是指甲乙雙方通信時(shí)只能單向傳送數(shù)據(jù),發(fā)送方和接收方固定。1、單工制式(Simplex)79精選2021版課件

半雙工制式是指通信雙方都具有發(fā)送器和接收器,既可發(fā)送也可接收,但不能同時(shí)接收和發(fā)送,發(fā)送時(shí)不能接收,接收時(shí)不能發(fā)送。2、半雙工制式(HalfDuplex)80精選2021版課件三、EIA-232-D端口的直接連接

兩臺(tái)計(jì)算機(jī)可通過調(diào)制解調(diào)器(Modem),由電話線連接實(shí)現(xiàn)長距離通信。在工業(yè)數(shù)據(jù)通信中,常直接將兩臺(tái)計(jì)算機(jī)的EIA-232端口連接。在通信過程中,不需要握手時(shí),只需要3根連接線,DB-9連接器的接線如圖(a)所示。在需要握手時(shí),還需要將請求發(fā)送、允許發(fā)送、準(zhǔn)備就緒等信號(hào)端形成如圖(b)所示的交叉連接形式。(a)無握手(b)全握手

EIA-232端口的直接連接

81精選2021版課件

全雙工制式是指通信雙方均設(shè)有發(fā)送器和接收器,并且信道劃分為發(fā)送信道和接收信道,因此全雙工制式可實(shí)現(xiàn)甲乙雙方同時(shí)發(fā)送和接收數(shù)據(jù),發(fā)送時(shí)能接收,接收時(shí)也能發(fā)送。3、全雙工制式(FullDuplex)82精選2021版課件4.4.2EIA-232-D接口標(biāo)準(zhǔn)

EIA-232-D是由美國電子工業(yè)協(xié)會(huì)正式公布的串行總線標(biāo)準(zhǔn),也是目前最常用的串行接口標(biāo)準(zhǔn),用來實(shí)現(xiàn)計(jì)算機(jī)之間、計(jì)算機(jī)與外設(shè)之間的數(shù)據(jù)通信。EIA-232-D總線接口適用于設(shè)備之間距離不大于15米,傳輸速度最大20kb/s。一、EIA-232-D信號(hào)引腳定義EIA-232-D定義了22根線,采用標(biāo)準(zhǔn)25芯(DB-25)插頭座,在EIA-232中描述的連接器還有DB-9。如表4.7和4.8所示(見教材78頁)。二、電氣特性EIA-232-D采用負(fù)邏輯,即:邏輯“1”:-3V~-15V邏輯“0”:+3V~+15VEIA-232-D的邏輯電平與TTL電平不兼容,為了與TTL器件相連必須進(jìn)行電平轉(zhuǎn)換。83精選2021版課件

4.4.3MCS-51串行口結(jié)構(gòu)及工作原理

當(dāng)計(jì)算機(jī)向外發(fā)送數(shù)據(jù)時(shí),必須將并行的數(shù)據(jù)轉(zhuǎn)換為串行的數(shù)據(jù)再傳送。反之,又必須將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸入計(jì)算機(jī)中。通用的異步接收/發(fā)送器,簡稱UART(UniversalAsynchronousReceiver/Transmitter),就是完成這一功能的硬件電路。

MCS-51單片機(jī)有一個(gè)可編程全雙工的串行通信接口(UART),可同時(shí)發(fā)送、接收數(shù)據(jù)(Transmit/Receive);可以方便地實(shí)現(xiàn)與其他單片機(jī)之間、與PC機(jī)之間的串行通信,也可用通信接口實(shí)現(xiàn)鍵盤輸入、LED顯示及其他的控制。

在串行口中可供用戶使用的是它的寄存器,因此了解其寄存器結(jié)構(gòu)對(duì)用戶來說是十分重要的。84精選2021版課件

MCS-51單片機(jī)串行接口由兩個(gè)獨(dú)立的數(shù)據(jù)緩沖器SBUF(一個(gè)用作接收,一個(gè)用作發(fā)送)以及發(fā)送控制器、接收控制器、輸入移位寄存器和輸出控制門等組成。用戶可訪問的四個(gè)地址單元為:SBUF(99H):兩個(gè)SBUF共用一個(gè)地址99H。發(fā)送SBUF只寫不讀,接收SBUF只讀不寫,由所用指令是發(fā)送還是接收來決定對(duì)兩個(gè)SBUF進(jìn)行操作;SCON(98H)

:串行口控制寄存器PCON(87H)

:電源控制寄存器IE(0A8H):中斷允許寄存器

一、MCS-51單片機(jī)串行接口的結(jié)構(gòu)

輸入/輸出接口是CPU與外設(shè)之間信息交換的橋梁,它可以制成一塊單獨(dú)的大規(guī)模集成電路,也可以和CPU集成在同一塊芯片上,單片機(jī)中就是后一種結(jié)構(gòu)。I/O接口有并行接口和串行接口兩種。85精選2021版課件86精選2021版課件51單片機(jī)的串行接口結(jié)構(gòu)SBUF(發(fā))SBUF(收)發(fā)送控制器TI接收控制器RI移位寄存器波特率發(fā)生器T11A累加器(門)RxDTxD去申請中斷引腳引腳CPU內(nèi)部87精選2021版課件

發(fā)送時(shí),只需將發(fā)送數(shù)據(jù)輸入SBUF,CPU將自動(dòng)啟動(dòng)和完成串行數(shù)據(jù)的發(fā)送;接收時(shí),CPU將自動(dòng)把接收到的數(shù)據(jù)存入SBUF,用戶只需從SBUF中讀出接收數(shù)據(jù)。1.串行數(shù)據(jù)緩沖器SBUF(99H)

在邏輯上只有一個(gè),既表示發(fā)送寄存器,又表示接收寄存器,具有同一個(gè)單元地址99H,用同一寄存器名SBUF。在物理上有兩個(gè),一個(gè)是發(fā)送緩沖寄存器,另一個(gè)是接收緩沖寄存器。MOVSBUF,A;啟動(dòng)一次數(shù)據(jù)發(fā)送MOVA,SBUF;完成一次數(shù)據(jù)接收88精選2021版課件發(fā)送SBUF(99H)接收SUBF(99H)輸入移位寄存器TI(發(fā)送中斷)TXD串行輸出8051內(nèi)部總線RXD串行輸入RI(接收輸入)移位時(shí)鐘MCS-51串行口寄存器結(jié)構(gòu)89精選2021版課件在接收方式下,串行數(shù)據(jù)通過引腳RXD(P3.0)進(jìn)入。由于在接收寄存器之間還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯(cuò)誤,即在下一幀數(shù)據(jù)來時(shí),前一幀數(shù)據(jù)還沒有讀走。

在發(fā)送方式下,串行數(shù)據(jù)通過TXD(P3.1)送出。與接收數(shù)據(jù)情況不同,發(fā)送數(shù)據(jù)時(shí),由于CPU是主動(dòng)的,不會(huì)發(fā)生幀重疊錯(cuò)誤,因此發(fā)送電路就不需雙重緩沖結(jié)構(gòu),這樣可以提高數(shù)據(jù)發(fā)送速度。90精選2021版課件2.串行控制寄存器SCON(98H)SCOND7D6D5D4D3D2D1D0位名稱SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能工作方式選擇多機(jī)通信控制接收允許發(fā)送第9位接收第9位發(fā)送中斷接收中斷①SM0SM1——串行口工作方式選擇位。②SM2——多機(jī)通信控制位。③REN——允許接收控制位。REN=1,允許接收。④TB8——方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。⑤RB8——方式2和方式3中要接收的第9位數(shù)據(jù)。⑥TI——發(fā)送中斷標(biāo)志。⑦RI——接收中斷標(biāo)志。SCON是一個(gè)可位尋址的專用寄存器,用來設(shè)定串行口的工作方式、控制串行口的接收/發(fā)送以及狀態(tài)標(biāo)志。91精選2021版課件①

SM0SM1——串行口工作方式選擇位。其狀態(tài)組合所對(duì)應(yīng)的工作方式如下表所示。

SM0SM1工作方式功能說明000同步移位寄存器輸入/輸出,波特率固定為fosc/120118位UART;波特率可變(T1溢出率/n,n=32或16)1029位UART,波特率固定為fosc/n,(n=64或32)1139位UART,波特率可變(T1溢出率/n,n=32或16)SM2----多機(jī)通信控制位。

在工作方式2和方式3中:若SM2=1:當(dāng)接收到第9位數(shù)據(jù)(RB8)為1,才將接收到的前8位數(shù)據(jù)裝入SBUF,并置位RI;否則將接收到的數(shù)據(jù)丟棄。若SM2=0:不論第9位數(shù)據(jù)(RB8)是否為1,都將接收到的前8位數(shù)據(jù)裝入SBUF,并置位RI。在方式1中:若SM2=1,則只有接收到有效的停止位時(shí),才置位RI。在方式0中:必須使SM2=092精選2021版課件③REN------允許接收控制位。REN位用于對(duì)串行數(shù)據(jù)的接收進(jìn)行控制:REN=0,禁止接收;REN=1,允許接收。該位由軟件置位或復(fù)位。④TB8------方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。在方式2和方式3時(shí),TB8是發(fā)送的第9位數(shù)據(jù)。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=0表示數(shù)據(jù),TB8=1表示地址。該位由軟件置位或復(fù)位。TB8還可用于奇偶校驗(yàn)位。⑤RB8------方式2和方式3中要接收的第9位數(shù)據(jù)。在方式2或方式3時(shí),RB8存放接收到的第9位數(shù)據(jù)。注:多機(jī)通信時(shí),SM2必須置1。雙機(jī)通信時(shí),通常使SM2=0。93精選2021版課件⑥TI------發(fā)送中斷標(biāo)志。當(dāng)方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,遇發(fā)送停止位時(shí),該位由硬件置位。因此TI=1,表示幀發(fā)送結(jié)束,可軟件查詢TI位標(biāo)志,也可以請求中斷。TI位必須由軟件清0。⑦RI------接收中斷標(biāo)志。當(dāng)方式0時(shí),接收完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,當(dāng)接收到停止位時(shí),該位由硬件置位。因此RI=1,表示幀接收結(jié)束,可軟件查詢RI位標(biāo)志,也可以請求中斷。RI位也必須由軟件清0。注:接收/發(fā)送數(shù)據(jù),無論是否采用中斷方式工作,每接收/發(fā)送一個(gè)數(shù)據(jù)都必須用指令對(duì)RI/TI清0,以備下一次收/發(fā)。單片機(jī)復(fù)位時(shí),SCON中的所有位均為0。94精選2021版課件3.電源控制寄存器PCON(87H)PCOND7D6D5D4D3D2D1D0位名稱SMOD———GF1GF0PDIDL?SMOD:在串行口工作方式1、2、3中,是波特率加倍位:=1時(shí),波特率加倍=0時(shí),波特率不加倍。(復(fù)位時(shí),SMOD=0。

)

PCON寄存器不能進(jìn)行位尋址。只有最高位SMOD與串行口工作有關(guān)。

ES=0禁止串行中斷

ES=1允許串行中斷4.中斷允許寄存器IE

95精選2021版課件

MCS—51單片機(jī)的串行口可編程選擇四種工作方式,其中方式0主要用于擴(kuò)展并行輸入/輸出口,串行通信時(shí)一般使用方式1、2或3。1.方式0工作在方式0時(shí),串行口是作為同步移位寄存器使用的,其數(shù)據(jù)傳輸波特率固定為foc/12。串行數(shù)據(jù)由RXD(P3.0)端輸入/輸出,同步移位脈沖由TXD(P3.1)端輸出。數(shù)據(jù)的發(fā)送/接收以8位為一幀,低位在前,無起始位、奇偶位及停止位。其幀格式為:二、MCS—51串行通信接口的工作方式96精選2021版課件

DATACD4094CLKSTB并行輸出80C51RXD

TXDP1.0Q8CD4014CLKP/S并行輸入80C51RXD

TXDP1.0

串行口與CD4094配合串行口與CD4014配合

使用方式0實(shí)現(xiàn)數(shù)據(jù)的移位輸入/輸出時(shí),實(shí)際上是把串行口變成為并行口使用。串行口作為并行口輸出使用時(shí),要有“串入并出”的移位寄存器(例如CD4094或74LS164、74HC164等)配合;串行口作為并行口輸入使用時(shí),要有“并入串出”的移位寄存器(例如CD4014等)配合。其電路連接如上圖所示。

故在方式0下,常用于擴(kuò)展I/O口。97精選2021版課件⑴數(shù)據(jù)發(fā)送

在移位時(shí)鐘脈沖(TXD)的控制下,數(shù)據(jù)從串行口RXD端逐位移入74HC164SA、SB端。當(dāng)8位數(shù)據(jù)全部移出后,SCON寄存器的TI位被自動(dòng)置1。其后74HC164的內(nèi)容即可并行輸出。74HC164CLR為清0端,輸出時(shí)CLR必須為1,否則74HC164Q0~Q7輸出為0。

串行口作為并行輸出口使用時(shí),要有“串入并出”的移位寄存器配合。(例如CD4094或74HCl64)98精選2021版課件(2)數(shù)據(jù)接收

串行口作為并行輸入口使用時(shí),要有“并入串出”的移位寄存器配合。(例如CD4014或74HCl65)

74HC165的S/L端為移位/置入端,當(dāng)S/L=0時(shí),從Q0~Q7并行置入數(shù)據(jù),當(dāng)S/L=1時(shí),允許從QH端移出數(shù)據(jù)。在80C51串行控制寄存器SCON中的REN=1時(shí),TXD端發(fā)出移位時(shí)鐘脈沖,從RXD端串行輸入8位數(shù)據(jù)。當(dāng)接收到第8位數(shù)據(jù)D7后,置位中斷標(biāo)志RI,表示一幀數(shù)據(jù)接收完成。99精選2021版課件

(4)應(yīng)用舉例

DATACD4094CLKSTB80C51RXDTXD

P1.0

串行移位輸出電路例1:使用CD4094的輸出端接8只發(fā)光二極管,利用它的串入并出功能,把發(fā)光二極管從左向右依次點(diǎn)亮,并反復(fù)循環(huán)之。按此要求所做的電路連接如圖所示。

⑶波特率:

方式0波特率固定,為單片機(jī)晶振頻率的十二分之一。即一個(gè)機(jī)器周期進(jìn)行一次移位。100精選2021版課件解:采用查詢方式發(fā)送數(shù)據(jù)可編程序如下:

MOVSCON,#00H;串行口方式0工作CLRES ;禁止串行中斷MOVA,#80H ;發(fā)光管從左邊亮起DELR:CLRP1.0 ;關(guān)閉并行輸出MOVSBUF,A ;串行輸出WAIT:JNBTI,WAIT;狀態(tài)查詢SETBP1.0 ;開啟并行輸出ACALLDELAY ;狀態(tài)維持時(shí)間

CLRTI ;清發(fā)送中斷標(biāo)志

RRA ;發(fā)光組合循環(huán)右移AJMPDELR ;繼續(xù)101精選2021版課件例2.電路如圖所示,試編制程序輸入K1~K8狀態(tài)數(shù)據(jù),并存入片內(nèi)RAM40H。解:編程如下:

KIN:

MOVSCON,#00H;串行口方式0CLRES ;禁止串行中斷CLRP1.0;鎖存并行輸入數(shù)據(jù)SETBP1.0;允許串行移位操作SETBREN;允許并啟動(dòng)接收(TXD發(fā)送移位脈沖)WAIT:JNBRI,WAIT;等待接收完畢MOV40H,SBUF;存入K1~K8狀態(tài)數(shù)據(jù)

102精選2021版課件例3.電路如圖所示,試編制程序按下列順序要求每隔0.5秒循環(huán)操作。④從右向左依次點(diǎn)亮,每次亮一個(gè);⑤從左向右依次點(diǎn)亮,每次增加一個(gè),直至全部點(diǎn)亮;⑥返回從②不斷循環(huán)。①8個(gè)發(fā)光二極管全部點(diǎn)亮;②

從左向右依次暗滅,每次減少一個(gè),直至全滅;③從左向右依次點(diǎn)亮,每次亮一個(gè);解:編程如下:103精選2021版課件LIGHT:MOVSCON,#00H;串行口方式0CLRES;禁止串行中斷MOVDPTR,#TAB;置發(fā)光二極管亮暗控制字表首址LP1:MOVR7,#0;置順序編號(hào)0LP2:MOVA,R7;讀順序編號(hào)MOVCA,@A+DPTR;讀控制字CLR

溫馨提示

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

評(píng)論

0/150

提交評(píng)論