單片機(jī)課后習(xí)題答案5_第1頁
單片機(jī)課后習(xí)題答案5_第2頁
單片機(jī)課后習(xí)題答案5_第3頁
單片機(jī)課后習(xí)題答案5_第4頁
單片機(jī)課后習(xí)題答案5_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章習(xí)題答案

1、定時(shí)器模式2有什么特點(diǎn)?適用于什么場(chǎng)合?

答:

(1)模式2把TLO(或TL1)配置成一個(gè)可以自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TLO計(jì)數(shù)溢出

時(shí)不僅使溢出中斷標(biāo)志位TFO置1,而且還自動(dòng)把THO中的內(nèi)容重新裝載到TLO中。TLO用

作8位計(jì)數(shù)器,THO用以保存初值。

(2)用于定時(shí)工作方式時(shí)間(TFO溢出周期)為,用于計(jì)數(shù)工作方式時(shí);最大計(jì)數(shù)長(zhǎng)度

(THO初值=0)為28=256個(gè)外部脈沖。

這種工作方式可省去用戶軟件重裝初值的語句,并可產(chǎn)生相當(dāng)精確定時(shí)時(shí)間,特別適于作串

行波特率發(fā)生器。

2、單片機(jī)內(nèi)部定時(shí)方式產(chǎn)生頻率為100KHZ等寬矩形波,假定單片機(jī)的晶振頻率為12MHZ,

請(qǐng)編程實(shí)現(xiàn)。

答:

T0低5位:1BH

TO高8位:FFH

MOVTMOD,#OOH;設(shè)置定時(shí)器T0工作于模式0

MOVTLO,#1BH;設(shè)置5ms定時(shí)初值

MOVTHO,#OFFH

SETBTRO;啟動(dòng)TO

LOOP:JBCTFO,L1;查詢到定時(shí)時(shí)間到?時(shí)間到轉(zhuǎn)LL

SJMPLOOP;時(shí)間未到轉(zhuǎn)LOOP,繼續(xù)查詢

LI:MOVTLO,#1BH;重新置入定時(shí)初值

MOVTHO,#OFFH

CPLP1Q;輸出取反,形成等寬矩形波

SJMPLOOP;重復(fù)循環(huán)

3、89c51定時(shí)器有哪兒種工作模式?有何區(qū)別?

答:有四種工作模式:模式0,模式1,模式2,模式3

(1)模式0:選擇定時(shí)器的高8位和低5位組成一個(gè)13位定時(shí)器/計(jì)數(shù)器。TL低5位溢出

時(shí)向TH進(jìn)位,TH溢出時(shí)向中斷標(biāo)志位TF進(jìn)位,并申請(qǐng)中斷。

定時(shí)時(shí)間t=(213-初值)X振蕩周期X12;計(jì)數(shù)長(zhǎng)度位213=8192個(gè)外部脈沖

(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時(shí)時(shí)間t=(216-

初值)X振蕩周期X12;計(jì)數(shù)長(zhǎng)度位216=65536個(gè)外部脈沖

(3)模式2:把TLO和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL用作8位計(jì)

數(shù)器,TH用以保存初值。TL計(jì)數(shù)溢出時(shí)不僅使TFO置1,而且還自動(dòng)將TH中的內(nèi)容重新裝

載到TL中。

定時(shí)時(shí)間t=(28-初值)X振蕩周期X12;計(jì)數(shù)長(zhǎng)度位28=256個(gè)外部脈沖

(4)模式3:對(duì)T0和T1不大相同

若設(shè)T0位模式3,TLO和TH0被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。TLO為8位計(jì)數(shù)器,功能

與模式0和模式1相同,可定時(shí)可計(jì)數(shù)。

TH0僅用作簡(jiǎn)單的內(nèi)部定時(shí)功能,它占用了定時(shí)器T1的控制位TR1和中斷標(biāo)志位TF1,啟

動(dòng)和關(guān)閉僅受TR1控制。

定時(shí)器T1無工作模式3,但T0在工作模式3時(shí)T1仍可設(shè)置為0~2?

4、89C51內(nèi)部設(shè)有幾個(gè)定時(shí)器/計(jì)數(shù)器?它們是山哪些特殊功能寄存器組成?

答:89c51單片機(jī)內(nèi)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,即T0和T1。

TO由兩個(gè)8位特殊功能寄存器THO和TLO組成;T1由TH1和TL1組成。

5、定時(shí)器用作定時(shí)器時(shí),其定時(shí)時(shí)間與哪些因素有關(guān)?作計(jì)數(shù)器時(shí),對(duì)外界計(jì)數(shù)頻率有何

限制?

答:定時(shí)時(shí)間與定時(shí)器的工作模式,初值及振蕩周期有關(guān)。

作計(jì)數(shù)器時(shí)對(duì)外界計(jì)數(shù)頻率要求最高為機(jī)器振蕩頻率的皿4。

6、簡(jiǎn)述定時(shí)器4種工作模式的特點(diǎn),如何選擇設(shè)定?

答:

(1)模式0:選擇定時(shí)器的高8位和低5位組成一個(gè)13位定時(shí)器/計(jì)數(shù)器。TL低5位溢出

時(shí)向TH進(jìn)位,TH溢出時(shí)向中斷標(biāo)志位TF進(jìn)位,并申請(qǐng)中斷。

定時(shí)時(shí)間t=(213-初值)X振蕩周期X12;計(jì)數(shù)長(zhǎng)度位213=8192個(gè)外部脈沖

置TMOD中的M1M0為00

(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。定時(shí)時(shí)間t=(216-

初值)X振蕩周期X12;計(jì)數(shù)長(zhǎng)度位216=65536個(gè)外部脈沖

置TMOD中的M1M0為01

(3)模式2:把TLO和TL1配置成一個(gè)自動(dòng)重裝載的8位定時(shí)器/計(jì)數(shù)器。TL用作8位計(jì)

數(shù)器,TH用以保存初值。TL計(jì)數(shù)溢出時(shí)不僅使TFO置1,而且還自動(dòng)將TH中的內(nèi)容重新裝

載到TL中。

定時(shí)時(shí)間t=(28-初值)X振蕩周期X12;計(jì)數(shù)長(zhǎng)度位28=256個(gè)外部脈沖

置TMOD中的M1M0為10

(4)模式3:對(duì)T0和T1不大相同

若設(shè)T0位模式3,TLO和THO被分為兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器。TLO為8位計(jì)數(shù)器,功能

與模式0和模式1相同,可定時(shí)可計(jì)數(shù)。

THO僅用作簡(jiǎn)單的內(nèi)部定時(shí)功能,它占用了定時(shí)器T1的控制位TR1和中斷標(biāo)志位TF1,啟

動(dòng)和關(guān)閉僅受TR1控制。

定時(shí)器T1無工作模式3,但T0在工作模式3時(shí)T1仍可設(shè)置為0~2。

置TMOD中的M1M0為11

7、當(dāng)T0用作模式3時(shí),由于TR1已被T0占用,如何控制T1的開啟和關(guān)閉?

答:用T1控制位C/T切換定時(shí)器或計(jì)數(shù)器工作方式就可以使T1運(yùn)行。定時(shí)器T1無工作模

式3,將T1設(shè)置為工作模式3,就會(huì)使T1立即停止計(jì)數(shù),關(guān)閉。

8、以定時(shí)器/計(jì)數(shù)器1進(jìn)行外部時(shí)間計(jì)數(shù),每計(jì)數(shù)1000個(gè)脈沖后,定時(shí)器/計(jì)數(shù)器1轉(zhuǎn)為定

時(shí)工作方式,定時(shí)10ms后又轉(zhuǎn)為計(jì)數(shù)方式,如此循環(huán)不止。假定為6WHZ,用模式1編程。

解:T1為定時(shí)器時(shí)初值:

T1為計(jì)數(shù)器時(shí)初值:

所以:

L1:MOVTMOD,#50H;設(shè)置T1為計(jì)數(shù)方式且工作模式為1

MOVTH1,#OFCH;置入計(jì)數(shù)初值

MOVTL1,#18H

SETBTR1;啟動(dòng)T1計(jì)數(shù)器

LOOP1:JBCTF1,L2;查詢計(jì)數(shù)溢出?有溢出(計(jì)數(shù)滿1000個(gè))轉(zhuǎn)L2

SJMPL00P1;無溢出轉(zhuǎn)L00P1,繼續(xù)查詢

L2:CLRTR1;關(guān)閉T1

MOVTMOD,#10H;設(shè)置T1為定時(shí)方式且工作與模式1

;置入定時(shí)初值

MOVTH1;#OECH10ms

MOVTL1,#78H

SETBTRI;啟動(dòng)T1定時(shí)

LOOP2:JBCTF1,L1渣詢10ms時(shí)間到?時(shí)間到,轉(zhuǎn)L1

SJMPLOOP2;時(shí)間未到,轉(zhuǎn)LOOP2,繼續(xù)查詢

9、--個(gè)定時(shí)器定時(shí)時(shí)間有限,如何實(shí)現(xiàn)兩個(gè)定時(shí)器的串行定時(shí)以滿足較長(zhǎng)定時(shí)時(shí)間的要求?

答:當(dāng)一個(gè)定時(shí)器溢出時(shí),設(shè)置另一個(gè)定時(shí)器的初值為0開始定時(shí)。

10、使用一個(gè)定時(shí)器,如何通過軟硬件結(jié)合方法實(shí)現(xiàn)較長(zhǎng)時(shí)間的定時(shí)?

答:設(shè)定好定時(shí)器的定時(shí)時(shí)間,采用中斷方式用軟件設(shè)置計(jì)數(shù)次數(shù),進(jìn)行溢出次數(shù)累計(jì),從

而得到較長(zhǎng)的時(shí)間。

11、89C51定時(shí)器作定時(shí)和計(jì)數(shù)時(shí)其計(jì)數(shù)脈沖分別由誰提供?

答:作定時(shí)器時(shí)計(jì)數(shù)脈沖由89c51片內(nèi)振蕩器輸出經(jīng)12分頻后的脈沖提供,作計(jì)數(shù)時(shí)計(jì)數(shù)

脈沖由外部信號(hào)通過引腳P3.4和P3.5提供。

12、89C51定時(shí)器的門控信號(hào)GATE設(shè)置為1時(shí)定時(shí)器如何啟動(dòng)?

答:只有.(或)引腳為高電平且由軟件使TR0(或TR1)置1時(shí),才能啟動(dòng)定時(shí)器工作。

13、已知89c51單片機(jī)的fosc=6MHz,請(qǐng)利用TO和P1.0輸出矩形波。矩形波高電平寬50口

s,低電平寬300ns。

解:TO采用模式2作為50US定時(shí)時(shí)的初值:

所以

作300Us定時(shí)時(shí)的初值:

所以

MOVTMOD,#02H;設(shè)置定時(shí)器T0工作于模式2

L2:CLRP1.0;P1.0輸出低電平

MOVTHO,#6AH;置入定時(shí)300Us初值

MOVTLO,#6AH

SETBTRO;啟動(dòng)TO

LOOP1:JBCTFO,LL渣詢300人時(shí)間至|?時(shí)間到,轉(zhuǎn)L1

SJMPL00P1;時(shí)間未到,轉(zhuǎn)L00P1,繼續(xù)查詢

L1:SETBP1.0;P1.0輸出高電平

CLRTRO;關(guān)閉T0

MOVTH0;#0E7H;置入定時(shí)300口s初值

MOVTLO,#0E7H

SETBTRO;啟動(dòng)TO

L00P2JBCTF0,L2渣詢50us時(shí)間到?時(shí)間到,轉(zhuǎn)L2

SJMPL00P2;時(shí)間未到,轉(zhuǎn)L00P2,繼續(xù)查詢

14、已知89C51單片機(jī)的fosc=12MHz,用T1定時(shí)。試編程由P1.0和P1.1引腳分別輸出周

期為2ms和500us的方波。

解:采用模式。作定時(shí)初值:

所以

MOVR2,#04H;R2為“250Us”計(jì)數(shù)器,置入初值4

CLRP1.0;P1.0輸出低電平

CLR輸出低電平

MOVTMOD,#OOH

L2:MOVTH1,#OF8H;置入定時(shí)250Us初值

MOVTL1,#O6H

SETBTRI;啟動(dòng)T1

LOOP:JBCTF1,L1渣詢250Hs時(shí)間到?時(shí)間到,轉(zhuǎn)L1

SJMPLOOP;時(shí)間未到,轉(zhuǎn)LOOP,繼續(xù)查詢

L1:CPLP1.1;P1.1輸出取反,形成周期為500US

CLRTR1;關(guān)閉T1

DJNZR2,L2;“250Ps”計(jì)數(shù)器減1,到1ms嗎?未到轉(zhuǎn)L2

CPLP1.0;P1.0輸出取反,形成周期為2ms方波

MOVR2,#04H;重置“250US”計(jì)數(shù)器初值4

UMPL2;重復(fù)循環(huán)

15、單片機(jī)8031的時(shí)鐘頻率為6MHz,若要求定時(shí)值分別為0.1ms,1ms,10ms,定時(shí)器0工作在

模式0、模式1和模式2時(shí),其定時(shí)器初值各應(yīng)是多少?

解:

(1)0.1ms

模式0:

T0低5位01110B=0EH

TO高8位:11111110B=FEH

模式1:

模式2:

(2)1ms

模式0:

T0低5位OllOOB=OCH

TO高8位:11110000B=F0H

模式1:

模式2:

在此情況下最長(zhǎng)定時(shí)為512us,無法一次實(shí)現(xiàn)定時(shí)1ms,可用0.1ms循環(huán)10次

(3)10ms

模式0:

T0低5位11000B=18H

TO高8位:01100011B=63H

模式1:

模式2:在此情況下最長(zhǎng)定時(shí)為512us,無法一次實(shí)現(xiàn)定時(shí)10ms,可用0.1ms循環(huán)100次

16、89c51單片機(jī)的定時(shí)器在何種設(shè)置下可提供三個(gè)8位計(jì)數(shù)器定時(shí)器?這時(shí),定時(shí)器1可

作為串行口波特率發(fā)生器。若波特率按9600b/s,4800b/s,2400b/s,1200b/s,600b/s,100b/s來考

慮,則此時(shí)可選用的波特率是多少(允許存在一定誤差)?設(shè)fosc=12MHz。

解:當(dāng)T0為模式3,T1為模式2時(shí),可提供3個(gè)8位定時(shí)器。

可選100b/s

17、試編制一段程序,功能為:當(dāng)P1.2引腳的電平上跳時(shí),對(duì)P1.1的輸入脈沖進(jìn)行計(jì)數(shù);

當(dāng)P1.2引腳的電平下跳時(shí),停止計(jì)數(shù),并將計(jì)數(shù)值寫入R6,R7。

解:

MOVTMOD,#05H;T0為計(jì)數(shù)方式且工作于模式1

JNBP1.2,$;等待P1.2引腳電平上跳

電平上跳,置入計(jì)數(shù)初值

MOVTHO;#OOH;P1.2

MOVTLO,#OOH

SETBTRO;啟動(dòng)TO

JBP1.2,$;等待Pl.2引腳電平下跳

CLRTRO;電平下跳,關(guān)閉TO

MOVR7,TH0;計(jì)數(shù)初值寫入R7,R6

MOVR6,TL0

18、設(shè)fosc=12MHz。試編制一段程序,功能為:對(duì)定時(shí)器TO初始化,使之工作在模式2,

產(chǎn)生200Hs定時(shí),并用查詢T0溢出標(biāo)志的方法,控制P1.0輸出周期為2ms的方波。

解:T0作定時(shí)器時(shí)初值:

所以

程序1:

CLRP1.O;P1Q輸出低電平

MOVR2,#05H;R2為“200us”計(jì)數(shù)器,置入初值5,計(jì)1ms

MOVTMOD,#02H;設(shè)定時(shí)器TO工作于模式2

L2:MOVTHO,#38H;置入定時(shí)初值

MOVTLO,#38H

SETBTRO;啟動(dòng)TO

LOOPJBCTFO,L1渣詢200us時(shí)間到?時(shí)間到,轉(zhuǎn)L1

SJMPLOOP;時(shí)間未到,轉(zhuǎn)LOOP,繼續(xù)查詢

L1:CLRTRO;關(guān)閉TO

DJNZR2,L2;“200US”計(jì)數(shù)器減1,到1ms嗎?未到,轉(zhuǎn)L2

CPLP1.0;到1ms,P1.0取反,形成周期為2ms的方波

MOVR2,#05H;重置“200US”計(jì)數(shù)器初值

LJMPL2;重復(fù)循環(huán)

程序2:

MAIN:MOVTMOD,#02H;設(shè)定時(shí)器T0工作于模式2

CLRP1Q;P1.O輸出低電平

LOOP1:MOVR2,#05H;R2為“200Hs”計(jì)數(shù)器,置入初值5,計(jì)1ms

LOOP:MOVTHO,#38H;置入定時(shí)初值

MOVTLO,#38H

SETBTRO;啟動(dòng)TO

JNBTFO,$;查詢200Us時(shí)間到?時(shí)間到,繼續(xù)查詢

CLRTRO;關(guān)閉T0

DJNZR2,L00P;“200Us”計(jì)數(shù)器減1,到1ms嗎?未到,轉(zhuǎn)LOOP

CPLP1.0;到1ms,PL0取反,形成周期為2ms的方波

SJMPL00P1;重復(fù)循環(huán)

19、以中斷方法設(shè)計(jì)單片機(jī)秒、分脈沖發(fā)生器。假定P1.0每秒產(chǎn)生1個(gè)機(jī)器周期的正脈沖,

P1.1每分產(chǎn)生1個(gè)周期的正脈沖。

參考書上例題6-6

第七章

第7章習(xí)題

1、什么是串行異步通信,它有哪些作用?

答:在異步串行通信中,數(shù)據(jù)是一幀一幀(包括一個(gè)字符代碼或一字節(jié)數(shù)據(jù))傳送的,每一

幀的數(shù)據(jù)格式參考書。通信采用幀格式,無需同步字符。存在空閑位也是異步通信的特征之

O

2、89c51單片機(jī)的串行口由哪些功能部件組成?各有什么作用?

答:89c51單片機(jī)的串行接口由發(fā)送緩沖期SBUF,接收緩沖期SBUF、輸入移位寄存器、串

行接口控制器SCON、定時(shí)器T1構(gòu)成的波特率發(fā)生器等部件組成。

由發(fā)送緩沖期SBUF發(fā)送數(shù)據(jù),接收緩沖期SBUF接收數(shù)據(jù)。串行接口通信的工作方式選擇、

接收和發(fā)送控制及狀態(tài)等均由串行接U控制寄存器SCON控制和指示。定時(shí)器T1產(chǎn)生串行

通信所需的波特率。

3、簡(jiǎn)述串行口接收和發(fā)送數(shù)據(jù)的過程。

答:串行接口的接收和發(fā)送是對(duì)同一地址(99H)兩個(gè)物理空間的特殊功能寄存器SBUF進(jìn)

行讀和寫的。當(dāng)向SBUF發(fā)“寫”命令時(shí)(執(zhí)行“MOVSBUF,A"),即向緩沖期SBUF裝載并

開始TXD引腳向外發(fā)送一幀數(shù)據(jù),發(fā)送完便使發(fā)送中斷標(biāo)志位Tl=l。

在滿足串行接口接收中斷標(biāo)志位RI(SCON.O)=0的條件下,置允許接收位REN(SCON.4)

=1,就會(huì)接收一幀數(shù)據(jù)進(jìn)入移位寄存器,并裝載到接收SBUF中,同時(shí)使Rl=l。當(dāng)發(fā)讀SBUF

命令時(shí)(執(zhí)行“MOVA,SBUF"),便由接收緩沖期SBUF取出信息通過89C51內(nèi)部總線送CPU。

4、89c51串行口有幾種工作方式?有幾種幀格式?各工作方式的波特率如何確定?

答:89C51串行口有4種工作方式:

方式0(8位同步移位寄存器),方式1(10位異步收發(fā)),方式2(11位異步收發(fā)),方式3

(11位異步收發(fā))。

有2種幀格式:10位,11位

方式0:方式0的波特率絲fosc/12(波特率固定為振蕩頻率V12)

方式2:方式2波特率部2sMOD/64Xfosc

方式1和方式3:方式1和方式3波特率絲2sMOD/32X(T1溢出速率)

如果T1采用模式2則:

5、若異步通信接口按方式3傳送,已知其每分鐘傳送3600個(gè)字符,其波特率是多少?

答:已知每分鐘傳送3600個(gè)字符,方式3每個(gè)字符11位,則:

波特率=(11b/字符)X(3600字符/60s)=660b/s

6、89C51中SCON的SM2,TB8,RB8有何作用?

答:89c51SC0N的SM2是多機(jī)通信控制位,主要用于方式2和方式3.若置SM2=1,則允許

多機(jī)通信。

TB8是發(fā)送數(shù)據(jù)的第9位,在方式2或方式3中,根據(jù)發(fā)送數(shù)據(jù)的需要由軟件置位或復(fù)位。

它在許多通信協(xié)議中可用作奇偶校驗(yàn)位;在多機(jī)通信中作為發(fā)送地址幀或數(shù)據(jù)幀的標(biāo)志位。

RB8是接收數(shù)據(jù)的第9位,在方式2或方式3中接收到的第9位數(shù)據(jù)放在RB8位。它或是約

定的奇偶校驗(yàn)位,或是約定的地址/數(shù)據(jù)標(biāo)示位。

7、設(shè)fosc=11.059MHz,試編寫一段程序,其功能為對(duì)串行口初始化,使之工作與方式1,

波特率為1200b/s;并用查詢串行口狀態(tài)的方法,讀出接收緩沖器的數(shù)據(jù)并回送到發(fā)送緩沖

器。

解:

START:MOVSCON,#40H;串行接口工作于方式1

MOVTMOD,#20H;定時(shí)器T1工作于模式2

MOVTH1,#OE8H;賦定時(shí)器計(jì)數(shù)初值

MOVTL1,#OE8H

SETBTR1;啟動(dòng)定時(shí)器T1

MOVA,SBUF;讀出接收緩沖器數(shù)據(jù)

MOVSBUF,A;啟動(dòng)發(fā)送過程

JNBTI,$;等待發(fā)送完

CLRTI;清TI標(biāo)志

SJMP$;結(jié)束

8、若晶振為11.0592MHz,串行口工作與方式1,波特率為4800b/s。寫出用T1作為波特率

發(fā)生器的方式字和計(jì)數(shù)初值。

解:

MOVTMOD,#20H;定時(shí)器T1工作于模式2

MOVTH1,#OFAH;賦定時(shí)器計(jì)數(shù)初值

MOVTL1,#OFAH

9、為什么定時(shí)器T1用作串行口波特率發(fā)生器時(shí),常選用工作模式2?若已知系統(tǒng)時(shí)鐘頻率

和通信用的波特率,如何計(jì)算其初值?

答:因?yàn)楣ぷ髂J?是自動(dòng)重裝初值定時(shí)器,編程時(shí)無需重裝時(shí)間參數(shù)(計(jì)數(shù)初值),比較

使用。若選用工作模式?;蚬ぷ髂J?,當(dāng)定時(shí)器T1溢出時(shí),需在中斷服務(wù)程序中重裝初

值。

已知系統(tǒng)時(shí)鐘頻率fosc和通信用的波特率fbaud,可得出定時(shí)器T1模式2的初值

10、若定時(shí)器T1設(shè)置成模式2作波特率發(fā)生器,一知fosc=6MHz。求可能產(chǎn)生的最高和最

低的波特率。

解:最高波特率為T1定時(shí)最小值時(shí),此時(shí)初值為255,并且SMOD=1,有:

最高波特率為T1定時(shí)最大值時(shí),此時(shí)初值為0,并且SMOD=0,有:

11、串行通信的總線標(biāo)準(zhǔn)是什么?有哪些內(nèi)容?

答:美國(guó)電子工業(yè)協(xié)會(huì)(EIA)正式公布的串行總線接口標(biāo)準(zhǔn)有RS-232C,RS-422,RS-423和RS-485

等。

在異步串行通信中應(yīng)用最廣的標(biāo)準(zhǔn)總線是RD-232C。它包括了按位串行傳輸?shù)碾姎夂蜋C(jī)械方

面的規(guī)定,如適用范圍、信號(hào)特性、接口信號(hào)及引腳說明等,適用于短距離(<15m)或帶

調(diào)制解調(diào)的通信場(chǎng)合。采用RS-422,RS-485標(biāo)準(zhǔn)時(shí),通信距離可達(dá)1000m。

12、簡(jiǎn)述單片幾多機(jī)通信的原理。

答:當(dāng)一片89c51(主機(jī))與多片89c51(從機(jī))通信時(shí),所有從機(jī)的SM2位都置1.主機(jī)首

先發(fā)送的一幀數(shù)據(jù)為地址,即某從機(jī)機(jī)號(hào),其中第9位為1,所有的從機(jī)接收到數(shù)據(jù)后,將

其中第9位裝入RB8中。各從機(jī)根據(jù)收到的第9位數(shù)據(jù)(RB8中)的值來決定從機(jī)可否再接

收主機(jī)的信息。若(RB8)=0,說明是數(shù)據(jù)幀,則使接收中斷標(biāo)志位RI=0,信息丟失;若(RB8)

=1說明是地址幀,數(shù)據(jù)裝入SBUF并置Rl=l,中斷所有從機(jī),只有被尋址的目標(biāo)從機(jī)清除

SM2(SM2=0),以接收主機(jī)發(fā)來的?幀數(shù)據(jù)(點(diǎn)對(duì)點(diǎn)通信)。其他從機(jī)仍然保持SM2=1.

13、當(dāng)89c51串行口按工作方式1進(jìn)行串行數(shù)據(jù)通信時(shí)。假定波特率為1200b/s,以中斷方

式傳送數(shù)據(jù)。請(qǐng)編寫全雙工通信程序。

解:設(shè)系統(tǒng)時(shí)鐘頻率fosc=6.0MHZ。查教材表9-2可知,可取SMOD=0,T1的計(jì)數(shù)初值為F3H。

程序如下:

ORG0000H

AJMPMAIN;上電,轉(zhuǎn)向主程序

ORG0023H;串行口的中斷入口地址

AJMPSERVE;轉(zhuǎn)向中斷服務(wù)程序

ORG0040H;主程序

設(shè)置堆棧指針

MAIN:MOVSP,#60H;

MOVSCON,#50H

MOVPCON,#00H

MOVTMOD,#20H

MOVTH1,#OF3H

MOVTL1,#OF3H

SETBTRI

MOVRO,#2OH;置發(fā)送數(shù)據(jù)區(qū)首地址

MOVRI,#40H;置接收數(shù)據(jù)區(qū)首地址

置發(fā)送字節(jié)長(zhǎng)度

MOVR7,#10H;

MOVR6,#10H;置接收字節(jié)長(zhǎng)度

SETBES;允許串行口中斷

SETBEA;CPU允許中斷

MOVA,@RO;取第一個(gè)數(shù)據(jù)發(fā)送

MOVSBUF,A;發(fā)送第一個(gè)數(shù)據(jù)

SJMP$;等待中斷

SERVE:JNBRI,SEND;TI=1,為發(fā)送中斷

CLRRI

MOVA,SBUF;讀出接收緩沖區(qū)內(nèi)容

MOV@R1,A;讀入接收緩沖區(qū)

DJNZR6,L1;判斷數(shù)據(jù)塊發(fā)送完否

SJMPL2;數(shù)據(jù)塊接收完,轉(zhuǎn)L2

L1:INCR1;修改數(shù)據(jù)區(qū)指針

L2:RETI;中斷返回

SEND:

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

DJNZR7,L3;判斷數(shù)據(jù)塊發(fā)送完否

SJMPL4;數(shù)據(jù)塊接收完,轉(zhuǎn)L4

L3:MOVA,@R0;取數(shù)據(jù)發(fā)送

MOVSBUF,A;發(fā)送數(shù)據(jù)

INCR0;修改數(shù)據(jù)地址

L4:

RETI;中斷返回

END

14、以89c51串行口按工作方式3進(jìn)行串行數(shù)據(jù)通信。假定波特率為12OOb/s,第9數(shù)據(jù)位

作奇偶校驗(yàn)位,以中斷方式傳送數(shù)據(jù)。請(qǐng)編寫通信程序。

解:

ORG0000H

AJMPMAIN;上電,轉(zhuǎn)向主程序

ORG0023H;串行口的中斷入口地址

AJMPSTOP;轉(zhuǎn)向中斷服務(wù)程序

ORG0040H;主程序

MAIN:MOVSP,#60H

MOVTMOD,#20H

MOVTH1;#OE8H

MOVTL1,#OE8H

SETBTRI

MOVSCON,#ODOH

MOVPCON,#00H

MOVR0,#20H;置發(fā)送數(shù)據(jù)區(qū)首地址

MOVRI,#40H;置接收數(shù)據(jù)區(qū)首地址

SETBES;允許串行口中斷

SETBEA;CPU允許中斷

MOVA,@RO

MOVC,PSW.O;PfC

CPLC

MOVTB8,C

MOVSBUF,A;發(fā)送第一個(gè)數(shù)據(jù)

SJMP$

STOP:JNBRISOUT11=1,為發(fā)送中斷

CLRRI

MOVA,SBUF;讀出接收緩沖區(qū)內(nèi)容

MOVC,PSW.O;P-C

CPLC;形成奇校驗(yàn)

JCLOOP1;判斷接收端的奇偶值,C=1轉(zhuǎn)LOOP1

JNBRB8,LOOP2;C=0,RB8=0,轉(zhuǎn)LOOP2

SJMPERROR;C=0,RB8=l,轉(zhuǎn)出錯(cuò)處理

LOOP1:JBRB8,LOOP2;C=1,RB8=1,轉(zhuǎn)LOOP2

SJMPERROR;C=0,RB8=l,轉(zhuǎn)出錯(cuò)處理

LOOP2:

MOV@R1,A;將接收數(shù)據(jù)送入接收數(shù)據(jù)區(qū)

INCR1;修改數(shù)據(jù)區(qū)指針

RETI

SOUT:CLRTI;是發(fā)送中斷,清除發(fā)送中斷標(biāo)志

INCR0;修改數(shù)據(jù)區(qū)指針

MOVA,@RO

MOVPSW.O,C;P-C

CPLC

MOVTB8,C

MOVSBUF,A;發(fā)送第一個(gè)數(shù)據(jù)

RETI

ERROR:.......

15、某異步通信接口,其幀格式由1個(gè)起始位(0),7個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位和1個(gè)停

止位(1)組成。當(dāng)該接口每分鐘傳送1800個(gè)字符時(shí),試計(jì)算出傳送波特率。

解:該異步通信接口的幀格式為10b/字符,當(dāng)該接口每分鐘傳送1800個(gè)字符時(shí):

波特率=(10b/字符)X(1800字符由0s)=300b/s

16、串行口工作在方式1和方式3時(shí),其波特率與fosc、定時(shí)器T1工作模式2的初值及SMOD

位的關(guān)系如何?設(shè)fosc=6MHz,現(xiàn)利用定時(shí)器T1模式2產(chǎn)生的波特率為110b/s。試計(jì)算定

時(shí)器初值。

解:關(guān)系如下:

當(dāng)波特率為110b/s,fosc=6MHz,令SMOD=0,有:

17、設(shè)計(jì)一個(gè)單片機(jī)的雙機(jī)通信系統(tǒng),并編寫通信程序。將甲機(jī)內(nèi)部RAM40H-4FH存儲(chǔ)區(qū)

中去。

參考教材例題7-12

第三章

1、指令:CPU根據(jù)人的意圖來執(zhí)行某種操作的命令

指令系統(tǒng):一臺(tái)計(jì)算機(jī)所能執(zhí)行的全部指令集合

機(jī)器語言:用二進(jìn)制編碼表示,計(jì)算機(jī)能直接識(shí)別和執(zhí)行的語言

匯編語言:用助記符、符號(hào)和數(shù)字來表示指令的程序語言

高級(jí)語言:獨(dú)立于機(jī)器的,在編程時(shí)不需要對(duì)機(jī)器結(jié)構(gòu)及其指令系統(tǒng)有深入了解的通用性語

2、見第1題

3、操作碼[目的操作數(shù)][,源操作數(shù)]

4、

尋址方式尋址空間

立即數(shù)尋址程序存儲(chǔ)器ROM

直接尋址片內(nèi)RAM低128B,特殊功能寄存器

寄存器尋址【作寄存器R0-R7、A、B、C、DPTR

寄存器間接尋址片內(nèi)RAM低128B、片外RAM

變址尋址程序存儲(chǔ)器(@A+PC,@A+DPTR)

相對(duì)尋址程序存儲(chǔ)器256B范圍(PC+偏移量)

位尋址片內(nèi)RAM的20H-2FH字節(jié)地址、部分SFR

5、SFR:直接尋址,位尋址,寄存器尋址;片外RAM:寄存器間接尋址

6、MOVA,40H;直接尋址(40H)—A

MOVRO,A;寄存器尋址(A)-RO

MOVPl,#OFOH;立即數(shù)尋址0F0—Pl

MOV@R0,30H;直接尋址(30H)—(RO)

MOVDPTR,#3848H;立即數(shù)尋址3848HfDPTR

MOV40H,38H;直接尋址(38H)-40H

MOVRO,30H;直接尋址(30H)-RO

MOVPO,RO;寄存器尋址(RO)~P0

MOV18H,#30H;立即數(shù)尋址30Hfl8H

MOVA,@R0;寄存器間接尋址((RO))-A

MOVP2,Pl;直接尋址(Pl)fP2

最后結(jié)果:(RO)=38H,(A)=40H,(P0)=38H,(Pl)=(P2)=OFOH,(DPTR)=3848H,(18H)

=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H

注意:一左邊是內(nèi)容,右邊是單元

7、用直接尋址,位尋址,寄存器尋址

8、

MOVA,DATA;直接尋址2字節(jié)1周期

MOVA,#DATA;立即數(shù)尋址2字節(jié)1周期

MOVDATA1,DATA2;直接尋址3字節(jié)2周期

MOV74H,#78H;立即數(shù)尋址3字節(jié)2周期

如果想查某一指令的機(jī)器碼,字節(jié)數(shù)或周期數(shù)可查閱書本后面的附錄A

9、

MOVA,@RO;((R0))=80H-A

MOV@R0,40H;(40H)=08H—(RO)

MOV40H,A;(A)=80-40H

MOVRO,#35H;35H-R0

最后結(jié)果:(RO)=35H(A)=80H,(32H)=08H,(40H)=80H

10、用直接尋址,位尋址,寄存器尋址

11、只能采用寄存器間接尋址(用MOVX指令)

12、低128字節(jié):直接尋址,位尋址,寄存器間接尋址,寄存器尋址(R0~R7)

高128字節(jié):直接尋址,位尋址,寄存器尋址

13、采用變址尋址(用MOVC指令)

14、壓縮BCD碼在進(jìn)行加法運(yùn)算時(shí)應(yīng)逢十進(jìn)一,而計(jì)算機(jī)只將其當(dāng)作十六進(jìn)制數(shù)處理,此

時(shí)得到的結(jié)果不正確。用DAA指令調(diào)整(加06H,60H,66H)

15、用來進(jìn)行位操作

16、ANLA,#17H;83HA17H=03H->A

0RL17H,A;34HV03H=37H-*17H

XRLA,@R0;03H?37H=34H

CPLA;34H求反等于CBH

所以(A)=CBH

17、(1)SETBACC.O或SETBEOH;EOH是累力U器的地址

(2)CLRACC.7

CLRACC.6

CLRACC.5

CLRACC.4

(3)CLRACC.6

CLRACC.5

CLRACC.4

CLRACC.3

18、MOV27H,R7

MOV26H,R6

MOV25H,R5

MOV24H,R4

MOV23H,R3

MOV22H,R2

MOV21H,RI

MOV20H,RO

19、MOV2FH,20

MOV2EH,21

MOV2DH,22

20、CLRC

MOVA,#5DH;被減數(shù)的低8位fA

MOVR2,#B4H;減數(shù)低8位fR2

SUBBA,R2;被減數(shù)減去減數(shù),差一A

MOV30H,A;低8位結(jié)果-30H

MOVA,#6FH;被減數(shù)的高8位一A

MOVR2,#13H;減數(shù)高8位fR2

SUBBA,R2;被減數(shù)減去減數(shù),差一A

MOV31H,A;高8位結(jié)果-30H

注意:如果在你的程序中用到了進(jìn)位位,在程序開始的時(shí)候要記得清0進(jìn)位位

21、(1)A210

CJNEA,#OAH,LI;(A)與10比較,不等轉(zhuǎn)LI

UMPLABEL;相等轉(zhuǎn)LABEL

LI:JNCLABEL;(A)大于10,轉(zhuǎn)LABEL

或者:

CLRC

SUBBA,#OAH

JNCLABEL

(2)A>10

CJNEA,#OAH,LI;(A)與10比較,不等轉(zhuǎn)LI

RET;相等結(jié)束

LI:JNCLABEL;(A)大于10,轉(zhuǎn)LABEL

RET;(A)小于10,結(jié)束

或者:

CLRC

SUBBA,#OAH

JNCLI

RET

LI:JNZLABEL

RET

(3)AW10

CJNEA,#OAH,LI;(A)與10比較,不等轉(zhuǎn)LI

L2:UMPLABEL;相等轉(zhuǎn)LABEL

LI:JCL2;(A)小于10,轉(zhuǎn)L2

RET

或者:

CLRC

SUBBA,#OAH

JCLABEL

JZLABEL

RET

22、(SP)=23H,(PC)=3412H

參看書上80頁

23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H

參看書上79頁

24、不能。ACALL是短轉(zhuǎn)指令,可調(diào)用的地址范圍是2KB。

在看這個(gè)題的時(shí)候同時(shí)看一下AJMP指令。同時(shí)考慮調(diào)用指令A(yù)CALL和LCALL指令和RET指

令的關(guān)系。

25、MOVR2,#31H;數(shù)據(jù)塊長(zhǎng)度一R2

MOVRO,#20H;數(shù)據(jù)塊首地址~R0

LOOP:MOVA,@R0;待查找的數(shù)據(jù)一A

CLRC;清進(jìn)位位

SUBBA,#0AAH;待查找的數(shù)據(jù)是OAAH嗎

JZLI;是,轉(zhuǎn)LI

INCRO;不是,地址增1,指向下一個(gè)待查數(shù)據(jù)

DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找

MOV51H,#00H;等于0,未找到,OOHf51H

RET

LI:MOV51H,#01H;找至01H-51H

RET

26、MOVR2,#31H;數(shù)據(jù)塊長(zhǎng)度一R2

MOVRO,#20H;數(shù)據(jù)塊首地址fRO

LOOP:MOVA,@R0;待查找的數(shù)據(jù)一A

JNZLI;不為0,轉(zhuǎn)LI

INC51H;為0,OOH個(gè)數(shù)增1

LI:INCRO;地址增1,指向下一個(gè)待查數(shù)據(jù)

DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找

RET

27、MOVDPTR,#SOURCE;源首地址一DPTR

MOVR0,#DIST;目的首地址一R0

LOOP:MOVXA,@DPTR;傳送一個(gè)字符

MOV@R0,A

INCDPTR;指向下一個(gè)字符

INCR0

CJNEA,#24H,LOOP;傳送的是"$”字符嗎?不是,傳送下一個(gè)字符

RET

28、MOVA,R3;取該數(shù)高8位一A

ANLA,#80H;取出該數(shù)符號(hào)判斷

JZL1;是正數(shù),轉(zhuǎn)L1

MOVA,R4;是負(fù)數(shù),將該數(shù)低8位一A

CPLA;低8位取反

ADDA,#01H;力口1

MOVR4,A;低8位取反加1后一R4

MOVA,R3:將該數(shù)高8位fA

CPLA;高8位取反

ADDCA,#00H;加上低8位加1時(shí)可能產(chǎn)生的進(jìn)位

MOVR3,A;高8位取反加1后一R3

LI:RET

29、CLRC;清進(jìn)位位C

MOVA,31H;取該數(shù)低8位fA

RLCA;帶進(jìn)位位左移1位

M0V31H,A;結(jié)果存回31H

MOVA,30H;取該數(shù)高8位一A

RLCA;帶進(jìn)位位左移1位

MOV30H,A;結(jié)果存回30H

30、MOVR2,#04H;字節(jié)長(zhǎng)度fR2

MOVRO,#30H;一個(gè)加數(shù)首地址一RO

MOVRI,#40H;另一個(gè)加數(shù)首地址fRI

CLRC;清進(jìn)位位

LOOP:MOVA,@R0;取一個(gè)加數(shù)

ADDCA,@R1;兩個(gè)加數(shù)帶進(jìn)位位相加

DAA;十進(jìn)制調(diào)整

MOV@RO,A;存放結(jié)果

INCRO;指向下一個(gè)字節(jié)

INCR1;

DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,不等于0,繼續(xù)查找

RET

31、MOVR2,#08H;數(shù)據(jù)塊長(zhǎng)度~R2

MOVRO,#30H;數(shù)據(jù)塊目的地址fRO

MOVDPTR,#2000H;數(shù)據(jù)塊源地址一DPTR

LOOP:MOVXA,@DPTR;傳送一個(gè)數(shù)據(jù)

MOV@RO,A

INCDPTR;指向下一個(gè)數(shù)據(jù)

INCRO;

DJNZR2,LOOP;數(shù)據(jù)塊長(zhǎng)度減1,沒傳送完,繼續(xù)傳送

RET

32、(1)MOVRO,OFH;2字節(jié),2周期4字節(jié)4周期(差)

MOVB,R0;2字節(jié),2周期

(2)MOVRO,#OFH;2字節(jié),1周期4字節(jié)3周期(中)

MOVB,@R0;2字節(jié),2周期

(3)MOVB,#OFH;3字節(jié),2周期3字節(jié)2周期(好)

33、(1)功能是將片內(nèi)RAM中50H-51H單元清0,

(2)7A0A(大家可以看一下書上,對(duì)于立即數(shù)尋址的話,后面一個(gè)字節(jié)存放的是立即數(shù))

7850(第一個(gè)字節(jié)的后三位是寄存器,前一個(gè)條指令是010也就是指的R2,在這里是R0,

所以應(yīng)該是78,后一個(gè)字節(jié)存放的是立即數(shù))DAFC(這里涉及到偏移量的計(jì)算,可以參

考書上56頁)

34、INC@RO;(7EH)=00H

INCR0;(R0)=7FH

INC@RO;(7FH)=39H

INCDPTR;(DPTR)=10FFH

INCDPTR;(DPTR)=1100H

INCDPTR;(DPTR)=1101H

35、解:(1000H)=53H(1001H)=54H(1002H)=41H

(1003H)=52H(1004H)=54H(1005H)=12H

(1006H)=34H(1007H)=30H(1008H)=00H

(1009H)=70H

36、MOVRO,#40H;40H-RO

MOVA,@R0;98H—A

INCRO;41H—R0

ADDA,@R0;98H+(41H)=47H~A

INCRO

MOV@RO,A;結(jié)果存入42H單元

CLRA;清A

ADDCA,#0;進(jìn)位位存入A

INCRO

MOV@RO,A;進(jìn)位位存入43H

功能:將40H,41H單元中的內(nèi)容相加結(jié)果放在42H單元,進(jìn)位放在43H單元,(R0)=43H,

(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H

37、MOVA,61H;F2H-A

MOVB,#02H;02H-B

MULAB;F2HXO2H=E4H-A

ADDA,62H;積的低8位加上CCH-A

MOV63H,A;結(jié)果送62H

CLRA:清A

ADDCA,B;積的高8位加進(jìn)位位一A

MOV64H,A;結(jié)果送64H

功能:將61H單元的內(nèi)容乘2,低8位再加上62H單元的內(nèi)容放入63H,將結(jié)果的高8位放

在64H單元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=BOH,(64H)=02H

39、MOVA,XXH

ORLA,#80H

MOVXXH,A

40、(2)MOVA,XXH

MOVRO,A

XRLA,RO

第五章

1、什么是中斷和中斷系統(tǒng)?其主要功能是什么?

答:當(dāng)CPU正在處理某件事情的時(shí)候,外部發(fā)生的某一件事件請(qǐng)求CPU迅速

去處理,于是,CPU暫時(shí)中止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的事件,中斷服務(wù)

處理完該事件以后,再回到原來被終止的地方,繼續(xù)原來的工作。這種過程稱

為中斷,實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng)。功能:

(1)使計(jì)算機(jī)具有實(shí)時(shí)處理能力,能對(duì)外界異步發(fā)生的事件作出及時(shí)的處

(2)完全消除了CPU在查詢方式中的等待現(xiàn)象,大大提高了CPU的工作

效率

(3)實(shí)現(xiàn)實(shí)時(shí)控制

2、試編寫一段對(duì)中斷系統(tǒng)初始化的程序,使之允許INTO,INTI,TO,串行口

中斷,且使TO中斷為高優(yōu)先級(jí)中斷。

解:MOVIE,#097H

MOVIP,#02H

3、在單片機(jī)中,中斷能實(shí)現(xiàn)哪些功能?

答:有三種功能:分時(shí)操作,實(shí)時(shí)處理,故障處理

4、89c51共有哪些中斷源?對(duì)其中端請(qǐng)求如何進(jìn)行控制?

答:(1)89C51有如下中斷源

①:外部中斷0請(qǐng)求,低電平有效

②:外部中斷1請(qǐng)求,低電平有效

③TO:定時(shí)器、計(jì)數(shù)器0溢出中斷請(qǐng)求

④T1:定時(shí)器、計(jì)數(shù)器1溢出中斷請(qǐng)求

⑤TX/RX:串行接口中斷請(qǐng)求

(2)通過對(duì)特殊功能寄存器TCON、SCON、IE、IP的各位進(jìn)行置位或復(fù)位等

操作,可實(shí)現(xiàn)各種中斷控制功能

5、什么是中斷優(yōu)先級(jí)?中斷優(yōu)先處理的原則是什么?

答:中斷優(yōu)先級(jí)是CPU相應(yīng)中斷的先后順序。原則:

(1)先響應(yīng)優(yōu)先級(jí)高的中斷請(qǐng)求,再響應(yīng)優(yōu)先級(jí)低的

(2)如果一個(gè)中斷請(qǐng)求已經(jīng)被響應(yīng),同級(jí)的其它中斷請(qǐng)求將被禁止

(3)如果同級(jí)的多個(gè)請(qǐng)求同時(shí)出現(xiàn),則CPU通過內(nèi)部硬件查詢電路,按

查詢順序確定應(yīng)該響應(yīng)哪個(gè)中斷請(qǐng)求

查詢順序:外部中斷0-定時(shí)器0中斷一外部中斷1-定時(shí)器1中斷一串行接口

中斷

6、說明外部中斷請(qǐng)求的查詢和響應(yīng)過程。

答:當(dāng)CPU執(zhí)行主程序第K條指令,外設(shè)向CPU發(fā)出中斷請(qǐng)求,CPU接到中

斷請(qǐng)求信號(hào)并在本條指令執(zhí)行完后,中斷主程序的執(zhí)行并保存斷點(diǎn)地址,然后

轉(zhuǎn)去響應(yīng)中斷。CPU在每個(gè)S5P2期間順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)

器周期S6期間按優(yōu)先級(jí)順序查詢中斷標(biāo)志,如果查詢到某個(gè)中斷標(biāo)志為1,將

在接下來的機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理,中斷系統(tǒng)通過硬件自動(dòng)將

相應(yīng)的中斷矢量地址裝入PC,以便進(jìn)入相應(yīng)的中斷服務(wù)程序。中斷服務(wù)完畢后,

CPU返回到主程序第K+1條指令繼續(xù)執(zhí)行。

7、89c51在什么條件下可響應(yīng)中斷?

答:

(1)有中斷源發(fā)出中斷請(qǐng)求

(2)中斷中允許位EA=1.即CPU開中斷

(3)申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽

(4)無同級(jí)或更高級(jí)中斷正在服務(wù)

(5)當(dāng)前指令周期已經(jīng)結(jié)束

(6)若現(xiàn)行指令為RETI或訪問IE或IP指令時(shí),該指令以及緊接著的另

一條指令已執(zhí)行完畢

8、簡(jiǎn)述89c51單片機(jī)的中斷響應(yīng)過程。

答:CPU在每個(gè)機(jī)器周期S5P2期間順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器

周期S6期間按優(yōu)先級(jí)順序查詢中斷標(biāo)志,如查詢到某個(gè)中斷標(biāo)志為1,將在接

下來的機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理,中斷系統(tǒng)通過硬件自動(dòng)將相應(yīng)

的中斷矢量地址裝入PC,以便進(jìn)入相應(yīng)的中斷服務(wù)程序。一旦響應(yīng)中斷,89C51

首先置位相應(yīng)的中斷“優(yōu)先級(jí)生效”觸發(fā)器,然后由硬件執(zhí)行一條長(zhǎng)調(diào)用指令,

把當(dāng)前的PC值壓入堆棧,以保護(hù)斷點(diǎn),再將相應(yīng)的中斷服務(wù)的入口地址送入

PC,于是CPU接著從中斷服務(wù)程序的入口處開始執(zhí)行。對(duì)于有些中斷源,CPU

在響應(yīng)中斷后會(huì)自動(dòng)清除中斷標(biāo)志。

9、在89c51內(nèi)存中,應(yīng)如何安排程序區(qū)?

答:主程序一般從0030H開始,主程序后一般是子程序及中斷服務(wù)程序。在這

個(gè)大家還要清除各個(gè)中斷的中斷矢量地址。

10、試述中斷的作用及中斷的全過程。

答:作用:對(duì)外部異步發(fā)生的事件作出及時(shí)的處理

過程:中斷請(qǐng)求,中斷響應(yīng),中斷處理,中斷返回

11、當(dāng)正在執(zhí)行某一個(gè)中斷源的中斷服務(wù)程序時(shí),如果有新的中斷請(qǐng)求出現(xiàn),

試問在什么情況下可響應(yīng)新的中斷請(qǐng)求?在什么情況下不能響應(yīng)新的中斷請(qǐng)

求?

答:(1)符合以下6個(gè)條件可響應(yīng)新的中斷請(qǐng)求:

a)有中斷源發(fā)出中斷請(qǐng)求

b)中斷允許位EA=L即CPU開中斷

c)申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽

d)無同級(jí)或更高級(jí)中斷正在被服務(wù)

e)當(dāng)前的指令周期已結(jié)束

f)若現(xiàn)行指令為RETI或訪問IE或IP指令時(shí),該指令以及緊接著的另

一條指令已被執(zhí)行完

12.89C51單片機(jī)外部中斷源有幾種觸發(fā)中斷請(qǐng)求的方法?如何實(shí)現(xiàn)中斷請(qǐng)求?

答:有兩種方式:電平觸發(fā)和邊沿觸發(fā)

電平觸發(fā)方式:CPU在每個(gè)機(jī)器周期的S5P2期間采樣外部中斷引腳的輸入電

平。若為低電平,使lEl(IEO)置T,申請(qǐng)中斷;若為高電平,則lEl(IEO)清

零。

邊沿觸發(fā)方式:CPU在每個(gè)機(jī)器周期S5P2期間采樣外部中斷請(qǐng)求引腳的輸入電

平。如果在相繼的兩個(gè)機(jī)器周期采樣過程中,一個(gè)機(jī)器周期采樣到外部中斷請(qǐng)

求為高電平,接著下一個(gè)機(jī)器周期采樣到外部中斷請(qǐng)求為低電平,則使lEl(IEO)

置“1”申請(qǐng)中斷;否則,lEl(IEO)置0。

13、89c51單片機(jī)有五個(gè)中斷源,但只能設(shè)置兩個(gè)中斷優(yōu)先級(jí),因此,在中斷優(yōu)

先級(jí)安排上受到一定的限制。試問以下幾種中斷優(yōu)先順序的安排(級(jí)別由高到

低)是否可能:若可能,則應(yīng)如何設(shè)置中斷源的中斷級(jí)別:否則,請(qǐng)簡(jiǎn)述不可

能的理由。

⑴定時(shí)器0,定時(shí)器1,外中斷0,外中斷1,串行口中斷。

可以,MOVIP,#0AH

(2)串行口中斷,外中斷0,定時(shí)器0,外中斷1,定時(shí)器1。

可以,MOVIP,#10H

⑶外中斷0,定時(shí)器1,外中斷1,定時(shí)器0,串行口中斷。

不可以,只能設(shè)置一級(jí)高級(jí)優(yōu)先級(jí),如果將INTO,T1設(shè)置為高級(jí),而T0級(jí)別高

于INT1.

⑷外中斷0,外中斷1,串行口中斷,定時(shí)器0,定時(shí)器1。

可以,MOVIP,#15H

(5)串行口中斷,定時(shí)器0,外中斷0,外中斷1,定時(shí)器1。

不可以

(6)外中斷0,外中斷1,定時(shí)器0,串行口中斷,定時(shí)器1。

不可以

⑺外中斷0,定時(shí)器1,定時(shí)器0,外中斷1,串行口中斷。

可以,MOVIP,#09H

14、89c51各中斷源的中斷標(biāo)志是如何產(chǎn)生的?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論