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

下載本文檔

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

文檔簡介

第四章

I/O應(yīng)用技術(shù)第一節(jié)

MCS-51單片機(jī)的中斷系統(tǒng)一、概述

與上對比,單片機(jī)中也有同樣的問題。CPU正在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行新程序。CPU執(zhí)行新程序結(jié)束后,又回到原程序中繼續(xù)執(zhí)行。這樣的過程就叫。中斷

什么叫中斷?

舉例:某同學(xué)正在教室寫作業(yè),忽然被人叫出去,回來后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。

對突發(fā)事故,做出緊急處理。根據(jù)現(xiàn)場隨時變化的各種參數(shù)、信息,做出實時監(jiān)控。

CPU與外部設(shè)備并行工作,以中斷方式相聯(lián)系,提高工作效率。解決快速CPU與慢速外設(shè)之間的矛盾。在多項外部設(shè)備同時提出中斷請求情況下,CPU能根據(jù)輕重緩急響應(yīng)外設(shè)的中斷請求。

中斷的作用:對于MCS-51單片機(jī)中斷系統(tǒng)的組成可以用一句話來講,叫做:“五源中斷,兩級管理”

五個中斷源:入口地址外部中斷0(/INT0)0003HT0溢出中斷000BH

外部中斷1(/INT1)0013HT1溢出中斷001BH

串口中斷0023H二、中斷請求源(“五源中斷”)中斷源的中斷請求,如何通知CPU?利用中斷請求標(biāo)志位來通知!??!以上6個中斷請求標(biāo)志位分別分布在TCON、SCON兩個寄存器中。TCONIT0IE0IT1IE1TR0TF0TR1TF1TF1——T1的溢出中斷標(biāo)志硬件置1,硬件清0(也可軟件清0)TF0——T0的溢出中斷標(biāo)志。(同TF1,只是針對T0的)IE1——外部中斷1(/INT1)請求標(biāo)志。外部有中斷請求時,硬件使IE1置1,硬件清0。IE0——外部中斷0(/INT0)請求標(biāo)志。IT1——外部中斷1(/INT1)觸發(fā)類型控制位。

IT1=0,低電平觸發(fā)。IT1=1,下降沿觸發(fā)。

IT0——

外中斷0(/INT0)觸發(fā)類型控制位,用法同IT1。

SCON

RI

TIRB8TB8RENSM2SM1SM0TI——串口發(fā)送中斷標(biāo)志位。

發(fā)送完數(shù)據(jù),硬件使TI置1,軟件清0(CLRTI)

RI——串行口接收中斷標(biāo)志位。

硬件置1,軟件清0。

在中斷源與CPU之間有二級中斷允許控制邏輯電路,類似開關(guān),其中第一級為一個總開關(guān),第二級為五個分開關(guān),由IE控制。

三、中斷控制(兩級管理)1、中斷屏蔽(第一級管理)IEEX0ET0EX1ET1ES————EAEA——

總控制位

“—”——未定義位ES——

串口控制位

ET1——T1中斷控制位

EX1——/INT1控制位

ET0——T0中斷控制位

EX0——/INT0控制位

若為“1”,開關(guān)接通,允許例如SETBEA若為“0”,開關(guān)斷開,不允許例如CLRIE.72、中斷優(yōu)先級(第二級管理)為什么要有中斷優(yōu)先級?CPU同一時間只能響應(yīng)一個中斷請求。若同時來了兩個或兩個以上中斷請求,就必須有先有后。?。。?/p>

為此將5個中斷源分成高級、低級兩個級別,高級優(yōu)先,由IP控制。

IPPX0PT0PX1PT1

PS——————PS——串口的中斷優(yōu)先級別PT1——定時/計數(shù)器T1的中斷優(yōu)先級別PX1——外部中斷1的中斷優(yōu)先級別PT0——定時/計數(shù)器T0的中斷優(yōu)先級別PX0——外部中斷0的中斷優(yōu)先級別該位是“1”時,為高級優(yōu)先級該位是“0”時,為低級優(yōu)先級同一級中的5個中斷源的優(yōu)先順序是:/INT0中斷

T0溢出中斷

/INT1中斷

T1溢出中斷

串口中斷

高低出廠前已由廠家固化順序——事先約定中斷優(yōu)先原則:(概括為四句話)1、低級不打斷高級2、高級不睬低級3、同級不能打斷4、同級、同時中斷,事先約定。

事件1事件2子程序2子程序1中斷嵌套的概念:

主程序中斷中斷四、MCS-51中斷的響應(yīng)過程

CPU每個機(jī)器周期都需要順序檢查每個中斷源,當(dāng)檢測到有中斷請求時,能否響應(yīng),還要看下述情況是否存在:

(1)CPU正處理相同級別或更高級別的中斷;(2)正在執(zhí)行指令,還未到最后一個機(jī)器周期;(3)正在執(zhí)行的指令是RETI或訪問IP、IE指令,則執(zhí)行完上述指令后,再執(zhí)行一條指令后,才會響應(yīng)新中斷。

日常生活中的中斷與單片機(jī)中斷的比較:

某同學(xué)

單片機(jī)過程說明正在看書

執(zhí)行主程序有人找出去

中斷信號

中斷請求暫??磿?/p>

暫停執(zhí)行主程序

中斷響應(yīng)書中作記號

當(dāng)前PC入棧

保護(hù)斷點出去做事

執(zhí)行中斷程序

中斷服務(wù)回來繼續(xù)看

返回主程序

中斷返回響應(yīng)過程:(假設(shè)已使某中斷請求標(biāo)志置1)(1)先使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器置1;(2)執(zhí)行一個硬件子程序的調(diào)用,1)硬件清零相應(yīng)中斷請求標(biāo)志(TI、RI除外)2)將當(dāng)前PC內(nèi)容壓入堆?!Wo(hù)斷點;3)將中斷服務(wù)子程序入口地址送PC——轉(zhuǎn)移。

返回過程:(RETI執(zhí)行后)(1)使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器清0。(2)從堆棧中彈出棧頂?shù)膬蓚€字節(jié)內(nèi)容送PC——恢復(fù)斷點。(3)CPU接著中斷處繼續(xù)執(zhí)行原程序。

注意:1)保護(hù)斷點與保護(hù)現(xiàn)場以及恢復(fù)斷點與恢復(fù)現(xiàn)場的區(qū)別。2)外部中斷響應(yīng)時間在3~8個機(jī)器周期之間。

利用外部中斷實現(xiàn)單步操作:

8031+5v在主程序中:CLRIT0SETBEASETBPX0SETBEX0………在中斷服務(wù)子程序中:JNBP3.2,$JBP3.2,$RETI小結(jié):1、MCS-51單片機(jī)中斷系統(tǒng)有幾個中斷源?分別是什么?事先約定的優(yōu)先順序是怎樣的?2、如何進(jìn)行中斷允許控制?如何進(jìn)行中斷優(yōu)先級控制?3、中斷優(yōu)先的規(guī)則是什么?

§4-2定時/計數(shù)器一、定時/計數(shù)器的結(jié)構(gòu)§4-2定時/計數(shù)器一、定時/計數(shù)器的結(jié)構(gòu)需要說明的是,用做“定時器”時,每個機(jī)器周期計數(shù)加1,因此也可以把它看作是在累加機(jī)器周期。由于MCS—51單片機(jī)一個機(jī)器周期包含12個振蕩周期,所以,它的計數(shù)速率為振蕩周期的1/12?!?-2定時/計數(shù)器一、定時/計數(shù)器的結(jié)構(gòu)§4-2定時/計數(shù)器一、定時/計數(shù)器的結(jié)構(gòu)51子系列單片機(jī)內(nèi)有兩個十六位增一定時/計數(shù)器TH0計數(shù)值高八位TL0計數(shù)值低八位TH1計數(shù)值高八位TL1計數(shù)值低八位TMODTCON工作方式定時/計數(shù)控制控制控制1、工作方式控制寄存器

TMOD

TMODM0

M1C/GATE

M0

M1C/GATET1T0GATE——門控位。

GATE=0啟動不受/INT0或/INT1的控制;

GATE=1啟動受/INT0或/INT1的控制。

C/T——外部計數(shù)器/定時器方式選擇位

C//T=0定時方式;

C//T=1計數(shù)方式。

M1M0——

工作模式選擇位(編程可決定四種工作模式)。

2、定時/計數(shù)器控制寄存器TCONTCONTF1TR1TF0TR0IE1IT1IE0IT0

能否啟動定時/計數(shù)器工作與GATE有關(guān),分兩種情況:

GATE=0時,若TRi=1,開啟Ti計數(shù)工作;(i=0或1)若TRi=0,停止Ti計數(shù)。

GATE=1時,若TRi=1且/INTi=1時開啟Ti計數(shù);若TRi

=1且/INTi=0時不能開啟Ti計數(shù)。

若TRi=0,

停止Ti計數(shù)。

TR0——定時/計數(shù)器0運(yùn)行控制位。

軟件置位,軟件復(fù)位。

TR1——定時/計數(shù)器1運(yùn)行控制位。(用法與TR1類似)

二、定時/計數(shù)器的四種工作模式

M1M0模式說明00013位定時/計數(shù)器高八位TH(7~0)+低五位TL(4~0)01116位定時/計數(shù)器

TH(7~0)+TL(7~0)1028位計數(shù)初值自動重裝

TL(7~0)TH(7~0)113T0運(yùn)行,而T1停止工作,8位定時/計數(shù)。

二、定時/計數(shù)器的四種工作模式對于TMOD寄存器而言,只能采用字節(jié)傳送指令來設(shè)置,而不能使用位手址方式來設(shè)置。如:MOVTMOD,#33H是正確的SETBM1是錯誤的1、模式0計數(shù)寄存器TLi

低5位+THi8位(T1、T0的等效邏輯結(jié)構(gòu))TLi(5位)THi(8位)TFi中斷控制BAC/T=0振蕩器1/12&≥1TiTRiGATEINTiC/T=10~40~7C//T=0——定時;C//T=1——對外計數(shù)。定時:fosc/12=1/(12/fosc)=1/T波形等間隔,次數(shù)已定,時間確定即對機(jī)器周期進(jìn)行計數(shù)。左圖定時時間為N*TN個方波T計數(shù):脈沖不等間隔。

每個下降沿計數(shù)一次

確認(rèn)一次負(fù)跳變需兩個機(jī)器周期,

所以,計數(shù)頻率最高為fosc/24。

2、模式1與模式0相似。與模式0的區(qū)別:計數(shù)位數(shù)不同。計數(shù)寄存器:THi(高8位)+TLi(低8位)

TFi中斷TLi(8位)THi(8位)0~70~7控制BAC/T=0振蕩器1/12&≥1TiTRiGATEINTiC/T=13、模式2與模式0、1的區(qū)別:1)計數(shù)位數(shù)不同;2)初值自動重裝。

TFi中斷TLi(8位)THi(8位)控制BAC/T=0振蕩器1/12&≥1TiTRiGATEINTiC/T=14、模式3T0定時/計數(shù),而T1停止計數(shù),但可作波特率發(fā)生器。T0分成兩獨(dú)立定時/計數(shù)器TL0和TH0。TL0使用C//T、GATE、TR0、/INT0、TF0定時/計數(shù),TH0使用TR1、TF1因此,只能用于定時

TF0中斷控制BAC/T=0振蕩器1/12&≥1TiTRiGATEINTiC/T=1TL0(8位)振蕩器1/12TH0TF1中斷(a)TL0作8位定時/計數(shù)器(b)TH0作8位定時器模式3時,T1可定時為模式0、1、2的定時/計數(shù),但不可中斷,所以一般只作串口波特率發(fā)生器用。振蕩器1/12TL1(5位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)振蕩器1/12TL1(8位)TH1(8位)串行口C/T=0C/T=1T1(P3.5)TLi(8位)THi(8位)振蕩器1/12C/T=0C/T=1T1(P3.5)串行口(a)T0模式3時T1模式0(b)T0模式3時T1模式1(c)T0模式3時T1模式2編程前確定參數(shù):(1)定時/計數(shù)器——T0、T1選擇其一,(2)工作方式——C//T及GATA,(3)計數(shù)初值——加1計數(shù)、16位。

計數(shù):X=M-N;M=213=8192(模式0)M=216=65536(模式1)M=28=256(模式2、模式3)定時:X=M–N=M–t/T(t為所要求的定時時間,T為機(jī)器周期)

(4)工作模式——M1、M0

N0010

1046MX四、定時/計數(shù)器的應(yīng)用編制初始化程序:1)寫TMOD;2)確定IE、IP;3)寫計數(shù)初值;4)啟動計數(shù)(TRi)

例1、設(shè)計一個能產(chǎn)生t=1ms的周期信號發(fā)生器,試編程。解:選T0;C//T=0,GATE=0

N=t/T=t/[12×(1/fosc)]=500

所以,X=M-500,

模式0、模式1均可,取模式0,M=213=8192X=8192-500=7692=1E0CH=0001111000001100B,

1E0CH01100TL011110000TH0F0H0CH先將低五位放入TL0中,再將剩余的數(shù)從右向左數(shù)出八位放入TH0中。

LJMPMAINORG000BHLJMPINSE1ORG1000HMAIN:

MOVSP,#60HMOVTL0,#0CHMOVTH0,#0F0HMOVTMOD,#00H

SETBTR0SETBET0SETBEASJMP$

………ORG0000H

INSE1:MOVTL0,#0CHMOVTH0,#0F0HCPLP10RETI小結(jié):1、MCS-51單片機(jī)內(nèi)有幾個定時計數(shù)器?如何計數(shù)?2、T0、T1有幾種工作方式?3、編程應(yīng)用前要事先確定的參數(shù)有幾個?

§4-3定時/計數(shù)器的應(yīng)用TF1TR1TF0TR0IE1IT1IE0IT0

M0

M1C/GATE

M0

M1C/GATETMODTCON例2、設(shè)fosc=6MHz,利用單片機(jī)內(nèi)定時/計數(shù)器及P10口線輸出1000個脈沖,脈沖周期為2mas,試編程。

8031P1.0T12ms

T=12×1/fosc=2us

選取T0定時;T1計數(shù)。

設(shè)T0采用中斷方式產(chǎn)生周期為2ms方波,T1對該方波計數(shù),當(dāng)輸出至第1000個脈沖時,使TF1置1。在主程序中用查詢方法,檢測到TF1變1時,關(guān)掉T0,停止輸出方波。

T0、T1參數(shù)的確定:T0模式0、定時:脈寬為脈沖周期的一半所以,X=213-1ms/2us=0001111000001100BTH0=0F0H;TL0=0CHT1模式1、計數(shù):N=1000

則X=65536-1000=64536=0FC18H

(若選模式0也可以,此時X=7192=1C18H)

程序:

ORG0000HLJMPMAINORG000BHLJMPTOSORG1000H

MAIN:MOVTMOD,#50H;T0定時,模式0;T1計數(shù),模式1MOVTL0,#0CHMOVTH0,#0F0HMOVTL1,#18HMOVTH1,#0FCH

SETBTR1SETBTR0SETBET0SETBEAWAIT:

JNBTF1,WAIT;查詢1000個脈沖計夠沒有到?

CLREACLRET0ANLTCON,#0FH;停T0、T1SJMP$

TOS:MOVTL0,#0CHMOVTH0,#0F0HCPLP10RETIEND例3、脈沖參數(shù)測量——GATE功能的使用。脈沖高電平(計數(shù))長度值存于21H、20H中,脈沖低電平長度存于23H、22H中。電路連接如下圖所示。解:復(fù)習(xí)GATE的用法:

GATE=0時,TRi=1,即可啟動Ti定時/計數(shù)

GATE=1時,TRi=1,且=1,才啟動定時/計數(shù)。8031P3.2P3.11被測信號21a3T0計數(shù)T1計數(shù)

ORG0000HLJMPMAINORG2000HMAIN:MOVTMOD,#99H;T0、T1均工作在定時,;模式1,GATE=1MOVA,#00H;T0、T1賦計數(shù)初值00H,

;定時最長時間為0000~65536

MOVTL0,A

MOVTH0,AMOVTL1,AMOVTH1,A

TEST0:JBP32,TEST0;檢測是否到a點

SETBTR0;到a點,TR0=1,做好取計時值準(zhǔn)備。TEST1:JNBP32,TEST1;檢測是否到1點

SETBTR1;到1點T0計時;TR1=1,做好T1計時準(zhǔn)備。TEST2:JBP32,TEST2;檢測是否到2點

CLRTR0;到2點,停止T0計時,T1開始計時。

MOV20H,TH0;保存T0計時結(jié)果

MOV21H,TL0TEST3:JBP33,TEST3;檢測是否到3點

CLRTR1;到3點,停止T1計數(shù)

MOV22H,TH1;保存T1計數(shù)結(jié)果

MOV23H,TL1LCALLDISPSJMP$

小結(jié):1、定時/計數(shù)的四種方式是怎樣的?2、如何計算計數(shù)初值?如何編程送入計數(shù)初值?3、GATE的用法是怎樣的?

8051803180C318751805280328752(DIP封裝)15915204036312921VccP0.0/AD0P0.7/AD7EA/VPPALE/PROGPSENP2.0/A8P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P2.6/A14P2.7/A15P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9T2/P1.0T2EX

/P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD

/P3.0TXD

/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR

/P3.6RD

/P3.7XTALXTAL1VSS

1.初始化的一般步驟:(1)確定定時價數(shù)器工作模式(計數(shù)或是定時)、入TMOD寄存器。(2)設(shè)置定時/計數(shù)器的初值,可以直接將初值寫入TH0、TL0或THl、TL1中。(3)根據(jù)功能要求設(shè)置是否使用中斷功能。如需開放中斷,則對應(yīng)位賦值。(4)啟動定時器,可使用SETBTRn指令,n=0或1。

在定時所數(shù)器運(yùn)行過程中,用戶經(jīng)常會需要了解當(dāng)前的計數(shù)值。所謂飛讀,是指在不影響定時/計數(shù)器正常工作的條件下,用軟件去讀取當(dāng)前的計數(shù)值。MCS—51單片祝的TL0、TH0以及TLl、TH1是允許在運(yùn)行中讀寫的,只是操作要考慮周全。主要是要考慮正在讀取的時候發(fā)生低字節(jié)向高字節(jié)進(jìn)位的情況。這種情況的解決方案是,先讀取高字節(jié),再讀取低字節(jié),然后重讀高字節(jié)以驗證其間高字節(jié)是否因進(jìn)位而不同,若因進(jìn)位而不同,則重新再讀一次。當(dāng)定階計數(shù)器工作在計數(shù)方式時,計數(shù)肋沖來自對應(yīng)的外部輸入引腳T0和T1,在每個機(jī)器周期的采樣期間,計數(shù)器對外部輸入信號進(jìn)行采樣,當(dāng)一個機(jī)器周期的采樣值為高電平,而下一個周期的采樣值為低電平,即輸入信號出現(xiàn)1到0的負(fù)跳變時,計數(shù)值增加1。由于計數(shù)器識別一個1到0的跳變需要2個機(jī)器周期,因此,計數(shù)器的最高計數(shù)頻率為系統(tǒng)振蕩周期的1/24。并且,為了確保一個電平在變化前至少被采樣一次,就必須要求這一電平至少保持一個機(jī)器周期時間。如果機(jī)器周期為T則對信號的要求為:§4-4MCS-51單片機(jī)串行接口一、串行通信概述1、什么叫串行通信?

在生活中同學(xué)們排橫隊行走——并行;排縱隊行走——串行。計算機(jī)中在傳輸信息、數(shù)據(jù)時也有并行、串行的問題。0010001001P1.0P1.1P1.2P1.3RXDTXD單片機(jī)外設(shè)1外設(shè)21111110101000并行通信的特點:短距離、高速度,傳輸線多。

串行通信的特點:傳輸線少,方便、長距離傳輸。接收設(shè)備發(fā)送設(shè)備2、同步通信、異步通信同步——發(fā)送設(shè)備時鐘與接收設(shè)備時鐘嚴(yán)格一致。校驗字符2校驗字符1數(shù)據(jù)n………數(shù)據(jù)2數(shù)據(jù)1同步字符2同步字符1異步——發(fā)送時鐘與接收時鐘不一定相等。空閑位停止位奇偶校驗位5~8位數(shù)據(jù)起始位空閑位

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

同步通信的含義:發(fā)送端和接收端使用同一個時鐘,同步發(fā)、收。同步通信的幀格式:由同步字符和多個(大量)連續(xù)的數(shù)據(jù)構(gòu)成。同步通信的特點:傳輸速度高、系統(tǒng)復(fù)雜、造價高。異步——發(fā)送時鐘與接收時鐘不一定相等??臻e位停止位奇偶校驗位5~8位數(shù)據(jù)起始位空閑位3、串行通信的方向單工

A

發(fā)

B

發(fā)半雙工

A

發(fā)收

B

收發(fā)例如:廣播電臺收音機(jī)例如:對講機(jī)全雙工

A

發(fā)收

B

收發(fā)例如:電話機(jī)4、波特率即串行通信速率。b/s、bps在異步通信中,單位時間內(nèi)所傳送的有效二進(jìn)制位數(shù)——波特率。舉例、設(shè)有一幀信息,1個起始位、8個數(shù)據(jù)位、1個停止位,傳輸速率為每秒240個字符。求波特率。解:(1+8+1)×240=2400b/s=2400波特。

三、波特率

是描述數(shù)據(jù)傳輸速率的物理量。定義為:每秒鐘傳送的二進(jìn)制代碼的位數(shù)。

單位:比特(b/s)9.1.4串行通信協(xié)議(異步協(xié)議)

協(xié)議:是對數(shù)據(jù)傳送方式的規(guī)定。

幀格式1、起始位2、數(shù)據(jù)位:5~8位3、奇偶校驗位:1位4、停止位:1~2位5、波特率6、握手信號9.2串行口及應(yīng)用

8051有一可編程的全雙工串行通信接口,可用作異步串行通信,也可用作同步移位寄存器;可單機(jī)通信,也可多機(jī)通信;其幀格式有8位、10位、11位;可設(shè)置不同波特率。

9.2.18051串行口一、8051串行口結(jié)構(gòu)1、發(fā)送部分發(fā)送寄存器SBUF、發(fā)送移位寄存器(并串)2、接收部分接收移位寄存器(串并)、接收寄存器SBUF3、時鐘部分(產(chǎn)生波特率)

定時器T1、分頻器(2、16分頻)等

8051串行口結(jié)構(gòu)1、發(fā)送部分2、接收部分3、時鐘部分發(fā)送接收5、串行通信接口發(fā)送:CPUD7D6D5D4D3D2D1D0發(fā)送寄存器SBUF01D0D1D2D3D4D5D6D7發(fā)送時鐘:接收:D0D1D2D3D4D5D6D710D7D6D5D4D3D2D1D0CPU接收時鐘接收數(shù)據(jù)寄存器SBUF二、MCS-51機(jī)串行接口單片機(jī)內(nèi)有通用異步接收/發(fā)送器UART。全雙工,4種工作方式,波特率可編程設(shè)置,可中斷。1、串口的組成從編程角度講來看主要由以下寄存器組成。SBUF——串行發(fā)送/接收數(shù)據(jù)緩沖器是兩個物理單元,共用一個地址(99H)SMODPCON——電源管理寄存器SMOD位用于決定波特率的倍數(shù)。020=1倍121=2倍SCON——串行口控制寄存器SM0SM1SM2RENTB8RB8

TI

RITI/RI:中斷請求標(biāo)志位(前面已講過)RB8:接收的第九位數(shù)TB8:發(fā)送的第九位數(shù)REN:允許接收控制位SM2:多機(jī)通信控制位(常與RB8配合,決定是否激活RI)SM0、SM1:工作方式選擇位(四種工作方式)三、串行通信工作方式

8051有4種工作方式,有3種幀格式,波特率可變。1、串行口方式0

方式0為同步移位寄存器輸入/輸出方式,常用于擴(kuò)展I/O口。

此時,SM0=0、SM1=0

(1)方式0的特點:1)一幀僅有8位數(shù)據(jù),無起始和結(jié)束位,低位在前。2)RXD引腳用于傳送數(shù)據(jù),TXD用于傳送時鐘。3)波特率固定,其值為?osc/12。2、串行口的工作方式(1)方式0:同步移位寄存器方式

波特率固定為fosc/12RXD——接收發(fā)送數(shù)據(jù)

TXD——產(chǎn)生同步移位脈沖接收/發(fā)送完,置位RI/TI,(要求SM2=0)

D7

D6

D5

D4

D3

D2

D1

D0

D0

D1

D2

D3

D4

D5

D6

D7發(fā)送接收無起始位,無停止位??捎糜诓⒖诘臄U(kuò)展。2、串行口的工作方式(1)方式0:為同步移位寄存器輸入輸出方式,常用于擴(kuò)展IO端口。在方式0狀態(tài)下,其波特率是固定的,為fosc/12,數(shù)據(jù)出RXD(P3.0)輸入/輸出山,而TXD(P3.1線專用于輸出時鐘脈沖給外部寄存器,發(fā)送和接收都是8位數(shù)據(jù),低位在前。

發(fā)送過程:當(dāng)一個數(shù)據(jù)寫入串行口發(fā)送緩沖器SBUF時,串行口即8位數(shù)據(jù)以fosc/12的波特率從RXD(P3.0)引腳輸出(從低位到高位),發(fā)送完8位數(shù)據(jù)后,由硬件將中斷標(biāo)志位TI置“1”,請求中斷,在再次發(fā)送數(shù)據(jù)之前,必須用軟件將TI清零。2、串行口的工作方式(1)方式0:接收過程:接收是在RI=0的條件下,使REN=1來啟動接收過程。接收數(shù)據(jù)由RXD輸入,TXD輸出同步移位脈沖,收到8位數(shù)據(jù)以后.內(nèi)硬件使RI=1,在中斷允許時,可以發(fā)出串行口接收中斷申請。RI=1表示接收數(shù)據(jù)已裝入接收數(shù)據(jù)緩沖器中,可以由CPU讀入累加器A或其他的RAM單元。RI也必須由軟件請零,以準(zhǔn)備接收下一個數(shù)據(jù)。SCON控制字的SM2位(多機(jī)通訊控制位)必須為0。從而不影響TB8和RB8位,由于波特率固定,無須用定時器提供。當(dāng)以中斷方式傳送數(shù)據(jù)時,CPu響應(yīng)中斷并不會清除RI、TI標(biāo)志。所以在中斷服務(wù)程序中必須由指令請零。

(2)方式0發(fā)送

用于擴(kuò)展并行輸出口,用74LS164芯片。啟動輸出(發(fā)送)用“向SBUF寫數(shù)據(jù)指令”。用RXD引腳傳送數(shù)據(jù),TXD引腳傳送時鐘。

74LS164可級連多片。

(3)方式0接收

用于擴(kuò)展并行輸入口,用74LS165芯片。啟動輸入(接收):REN置1(且RI=0)。用RXD引腳傳送數(shù)據(jù),用TXD引腳傳送時鐘。

74LS165可級連多片。移位/置數(shù)時鐘禁止

162、串行口方式1

方式1是真正用于串行發(fā)送和接收,為10位通用異步接口。此時,SM0=0、SM1=1

(1)特點:1)一幀有10位,1位起始,8位數(shù)據(jù)位,1位停止位。接收時停止位進(jìn)入SCON的RB8。2)RXD引腳用于接收數(shù)據(jù),TXD引腳用于發(fā)送數(shù)據(jù)。可以同時進(jìn)行收、發(fā)。3)波特率可變,由T1的溢出率決定。(2)方式1:8位UART

波特率為(2SMOD×T1的溢出率)/32,可變。一幀信息10位。D0D1D2D3D4D5D6D7停止位起始位發(fā)送D7D6D5D4D3D2D1D0起始位停止位接收送RB8發(fā)送完置位TI。當(dāng)接收到數(shù)據(jù)后,置位RI是有條件的。即:REN=1,RI=0且SM2=0或SM2=1且接收到的停止位為1。此時,數(shù)據(jù)裝載SBUF,RI置1,停止位進(jìn)入RB8。

(2)方式1發(fā)送啟動發(fā)送:

用“向SBUF寫數(shù)據(jù)指令”便啟動了發(fā)送。數(shù)據(jù)從TXD引腳送出。數(shù)據(jù)發(fā)完后TI置1。發(fā)送時序如下圖所示。

(3)方式1接收1)接收條件:SCON中的REN置12)接收過程:

REN置1后,串行口對接收引腳RXD檢測,當(dāng)RXD由高變低時開始移位接收;接收完后將停止位裝入RB8中。3)接收的數(shù)據(jù)有效的條件:

a)RI=0;b)SM2=0,或者SM2=1并且RB8=1

滿足以上2條,則將8位數(shù)據(jù)裝入SBUF中,并且RI

置1。有以下情況之一則數(shù)據(jù)無效:

a)RI=1;b)SM2=1并且RB8=0注意:除了方式2、3的多機(jī)通信之外,SM2應(yīng)清0接收時序如下圖所示。(2)方式1:8位UART

波特率為(2SMOD×T1的溢出率)/32,可變。方式1為10位通用異步接口:一位起始位、8位數(shù)據(jù)位和一位停止位,此時SCON中的SMo、SMl兩位為01。串行口電路在發(fā)送時能自動插入起始位和停止位,在接收數(shù)據(jù)時,停止位進(jìn)入特殊功能寄存器SCON的某一位。方式1的傳送波特率是可變的。

方式1發(fā)送:數(shù)據(jù)從引腳加(P3.1)端輸出,當(dāng)執(zhí)行數(shù)據(jù)寫入發(fā)送數(shù)據(jù)緩沖器SBuF命令時,就啟動了發(fā)送器開始。發(fā)送時的定時信號,也就是發(fā)送移位時鐘(Tx時鐘),它是由定時器T[送來的溢出信號經(jīng)過16分頻或32分頻(取決SMOD的值)而取得的。發(fā)送開始的同時,內(nèi)部控制信號有效,將起始位向TxD輸出,此后每過一個Tx時鐘周期就產(chǎn)生一個移位脈沖,并由TxD輸出一個數(shù)據(jù)位,當(dāng)8位數(shù)據(jù)位全部發(fā)完后,置位TI,并申請中斷。(2)方式1:8位UART方式1接收:數(shù)據(jù)從引腳RXD(P3.0)端輸入。接收是在SCON寄存器中REN位置“l(fā)”的前提下,并檢測到起始位(RxD上檢測“1-0”的跳變,即起始位)而開始。

在第9位數(shù)據(jù)收齊之后(8位數(shù)據(jù),一位停止位),必須同時滿足兩個條件,這次接收才真正有效:RI=0和SM2=0或者接收到的停止位為1。如果不滿足這兩個條件,則這一次收到的數(shù)據(jù)就不裝入SBuF中,實際上就意味著丟失了一組數(shù)據(jù)。因為串行口馬上又開始尋找下一個起始位準(zhǔn)備接收下一組數(shù)據(jù)了。3、串行口方式2和方式3

此時,SM0=1、SM1=0、1

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

一般用于多機(jī)通信。一幀信息11位。

D0D1D2D3D4D5D6D7TB8停止位起始位發(fā)送發(fā)送完數(shù)據(jù)置位TI。

TB8D7D6D5D4D3D2D1D0起始位停止位接收接收到有效數(shù)據(jù)完畢,置位RI的條件:REN=1,RI=0且SM2=0或接收到第9位數(shù)據(jù)為1,此時,數(shù)據(jù)裝載SBUF,RI置1,第9位數(shù)據(jù)(TB8)RB8。

送RB8(2)方式2、3的發(fā)送與接收

與方式1類似,從略。時序如下圖所示,僅多了1位。發(fā)送時序接收時序四、波特率設(shè)計

波特率是串行通信協(xié)議中的一個重要內(nèi)容。在8051單片機(jī)串行通信的4種工作方式中,方式0和方式2的波特率固定,方式1和方式3的波特率可變,由T1的溢出率確定。1、方式0的波特率

波特率產(chǎn)生原理如下圖所示。波特率值=

?osc/12書中用≌,示數(shù)據(jù)關(guān)系2、方式2的波特率波特率產(chǎn)生原理如下圖所示。

波特率值=(2SMOD/64)×?osc

SMOD是PCON中的最高位,稱為波特率加倍位,為1時加倍。3、方式1和方式3的波特率波特率產(chǎn)生原理如下圖所示。方式2波特率:(固定)2SMOD/64×fosc3、波特率的設(shè)置方式0、方式2固定。方式1,方式3可變。波特率=2SMOD/32×(T1的溢出率)

T1溢出率=單位時間內(nèi)溢出次數(shù)=1/(T1的定時時間)而T1的定時時間t就是T1溢出一次所用的時間。此情況下,一般設(shè)T1工作在模式2(8位自動重裝初值)。

N=28-t/T,t=(28-N)T=(28-N)×12/fosc所以,T1溢出率=1/t=fosc/12(28-N),故,波特率=2SMOD/32×fosc/12(256-N)。若已知波特率,則可求出T1的計數(shù)初值:

y=256-2SMOD×fosc/(波特率×32×12)

波特率值=(2SMOD/32)×(T1溢出率)T1溢出率=1/定時時間t∵t=(2N-初值X)*機(jī)器周期Tcy

=(2N-初值X)×12/?osc∴波特率值=(2SMOD/32)×?osc/(12×(2N-X))

=?osc×(SMOD+1)/(384×(2N-X))∴初值X=

2N-?osc×(SMOD+1)/(384×波特率值)

13T1以模式0工作8192N=16T1以模式1工作對應(yīng)2N=65536

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

解:X=256-2SMOD×fosc/(2400×32×12)=242.98≈243=F3H

fosc=11.0592MHz,波特率為2400,設(shè)SMOD=0,則X=F4H。初始化編程:MOVTMOD,#20HMOVPCON,#80HMOVTH1,#0F3HMOVTL1,#0F3HSETBTR1

MOVSCON,#50H

常用的波特率與T1的初值、SMOD、振蕩頻率等參數(shù)的對應(yīng)關(guān)系如表9-2所示。

例9-18051單片機(jī)的時鐘振蕩頻率為11.0592MHz,選用定時器T1工作于模式2作為波特率發(fā)生器,波特率為2400b/s。求T1的初值X,并編寫初始化程序段。解:設(shè)波特率加倍位SMOD=0

X=256-11.0592×106×(0+1)/(384×2400)=244=F4H

初始化程序段::MOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0F4HSETBTR1

:二、串行口方式1的發(fā)送和接收例9-5用8051的串行口以方式1發(fā)送ASCII數(shù)據(jù)塊,要求波特率為1200b/s,進(jìn)行校驗。試編寫采用查詢方式發(fā)送的程序。設(shè)數(shù)據(jù)在片內(nèi)RAM的20H~3FH單元,?osc=11.0592MHz。解:(1)最高位作校驗位,采用奇校驗,P最高位

(2)用定時器/計數(shù)器1以模式2定時,作為波特率發(fā)生器;計算初值,由初值X=

2N-?osc×(SMOD+1)/(384×波特率值)這里N=8,?osc=11.0592MHz

波特率為1200b/s,取SMOD=0PCON=00H得初值X=232D=0E8H。(3)TMOD=00100000B=20H

(4)SCON=01000000B=40H(5)程序清單:主程序

MOVTMOD,#20HMOV TL1,#0E8HMOVTH1,#0E8HSETBTR1MOVSCON,#40HMOVR0,#20HMOVR7,#32MOVA,@R0LCALLSP-OUTJNBP,ERRORINCR0DJNZR7,LP:串行口發(fā)送子程序

MOVC,PCPLCMOVACC.7,CMOVSBUF,AJNBTI,$CLRTIRETERROR:(略)SP-OUT:

P為0說明發(fā)送出的數(shù)據(jù)中有偶數(shù)個1,是錯誤的。LP:

例9-6用8051的串行口以方式1接收帶奇偶校驗位的數(shù)據(jù)塊(與上題配合)。試編寫采用查詢方式的程序,接收的數(shù)據(jù)放在片內(nèi)RAM的20H~3FH單元。?osc=11.0592MHz。解:(1)最高位為校驗位(采用奇校驗),應(yīng)去掉

(2)用定時器/計數(shù)器1以模式2定時,作為波特率發(fā)生器;計算初值,由初值X=

2N-?osc×(SMOD+1)/(384×波特率值)這里N=8,?osc=11.0592MHz

波特率為1200b/s,取SMOD=0PCON=00H得初值X=232D=0E8H。

(3)TMOD=00100000B=20H

(4)SCON=01010000B=50H(5)程序清單:主程序MOVSCON,#50HMOVPCON,#0MOVTMOD,#20HMOVTL1,#0E8HMOVTH1,#0E8HSETBTR1MOVR0,#20HMOVR7,#32LCALLSP-INJC

ERRORMOV

@R0,AINCR0DJNZR7,LP:串行口接收子程序

JNBRI,$CLRRIMOVSBUF,AMOVC,PCPLCANLA,#7FHRETERROR:(略)SP-IN:LP:

C為1說明接收的數(shù)據(jù)有偶數(shù)個1,是錯誤的(因采用奇校驗)。小結(jié):1、什么叫串行通信?2、UART叫什么?(通用異步接收/發(fā)送器)3、單工、半雙工、全雙工?4、串口工作用到哪些寄存器?(PCON、SCON、SBUF)5、串口有幾種工作方式?6、波特率如何設(shè)置?(T1的計數(shù)初值如何確定)

中斷源與中斷標(biāo)志位分類中斷源SFR中的中斷申請標(biāo)志位中斷原因中斷入口外部中斷源外部中斷0IE0(TCON.1)P3.2/腳上的信號可以引起中斷申請0003H外部中斷1IE1(TCON.3)P3.3/腳上的信號可以引起中斷申請0013H內(nèi)部中斷源T0:定時器/計數(shù)器0中斷IF0(TCON.5)T0計數(shù)溢出后引起中斷申請000BHT0:定時器/計數(shù)器1中斷IE0(TCON.7)T1計數(shù)溢出后引起中斷申請001BH串行口中斷RI(SCON.0)串行口接收完一幀數(shù)據(jù)后引起中斷申請0023HTI(SCON.1)串行口發(fā)送完一幀數(shù)據(jù)后引起中斷申請INT1INT0INT0INT1外部中斷TF1TR1TF0TR0IE1IT1IE0IT0TCON.7.6.5.4.3.2.1TCON.0TCON:用于T0和T1

用于外部中斷IT0(TCON.0)——外部中斷0觸發(fā)方式控制位IE0(TCON.1)——外部中斷0中斷申請標(biāo)志位IT1(TCON.1)——觸發(fā)方式控制位,功能同IT0IE1(TCON.1)——中斷申請標(biāo)志位,功能同IE0INT1INT1中斷允許寄存器IEEAESET1EX1ET0EX0IE.7.6.5.4.3.2.1IE.0IE:總中斷允許EX0(IE.0)——外部中斷允許位ET0(IE.1)——

T0中斷允許位EX1(IE.2)——中斷允許位ET1(IE.3)—— T1中斷允許位ES(IE.4)—— 串行口中斷允許位EA(IE.7)—— 總中斷允許位INT0INT1中斷優(yōu)先級寄存器IP——————PSPT1PX1PT0PX0 IE.4.3.2.1IP.0IE:保留位INT0優(yōu)先級T0INT1T1串行口優(yōu)先級中斷入口中斷源中斷入口地址0003HT0000BH0013HT1001BH串行口0023HINT0INT1堆棧應(yīng)用用堆棧保護(hù)斷點的方法堆棧區(qū)與SP應(yīng)注意的五點:

1)從棧底到棧頂 2)數(shù)據(jù)先進(jìn)后出 3)PUSH與POP成對使用 4)堆棧區(qū)字節(jié)再做數(shù)據(jù)緩沖區(qū)使用 5)必須對SP置初值中斷響應(yīng)全過程中斷申請的準(zhǔn)備中斷申請的提出響應(yīng)中斷申請的條件CPU響應(yīng)一個中斷之后的操作中斷嵌套在中斷服務(wù)子程序執(zhí)行完的操作中斷實例——管腳輸入單脈沖的實驗圖中的按鍵S每被壓下一次,則單片機(jī)P1口上點亮的一個發(fā)光二極管VL將向下循環(huán)移一位。1111R1R0R6R7VL1VL0VL6VL7…P1.0P1.1P1.6P1.7……INT1+5VR9S8031STR_ADD EQU 0000HBRK_ADD EQU 0013H

;中斷服務(wù)子程序入口 ORG STR_ADD AJMP MAIN ORG BRK_ADD AJMP BREAK ORG STR_ADD+#30H ;MAIN=4030HMAIN: MOV A,#01H SETB IT1 ;設(shè)置成沿觸發(fā)方式 MOV IE,#10000100B ;開中斷 MOV P1,#0 ;關(guān)燈ROTATE: NOP SJMP ROTATE ORG STR_ADD+#60H ;BREAK=4060HBREAK: MOV P1,A ;點亮一個燈 RL A ;循環(huán)左移一位 CLR IE1 ;清中斷申請標(biāo)志 RETI ;中斷返回 END第二節(jié)

定時器/計數(shù)器及其應(yīng)用與定時器/計數(shù)器有關(guān)的特殊功能寄存器計數(shù)器定時器/計數(shù)器方式寄存器TMODGATEC/TM1M0GATEC/TM1M0TMOD.7.6.5.4.3.2.1TMOD.0TMOD: T1方式字段 T0方式字段GATE(位TMOD.3)——門控位。與TCON.4都為高電平 時才能啟動T0C/T(位TMOD.2)——定時或計數(shù)功能選擇位。M1和M0(TMOD.1和TMOD.0)——工作方式選擇位。TF1TR1TF0TR0IE1IT1IE0IT0TCON.7.6.5.4.3.2.1TCON.0TCON:定時器控制 外部中斷控制定時器/計數(shù)器控制寄存器TCONTR0(

TCON.0)——T0的運(yùn)行控制位。TF0(

TCON.0)——T0溢出兼中斷申請標(biāo)志位。TR1——

T1的運(yùn)行控制位。TF1——

T1溢出兼中斷申請標(biāo)志位。

注:TMOD和TCON的復(fù)位值都是00H定時器/計數(shù)器的四種工作方式(一)方式0——13位定時器/計數(shù)器1。晶振電路機(jī)器周期C/T=0C/T=1TL0(5位)TH0(8位)TF0T0溢出標(biāo)志位門控開關(guān)中斷允許GATE位門控信號≥1&TR0位門控信號門控電平S6S5外部計數(shù)脈沖P3.4/

T0P3.2/INT0門控腳定時器/計數(shù)器的四種工作方式(二)方式1——16位定時器/計數(shù)器方式2——可自動重裝初值的 8位定時器/計數(shù)器方式3——兩個8位定時器/計數(shù)器定時器/計數(shù)器應(yīng)用實例·方式0應(yīng)用

例1

已知單片機(jī)晶振頻率為6MHz,要求使用T0定時器1ms,使單片機(jī)P1.0腳上連續(xù)輸出周期為2ms的方波。 解: 1、計算并確定T0的初值; 2、寫程序(如下)

ORG 0000H ;復(fù)位入口RESET: AJMP START ORG 000BH ;T0中斷入口 AJMP T0INT ORG 0030HSTART: MOV SP,#60H ;初始化程序 MOV TH0,#0F0H ;T0賦初值 MOV TL0,#0CH SETB TR0 ;啟動T0 SETB ET0 ;開中斷 SETB EA ;開總中斷MAIN: AJMP MAIN ;主程序T0INT: CPL P1.0 ;P1.0腳取反 MOV TL0,#0CH ;重裝初值 MOV TH0,#0F0H RETI精度不高,原因: 1,中斷服務(wù)子程序執(zhí)行時間未計入T0定時 2,從中斷申請到CPU響應(yīng)該中斷所經(jīng)歷的 時間未計入T0定時將中斷服務(wù)子程序改為:T0INT: CLR EA ;關(guān)總中斷 CLR TR1 ;停止T0計數(shù) MOV A,#0F0H ;取高8位計算的初值 ADD A,TH0 ;加修正值 MOV TH0,A ;修正后送TH0 MOV A,#0CH ;取低5位計算的初值 ADD A,#0EH ;加14個機(jī)器周期 JNB ACC.5,MMM ;加修正值 JNC TH0 ;判低5位有進(jìn)位否 ANL A,#0001111BMMM: MOV TL0,A ;修正后閉塞TL0 CPL P1.0 SETB TR1 ;啟動T0 SETB EA RETI補(bǔ)償方法,原理: 1,在中斷服務(wù)子程序執(zhí)行過程中關(guān)掉總中斷 防止其它中斷嵌套影響定時精度 2,用CLRTR0指令停止T0計數(shù)定時器/計數(shù)器應(yīng)用實例·方式1應(yīng)用

例2

試用單片機(jī)定時器/計數(shù)器T1的方式1完成對某生產(chǎn)線的傳送帶上不斷傳送的產(chǎn)品進(jìn)行計數(shù).+6V11+5V7V燈控S4010640106R3R2R1R5R4VTHL1紅傳送帶光電開關(guān)HL2C5C48031P3.3/INT0P3.5/T1其它電路

ORG 0000H ;復(fù)位入口 AJMP START ;T1中斷入口 ORG 001BH AJMP 0500H ORG 0100HSTART: MOV SP,#65H ;初始化程序 MOV TCON,#00H ;可省略 MOV TMOD,#0D0H MOV TH0,#00H ;可省略 MOV TL0,#00H ;可省略 MOV R0,#00H ;清中斷次數(shù)計數(shù)單元 MOV P3,#28H ;設(shè)置P3.5第二功能 SETB TR1 ;啟動T1 SETB ET1 ;開T1中斷 SETB EA ;開總中斷MAIN ACALL XSZ ;主程序,調(diào)顯示子程序 ……………… ORG 0500HT1INT: INC R0 ;中斷服務(wù)子程序 RETI ORG 0600HXSZ: ……………… ;顯示子程序,略 RET方式2應(yīng)用例3 設(shè)單片機(jī)8031使用的晶振頻率為6MHz,編程使P1.7腳輸出1kHz連續(xù)方波。

ORG 0

AJMP 0050H

ORG 000BH

AJMP 0250H

ORG 0050H

START: MOV SP,#60H

MOV TMOD,#2

MOV TH0,#6

MOV TL0,#6

MOV IP,#2

SETB TR0

MOV IE,#82H

MAIN: AJMP MAIN

ORG 0250H

T0INT: CPL P1.7

RETI例4 8031型單片機(jī)晶振為6MHz,設(shè)定8031和T1做為串行口波特率發(fā)生器,此時T1沒有申請中斷的功能。要求使用T0完成對某高頻發(fā)射機(jī)同步頭信號的寬度進(jìn)行監(jiān)測。

ORG 0

AJMP 0030H

ORG 001BH

AJMP 0700H

ORG 0030H

START: MOV SP,#60H

MOV IP,#8

MOV TMOD,#00101001B

MOV TL0,#0

MOV TH0,#

溫馨提示

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

評論

0/150

提交評論