版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章MCS51單片機(jī)的硬件結(jié)構(gòu)與工作原理1微型計(jì)算機(jī)主要由運(yùn)算器、控制器、存儲(chǔ)器和輸入輸出電路這四部分組成,其中運(yùn)算器與控制器集成于CPU中。28031單片機(jī)除有CPU、存儲(chǔ)器和輸入輸出電路外,還包括定時(shí)器/計(jì)數(shù)器、中斷控制和時(shí)鐘振蕩電路等。3將這些部件集成在一塊芯片上,通過(guò)內(nèi)部總線連接構(gòu)成 完整的單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。第一節(jié) MCS51存儲(chǔ)器配置1微型計(jì)算機(jī)必須配置一定數(shù)量的存儲(chǔ)器,但不同的微型計(jì)算機(jī)存儲(chǔ)器的配置不同。2一種是程序與數(shù)據(jù)共用一個(gè)存儲(chǔ)器,一般的通用計(jì)算機(jī)都采用此種形式。3另一種是將程序與數(shù)據(jù)分別放在兩個(gè)存儲(chǔ)器內(nèi),一個(gè)稱程序存儲(chǔ)器,另一個(gè)稱數(shù)據(jù)存儲(chǔ)器,MCS51單片機(jī)屬于
2、此類。4MCS51片內(nèi)集成有一定容量的程序存儲(chǔ)器(8031/80C31/8032除外) 和數(shù)據(jù)存儲(chǔ)器,并具有較大的外部存儲(chǔ)器擴(kuò)展能力。5MCS51有4個(gè)存儲(chǔ)器空間:(1)片內(nèi)程序存,(2)片外程序存儲(chǔ)器,(3)片內(nèi)數(shù)據(jù)存儲(chǔ)器,(4)片外數(shù)據(jù)存儲(chǔ)器。6從用戶角度(邏輯上),MCS51分為3個(gè)存儲(chǔ)器空間:(1)片內(nèi)、外統(tǒng)一編址的64KB程序存儲(chǔ)器地址空間,(2)256B內(nèi)部數(shù)據(jù)存儲(chǔ)器和特殊功能寄存器地址空間,(3)64KB外部數(shù)據(jù)存儲(chǔ)器地址空間。一內(nèi)部數(shù)據(jù)存儲(chǔ)器1數(shù)據(jù)存儲(chǔ)器在物理上和邏輯上分為二個(gè)地址空間:一個(gè)內(nèi)部數(shù)據(jù)存儲(chǔ)器和一個(gè)外部數(shù)據(jù)存儲(chǔ)器。2訪問(wèn)內(nèi)部數(shù)據(jù)存儲(chǔ)器,用MOV指令。3訪問(wèn)外部數(shù)據(jù)存
3、儲(chǔ)器,用MOVX指令;48031單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器,由128B 的內(nèi)部數(shù)據(jù)存儲(chǔ)器和128B的特殊功能寄存器組成,在特殊功能寄存器尋址空間中,離散地分布著19個(gè)特殊功能寄存器。內(nèi)部數(shù)據(jù)存儲(chǔ)器00H7FH內(nèi)部數(shù)據(jù)存儲(chǔ)器共有128個(gè)字節(jié),根據(jù)作用不同分為三個(gè)區(qū):寄存器區(qū)00H1FH(32個(gè)單元)、位尋址區(qū)20H2FH(16個(gè)單元)、通用RAM區(qū)30H7FH(80個(gè)單元)。(1)寄存器區(qū)00H1FH(共32個(gè)單元):有4個(gè)寄存器組,每組8個(gè)寄存器,均表示為R0R7。由于每個(gè)寄存器組的8個(gè)寄存器都標(biāo)記為R0R7,因此每次只能選擇一個(gè)工作寄存器組。通過(guò)狀態(tài)寄存器PSW 的第3、4位(即RS1、RS0)選
4、擇工作寄存器組。如表4-1所示由于MCS51單片機(jī)對(duì)寄存器操作最靈活且響應(yīng)速度最快,一般情況下,總是首先選擇使用寄存器,因此有效地設(shè)置4個(gè)工作寄存器組,可以提高現(xiàn)場(chǎng)保護(hù)能力和CPU 實(shí)時(shí)響應(yīng)的速度。(2)位尋址區(qū)20H2FH(16個(gè)單元):既可以按位直接尋址,進(jìn)行位操作;又可按字節(jié)尋址,作為一般工作單元使用。這16個(gè)字節(jié),每字節(jié)8位,共有l(wèi)6×8=128位。占用地址為00H7FH(位地址),如表42所示;應(yīng)用這些位單元,可以方便地進(jìn)行各種布爾邏輯操作。(3)通用RAM區(qū)30H7FH:內(nèi)部RAM中的30H7FH構(gòu)成通用RAM區(qū),可用于存放運(yùn)算過(guò)成中的中間數(shù)據(jù),也可作為堆棧存儲(chǔ)區(qū)域。二特
5、殊功能寄存器18031單片機(jī)共有19個(gè)(21個(gè)字節(jié))特殊功能寄存器SFR,用來(lái)設(shè)置片內(nèi)電路的運(yùn)行方式,記錄電路運(yùn)行狀態(tài),并表示有關(guān)標(biāo)志等。2并行和串行端口映射在SFR寄存器,對(duì)這些寄存器的讀寫,可實(shí)現(xiàn)對(duì)相應(yīng)I/O端口的輸入和輸出操作。321個(gè)字節(jié)的特殊功能寄存器中,離散分布在128字節(jié)的SFR(80HFFH)存儲(chǔ)空間中。4有些SFR具有位地址,在SFR(80HFFH)存儲(chǔ)空間包含有128個(gè)位地址空間,其地址也是80HFFH,但僅有83個(gè)有效地址,可對(duì)11個(gè)SFR進(jìn)行位尋址操作。MCS51系列有19個(gè)特殊功能寄存器:A 累加器寄存器 PSW 程序狀態(tài)字SP 堆棧指針 PC 程序計(jì)數(shù)器DPTR 數(shù)
6、據(jù)指針 P0P3 I/O端口寄存器SBUF 串行數(shù)據(jù)緩沖器TH0、TL0、TH1、TL1 定時(shí)器/計(jì)數(shù)器IP、IE、TMOD、TCON、SCON、PCON 控制寄存器三程序存儲(chǔ)器1內(nèi)部程序存儲(chǔ)器(1)8051有4KB的ROM程序存儲(chǔ)器;(2)8751有4KB的EPROM程序存儲(chǔ)器;(3)8031沒(méi)有內(nèi)部程序存儲(chǔ)器,必須外接程序存儲(chǔ)器。2外部程序存儲(chǔ)器MCS5l單片機(jī)有16根地址線和16位的程序計(jì)數(shù)器PC,因此可以尋址(擴(kuò)展至)64KB的程序存儲(chǔ)器。3程序存儲(chǔ)器的作用(1)存放(固化)用戶程序和常數(shù)表格,可通過(guò)MOVC指令訪問(wèn)。(2)程序存儲(chǔ)器通常選用EPROM或E 2 PROM芯片來(lái)固化程序。
7、4程序存儲(chǔ)器中特定程序的入口地址程序存儲(chǔ)器中某些地址被固定用于特定程序的入口地址:地址用途0000H MSC51復(fù)位后PC=0000H,即程序從0000H開(kāi)始執(zhí)行。0003H 外部中斷0入口地址。000BH 定時(shí)器0溢出中斷入口地址。0013H 外部中斷1入口地址。001BH 定時(shí)器1溢出中斷入口地址。0023H 串行口中斷入口地址。四外部數(shù)據(jù)存儲(chǔ)器1外部數(shù)據(jù)存儲(chǔ)器(外部數(shù)據(jù)RAM),可通過(guò)總線端口擴(kuò)展外部數(shù)據(jù)RAM,最大可擴(kuò)至64K字節(jié)。2外部RAM和內(nèi)部RAM的功能基本相同,外部RAM不能進(jìn)行堆棧操作。3訪問(wèn)內(nèi)部數(shù)據(jù)RAM,用MOV指令;訪問(wèn)外部數(shù)據(jù)RAM,用MOVX指令。第二節(jié) 定時(shí)器/
8、計(jì)數(shù)器12個(gè)16位定時(shí)器/計(jì)數(shù)器:(1)定時(shí)器:對(duì)片內(nèi)機(jī)器時(shí)鐘(周期方波)進(jìn)行計(jì)數(shù)。(2)計(jì)數(shù)器:對(duì)Tx引腳輸入的負(fù)脈沖進(jìn)行計(jì)數(shù)。2與Timer工作有關(guān)的特殊功能寄存器:TCON和TMOD一控制寄存器1工作方式寄存器TMOD(89H)計(jì)算機(jī)的幾個(gè)時(shí)間概念:若振蕩頻率為12MHz,振蕩周期:s狀態(tài)周期:6×s=0.5s機(jī)器周期:12×s=1s指令周期:14個(gè)機(jī)器周期M1和M0:操作方式控制位2控制寄存器 TCON(88H)二定時(shí)器工作方式(1)定時(shí)器/計(jì)數(shù)器有4種工作方式;由軟件對(duì)TMOD 中T/C位設(shè)置,來(lái)選擇定時(shí)或計(jì)數(shù)功能。(2)由Ml和M0位的設(shè)置工作方式:即方式0、方
9、式1、方式2和方式3。(3)對(duì)于方式0、1、2,T0與T1的工作模式相同;對(duì)于方式3只有T0才能設(shè)置。1方式0 <13位計(jì)數(shù)方式>是將定時(shí)器(T0或T1)高8位和低5位組成一個(gè)13位的計(jì)數(shù)器,其邏輯電路結(jié)構(gòu)如圖所示:(1)用于定時(shí)工作方式時(shí)定時(shí)時(shí)間為:t(213-T0初值)×機(jī)器周期。(2)用于計(jì)數(shù)工作方式時(shí)計(jì)數(shù)長(zhǎng)度為:2138192(個(gè)外部脈沖)。(3)當(dāng)TL0的低5位溢出時(shí),向TH0進(jìn)位,而TH0溢出時(shí)向中斷標(biāo)志位TF0 進(jìn)位(硬件置位TF0),并申請(qǐng)中斷。(4)GATE=0時(shí),或門A點(diǎn)電位為“1”,引腳INT0輸入無(wú)效。與門B點(diǎn)電位取決于TR0狀態(tài),即由TR0控制T
10、0開(kāi)啟或關(guān)斷。若軟件使TR0=1,啟動(dòng)T0加1計(jì)數(shù),直至溢出。計(jì)數(shù)器計(jì)滿溢出時(shí),13位寄存器清0,TF0置位,并申請(qǐng)中斷。若軟件使TR0=0,停止計(jì)數(shù)。(5)當(dāng)GATE=l時(shí),A點(diǎn)電位取決于INT0(P3.4)引腳的輸入電平。INT0為高電平且TR0=1時(shí),B點(diǎn)才是高電平,T0開(kāi)始計(jì)數(shù)。(6)當(dāng)INT0由1變0時(shí),T0停止計(jì)數(shù)。這一特性可以用來(lái)測(cè)量在INT0端出現(xiàn)的正脈沖的寬度。定時(shí)器(方式0)應(yīng)用程序舉例:例:利用定時(shí)器計(jì)數(shù)器每隔1ms控制產(chǎn)生寬度為二個(gè)機(jī)器周期的負(fù)脈沖,由P1.0送出。解:設(shè)時(shí)鐘頻率為12MHz,機(jī)器周期為1s,采用中斷工作方式。求定時(shí)器初值,t(213-T0初值)
11、5;機(jī)器周期,設(shè)定時(shí)器初值為X,則定時(shí)1ms時(shí),應(yīng)有1×10-3(213-X)×10-6 ,可求得X719211100000 11000B,其中高8位E0H賦給TH0,低5值18H賦給TL0。由于系統(tǒng)復(fù)位后,TMOD被清0,正好處于定時(shí)器方式0狀態(tài),且 GATE0,也可不設(shè)置TMOD。程序如下: ORG 0000H AJMPMAIN2方式116位計(jì)數(shù)方式T0與T1的相同,寄存器TH0和TL0組成16位計(jì)數(shù)器, 其邏輯電路結(jié)構(gòu)如圖所示:(1)用于定時(shí)工作方式時(shí) 定時(shí)時(shí)間為:t(216-T0初值)×機(jī)器周期(2)用于計(jì)數(shù)工作方式時(shí) 計(jì)數(shù)長(zhǎng)度為21665536(個(gè)外部脈
12、沖)。(3)當(dāng)TL0的低8位溢出時(shí),向TH0進(jìn)位,而TH0 溢出時(shí)向中斷標(biāo)志位TF0進(jìn)位(硬件置位TF0),并申請(qǐng)中斷或者用于查詢。TMODTCON(4)工作方式1 的編程要點(diǎn):TMOD選方式:寫“M1,M0”=01 b 選方式1 若不用門控位,直接用軟件寫TRx控制啟/停若使用門控位,先置位TRx,然后由INTx端的高/低電平來(lái)控制其啟/停若要允許中斷,還須先置位ETx、EA等中斷允許控制位,并編寫中斷服務(wù)程序若不用中斷,可查詢“計(jì)數(shù)溢出標(biāo)志TFx” 的方式工作,但溢出標(biāo)志TFx須軟件清0定時(shí)器(方式1)應(yīng)用程序舉例:例1:若晶振頻率為6MHz,計(jì)算單片機(jī)的 最小與最大定時(shí)時(shí)間:分析:已知f
13、osc= 6MHz 則:(振蕩周期)1Tc=1/6MHz(機(jī)器周期)1Tm=12Tc=12/6MHz=2ms粗略地說(shuō):Tmin»2ms16位定時(shí)器最大數(shù)值為:216 =65536=0FFFFH+1故選擇方式1工作可以得到:Tmax= 65536×2 = 131072mS131.072ms例2:要求對(duì)T0產(chǎn)生100mS定時(shí)進(jìn)行初始化。(晶振=6MHz)分析:已知fosc= 6MHz 則:(機(jī)器周期)1Tm=12Tc=12/6MHz=2ms100ms÷2 ms = 5000016位定時(shí)器最大數(shù)值為: 216 = 65536 (=0FFFFH+1)故選擇方式1工作可以滿
14、足要求。計(jì)算初值:6553650000=15536=3CB0H由分析得知:T0選擇方式1,初值=3CB0HGATEC / TM1M0GATEG/TM1M0XXXX0001初始化:MOV TMOD,#01H;選T0 方式1MOV TH0,#3CH;賦初值高8位MOV TL0,#0B0H;賦初值低8位SETB TR0;啟動(dòng)T0定時(shí)若需要定時(shí)器0產(chǎn)生中斷還應(yīng)當(dāng)寫如下語(yǔ)句:SETB ET0;開(kāi)T0中斷允許SETB EA;開(kāi)總中斷允許以及相應(yīng)的中斷服務(wù)程序。3方式28位自動(dòng)重裝時(shí)間常數(shù)方式。方式2把TL0(TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)計(jì)數(shù)器, TH0(TH1)僅用來(lái)存放時(shí)間常數(shù)。(1)TL
15、0計(jì)算溢出時(shí),不僅使溢出中斷標(biāo)志位TF0置l,而且還自動(dòng)把TH0中的內(nèi)容重裝載到TL0中。(2)在程序初始化時(shí),TL0和TH0由軟件賦于相同的初值。(3)用于定時(shí)器工作方式時(shí),其定時(shí)時(shí)間(TF0 溢出周期)為:t = (28-TH0初值)×機(jī)器周期(4)用于計(jì)數(shù)器工作方式時(shí),最大計(jì)數(shù)值(TH0初值為0)為:28 =256(個(gè)外部脈沖)。定時(shí)器(方式2)應(yīng)用程序舉例:例:從P1.0 腳輸出頻率=1KHz方波。設(shè):晶振=6MHz。 利用T1定時(shí)中斷。分析:fosc= 6MHz 1機(jī)器周期=2mS1KHz方波周期=1ms半個(gè)方波周期=500ms, 500uS÷2us=250若選擇
16、方式2工作,8位定時(shí)器最大數(shù)值為:28 =256 =0FFH + 1可以滿足要求。計(jì)算初值:256250=6 ORG 0000H AJMP MAIN ORG 001BH ;T1的中斷矢量 CPL P1.0 ;中斷服務(wù):P1.0取非 RETI ;中斷返回MAIN: MOV TMOD,#20H MOV TH0, #6 MOV TL0, #6 SETB ET1 SETB EA SETB TR1 HERE: AJMP HERE ;原地等待中斷 END4工作方式3 2個(gè)8位方式,工作方式3只適用于定時(shí)器T0。(1)若將T0設(shè)置為方式3,TH0和TL0被分成為兩個(gè)互相獨(dú)立的8位計(jì)數(shù)器。(2)TL0既可用作
17、定時(shí)器,又可用作計(jì)數(shù)器,并使用原T0的所有控制位及其定時(shí)器回零標(biāo)志和中斷源。即C/T、GATE、TR0、TF0和 T0(P3.4)引腳、INT0(P3.2)引腳。(3)TH0只有簡(jiǎn)單的內(nèi)部定時(shí)功能,它使用定時(shí)器T1的控制位TR1、中斷標(biāo)志位TF1及中斷源,其啟動(dòng)和關(guān)閉僅受TR1的控制。三定時(shí)/計(jì)數(shù)初值的求取方法例:已知某生產(chǎn)線的傳送帶上不斷地有產(chǎn)品單向傳送, 產(chǎn)品之間有較大間隔。使用光電開(kāi)關(guān)統(tǒng)計(jì)一定時(shí)間內(nèi)的產(chǎn)品個(gè)數(shù),假定紅燈亮?xí)r停止統(tǒng)計(jì),紅燈滅時(shí)才在上次統(tǒng)計(jì)結(jié)果的基礎(chǔ)上繼續(xù)統(tǒng)計(jì)。試用單片機(jī)定時(shí)器/計(jì)數(shù)器T1的方式1 完成該項(xiàng)產(chǎn)品的計(jì)數(shù)任務(wù)。四定時(shí)/計(jì)數(shù)器應(yīng)用舉例(1) 初始化: TMOD=11
18、010000B=0D0H(GATE=1, C/T=1, M0M1=01)TCON=00H (2)T1在方式1時(shí), 溢出產(chǎn)生中斷, 且計(jì)數(shù)器回零, 故在中斷服務(wù)程序中, 需用R0計(jì)數(shù)中斷次數(shù), 以保護(hù)累積計(jì)數(shù)結(jié)果。(3) 啟動(dòng)T1計(jì)數(shù), 開(kāi)T1中斷。程序清單如下: ORG 0000H AJMP START ; 復(fù)位入口 ORG 001BH AJMP T1INT ; T1中斷入口 ORG 0100H START: MOV SP, 60H ; 初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H MOV TL1, 00H MOV R0, 00H ; 清中斷次
19、數(shù)計(jì)數(shù)單元 MOV P3, 28H ; 設(shè)置P3.5第二功能 SETB TR1 ; 啟動(dòng)T1 SETB ET1 ; 開(kāi)T1中斷 SETB EA ; 開(kāi)總中斷 MAIN: ACALL DISP ; 主程序, 調(diào)顯示子程序 ORG 0A00H T1INT: INC R0 ; 中斷服務(wù)子程序 RETI DISP: ; 顯示子程序 RET存儲(chǔ)器定時(shí)/計(jì)數(shù)器中斷系統(tǒng)輸入/輸出端口第三節(jié) 中斷系統(tǒng)18031單片機(jī)5個(gè)中斷源2個(gè)外部中斷:INT0、INT1引腳輸入的中斷源;3個(gè)內(nèi)部中斷源:定時(shí)器T0、T1溢出中斷和串行口TIRI接收中斷。44個(gè)用于中斷的控制寄存器IE、IP、TCON(用6位)和SCON(用
20、2位):用于控制中斷的類型、中斷的開(kāi)(閉)及 中斷源的優(yōu)先級(jí)。52個(gè)中斷優(yōu)先級(jí),每個(gè)中斷源可以編程為高優(yōu)先級(jí)或低優(yōu)先級(jí)中斷。一中斷的概念1數(shù)據(jù)傳送的雙方平時(shí)各自做自己的工作,一旦甲方要求與乙方進(jìn)行數(shù)據(jù)傳送,就主動(dòng)發(fā)出信號(hào)提出申請(qǐng),乙方接到申請(qǐng)后若同意傳送,安排好當(dāng)前的工作,再響應(yīng)與甲方發(fā)生數(shù)據(jù)傳送完事后,回去繼續(xù)做打斷前的工作。2中斷功能強(qiáng)弱是計(jì)算機(jī)性能優(yōu)劣的重要標(biāo)志。提高CPU效率解決速度矛盾實(shí)現(xiàn)并行工作應(yīng)付突發(fā)事件3中斷涉及的幾個(gè)環(huán)節(jié):中斷源(前面提到的甲方)中斷申請(qǐng)(甲方發(fā)出信號(hào)提出申請(qǐng))開(kāi)放中斷(乙方同意傳送)保護(hù)現(xiàn)場(chǎng)(安排好當(dāng)前的工作)中斷服務(wù)(響應(yīng)乙方的要求)恢復(fù)現(xiàn)場(chǎng)(完事后,回去
21、)中斷返回(繼續(xù)做打斷前的工作)二中斷系統(tǒng)結(jié)構(gòu)三中斷源1部中斷源(2個(gè))由INT0、INT1引腳輸入2個(gè)外部中斷源;TCON的低4位,用于外部中斷控制。定時(shí)器控制寄存器TCON (88H)TF1TR1TF0TR0IE1IT1IE0IT0TCONIE0/IE1:外部中斷申請(qǐng)標(biāo)志位:=0:沒(méi)有外部中斷申請(qǐng);=1:有外部中斷申請(qǐng)。IT0/IT1:外部中斷請(qǐng)求的觸發(fā)方式選擇位:=0:在INT0/INT1端申請(qǐng)中斷的信號(hào)低電平有效;=1:在INT0/INT1端申請(qǐng)中斷的信號(hào)負(fù)跳變有效。2內(nèi)部中斷源(3個(gè))TF0/TF1:定時(shí)器溢出中斷申請(qǐng)標(biāo)志位:=0:定時(shí)器未溢出;=1:定時(shí)器溢出申請(qǐng)中斷,進(jìn)中斷后自動(dòng)
22、清零。TF1TR1TF0TR0IE1IT1IE0IT0TCON串行口接收和發(fā)送中斷源SCON(98H)為串行口控制寄存器:SM0SM1SM2RENTB8RB8TIRIRI,TI:串行口收/發(fā)數(shù)據(jù)申請(qǐng)中斷標(biāo)志位:0 不申請(qǐng)中斷;1 申請(qǐng)中斷。四中斷系統(tǒng)控制寄存器1中斷允許寄存器IE (A8H)2中斷優(yōu)先寄存器IP(0B8H) (1)8031有2個(gè)中斷優(yōu)先級(jí),每個(gè)中斷源可編 程為高/低優(yōu)先級(jí)中斷;(2)可實(shí)現(xiàn)2級(jí)中斷嵌套。(3)中斷優(yōu)先寄存器IP(0B8H)(4)同級(jí)中斷源,按硬件確定的優(yōu)先級(jí)順序響應(yīng)中斷請(qǐng)求:8031 CPU在每個(gè)機(jī)器周期,順序采樣各中斷源,在下一機(jī)器周期按優(yōu)先級(jí)查詢中斷標(biāo)志,在
23、再下一個(gè)機(jī)器周期進(jìn)行中斷處理。在下列任一情況時(shí),中斷申請(qǐng)被封鎖。CPU正在執(zhí)行同級(jí)或高級(jí)的中斷服務(wù)程序。不是執(zhí)行當(dāng)前指令的最后一個(gè)周期,即要保證把當(dāng)前指令執(zhí)行完。當(dāng)前正在執(zhí)行的指令是返回(RETI)指令或是對(duì)IE、IP寄存器進(jìn)行讀寫指令。中斷源申請(qǐng)標(biāo)志中斷矢量中斷優(yōu)先級(jí)外部中斷0(0)IE00003H最高優(yōu)先級(jí)最低優(yōu)先級(jí)定時(shí)/計(jì)數(shù)器0(T0)IF0000BH外部中斷1(1)IE10013H定時(shí)/計(jì)數(shù)器1(T1)TF1001BH串行口接收/發(fā)送RI/TI0023H五中斷系統(tǒng)響應(yīng)過(guò)程18031 CPU在每個(gè)機(jī)器周期,順序采樣各中斷源,在下一機(jī)器周期按優(yōu)先級(jí)查詢中斷標(biāo)志,在再下一個(gè)機(jī)器周期進(jìn)行中斷處
24、理。2在下列任一情況時(shí),中斷申請(qǐng)被封鎖。(1)CPU正在執(zhí)行同級(jí)或高級(jí)的中斷服務(wù)程序。(2)不是執(zhí)行當(dāng)前指令的最后一個(gè)周期,即要保證把當(dāng)前指令執(zhí)行完。(3)當(dāng)前正在執(zhí)行的指令是返回(RETI)指令或是對(duì)IE、IP寄存器進(jìn)行讀寫指令。3編寫中斷服務(wù)程序時(shí)注意: 在中斷入口地址單元處放一條無(wú)條件轉(zhuǎn)移指令(如:JMP ××H)。 在中斷服務(wù)程序中,用戶應(yīng)注意用軟件保護(hù)現(xiàn)場(chǎng)。若在執(zhí)行中斷程序時(shí)禁止更高級(jí)中斷,可用軟件關(guān)閉CPU中斷(CLR EA),或禁止某中斷源中斷,在中斷返回前再開(kāi)放中斷。4要求編制一段程序,使P1.0端口線上輸出周期為2ms的方波脈沖。單片機(jī)的晶振頻率f0sc=
25、6MHz第四節(jié) 輸入/輸出端口l并行端口P0.0P0.7 ,P1.0P1.7, P2.0P2.7 ,P3.0P3.7l串行端口RXD,TXD一并行端口MCS51單片機(jī)有4個(gè)I/O端口,共32根I/O線。 4個(gè)I/O端口都是雙向口包含:一個(gè)鎖存器(P0P3);一個(gè)輸出驅(qū)動(dòng)器;一個(gè)輸入緩沖器。MCS51在訪問(wèn)外部存儲(chǔ)器時(shí):地址由P0、P2口送出;數(shù)據(jù)則通過(guò)P0口傳送,這時(shí)P0口是分時(shí)復(fù)用的雙向總線。無(wú)外部存儲(chǔ)器的系統(tǒng),4個(gè)端口都可以作為準(zhǔn)雙向口使用。1P0端口(1)P0.0P0.7:雙向I/O;(2)尋址外部程序存儲(chǔ)器時(shí)分時(shí)作為雙向8位數(shù)據(jù)口和輸出低8位地址復(fù)用口;(3)不接外部程序存儲(chǔ)器時(shí)可作為
26、8位準(zhǔn)雙向 I/O口使用。DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線引腳P0.X&1Vcc控制=1(4)在總線狀態(tài)下,P0口分時(shí)出現(xiàn)數(shù)據(jù)D0D7、低8位地址A0A7及高阻狀態(tài)??刂?0地址/數(shù)據(jù)(5)在輸出狀態(tài)下(切換開(kāi)關(guān)MUX向下),從內(nèi)部總線來(lái)的數(shù)據(jù)經(jīng)鎖存器反向端和場(chǎng)效應(yīng)管T2反向后,輸出到端口線。場(chǎng)效應(yīng)管T1關(guān)斷,T2 漏極開(kāi)路應(yīng)外接上拉電阻。DQCK/Q讀鎖存器寫鎖存器內(nèi)部總線&1(6)在輸入狀態(tài)下,應(yīng)先向鎖存器寫1,使兩個(gè)場(chǎng)效應(yīng)管均關(guān)斷,引腳處于“浮空”狀態(tài)(呈高阻輸入狀態(tài)),以保證輸入數(shù)據(jù)的正確性??刂频刂?數(shù)據(jù)DQCK/Q讀引腳 =1讀鎖存器寫鎖存器內(nèi)部總線&am
27、p;100100截止截止=0控制=0時(shí),此腳作輸入口(事先必須對(duì)它寫“1”)1、在總線狀態(tài)下,雙向2、作為數(shù)據(jù)口輸出時(shí), 加上拉電阻3、作為數(shù)據(jù)口輸入時(shí), 必須先寫1,再讀入(7)I/O口的讀修改寫特性,每個(gè)I/O端口均有兩種讀入方法,即有讀鎖存器和讀引腳之分,并有相應(yīng)的指令。(8)讀鎖存器指令是從鎖存器中讀取數(shù)據(jù),進(jìn)行處理,并把處理后的數(shù)據(jù)重新寫人鎖存器,這類指令稱為“讀修改寫”指令。(9)那么如何區(qū)分讀端口的指令是讀鎖存器還是讀引腳呢?當(dāng)目的操作數(shù)是I/O端口或I/O端口的某一位時(shí),這些指令是讀鎖存器而不是讀引腳,即為“讀修改寫”指令。(10)“讀修改寫”指令2P1端口P1端口通用I/O端
28、口,8位準(zhǔn)雙向端口。(1)輸出時(shí)一切照常,僅在作輸入口用時(shí)要先對(duì)其寫“1”。DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸出數(shù)據(jù) = 1 時(shí)110截止=1(2)單片機(jī)的引腳(P1口)DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸出數(shù)據(jù) = 0 時(shí)001=0導(dǎo)通僅在作輸入口用時(shí)要先對(duì)其寫“1”。DQCK/Q讀引腳 =1讀鎖存器寫鎖存器內(nèi)部總線Vcc引腳P1.X內(nèi)部上拉電阻輸入數(shù)據(jù)時(shí),要先對(duì)其寫“1”110截止1、可作為靜態(tài)輸出2、作為數(shù)據(jù)口輸入時(shí), 必須先寫13P2端口P2.0P2.7:雙向I/O(內(nèi)置了上拉電阻) 尋址外部程序存儲(chǔ)器時(shí)輸出
29、高8位地址;不接外部程序存儲(chǔ)器時(shí)可作為8位準(zhǔn)雙向I/O口使用。1、不可作為靜態(tài)輸出2、作為數(shù)據(jù)口輸入時(shí),必須先寫14P3端口(1)P3.0P3.7: 雙功能口(內(nèi)置了上拉電阻)它具有特定的第二功能。在不使用它的第二功能時(shí)它就是普通的通用準(zhǔn)雙向I/O口。DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線引腳 P3.X&內(nèi)部上拉電阻第二功能輸出時(shí),內(nèi)部自動(dòng) D=1111反相器DQCK/Q讀引腳讀鎖存器寫鎖存器內(nèi)部總線此端自動(dòng)1引腳 P3.X&內(nèi)部上拉電阻Vcc 第二功能輸入(RxD,T0,T1,INT0,INT1)第二功能輸入時(shí),信號(hào)經(jīng)緩沖器4 直接進(jìn)入內(nèi)總線1110截止(2)具有第二功能
30、第一功能與P1口一樣作為一般準(zhǔn)雙向輸入/輸出接口,具有字節(jié)操作和位操作。第二種功能時(shí),輸出鎖存器輸出1,通過(guò)第二功能線輸出特定信號(hào)。5P0P3端口的負(fù)載能力及接口要求(1)P0口每一位輸出可驅(qū)動(dòng)8個(gè)LS TTL負(fù)載;做通用口使用時(shí),輸出級(jí)是開(kāi)漏電路,故需外接上拉電阻;做地址/數(shù)據(jù)總線時(shí),則無(wú)需接外部上拉電阻。(2)P1P3口輸出級(jí)接有內(nèi)部上拉電阻;每一位輸出可驅(qū)動(dòng)4個(gè)LS TTL負(fù)載。(2)P0P3端口已映射到特殊功能寄存器中。(3)對(duì)這些端口寄存器的讀寫就實(shí)現(xiàn)了對(duì)相應(yīng)端口的輸入輸出操作。(4)例如:MOV A ,P1 ;把P1端口線上的信息輸入到A MOV P1,A ;把A的內(nèi)容由P1端口輸
31、出MOV P3,OFFH ;使P3端口線各位置1二串行端口1串行通信的基本特征是數(shù)據(jù)逐位順序進(jìn)行傳送串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號(hào)電平等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見(jiàn)的有:通用異步收發(fā)器(UART)本課程介紹的串口通用串行總線(USB)CAN總線SPI總線RS-485,RS-232C,RS422A標(biāo)準(zhǔn)等等2全雙工串行接口(UART)數(shù)據(jù)通信的幾個(gè)術(shù)語(yǔ):并行:數(shù)據(jù)各位同時(shí)進(jìn)行傳送串行:數(shù)據(jù)逐位順序進(jìn)行傳送全雙工:(串行通信)收/發(fā)可同時(shí)進(jìn)行半雙工:(串行通信)收/發(fā)不可同時(shí)進(jìn)行異步串行通信:以字符為單位進(jìn)行傳送同步串行通信:以數(shù)據(jù)塊為單位進(jìn)行傳送
32、波特率(bps.):單位時(shí)間傳送的位數(shù)51單片機(jī)的串行接口SBUF(發(fā))SBUF(收)發(fā)送控制器 TI接收控制器 RI移位寄存器波特率發(fā)生器T1³1A累加器(門)移位寄存器RxDTxD去申請(qǐng)中斷引腳引腳CPU內(nèi)部3MCS5l單片機(jī)片內(nèi)有一個(gè)串行IO端口(RXD、TXD)。通過(guò)引腳RXD(P3.0)和TXD(P3.1)與外設(shè) 電路進(jìn)行全雙工的串行異步通信。4串行端口的基本特點(diǎn):(1)8031的串行端口有4種基本工作方式,通過(guò)編程設(shè)置;方式0方式1方式2,3(2)串行端口有兩個(gè)控制寄存器:SCON(98H)和PCON(87H)。設(shè)置工作方式;發(fā)送或接收的狀態(tài);數(shù)據(jù)傳送的波特率;中斷標(biāo)志等
33、。(3)串行端口有一個(gè)數(shù)據(jù)寄存器SBUF,該寄存器為發(fā)送和接收所共用。MOV SBUF,A MOV A,SBUF向SBUF寫入數(shù)據(jù)就啟動(dòng)了發(fā)送過(guò)程;讀SBUF就啟動(dòng)了接收過(guò)程。(4)接收/發(fā)送數(shù)據(jù),無(wú)論是否采用中斷方式工作,每接收/發(fā)送一個(gè)數(shù)據(jù)都必須用指令對(duì)RI/TI 清0,以備下一次收/發(fā)。5寄存器(1)串行口控制寄存器SCON(98H)(2)電源控寄存器PCON中有一位SMOD與串行口工作有關(guān):(3)SMOD(PCON.7):波特率倍增位。在串行口方式1、方式2和方式3時(shí),波特率與2 SMOD成正比,亦即當(dāng) SMOD1時(shí),波特率提高一倍。(4)復(fù)位時(shí),SMOD0。6串行口工作方式(1)串行
34、口方式0方式0為同步移位寄存器輸入輸出方 式,常用于擴(kuò)展IO口。方式0波特率fosc12。方式0:以8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。其幀格式如下:(2)串行口方式110位通用異步接口。(多用于雙機(jī)之間或與外設(shè)電路的通訊)。收發(fā)一幀數(shù)據(jù)的格式為:1位起始位、8位數(shù)據(jù)位(低位在前)、1位停止位,共10位。波特率可調(diào),由定時(shí)器T1的溢出率和SMOD位確定。(3)串行口方式2和方式311位異步通信格式。每幀11位:1位起始位,8位數(shù)據(jù)位 (低位在前),1位可編程的第9數(shù)據(jù)位和1位停止位。兩種方式操作是完全一樣的,所不同的只是波特率。7波特率的設(shè)定(1)方式0波特率fosc12(
35、2)方式1波特率×(定時(shí)器T1的溢出率)(3)方式1波特率×fosc(4)方式1波特率×(定時(shí)器T1的溢出率)(5)定時(shí)器T1的溢出率(次/秒)= (6)1、3方式波特率= ×8串行端口舉例例1:8031單片機(jī)時(shí)鐘振蕩頻率為11.0592MHz,選用定時(shí)器T1工作方式2作波特率發(fā)生器,波特率為2400bps,求初值。解:設(shè)置波特率控制位(SMOD)0,則例2:設(shè)計(jì)一個(gè)串行口程序,將8031(1)片內(nèi)RAM50H-5FH中的數(shù)據(jù)串行發(fā)送到803l(2)中,并存儲(chǔ)于803l(2)片內(nèi)RAM40H-4FH單元中。解:假設(shè)兩單片機(jī)晶振均為11.0592MHz,并
36、按圖已經(jīng)連接完畢。選擇串行口方式3通信,接收發(fā)送11位數(shù)據(jù),開(kāi)始為1位起始位(0),中間8位數(shù)據(jù)位,奇偶校驗(yàn)位,停止位(1)。奇偶校驗(yàn)的實(shí)現(xiàn):在發(fā)送端,TB8作奇偶校驗(yàn)性。在數(shù)據(jù)寫入緩沖發(fā)送器前,將數(shù)據(jù)的奇偶位寫入TB8。奇偶性數(shù)據(jù)傳送到接收方RB8位上。在接收方,接收到一個(gè)字符后,從SBUF轉(zhuǎn)移到A中,此時(shí)程序狀態(tài)字(PSW)會(huì)產(chǎn)生已接收數(shù)據(jù)的奇偶值。將此奇偶值與RB8中的奇偶值相比較,兩者應(yīng)該相符,否則接收字符有錯(cuò),通知對(duì)方重發(fā)。如果選擇波特率為9600bps,且選擇定時(shí)器1方式2定時(shí),則發(fā)送與接收程序如下:第五節(jié) 時(shí)鐘電路及時(shí)序一時(shí)鐘電路1MCS51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放
37、大器,引腳 XTAL1和XTAL2分別是此放大器的輸出端和輸入端。2MCS51的時(shí)鐘可由內(nèi)都方式或外部方式產(chǎn)生。(1)內(nèi)部方式時(shí)鐘電路如圖1.25所示。(2)當(dāng)采用外部方式時(shí)鐘電路時(shí),外部信號(hào)接至XTAL2(內(nèi)部時(shí)鐘電路輸入端)而XTAL1接地。由于XTAL2端的邏輯電平不是TTL 的,故建議外接一個(gè)上拉電阻。圖1.26所示。3外接晶體以及電容C1、C2構(gòu)成并聯(lián)諧振電路,內(nèi)部振蕩器產(chǎn)生自激振蕩。 4一般晶體可在212MHz之間任選。5外接晶體時(shí),C1、C2通常選30PF左右。6晶體和電容應(yīng)盡可能靠近單片機(jī)安裝,以保證穩(wěn)定可靠。二時(shí)序1CPU執(zhí)行1條指令的時(shí)間稱為指令周期,MCS51典型的指令周
38、期為1個(gè)機(jī)器周期。2個(gè)機(jī)器周期由6個(gè)狀態(tài)(12個(gè)振蕩脈沖)組成。3單字節(jié)單周期和雙字節(jié)單周期指令的時(shí)序。圖 單字節(jié)單周期周期指令的時(shí)序。圖 雙字節(jié)單周期指令的時(shí)序圖單字節(jié)雙周期指令的時(shí)序在二個(gè)機(jī)器周期內(nèi)發(fā)生4次讀操作碼的操作,由于是單字節(jié)指令,后3次讀操作都是無(wú)效的。圖訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器的指令MOVX的時(shí)序它是一條單字節(jié)雙周期指令。三復(fù)位電路1復(fù)位即回到單片機(jī)的初始狀態(tài)。2單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的。3在振蕩器正在運(yùn)行的情況下,在RST端出現(xiàn)高電平的第二個(gè)周期,執(zhí)行內(nèi)部復(fù)位,以后每個(gè)周期重復(fù)一次,直至RST端變?yōu)榈碗娖健?復(fù)位后各內(nèi)部寄存器的狀態(tài)如表12所示。內(nèi)部RAM不受復(fù)位的影響。5上電復(fù)位電路(1)上電瞬間RST端的電位與Vcc相同,隨著電容的逐步充電,RST電位逐漸下降到0V。(2)上電復(fù)位所需的最短時(shí)間是振蕩器建立時(shí)間加上2個(gè)機(jī)器周期。(3)一般Vcc的上升時(shí)間不超過(guò) 1ms,振蕩器建立時(shí)間不超過(guò) 10ms。(4)復(fù)位電路的典型值為:C取10uF,R取8.2k,故時(shí)間常數(shù) RC82ms,足以滿足要求。6上電外部復(fù)位電路(1)典型的復(fù)位電路是既具有上電復(fù)位又具有外部復(fù)位的電路,如圖所示。(2)上電瞬間,C與R構(gòu)成充電電路,RST引
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度校園環(huán)境衛(wèi)生承攬保潔服務(wù)合同范本4篇
- 2024版含環(huán)保設(shè)施廠房個(gè)人租賃合同3篇
- 2025年度生產(chǎn)線承包與品牌合作協(xié)議4篇
- 2025年度物流運(yùn)輸合同與貨物運(yùn)輸服務(wù)購(gòu)銷印花稅繳納模板4篇
- 2025年度新能源汽車研發(fā)生產(chǎn)合作協(xié)議書3篇
- 2025年度特色手工藝品代購(gòu)代理合同4篇
- 2024版光纖網(wǎng)絡(luò)建設(shè)與運(yùn)營(yíng)合同
- 2025年度個(gè)人快件物流配送服務(wù)合同范本大全4篇
- 2025年度個(gè)人擔(dān)保個(gè)人創(chuàng)業(yè)貸款合同2篇
- 2025年度個(gè)人股東股權(quán)轉(zhuǎn)讓協(xié)議范本全面保障股權(quán)轉(zhuǎn)讓合法合規(guī)4篇
- 骨科手術(shù)后患者營(yíng)養(yǎng)情況及營(yíng)養(yǎng)不良的原因分析,骨傷科論文
- GB/T 24474.1-2020乘運(yùn)質(zhì)量測(cè)量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實(shí)施方案(一)
- 高血壓患者用藥的注意事項(xiàng)講義課件
- 特種作業(yè)安全監(jiān)護(hù)人員培訓(xùn)課件
- (完整)第15章-合成生物學(xué)ppt
- 太平洋戰(zhàn)爭(zhēng)課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
評(píng)論
0/150
提交評(píng)論