版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
①51子系列有2個(gè)可編程的定時(shí)器/計(jì)數(shù)器:定時(shí)器/計(jì)數(shù)器0與定時(shí)器/計(jì)數(shù)器1,可由程序選擇作為定時(shí)器用或作為計(jì)數(shù)器用,定時(shí)時(shí)間或計(jì)數(shù)值也可由程序設(shè)定。
②每個(gè)定時(shí)器/計(jì)數(shù)器都具有4種工作方式,可用程序選擇。
③任一定時(shí)器/計(jì)數(shù)器在定時(shí)時(shí)間到或計(jì)數(shù)值到時(shí),可由程序安排產(chǎn)生中斷請(qǐng)求信號(hào)或不產(chǎn)生中斷請(qǐng)求信號(hào)。
④52子系列有3個(gè)可編程定時(shí)器/計(jì)數(shù)器,增加了定時(shí)器/計(jì)數(shù)器2。定時(shí)器/計(jì)數(shù)器2有3種工作方式,可用程序選擇。定時(shí)器/計(jì)數(shù)器的主要特性12/6/202312.4.1定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)定時(shí)器/計(jì)數(shù)器0、1的結(jié)構(gòu)框圖12/6/202322.4.1定時(shí)器/計(jì)數(shù)器0、1的結(jié)構(gòu)定時(shí)器/計(jì)數(shù)器0、1的結(jié)構(gòu)框圖12/6/202331.16位加法計(jì)數(shù)器工作方法:作計(jì)數(shù)器用時(shí),加法計(jì)數(shù)器對(duì)芯片引腳T0(P3.4)或T1(P3.5)上輸入的脈沖計(jì)數(shù)。每輸入一個(gè)脈沖,加法計(jì)數(shù)器增加1。加法計(jì)數(shù)溢出時(shí)可向CPU發(fā)出中斷請(qǐng)求信號(hào)
作定時(shí)器用時(shí),加法計(jì)數(shù)器對(duì)內(nèi)部機(jī)器周期脈沖Tcy計(jì)數(shù)。定時(shí)器/計(jì)數(shù)器0、1的結(jié)構(gòu)框圖(P3.5)(P3.4)12/6/202342.工作方式控制寄存器TMOD
TMOD用來(lái)選擇定時(shí)器/計(jì)數(shù)器0、1的工作方式,低4位用于定時(shí)器/計(jì)數(shù)器0,高4位用于定時(shí)器/計(jì)數(shù)器1。定時(shí)器/計(jì)數(shù)器0、1的結(jié)構(gòu)框圖12/6/202352.工作方式控制寄存器TMOD
(1)定時(shí)器/計(jì)數(shù)器功能選擇位C/T:C/T=1為計(jì)數(shù)器方式,C/T=0為定時(shí)器方式。
(2)定時(shí)器/計(jì)數(shù)器工作方式選擇位M1、M0:定時(shí)器/計(jì)數(shù)器4種工作方式的選擇由M1、M0的值決定。T1T0TMOD89H12/6/20236
(2)定時(shí)器/計(jì)數(shù)器工作方式選擇位M1、M0:定時(shí)器/計(jì)數(shù)器4種工作方式的選擇由M1、M0的值決定。12/6/20237
(3)門(mén)控制位GATE:如果GATE=1,定時(shí)器/計(jì)數(shù)器0的工作受芯片引腳INT0(P3.2)控制,定時(shí)器/計(jì)數(shù)器1的工作受芯片引腳INT1(P3.3)控制;如果GATE=0,定時(shí)器/計(jì)數(shù)器的工作與INT0、INT1引腳無(wú)關(guān)。一般情況下GATE=0。T1T0TMOD89H
例:定時(shí)器T1為定時(shí)器方式,工作在方式0,非門(mén)控方式,定時(shí)器T0為計(jì)數(shù)器方式,工作在方式1,非門(mén)控方式,TMOD的值應(yīng)該設(shè)置為多少?TMOD=00000101B=05H12/6/202383.定時(shí)器/計(jì)數(shù)器控制寄存器TCON作用:TCON高4位用于控制定時(shí)器0、1的運(yùn)行,低4位用于控制外部中斷,與定時(shí)器/計(jì)數(shù)器無(wú)關(guān)。定時(shí)器/計(jì)數(shù)器0、1的結(jié)構(gòu)框圖12/6/202393.定時(shí)器/計(jì)數(shù)器控制寄存器TCON
(1)定時(shí)器/計(jì)數(shù)器1運(yùn)行控制位TR1(TCON.6):TR1=1時(shí)定時(shí)器/計(jì)數(shù)器1工作,TR1=0則停止工作。TRl由軟件置1或清零。(2)定時(shí)器/計(jì)數(shù)器1溢出中斷標(biāo)志TF1(TCON.7)
定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1=1,在中斷允許的條件下,便向CPU發(fā)出定時(shí)器/計(jì)數(shù)器1的中斷請(qǐng)求信號(hào),CPU響應(yīng)后TFl由硬件自動(dòng)清零。在中斷屏蔽條件下,TF1可作查詢測(cè)試用。
D7D6D5D4D3D2D1D0TCON88H12/6/2023103.定時(shí)器/計(jì)數(shù)器控制寄存器TCON
(3)定時(shí)器/計(jì)數(shù)器0運(yùn)行控制位TR0(TCON.4):TR0=1時(shí)定時(shí)器/計(jì)數(shù)器0工作,TR0=0則停止工作。TR0由軟件置1或清零。
(4)定時(shí)器/計(jì)數(shù)器0溢出中斷標(biāo)志TF0(TCON.5)
定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF0=1,在中斷允許的條件下,便向CPU發(fā)出定時(shí)器/計(jì)數(shù)器0的中斷請(qǐng)求信號(hào),CPU響應(yīng)后TF0由硬件自動(dòng)清零。在中斷屏蔽條件下,TF0可作查詢測(cè)試用。
D7D6D5D4D3D2D1D0TCON88H12/6/202311運(yùn)行控制:是否為門(mén)控方式工作方式選擇:方式0~方式3工作狀態(tài)選擇:定時(shí)器或計(jì)數(shù)器狀態(tài)
定時(shí)器/計(jì)數(shù)器1工作方式0結(jié)構(gòu)圖
Tcy2.4.2定時(shí)器/計(jì)數(shù)器的四種工作方式12/6/202312一、定時(shí)器/計(jì)數(shù)器0、1的工作狀態(tài)選擇(C/T)定時(shí)器/計(jì)數(shù)器工作狀態(tài)選擇Tcy
1.計(jì)數(shù)器工作狀態(tài)(C/T=1)
:計(jì)數(shù)脈沖來(lái)自相應(yīng)的外部輸入引腳,定時(shí)器T0的計(jì)數(shù)脈沖來(lái)自P3的第四個(gè)引腳(P3.4),定時(shí)器T1的計(jì)數(shù)脈沖來(lái)自P3的第五個(gè)引腳(P3.5)。當(dāng)定時(shí)器/計(jì)數(shù)器運(yùn)行時(shí),引腳上的輸入計(jì)數(shù)脈沖由1到0的跳變,可以使對(duì)應(yīng)的定時(shí)器的加1寄存器對(duì)增1。2.4.3定時(shí)器/計(jì)數(shù)器的四種工作方式12/6/202313定時(shí)器/計(jì)數(shù)器工作狀態(tài)選擇Tcy2.定時(shí)器工作狀態(tài)(C/T=0)
:本質(zhì)上仍是定時(shí)器的加1寄存器對(duì)進(jìn)行加1運(yùn)算。振蕩器產(chǎn)生的內(nèi)部時(shí)鐘脈沖經(jīng)12分頻后作為計(jì)數(shù)脈沖,所以計(jì)數(shù)頻率為振蕩頻率的1/12。當(dāng)采用12MHz的晶體時(shí),計(jì)數(shù)頻率為1MHz。由于內(nèi)部時(shí)鐘周期是相當(dāng)精確的頻率固定的脈沖,所以通過(guò)設(shè)定寄存器對(duì)的初值,在定時(shí)器方式時(shí),可以獲得相當(dāng)精確的定時(shí)。12/6/202314二、定時(shí)器/計(jì)數(shù)器0、1的運(yùn)行控制
方法:定時(shí)器/計(jì)數(shù)器的運(yùn)行控制(啟動(dòng)和停止)是由TMOD中的GATE位,TCON中的TRi(i=0或1)位以及從芯片引腳INTi(i=0或1)上引入的外部信號(hào)通過(guò)上圖的邏輯電路實(shí)現(xiàn)的。
定時(shí)器/計(jì)數(shù)器1運(yùn)行控制S212/6/202315
原理:(1)當(dāng)定時(shí)器1的GATE=0時(shí),定時(shí)器1運(yùn)行控制由TR1的一個(gè)條件確定,而TR1可用軟件置位或清零,從而可以利用程序控制定時(shí)器的啟動(dòng)和停止運(yùn)行。
定時(shí)器/計(jì)數(shù)器1運(yùn)行控制二、定時(shí)器/計(jì)數(shù)器0、1的運(yùn)行控制12/6/202316二、定時(shí)器/計(jì)數(shù)器0、1的運(yùn)行控制
原理:(2)當(dāng)定時(shí)器1的GATE=1時(shí),“或”門(mén)的輸出電平取決于INT1引腳的信號(hào)電平,所以“與”門(mén)輸出的電平?jīng)Q定于TR1和INT1兩個(gè)條件。
定時(shí)器或計(jì)數(shù)器運(yùn)行控制12/6/202317三、定時(shí)器/計(jì)數(shù)器0、1的4種工作方式12/6/202318三、定時(shí)器/計(jì)數(shù)器0、1的4種工作方式
設(shè)置條件:M1=0、M0=0
方式0為:13位定時(shí)器/計(jì)數(shù)器,TH1是高8位加法計(jì)數(shù)器,TLl是低5位加法計(jì)數(shù)器(只用5位,其高3位未用)。1.工作方式0
定時(shí)器/計(jì)數(shù)器1工作方式0結(jié)構(gòu)圖
12/6/2023191.工作方式0計(jì)數(shù)范圍:1~8192
THl、TLl從初值開(kāi)始加法計(jì)數(shù),直至溢出,所以設(shè)置的初值不同,定時(shí)時(shí)間或計(jì)數(shù)值也不同。注意:加法計(jì)數(shù)器TH1溢出后,必須用程序重新對(duì)THl、TLl設(shè)置初值,否則下一次TH1、TLl將從0開(kāi)始加法計(jì)數(shù)。初值設(shè)置范圍:0~8191(0~213-1)定時(shí)范圍:(1~8192)Tcy例已知振蕩器振蕩頻率fosc為12MHz,要求定時(shí)器/計(jì)數(shù)器0產(chǎn)生1ms定時(shí),試編寫(xiě)初始化程序。計(jì)數(shù)值:8192-X定時(shí)時(shí)間:(8192-X)Tcy12/6/202320(2)初始化程序的編寫(xiě):在C51中加入<reg51.h>頭文件,然后在主函數(shù)中寫(xiě)如下語(yǔ)句:TH0=0xE0;定時(shí)器/計(jì)數(shù)器0寫(xiě)入初值TL0=0x18;同上TMOD=0x00;T0設(shè)為定時(shí)器、工作方式0TR0=1;啟動(dòng)定時(shí)器/計(jì)數(shù)器0TH0=E0HTL0=18H解:(1)TH0TL0初值的計(jì)算與TMOD方式字的確定:
由于Tcy=1us,故有T=(8192-X)Tcy=(8192-X)×1us=1000us得X=7192=1C18H=00011100
0001
1000BTMOD=00H12/6/2023212.工作方式1設(shè)置條件:M1=0、M0=1方式1為:16位定時(shí)器/計(jì)數(shù)器,TH1是高8位加法計(jì)數(shù)器,TLl是低8位加法計(jì)數(shù)器。
定時(shí)器/計(jì)數(shù)器1工作方式1結(jié)構(gòu)圖
12/6/2023222.工作方式1計(jì)數(shù)范圍:1~65536
THl、TLl從初值開(kāi)始加法計(jì)數(shù),直至溢出,所以設(shè)置的初值不同,定時(shí)時(shí)間或計(jì)數(shù)值也不同。注意:加法計(jì)數(shù)器TH1溢出后,必須用程序重新對(duì)THl、TLl設(shè)置初值,否則下一次TH1、TLl將從0開(kāi)始加法計(jì)數(shù)。初值設(shè)置范圍:0~65535(0~216-1)定時(shí)范圍:(1~65536)Tcy例已知振蕩器振蕩頻率fosc為12MHz,要求定時(shí)器/計(jì)數(shù)器0產(chǎn)生50ms定時(shí),試編寫(xiě)初始化程序。計(jì)數(shù)值:65536-X定時(shí)時(shí)間:(65536-X)Tcy12/6/202323(2)初始化程序的編寫(xiě):
在C51中加入<reg51.h>頭文件,然后在主函數(shù)中寫(xiě)如下語(yǔ)句:TH0=0x3C;定時(shí)器/計(jì)數(shù)器0寫(xiě)入初值TL0=0xB0;同上TMOD=0x01;T0設(shè)為定時(shí)器工作方式1TR0=1,啟動(dòng)定時(shí)器/計(jì)數(shù)器0TH0=3CHTL0=B0H解:(1)TH0TL0初值的計(jì)算與TMOD方式字的確定:
由于Tcy=1us,故有T=(65536-x)Tcy=(65536-x)×1us=50000us得X=15536=3CB0HTMOD=01H12/6/202324解:方波的周期用定時(shí)器T1產(chǎn)生,根據(jù)(2n-x)×Tcy=(216-x)×1μs=50ms,所以x=65536-50000=15536=3CB0H即TH1=3CH,TL1=B0H或者通過(guò)計(jì)算得出TH1=15536/256,TL1=15536%256已知晶振頻率fosc=12MHz,要求定時(shí)器1產(chǎn)生100ms的方波信號(hào),定時(shí)器1工作于方式1,編寫(xiě)在P2.0引腳上產(chǎn)生100ms的方波程序。
在T1中設(shè)置初值為15536,在初值的基礎(chǔ)上進(jìn)行加1計(jì)數(shù),每隔50ms計(jì)數(shù)溢出1次,CPU響應(yīng)中斷后,在中斷服務(wù)程序中對(duì)P2.0引腳信號(hào)取反。12/6/202325
#include<reg51.h>#defineuintunsignedintsbitfangbo=P2^0;voiddelay(uintz);//延時(shí)子程序voidmain(){
TMOD=0x10;//設(shè)置T1為定時(shí)器模式//,工作在方式1TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;//開(kāi)總中斷ET1=1;//允許T1中斷
TR1=1;// 啟動(dòng)T1while(1); }voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidtimer1()interrupt3{
TH1=(65536-50000)/256;TL1=(65536-50000)%256;fangbo=~fangbo;
}12/6/2023263.工作方式2
設(shè)置條件:M1=1、M0=0
方式2為:自動(dòng)重新裝入初值(自動(dòng)重裝載)的8位定時(shí)器/計(jì)數(shù)器。TL1作為8位加法計(jì)數(shù)器使用,TH1作為初值寄存器用。TH1、TL1的初值都由軟件預(yù)置。
定時(shí)器/計(jì)數(shù)器1工作方式2結(jié)構(gòu)圖
12/6/2023273.工作方式2計(jì)數(shù)范圍:1~256TLl從初值開(kāi)始加法計(jì)數(shù),溢出時(shí):
(1)置位TF1;(2)發(fā)出重裝載信號(hào),將THl中初值自動(dòng)送入TLl,使TL1從初值開(kāi)始重新計(jì)數(shù)。注意:重新裝入初值后,TH1的內(nèi)容保持不變。初值設(shè)置范圍:0~255(0~28-1)定時(shí)范圍:(1~256)Tcy
工作方式2特別適用于定時(shí)控制。例已知振蕩器振蕩頻率fosc為12MHz,要求定時(shí)器/計(jì)數(shù)器0要求每隔200us產(chǎn)生一定時(shí)控制信號(hào)。計(jì)數(shù)值:256-X定時(shí)時(shí)間:(256-X)Tcy12/6/202328(2)初始化程序:
在C51中加入<reg51.h>頭文件,然后在主函數(shù)中寫(xiě)如下語(yǔ)句:TL0=0x38;定時(shí)器/計(jì)數(shù)器0寫(xiě)入初值TH0=0x38;同上TMOD=0x02;T0設(shè)為定時(shí)器工作方式2TR0=1;啟動(dòng)定時(shí)器/計(jì)數(shù)器0TH0=38HTL0=38H解:(1)TH0TL0初值的計(jì)算與TMOD方式字的確定:
由于Tcy=1us,故有T=(256-x)Tcy=(256-x)×1us=200us得X=56=38HTMOD=02H12/6/2023294.工作方式3
設(shè)置條件:M1=1、M0=1
方式3:工作方式3僅對(duì)定時(shí)器/計(jì)數(shù)器0有意義。TL0、TH0成為兩個(gè)獨(dú)立的8位加法計(jì)數(shù)器。如把定時(shí)器/計(jì)數(shù)器1設(shè)置為工作方式3,相當(dāng)于TR1=0,即定時(shí)器/計(jì)數(shù)器1實(shí)際將停止工作。
定時(shí)器/計(jì)數(shù)器0工作方式3結(jié)構(gòu)圖
12/6/2023304.工作方式3
說(shuō)明:定時(shí)器/計(jì)數(shù)器0采用工作方式3后,51子系列就具有3個(gè)定時(shí)器/計(jì)數(shù)器,即8位定時(shí)器/計(jì)數(shù)器TL0,8位定時(shí)器TH0和16位定時(shí)器/計(jì)數(shù)器1(TH1、TL1)。定時(shí)器/計(jì)數(shù)器1雖然還可以選擇為方式0、方式1或方式2,但由于TR1和TF1被TH0借用,不能產(chǎn)生溢出中斷請(qǐng)求,所以只用作串行口的波特率發(fā)生器。12/6/202331定時(shí)器/計(jì)數(shù)器0已預(yù)置初值為156,且選定用方式2的計(jì)數(shù)器方式,現(xiàn)在T0引腳上輸入周期為1ms脈沖,問(wèn):(1)此時(shí)定時(shí)器/計(jì)數(shù)器0的實(shí)際用途是什么?(2)在什么情況下,定時(shí)器/計(jì)數(shù)器0溢出?
解:(1)實(shí)際用作定時(shí)器,但采用外部時(shí)鐘脈沖(2)滿100ms定時(shí)器/計(jì)數(shù)器0將溢出。
12/6/202332設(shè)計(jì)一個(gè)秒表,使它從0~59s計(jì)數(shù),并使LED數(shù)碼管左邊兩個(gè)顯示數(shù)字0~59,假設(shè)晶振頻率fosc=12MHz,定時(shí)器/計(jì)數(shù)器選用T0。
解:利用51單片機(jī)的定時(shí)器0,使其50ms中斷一次,中斷20次時(shí),秒加1。初值與中斷服務(wù)程序中,TH0、TL0的值設(shè)置為:TH0=0x3C;定時(shí)器/計(jì)數(shù)器0寫(xiě)入初值TL0=0xB0;同上;
模式寄存器的值為:
TMOD=0x01;T0設(shè)為定時(shí)器工作方式1
12/6/202333程序如下:
#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharuchartemp,aa,shi,ge;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共陽(yáng)極數(shù)碼管碼表voiddisplay(ucharshi,ucharge);//顯示子程序voiddelay(uintz);//延時(shí)子程序voidinit();12/6/202334voidmain(){ init();//初始化子程序 while(1) { if(aa==20) { aa=0; temp++; if(temp==60) { temp=0; } shi=temp/10; ge=temp%10;
} display(shi,ge); }}12/6/202335voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}voiddisplay(ucharshi,ucharge){
P2=0x01;//送入十位數(shù)碼管位選信號(hào),顯示數(shù)字 P1=table[shi];//送入十位數(shù)碼管的段選信號(hào) delay(5); P2=0x02;//送入個(gè)位數(shù)碼管位選信號(hào),顯示數(shù)字 P1=table[ge];//送入個(gè)位數(shù)碼管的段選信號(hào) delay(5);
}12/6/202336voidinit(){ temp=0; TMOD=0x01;//設(shè)置T0為定時(shí)器模式,工作在方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256;EA=1;//開(kāi)總中斷 ET0=1;//允許T0中斷 TR0=1;// 啟動(dòng)T0}voidtimer0()interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; }12/6/2023372.5并行I/O端口8051單片機(jī)共有4個(gè)8位雙向I/O口,共32口線。每位均有自己的鎖存器(SFR),輸出驅(qū)動(dòng)器和輸入緩沖器。12/6/202338多路開(kāi)關(guān)功能:用于控制選通I/O方式還是地址/數(shù)據(jù)輸出方式方式控制:由內(nèi)部控制信號(hào)產(chǎn)生數(shù)據(jù)輸出鎖存器,用于數(shù)據(jù)位的鎖存兩個(gè)三態(tài)的數(shù)據(jù)輸入緩沖器(BUF1和BUF2)。推拉式I/O驅(qū)動(dòng)器:由兩只場(chǎng)效應(yīng)管(FET)組成,上面的場(chǎng)效應(yīng)管構(gòu)成上拉電路。2.5.1P0端口BUF2BUF1QQDCVcc控制AD0P0R1
P0R2D0P0WP0口1位的內(nèi)部結(jié)構(gòu)讀鎖存器讀引腳鎖存器內(nèi)部總線寫(xiě)鎖存器地址/數(shù)據(jù)P00多路開(kāi)關(guān)10字節(jié)地址80H,位地址80H~87H。12/6/2023392.5.1P0端口BUF2BUF1QQDCVcc控制AD0P0R1
P0R2D0P0WP0口內(nèi)部結(jié)構(gòu)讀鎖存器讀引腳鎖存器內(nèi)部總線寫(xiě)鎖存器地址/數(shù)據(jù)P00多路開(kāi)關(guān)10說(shuō)明:1、當(dāng)CPU發(fā)出的控制信號(hào)為0時(shí),P0口做雙向I/O口,為漏極開(kāi)路(三態(tài))2、當(dāng)CPU發(fā)出的控制信號(hào)為1時(shí),P0口為地址/數(shù)據(jù)復(fù)用總線(用于口擴(kuò)展)12/6/2023402.5.1P0端口BUF2BUF1QQDCVcc控制AD0P0R1
P0R2D0P0WP0口內(nèi)部結(jié)構(gòu)讀引腳鎖存器內(nèi)部總線寫(xiě)鎖存器地址/數(shù)據(jù)P00多路開(kāi)關(guān)103、
P0作輸入/輸出口的使用(1)P0作輸出口使用來(lái)自CPU的“寫(xiě)入”脈沖加在D鎖存器的C端,內(nèi)部總線上的數(shù)據(jù)寫(xiě)入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開(kāi)路(因?yàn)檫@時(shí)上拉場(chǎng)效應(yīng)管截止),必須外接上拉電阻才能有高電平輸出。讀鎖存器12/6/2023412.5.1P0端口BUF2BUF1QQDCVcc控制AD0P0R1
P0R2D0P0WP0口內(nèi)部結(jié)構(gòu)讀引腳鎖存器內(nèi)部總線寫(xiě)鎖存器地址/數(shù)據(jù)P00多路開(kāi)關(guān)103、
P0作輸入/輸出口的使用(1)P0作輸出口使用來(lái)自CPU的“寫(xiě)入”脈沖加在D鎖存器的C端,內(nèi)部總線上的數(shù)據(jù)寫(xiě)入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開(kāi)路(因?yàn)檫@時(shí)上拉場(chǎng)效應(yīng)管截止),必須外接上拉電阻才能有高電平輸出。(2)P0作輸入口使用區(qū)分“讀引腳”和“讀鎖存器”?!白x引腳”信號(hào)把下方緩沖器打開(kāi),引腳上的狀態(tài)經(jīng)緩沖器讀入內(nèi)部總線;
讀鎖存器12/6/2023422.5.1P0端口BUF2BUF1QQDCVcc控制AD0P0R1
P0R2D0P0WP0口內(nèi)部結(jié)構(gòu)讀引腳鎖存器內(nèi)部總線寫(xiě)鎖存器地址/數(shù)據(jù)P00多路開(kāi)關(guān)103、
P0作輸入/輸出口的使用(1)P0作輸出口使用來(lái)自CPU的“寫(xiě)入”脈沖加在D鎖存器的C端,內(nèi)部總線上的數(shù)據(jù)寫(xiě)入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開(kāi)路(因?yàn)檫@時(shí)上拉場(chǎng)效應(yīng)管截止),必須外接上拉電阻才能有高電平輸出。(2)P0作輸入口使用區(qū)分“讀引腳”和“讀鎖存器”?!白x引腳”信號(hào)把下方緩沖器打開(kāi),引腳上的狀態(tài)經(jīng)緩沖器讀入內(nèi)部總線;“讀鎖存器”信號(hào)打開(kāi)上面的緩沖器把鎖存器Q端的狀態(tài)讀入內(nèi)部總線。讀鎖存器12/6/202343執(zhí)行“MOVA,P0”時(shí)讀引腳信號(hào)有效。說(shuō)明:執(zhí)行“ANLP0,#0FH”時(shí)讀鎖存器信號(hào)有效。12/6/2023442.5.2P1端口P1口內(nèi)部結(jié)構(gòu)如下圖所示。輸出部分有內(nèi)部上拉電阻R*約為20K。其他部分與P0端口使用相類似(讀引腳時(shí)先寫(xiě)入1)。寫(xiě)數(shù)據(jù)讀端口字節(jié)地址90H,位地址90H~97H。12/6/202345P1口只作通用的I/O口使用,在電路結(jié)構(gòu)上與P0口有兩點(diǎn)區(qū)別:(1)因?yàn)橹粋魉蛿?shù)據(jù),不再需要多路轉(zhuǎn)接開(kāi)關(guān)MUX。(2)由于P1口用來(lái)傳送數(shù)據(jù),因此輸出電路中有上拉電阻,這樣電路的輸出不是三態(tài)的。因此:(1)P1口作為輸出口使用時(shí),外電路無(wú)需再接上拉電阻。(2)P1口作為輸入口使用時(shí),應(yīng)先向其鎖存器先寫(xiě)入“1”,使輸出驅(qū)動(dòng)電路的FET截止,所以P1口是準(zhǔn)雙向口。12/6/202346字節(jié)地址為A0H,位地址A0H~A7H。
2.5.3P2端口P2口的位結(jié)構(gòu)的電路原理圖說(shuō)明:1、P2可以作為通用的I/O,也可以作為高8位地址輸出輸出。2、當(dāng)控制信號(hào)為1時(shí)P2口輸出地址信息,此時(shí)單片機(jī)完成外部的取指操作或?qū)ν獠繑?shù)據(jù)存儲(chǔ)器16位地址的讀寫(xiě)操作。3、當(dāng)控制信號(hào)為0時(shí),作為普通I/O口使用時(shí)用法和P1口類似。1012/6/202347P3口的字節(jié)地址為B0H,位地址為B0H~B7H。P3口的第二功能定義,應(yīng)熟記。表2-5P3口的第二功能定義
口引腳第二功能
P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INT0*(外部中斷0) P3.3 INT1*(外部中斷1) P3.4 T0(定時(shí)器0外部計(jì)數(shù)輸入) P3.5 T1(定時(shí)器1外部計(jì)數(shù)輸入) P3.6 WR*(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) P3.7 RD*(外部數(shù)據(jù)存儲(chǔ)器讀選通)
2.5.4P3端口12/6/202348圖2-10P2口的位結(jié)構(gòu)的電路原理12/6/202349第二功能信號(hào)有輸出和輸入兩類:(1)作通用的I/O輸出,“第二輸出功能”線應(yīng)保持高電平,與非門(mén)開(kāi)通,使鎖存器Q端輸出暢通。作第二功能信號(hào)輸出,鎖存器預(yù)先置“1”,使與非門(mén)對(duì)“第二輸出功能”信號(hào)的輸出是暢通的。(2)作第二功能信號(hào)輸入,在口線引腳的內(nèi)部增加了一個(gè)緩沖器,輸入的信號(hào)就從這個(gè)緩沖器的輸出端取得。而作為通用I/O輸入,仍取自三態(tài)緩沖器的輸出端。
P3口無(wú)論作哪種輸入,鎖存器輸出和“第二輸出功能”線都應(yīng)保持高電平。12/6/202350使用中應(yīng)注意的問(wèn)題:(1)P0~P3口都是并行I/O口,但P0口和P2口,還可用來(lái)構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線,所以在電路中有一個(gè)MUX,以進(jìn)行轉(zhuǎn)換。而P1口和P3口無(wú)構(gòu)建系統(tǒng)的數(shù)據(jù)總線和地址總線的功能,因此,無(wú)需轉(zhuǎn)接開(kāi)關(guān)MUX。由于P0口可作為地址/數(shù)據(jù)復(fù)用線使用,需傳送系統(tǒng)的低8位地址和8位數(shù)據(jù),因此MUX的一個(gè)輸入端為“地址/數(shù)據(jù)”信號(hào)。而P2口僅作為高位地址線使用,不涉及數(shù)據(jù),所以MUX的一個(gè)輸入信號(hào)為“地址”。2.5.5P0~P3端口功能總結(jié)12/6/202351(2)在4個(gè)口中只有P0口是一個(gè)真正的雙向口,P1~P3口都是準(zhǔn)雙向口。原因:P0口作數(shù)據(jù)總線使用時(shí),為保證數(shù)據(jù)正確傳送,需解決芯片內(nèi)外的隔離問(wèn)題,即只有在數(shù)據(jù)傳送時(shí)芯片內(nèi)外才接通;不進(jìn)行數(shù)據(jù)傳送時(shí),芯片內(nèi)外應(yīng)處于隔離狀態(tài)。為此,P0口的輸出緩沖器應(yīng)為三態(tài)門(mén)。在P0口中輸出三態(tài)門(mén)是由兩只場(chǎng)效應(yīng)管(FET)組成,所以是一個(gè)真正的雙向口。而P1~P3口,上拉電阻代替P0口中的場(chǎng)效應(yīng)管,輸出緩沖器不是三態(tài)的-準(zhǔn)雙向口12/6/202352(3)P3口的口線具有第二功能,為系統(tǒng)提供一些控制信號(hào)。因此在P3口電路增加了第二功能控制邏輯。這是P3口與其它各口的不同之處。12/6/202353引腳功能分類圖12/6/202354仿真電路如下圖,編寫(xiě)使P2口所接的流水燈從左到右點(diǎn)亮的程序2.5.58051系列單片機(jī)內(nèi)部并行口的應(yīng)用
12/6/202355#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintvoidDelayMS(uintx){ uchari; while(x--) { for(i=120;i>0;i--); }}voidmain(){ P0=0xFE; while(1) { P0=_crol_(P0,1); DelayMS(150); }}12/6/2023562.6串行輸入/輸出接口1.并行通信與串行通信在實(shí)際應(yīng)用中,不但計(jì)算機(jī)與外部設(shè)備之間常常要進(jìn)行信息交換,而且計(jì)算機(jī)之間也需要交換信息,所有這些信息的交換均稱為“通信”。通信的基本方式分為并行通信和串行通信兩種。2.6.1基本概念12/6/202357
并行通信是構(gòu)成1組數(shù)據(jù)的各位同時(shí)進(jìn)行傳送,例如8位數(shù)據(jù)或16位數(shù)據(jù)并行傳送。其特點(diǎn)是傳輸速度快,但當(dāng)距離較遠(yuǎn)、位數(shù)又多時(shí)導(dǎo)致了通信線路復(fù)雜且成本高。
串行通信是數(shù)據(jù)一位接一位地順序傳送。其特點(diǎn)是通信線路簡(jiǎn)單,只要一對(duì)傳輸線就可以實(shí)現(xiàn)通信(如電話線),從而大大地降低了成本,特別適用于遠(yuǎn)距離通信。缺點(diǎn)是傳送速度慢。12/6/202358通信的兩種基本方式(a)并行通信;(b)串行通信12/6/202359
(1)種類:串行通信可分為異步傳送和同步傳送兩種基本方式。
①異步傳送方式在傳送時(shí),數(shù)據(jù)是以一個(gè)字符為單位進(jìn)行傳送的。它用一個(gè)起始位表示字符的開(kāi)始,用停止位表示字符的結(jié)束。異步傳送的特點(diǎn)是數(shù)據(jù)在線路上的傳送不連續(xù)。異步傳送的字符格式如下頁(yè)圖所示。2.串行通信的種類和數(shù)據(jù)傳送方向12/6/202360串行異步傳送的字符格式一個(gè)字符由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位4個(gè)部分組成。起始位為0信號(hào)占1位;其后接著的就是數(shù)據(jù)位,它可以是5位、6位、7位或8位,傳送時(shí)低位在先、高位在后;再后面的1位為奇偶校驗(yàn)位,可要也可以不要;最后是停止位,它用信號(hào)1來(lái)表示字符的結(jié)束,可以是1位、1位半或2位。12/6/202361例如,采用串行異步通信方式傳送ASCII碼字符‘5’,規(guī)定為7位數(shù)據(jù)位,1位偶校驗(yàn)位,1位停止位,無(wú)空閑位。由于‘5’的ASCII碼為35H,其對(duì)應(yīng)7位數(shù)據(jù)位為0110101,如按低位在前、高位在后順序排列應(yīng)為1010110。前面加1位起始位,后面配上偶校驗(yàn)位1位0,最后面加1位停止位1,因此傳送的字符格式為0101011001,其對(duì)應(yīng)的波形如下頁(yè)圖所示。12/6/202362傳送ASCII碼字符‘5’的波形圖12/6/202363在串行異步傳送中,CPU與外設(shè)之間事先必須約定:
a)字符格式。雙方要事先約定字符的編碼形式、奇偶校驗(yàn)形式及起始位和停止位的規(guī)定。例如用ASCII碼通信,有效數(shù)據(jù)為7位,加1個(gè)奇偶校驗(yàn)位、1個(gè)起始位和1個(gè)停止位共10位。當(dāng)然停止位也可大于1位。
b)波特率(Baudrate)。
波特率就是數(shù)據(jù)的傳送速率,即每秒鐘傳送的二進(jìn)制位數(shù),單位為位/秒。它與字符的傳送速率(字符/秒)之間存在如下關(guān)系:波特率=位/字符×字符/秒=位/秒
要求發(fā)送端與接收端的波特率必須一致。12/6/202364
例:假設(shè)字符傳送的速率為120字符/秒,而每1個(gè)字符為10位,那么傳送的波特率為多少?10位/字符×120字符/秒=1200位/秒=1200波特每1位二進(jìn)制位的傳送時(shí)間Td就是波特率的倒數(shù),例如上例中Td=1/1200=0.833ms12/6/202365在異步傳送中,每1個(gè)字符都要用起始位和停止位作為字符開(kāi)始和結(jié)束的標(biāo)志,占用了一定的時(shí)間。為了提高傳送速度,有時(shí)就去掉這些標(biāo)志,而采用同步傳送,即1次傳送1組數(shù)據(jù)。在這1組數(shù)據(jù)的開(kāi)始處要用同步字符SYN來(lái)加以指示,如下頁(yè)圖所示。12/6/202366同步傳送示意圖12/6/202367串行通信的數(shù)據(jù)傳送方向有3種形式。
①單工方式如下頁(yè)圖(a)所示,A端為發(fā)送站,B端為接收站,數(shù)據(jù)僅能從A站發(fā)至B站。②半雙工方式如下頁(yè)圖(b)所示,數(shù)據(jù)既可從A站發(fā)送到B站,也可以由B站發(fā)送到A站。不過(guò)在同一時(shí)間只能作1個(gè)方向的傳送。
③全雙工方式如下頁(yè)圖(c)所示,每個(gè)站(A、B)既可同時(shí)發(fā)送,也可同時(shí)接收。
(2)數(shù)據(jù)傳送方向12/6/202368串行通信的三種方式(a)單工方式;(b)半雙工方式;(c)全雙工方式12/6/202369MCS-51單片機(jī)內(nèi)部有1個(gè)功能很強(qiáng)的全雙工串行口,可同時(shí)發(fā)送和接收數(shù)據(jù)。它有4種工作方式,可供不同場(chǎng)合使用。波特率由軟件設(shè)置,通過(guò)片內(nèi)的定時(shí)/計(jì)數(shù)器產(chǎn)生。接收、發(fā)送均可工作在查詢方式或中斷方式,使用十分靈活。2.6.2串行口功能和結(jié)構(gòu)12/6/202370串行口內(nèi)部結(jié)構(gòu)如上圖,兩個(gè)物理上獨(dú)立的接收和發(fā)送緩沖器,可同時(shí)收、發(fā)數(shù)據(jù)。兩個(gè)緩沖器共用一個(gè)特殊功能寄存器字節(jié)地址:SBUF(99H)。
控制寄存器共兩個(gè):特殊功能寄存器SCON和PCON。12/6/202371(1)串行口數(shù)據(jù)緩沖器SBUFSBUF是兩個(gè)在物理上獨(dú)立的接收、發(fā)送緩沖器,可同時(shí)發(fā)送、接收數(shù)據(jù)。兩個(gè)緩沖器只用一個(gè)字節(jié)地址99H,可通過(guò)指令對(duì)SBUF的讀寫(xiě)來(lái)區(qū)別是對(duì)接收緩沖器的操作還是對(duì)發(fā)送緩沖器的操作。CPU寫(xiě)SBUF,就是修改發(fā)送緩沖器;讀SBUF,就是讀接收緩沖器。串行口對(duì)外也有兩條獨(dú)立的收發(fā)信號(hào)線RXD(P3.0)和TXD(P3.1),因此可以同時(shí)發(fā)送、接收數(shù)據(jù),實(shí)現(xiàn)全雙工傳送。12/6/202372(2)串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式與狀態(tài),它可以位尋址。在復(fù)位時(shí)所有位被清0,字節(jié)地址為98H。SCON的格式為:12/6/202373SM0、SM1——串行口4種工作方式的選擇位
SM0SM1方式 功能說(shuō)明
000移位寄存器方式(用于擴(kuò)展并行I/O口)0118位異步收發(fā),波特率可變(由定時(shí)器控制)1029位異步收發(fā),波特率為fosc/64或fosc/321139位異步收發(fā),波特率可變(由定時(shí)器控制)12/6/202374SM2——多機(jī)通信控制位
用于方式2或方式3中。當(dāng)串行口以方式2或方式3接收時(shí),如果SM2=1,只有當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“1”時(shí),才將接收到的前8位數(shù)據(jù)送入SBUF,并置“1”RI,產(chǎn)生中斷請(qǐng)求;當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“0”時(shí),則將接收到的前8位數(shù)據(jù)丟棄。如果SM2=0,則不論第9位數(shù)據(jù)是“1”還是“0”,都將前8位數(shù)據(jù)送入SBUF中,并置“1”RI,產(chǎn)生中斷請(qǐng)求。在方式1時(shí),如果SM2=1,則只有收到停止位時(shí)才會(huì)激活RI。在方式0時(shí),SM2必須為0。12/6/202375
REN——允許串行接收位由軟件置“1”或清“0”。
REN=1
允許串行口接收數(shù)據(jù)。
REN=0
禁止串行口接收數(shù)據(jù)。
TB8——發(fā)送的第9位數(shù)據(jù)方式2和3時(shí),TB8是要發(fā)送的第9位數(shù)據(jù),可作為奇偶校驗(yàn)位使用,也可作為地址幀或數(shù)據(jù)幀的標(biāo)志。=1為地址幀,=0為數(shù)據(jù)幀
RB8——接收到的第9位數(shù)據(jù)方式2和3時(shí),RB8存放接收到的第9位數(shù)據(jù)。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。12/6/202376TI——發(fā)送中斷標(biāo)志位
串行完一幀信息,由硬件置“1”,TI必須由軟件清“0”。RI——接收中斷標(biāo)志位
方式0時(shí),接收完第8位數(shù)據(jù)時(shí),RI由硬件置1。其它工作方式,串行接收到停止位時(shí),該位置“1”。RI=1,表示一幀數(shù)據(jù)接收完畢,并申請(qǐng)中斷,CPU從接收SBUF取走數(shù)據(jù)。該位狀態(tài)也可軟件查詢。RI必須由軟件清“0”。12/6/202377(3)電源控制寄存器PCONPCON單元地址為97H,不能位尋址。其內(nèi)容如下:D7D6D5D4D3D2D1D0
PCON87H最高位SMOD為串行口波特率選擇位,當(dāng)SMOD=1時(shí),方式1、2、3的波特率加倍。12/6/202378串行口有4種工作方式,它是由SCON中的SM0、SM1來(lái)定義的,如下所示。SM0、SM1——串行口4種工作方式的選擇位
SM0SM1方式 功能說(shuō)明
000移位寄存器方式(用于擴(kuò)展I/O口),波特率為fosc/120118位異步收發(fā),波特率可變(由定時(shí)器控制)1029位異步收發(fā),波特率為fosc/64或fosc/321139位異步收發(fā),波特率可變(由定時(shí)器控制)12/6/202379同步移位寄存器輸入/輸出方式,常用于外接移位寄存器,以擴(kuò)展并行I/O口。8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。波特率固定為fosc/12。幀格式如下: 1.方式0圖7-4方式0幀格式12/6/2023801.方式0發(fā)送當(dāng)CPU執(zhí)行一條將數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF的指令時(shí),產(chǎn)生一個(gè)正脈沖,串行口即把SBUF中的8位數(shù)據(jù)以fosc/12的固定波特率從RXD引腳串行輸出,低位在先,TXD引腳輸出同步移位脈沖,發(fā)送完8位數(shù)據(jù)置“1”中斷標(biāo)志位TI。時(shí)序如圖7-5所示。方式0發(fā)送時(shí)序12/6/2023812.方式0接收
REN=1,接收數(shù)據(jù),REN=0,禁止接收。REN=1,允許接收。向串口的SCON寫(xiě)入控制字(置為方式0,并置“1”REN位,同時(shí)RI=0)時(shí),產(chǎn)生一個(gè)正脈沖,串行口即開(kāi)始接收數(shù)據(jù)。RXD為數(shù)據(jù)輸入端,TXD為移位脈沖信號(hào)輸出端,接收器也以fosc/12的固定波特率采樣RXD引腳的數(shù)據(jù)信息,當(dāng)收到8位數(shù)據(jù)時(shí)置“1”RI,一幀數(shù)據(jù)接收完,可進(jìn)行下一幀數(shù)據(jù)的接受,時(shí)序如下:方式0接收時(shí)序12/6/202382方式0下,SCON中的TB8、RB8位沒(méi)有用到,發(fā)送或接收完8位數(shù)據(jù)由硬件置“1”TI或RI,CPU響應(yīng)中斷。TI或RI須由用戶軟件清“0”,可用如下指令:
CLRTI ;TI位清“0” CLRRI ;RI位清“0”方式0時(shí),SM2位必須為0。12/6/202383例:仿真電路如下圖:12/6/202384#include<reg51.h>sbitclk=P1^0;voiddelay(intN) //延時(shí)子程序(晶振12M){inti,j;for(i=0;i<N;i++)for(j=0;j<i;j++);}voidmain(){intxx;while(1){clk=0; clk=1;//發(fā)送移位脈沖 SCON=0x10;//允許串行口接收數(shù)據(jù) while(RI==0) //等待發(fā)送 {;} xx=SBUF; //讀取數(shù)據(jù) RI=0; //清除接收中斷標(biāo)志 P2=xx; delay(200); }}12/6/202385SM0、SM1=01方式1一幀數(shù)據(jù)為10位,1個(gè)起始位(0),8個(gè)數(shù)據(jù)位,1個(gè)停止位(1),先發(fā)送或接收最低位。幀格式如下:方式1波特率=(2SMOD/32)×定時(shí)器T1的溢出率SMOD為PCON寄存器的最高位的值(0或1)。2方式1
方式1幀格式12/6/202386(1).方式1發(fā)送數(shù)據(jù)由TXD輸出。一幀信息為10位,1位起始位0,8位數(shù)據(jù)位(先低位)和1位停止位1。當(dāng)執(zhí)行一條數(shù)據(jù)寫(xiě)發(fā)送緩沖器SBUF的指令,就啟動(dòng)發(fā)送。圖中TX時(shí)鐘的頻率就是發(fā)送的波特率。發(fā)送開(kāi)始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行?。將起始位向TXD輸出,此后,每經(jīng)過(guò)一個(gè)TX時(shí)鐘周期,便產(chǎn)生一個(gè)移位脈沖,并由TXD輸出一個(gè)數(shù)據(jù)位。8位數(shù)據(jù)位全部發(fā)送完畢后,置“1”TI。方式1發(fā)送數(shù)據(jù)的時(shí)序,如下圖所示。方式1發(fā)送數(shù)據(jù)時(shí)的時(shí)序12/6/202387(2).方式1接收
數(shù)據(jù)從RXD(P3.0)腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變時(shí),開(kāi)始接收數(shù)據(jù)。定時(shí)控制信號(hào)有兩種:接收移位時(shí)鐘(RX時(shí)鐘,頻率和波特率相同)和位檢測(cè)器采樣脈沖(頻率是RX時(shí)鐘的16倍,1位數(shù)據(jù)期間,有16個(gè)采樣脈沖),當(dāng)采樣到RXD端從1到0的跳變時(shí)就啟動(dòng)檢測(cè)器,接收的值是3次連續(xù)采樣(第7、8、9個(gè)脈沖時(shí)采樣)進(jìn)行表決以確認(rèn)是否是真正的起始位(負(fù)跳變)的開(kāi)始。當(dāng)一幀數(shù)據(jù)接收完,須同時(shí)滿足兩個(gè)條件,接收才真正有效。⑴RI=0,即上一幀數(shù)據(jù)接收完成時(shí),RI=1發(fā)出的中斷請(qǐng)求已被響應(yīng),SBUF中的數(shù)據(jù)已被取走,說(shuō)明“接收SBUF”已空。⑵SM2=0或收到的停止位=1(方式1時(shí),停止位已進(jìn)入RB8),則收到的數(shù)據(jù)裝入SBUF和RB8(RB8裝入停止位),且置“1”中斷標(biāo)志RI。若這兩個(gè)條件不同時(shí)滿足,收到的數(shù)據(jù)將丟失。12/6/202388方式1接收數(shù)據(jù)時(shí)的時(shí)序12/6/2023899位異步通信接口。每幀數(shù)據(jù)均為11位,1位起始位0,8位數(shù)據(jù)位(先低位),1位可程控的第9位數(shù)據(jù)和1位停止位。幀格式如下:3方式2方式2波特率=(2SMOD/64)×fosc
12/6/202390發(fā)送前,先根據(jù)通訊協(xié)議由軟件設(shè)置TB8(例如,雙機(jī)通訊時(shí)的奇偶校驗(yàn)位或多機(jī)通訊時(shí)的地址/數(shù)據(jù)的標(biāo)志位)。方式2發(fā)送數(shù)據(jù)波形如圖所示。(1).方式2發(fā)送方式2、3發(fā)送數(shù)據(jù)時(shí)序波形12/6/202391SM0、SM1=10,且REN=1。數(shù)據(jù)由RXD端輸入,接收11位信息。當(dāng)位檢測(cè)到RXD從1到0的負(fù)跳變,并判斷起始位有效后,開(kāi)始收一幀信息。在接收器完第9位數(shù)據(jù)后,需滿足兩個(gè)條件,才能將接收到的數(shù)據(jù)送入SBUF。(1)RI=0,意味著接收緩沖器為空。(2)SM2=0或接收到的第9位數(shù)據(jù)位RB8=1時(shí)。當(dāng)上述兩個(gè)條件滿足時(shí),接收到的數(shù)據(jù)送入SBUF(接收緩沖器),第9位數(shù)據(jù)送入RB8,并置“1”RI。若不滿足兩個(gè)條件,接收的信息將被丟棄。方式2接收數(shù)據(jù)的時(shí)序如圖所示。
(2).方式2接收
12/6/202392方式2接收數(shù)據(jù)的時(shí)序12/6/202393
SM0、SM1=11,串口為方式3。波特率可變的9位異步通訊方式,除波特率外,方式3和方式2相同。方式3的時(shí)序見(jiàn)方式2。
方式3波特率=(2SMOD/32)×定時(shí)器T1的溢出率4方式312/6/202394要保證主機(jī)與所選擇的從機(jī)實(shí)現(xiàn)可靠地通訊,SCON中的SM2位就是滿足這一條件而設(shè)置的多機(jī)通訊控制位。原理:在串行口以方式2(或方式3)接收時(shí),若SM2=1,表示置多機(jī)通訊功能位,這時(shí)有兩種可能:(1)接收到的第9位數(shù)據(jù)為1時(shí),數(shù)據(jù)才裝入SBUF,并置中斷標(biāo)志RI=1向CPU發(fā)出中斷請(qǐng)求;(2)接收到的第9位數(shù)據(jù)為0時(shí),則不產(chǎn)生中斷標(biāo)志,信息將拋棄。2.6.3多機(jī)通訊12/6/202395若SM2=0,則接收的第9位數(shù)據(jù)不論是0還是1,都產(chǎn)生RI=1中斷標(biāo)志,接收到的數(shù)據(jù)裝入SBUF中。應(yīng)用上述特性,便可實(shí)現(xiàn)MCS-51的多機(jī)通訊。
設(shè)多機(jī)系統(tǒng)中有一主機(jī)和3個(gè)8031從機(jī),如下圖。主機(jī)的RXD與從機(jī)的TXD相連,主機(jī)TXD與從機(jī)的RXD端相連。從機(jī)地址分別為00H、01H、02H。
12/6/202396多機(jī)通訊工作過(guò)程:(1)從機(jī)串行口編程為方式2或方式3接收,且置“1”SM2和REN位,使從機(jī)只處于多機(jī)通訊且接收地址幀的狀態(tài)。(2)主機(jī)先將從機(jī)地址(即準(zhǔn)備接收數(shù)據(jù)的從機(jī))發(fā)給各從機(jī),主機(jī)發(fā)出的地址信息的第9位為1,各從機(jī)接收到的第9位信息RB8為1,且由于SM2=1,則置“1”RI,各從機(jī)響應(yīng)中斷,執(zhí)行中斷程序。在中斷服務(wù)子程序中,判主機(jī)送來(lái)的地址是否和本機(jī)地址相符合,相符則該從機(jī)清“0”SM2位,準(zhǔn)備接收主機(jī)的數(shù)據(jù)或命令;若不符,則保持SM2=1狀態(tài)。12/6/202397(3)接著主機(jī)發(fā)送數(shù)據(jù)幀,此時(shí)各從機(jī)串行口接收到的RB8=0,只有地址相符合的從機(jī)系統(tǒng)(即已清“0”SM2位的從機(jī))才能激活RI,從而進(jìn)入中斷,在中斷程序中接收主機(jī)的數(shù)據(jù)(或命令);
其它的從機(jī)因SM2=1,又RB8=0不激活中斷標(biāo)志RI,不能進(jìn)入中斷,接收的數(shù)據(jù)丟失。前圖所示的多機(jī)系統(tǒng)是主從式,由主機(jī)控制多機(jī)之間的通訊,從機(jī)和從機(jī)的通訊只能經(jīng)主機(jī)才能實(shí)現(xiàn)。12/6/2023982.6.4波特率的制定方法方式0、方式2的波特率是固定的;方式1、方式3波特率由定時(shí)器T1的溢出率來(lái)確定。(1)波特率的定義波特率的定義?。對(duì)于定時(shí)器的不同工作方式,波特率的范圍不一。12/6/202399(a)方式0波特率=時(shí)鐘頻率fosc×1/12,不受SMOD位的值的影響。若fosc=12MHz,波特率為fosc/12即1Mb/s。(b)方式2波特率=(2SMOD/64)×fosc若fosc=12MHz:SMOD=0波特率=187.5kb/s;
SMOD=1波特率=375kb/s
(c)方式1或方式3時(shí),波特率為:
波特率=(2SMOD/32)×T1的溢出率
12/6/2023100實(shí)際設(shè)定波特率時(shí),T1常設(shè)置為方式2定時(shí)(自動(dòng)裝初值)這種方式不僅操作方便,也可避免因軟件重裝初值而帶來(lái)的定時(shí)誤差。此時(shí):12/6/2023101例: 設(shè)串行接口工作于工作方式3,SMOD=0,f=11.059MHz,定時(shí)器/計(jì)數(shù)器1工作于定時(shí)器方式2(自動(dòng)重裝載方式),TLl、THl的初值為FDH,試計(jì)算波特率。因?yàn)槎〞r(shí)器/計(jì)數(shù)器1的定時(shí)時(shí)間為:T=(256-253)×12/(11.059×106) 其溢出速率:1/T=11.059×106/[(256-253)×12]=307194.4 所以波特率為:20×307194.4/32=9599.83≈9600(位/秒)12/6/2023102舉例:串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)串行數(shù)據(jù)由RXD發(fā)送給串并轉(zhuǎn)換芯片74164,TXD則用于輸出移位時(shí)鐘脈沖,74164將串行輸入的1字節(jié)轉(zhuǎn)換為并行數(shù)據(jù),并將轉(zhuǎn)換的數(shù)據(jù)通過(guò)8只LED顯示出來(lái)。本例串口工作模式0,即移位寄存器I/O模式。12/6/2023103#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharvoidDelay(uintx){ uchari; while(x--) { for(i=0;i<120;i++); }}voidmain(){ ucharc=0x80; SCON=0x00; TI=1; while(1) { c=_crol_(c,1); SBUF=c; while(TI==0); TI=0; Delay(400); }}12/6/2023104舉例:甲機(jī)通過(guò)串口控制乙機(jī)LED閃爍甲單片機(jī)負(fù)責(zé)向外發(fā)送控制命令字符“A”、“B”、“C",或者停止發(fā)送,乙機(jī)根據(jù)所接收到的字符完成LED1閃爍、LED2閃爍、雙閃爍、或停止閃爍。12/6/2023105舉例:?jiǎn)纹瑱C(jī)之間雙向通信甲機(jī)向乙機(jī)發(fā)送控制命令字符,甲機(jī)同時(shí)接收乙機(jī)發(fā)送的數(shù)字,并顯示在數(shù)碼管上。乙機(jī)接收到甲機(jī)發(fā)送的信號(hào)后,根據(jù)相應(yīng)信號(hào)控制LED完成不同閃爍動(dòng)作。12/6/202310612/6/2023107補(bǔ)充:中斷的基本概念CPU執(zhí)行程序時(shí),由于發(fā)生了某種隨機(jī)的事件(外部或內(nèi)部的),引起CPU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序(稱為中斷服務(wù)程序或中斷處理程序),以處理該事件,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過(guò)程稱為中斷。2.7中斷系統(tǒng)實(shí)時(shí)測(cè)控時(shí),單片機(jī)應(yīng)能及時(shí)地響應(yīng)和處理單片機(jī)外部事件或內(nèi)部事件所提出的中斷請(qǐng)求。12/6/2023108中斷流程圖主程序斷點(diǎn)繼續(xù)執(zhí)行主程序執(zhí)行中斷服務(wù)子程序外設(shè)中斷請(qǐng)求中斷響應(yīng)返回主程序中斷方式優(yōu)點(diǎn):大大地提高了CPU的工作效率。12/6/2023109中斷源中斷源——引起CPU中斷的事件。例如:外設(shè)——請(qǐng)求輸入輸出數(shù)據(jù),報(bào)告故障等事件——掉電、硬件故障、軟件錯(cuò)誤、非法操作、定時(shí)時(shí)間到等中斷源分為:外部中斷、內(nèi)部中斷內(nèi)部中斷:CPU內(nèi)部執(zhí)行程序時(shí)自身產(chǎn)生的中斷外部中斷:CPU以外的設(shè)備、部件產(chǎn)生的中斷12/6/2023110中斷過(guò)程五個(gè)步驟:中斷請(qǐng)求中斷判優(yōu)(有時(shí)還要進(jìn)行中斷源識(shí)別)中斷響應(yīng)中斷服務(wù)中斷返回12/6/20231111.中斷請(qǐng)求中斷源發(fā)出中斷請(qǐng)求信號(hào),送到CPU。中斷請(qǐng)求信號(hào)應(yīng)保持到中斷被處理為止;CPU響應(yīng)中斷后,中斷請(qǐng)求信號(hào)應(yīng)及時(shí)撤銷。12/6/20231122中斷判優(yōu)多個(gè)中斷源產(chǎn)生中斷,CPU首先為誰(shuí)服務(wù)? ——中斷優(yōu)先級(jí)排隊(duì)問(wèn)題。12/6/2023113MCS—51系列單片機(jī)處理中斷優(yōu)先權(quán)有三條原則:①正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷,一直到該中斷服務(wù)程序結(jié)束,返回了主程序且執(zhí)行了主程序中的一條指令后,CPU才響應(yīng)新的中斷請(qǐng)求。
②正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù)程序能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷,實(shí)現(xiàn)二級(jí)中斷嵌套。③CPU同時(shí)接收到幾個(gè)中斷請(qǐng)求時(shí),首先響應(yīng)優(yōu)先權(quán)最高的中斷請(qǐng)求。
12/6/20231143.中斷響應(yīng)①CPU正在處理同級(jí)或高優(yōu)先級(jí)的中斷。②現(xiàn)行的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期。③正在執(zhí)行的指令是RETI或訪問(wèn)IE、IP的指令。CPU在執(zhí)行RETI或訪問(wèn)IE、IP的指令后,至少需要再執(zhí)行一條其他指令后才會(huì)響應(yīng)中斷請(qǐng)求。
MCS-51的CPU在每個(gè)機(jī)器周期的S5P2期間順序采樣各中斷請(qǐng)求標(biāo)志位,如有置位,且下列三種情況都不存在,那么,在下一周期的S1期間響應(yīng)中斷。否則,采樣的結(jié)果被取消。三種情況是:12/6/2023115①根據(jù)中斷請(qǐng)求源的優(yōu)先級(jí)高低,使相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1。②保護(hù)斷點(diǎn),即把程序計(jì)數(shù)器PC的內(nèi)容推入堆棧保存。③清相應(yīng)的中斷請(qǐng)求標(biāo)志位IE0、IE1、TF0或TF1。CPU響應(yīng)中斷后,由硬件執(zhí)行如下功能:④把被響應(yīng)的中斷服務(wù)程序的入口地址送入PC,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序執(zhí)行。
4.中斷服務(wù)
12/6/2023116中斷服務(wù)程序入口地址0003H單元:外部中斷0中斷服務(wù)程序的入口地址000BH單元:定時(shí)器/計(jì)數(shù)器0溢出中斷服務(wù)程序的入口地址00013H單元:外部中斷1中斷服務(wù)程序的入口地址0001BH單元:定時(shí)器/計(jì)數(shù)器1溢出中斷服務(wù)程序的入口地址0023H單元:串行口中斷服務(wù)程序的入口地址0002BH單元:定時(shí)器/計(jì)數(shù)器2溢出中斷服務(wù)程序的入口地址12/6/2023117中斷請(qǐng)求的撤除(1)對(duì)于定時(shí)器/計(jì)數(shù)器0、1的中斷請(qǐng)求及跳變觸發(fā)方式的外部中斷0、1,CPU在響應(yīng)中斷后用硬件清除了相應(yīng)的中斷請(qǐng)求標(biāo)志TF0、TF1、IE0、IE1,即自動(dòng)撤除了中斷請(qǐng)求。(2)對(duì)于串行接口中斷及定時(shí)器/計(jì)數(shù)器2中斷,CPU響應(yīng)中斷后沒(méi)有用硬件清除中斷標(biāo)志位,必須由用戶編制的中斷服務(wù)程序來(lái)清除相應(yīng)的中斷標(biāo)志。
CPU響應(yīng)中斷請(qǐng)求后,在中斷返回(執(zhí)行RETI)前,必須撤除請(qǐng)求,否則會(huì)錯(cuò)誤地再一次引起中斷過(guò)程。12/6/20231185.中斷返回中斷服務(wù)程序的最后一條指令必須是中斷返回指令RETI。CPU執(zhí)行該指令時(shí),先將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器清零,然后從堆棧中彈出棧頂?shù)膬蓚€(gè)字節(jié)到PC,從而返回到斷點(diǎn)處。12/6/20231192.7.1MCS-51中斷系統(tǒng)功能5個(gè)(52子系列為6個(gè))中斷源2個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套每一個(gè)中斷源的優(yōu)先級(jí)可用程序設(shè)定12/6/2023120
中斷系統(tǒng)結(jié)構(gòu)示意圖
12/6/20231212.7.2中斷請(qǐng)求源中斷系統(tǒng)結(jié)構(gòu)示意圖
1.外部中斷0、1
外部中斷請(qǐng)求有兩種觸發(fā)方式:電平觸發(fā)及跳變觸發(fā),由TCON的IT0位及IT1位選擇。IT0(IT1)=0:電平觸發(fā)IT0(IT1)=1:跳變觸發(fā)
注意:CPU響應(yīng)中斷后,由硬件自動(dòng)清除IE0或IE1
12/6/2023122中斷系統(tǒng)結(jié)構(gòu)示意圖
2.定時(shí)器/計(jì)數(shù)器0、1溢出中斷
定時(shí)器/計(jì)數(shù)器計(jì)數(shù)溢出時(shí),由硬件分別置TF0=1或TF1=1,向CPU申請(qǐng)中斷
注意:CPU響應(yīng)中斷后,由硬件自動(dòng)清除TF0或TF1
12/6/2023123中斷系統(tǒng)結(jié)構(gòu)示意圖
3.串行接口中斷串行接口發(fā)送了一幀信息,便由硬件置TI=1、向CPU申請(qǐng)中斷。串行接口接收了一幀信息,便由硬件置RI=1,向CPU申請(qǐng)中斷。注意:CPU響應(yīng)中斷后必須用軟件清除TI和RI12/6/20231242.7.3中斷控制中斷系統(tǒng)結(jié)構(gòu)示意圖
中斷屏蔽觸發(fā)器中斷允許觸發(fā)器上述兩個(gè)觸發(fā)器由中斷允許寄存器IE來(lái)設(shè)置
1.中斷允許控制12/6/2023125中斷允許寄存器IE格式IE的每一位都可由軟件置1或清零。且1:中斷允許,0:中斷屏蔽。(1)CPU中斷允許位EAEA=1時(shí)CPU中斷允許,EA=0時(shí)CPU屏蔽一切中斷請(qǐng)求。
(2)串行接口中斷允許位ESES=1時(shí)允許串行接口中斷,ES=0時(shí)禁止串行接口申請(qǐng)中斷。12/6/2023126(3)T/C1中斷允許位ETlET1=1時(shí)允許T/C1申請(qǐng)中斷,ET1=0時(shí)禁止T/C1中斷。
(4)外部中斷1中斷允許位EX1EX1=1時(shí)允許外部中斷1申請(qǐng)中斷,EX1=0時(shí)禁止中斷。(5)定時(shí)器/計(jì)數(shù)器0中斷允許位ET0ET0=1允許定時(shí)器/計(jì)數(shù)器申請(qǐng)中斷,ET0=0時(shí)禁止中斷。(6)外部中斷0中斷允許位EX0EX0=l時(shí)允許外部中斷0申請(qǐng)中斷,EX0=0禁止外部中斷0申請(qǐng)中斷。12/6/2023127MCS-51復(fù)位后,IE清0,所有中斷請(qǐng)求被禁止。若使某一個(gè)中斷源被允許中斷,除了IE相應(yīng)的位的被置“1”,還必須使EA位=1。例:
EA=1;
ET0=1;12/6/2023128例若允許片內(nèi)2個(gè)定時(shí)器/計(jì)數(shù)器中斷,禁止其它中斷源的中斷請(qǐng)求。編寫(xiě)設(shè)置IE的相應(yīng)程序段。(1)用位操作指令來(lái)編寫(xiě)如下程序段:
ES=0;禁止串行口中斷 EX1=0;禁止外部中斷1中斷 EX0=0;禁止外部中斷0中斷ET0=1;允許定時(shí)器/計(jì)數(shù)器T0中斷ET1=1;允許定時(shí)器/計(jì)數(shù)器T1中斷EA=1;CPU開(kāi)中斷(2)用字節(jié)操作指令來(lái)編寫(xiě):IE=0x8AH;12/6/2023129中斷系統(tǒng)結(jié)構(gòu)示意圖
優(yōu)先權(quán)選擇由中斷優(yōu)先級(jí)寄存器IP控制工作。
2.中斷優(yōu)先級(jí)寄存器IP兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷嵌套。12/6/2023130可歸納為下面兩條基本規(guī)則:(1)低優(yōu)先級(jí)可被高優(yōu)先級(jí)中斷,反之則不能。(2)同級(jí)中斷不會(huì)被它的同級(jí)中斷源所中斷。若CPU正在執(zhí)行高優(yōu)先級(jí)的中斷,則不能被任何中斷源所中斷。12/6/2023131中斷優(yōu)先級(jí)寄存器IP,其字節(jié)地址為B8H。IP各個(gè)位的含義:(1)PS——串行口中斷優(yōu)先級(jí)控制位
1:高優(yōu)先級(jí)中斷;
0:低優(yōu)先級(jí)中斷。(2)PT1——定時(shí)器T1中斷優(yōu)先級(jí)控制位
1:高優(yōu)先級(jí)中斷;
0:低優(yōu)先級(jí)中斷。(3)PX1——外部中斷1中斷優(yōu)先級(jí)控制位
1:高優(yōu)先級(jí)中斷;
0:低優(yōu)先級(jí)中斷。12/6/2023132中斷優(yōu)先級(jí)寄存器IP,其字節(jié)地址為B8H。(4)PT0——定時(shí)器T0中斷優(yōu)先級(jí)控制位
1:高優(yōu)先級(jí)中斷;
0:低優(yōu)先級(jí)中斷。(5)PX0——外部中斷0中斷優(yōu)先級(jí)控制位
1:高優(yōu)先級(jí)中斷;
0:低優(yōu)先級(jí)中斷。12/6/2023133由軟件可改變各中斷源的中斷優(yōu)先級(jí)。
MCS-51的中斷系統(tǒng)有兩個(gè)不可尋址的“優(yōu)先級(jí)激活觸發(fā)器”:一個(gè)用來(lái)指示某高優(yōu)先級(jí)的中斷正在執(zhí)行,所有后來(lái)的中斷均被阻止。另一個(gè)用來(lái)指示某低優(yōu)先級(jí)的中斷正在執(zhí)行,所有同級(jí)中斷都被阻止,但不阻斷高優(yōu)先級(jí)的中斷請(qǐng)求。在同時(shí)收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),優(yōu)先響應(yīng)哪一個(gè)中斷,取決于內(nèi)部的查詢順序。12/6/2023134
中斷源中斷級(jí)別
外部中斷0 最高 T0溢出中斷 外部中斷1 T1溢出中斷 串行口中斷 最低查詢順序如下:12/6/2023135
例2
設(shè)置IP寄存器的初始值,使2個(gè)外中斷請(qǐng)求為高優(yōu)先級(jí),其它中斷請(qǐng)求為低優(yōu)先級(jí)。(1)用位操作指令
PX0=1;2個(gè)外中斷為高優(yōu)先級(jí)
PX1=1;
PS=0;串口為低優(yōu)先級(jí)中斷PT0=0;2個(gè)定時(shí)器/計(jì)數(shù)器低優(yōu)先級(jí)中斷
PT1=0(2)用字節(jié)操作指令I(lǐng)P=0x05;
12/6/2023136
一個(gè)中斷請(qǐng)求被響應(yīng),需滿足以下必要條件:(1)IE寄存器中的中斷總允許位EA=1。(2)該中斷源發(fā)出中斷請(qǐng)求,即該中斷源對(duì)應(yīng)的中斷請(qǐng)求標(biāo)志為“1”。(3)該中斷源的中斷允許位=1,即該中斷沒(méi)有被屏蔽。(4)無(wú)同級(jí)或更高級(jí)中斷正在被服務(wù)。2.7.4響應(yīng)中斷請(qǐng)求的條件
12/6/2023137中斷響應(yīng)的主要過(guò)程:首先由硬件自動(dòng)生成一條長(zhǎng)調(diào)用指令:
LCALLaddr16接著就由CPU執(zhí)行該指令,將PC的內(nèi)容壓入堆棧以保護(hù)斷點(diǎn),再將中斷入口地址裝入PC。各中斷源服務(wù)程序的入口地址
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 純繪畫(huà)寫(xiě)生課程設(shè)計(jì)
- 熱控分析課程設(shè)計(jì)
- 2024年度廣西壯族自治區(qū)國(guó)家保安員資格考試題庫(kù)與答案
- 2024年金融科技服務(wù)平臺(tái)建設(shè)施工分包合同
- 2020年全國(guó)移動(dòng)通信5G技術(shù)職業(yè)技能競(jìng)賽理論試V1.0版-破解版-basic練習(xí)試題及答案
- 彩鋼棚施工安全管理方案
- 城市地下管網(wǎng)改造施工方案
- 中級(jí)消防設(shè)施操作員理論過(guò)關(guān)測(cè)試試題帶答案
- 2025年度外墻裝飾石材供應(yīng)與安裝承包合同
- 港口設(shè)施鋼結(jié)構(gòu)吊裝施工方案
- DL∕T 802.2-2017 電力電纜用導(dǎo)管 第2部分:玻璃纖維增強(qiáng)塑料電纜導(dǎo)管
- 錨索張拉記錄表
- 全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Python復(fù)習(xí)備考題庫(kù)(含答案)
- 《生物安全培訓(xùn)》課件-2024鮮版
- 更換電梯協(xié)議書(shū)范本
- 湖北省仙桃市2023-2024學(xué)年七年級(jí)下學(xué)期期末地理試題(無(wú)答案)
- 每日食品安全檢查記錄表
- JTG-D40-2011公路水泥混凝土路面設(shè)計(jì)規(guī)范
- 2023年七年級(jí)語(yǔ)文上冊(cè)期末測(cè)試卷(完美版)
- 測(cè)繪公司工作個(gè)人年度總結(jié)
- MOOC 普通植物病理學(xué)-西北農(nóng)林科技大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論