2023年單片機(jī)原理及接口技術(shù)第二版李全利主編課后答案_第1頁
2023年單片機(jī)原理及接口技術(shù)第二版李全利主編課后答案_第2頁
2023年單片機(jī)原理及接口技術(shù)第二版李全利主編課后答案_第3頁
2023年單片機(jī)原理及接口技術(shù)第二版李全利主編課后答案_第4頁
2023年單片機(jī)原理及接口技術(shù)第二版李全利主編課后答案_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1.第一臺計(jì)算機(jī)的問世有何意義?

答:第一臺電子數(shù)字計(jì)算機(jī)ENIAC問世,標(biāo)志著計(jì)算機(jī)時代的到來。與現(xiàn)代的計(jì)算機(jī)相比,EN

IAC有許多局限性,但它的問世開創(chuàng)了計(jì)算機(jī)科學(xué)技術(shù)的新紀(jì)元,對人類的生產(chǎn)和生活方式產(chǎn)生了巨

大的影響。

2.計(jì)算機(jī)由哪幾部分組成?

答:由運(yùn)算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備組成,運(yùn)算器與控制器合稱為CPU。

3.微型計(jì)算機(jī)由哪幾部分構(gòu)成?

答:微型計(jì)算機(jī)由微解決器、存儲器和I/O接口電路構(gòu)成。各部分通過地址總線(AB)、數(shù)據(jù)

總線(DB)和控制總線(CB)相連。

4.微解決器與微型計(jì)算機(jī)有何區(qū)別?

答:微解決器集成了運(yùn)算器和控制器(即CPU);而微型計(jì)算機(jī)包含微解決器、存儲器和I/O

接口電路等。

5.什么叫單片機(jī)?其重要特點(diǎn)有哪些?

答:在一片集成電路芯片上集成微解決器、存儲器、I/O接口電路,從而構(gòu)成了單芯片微型計(jì)算

機(jī),即單片機(jī)。單片機(jī)重要特點(diǎn)有:控制性能和可靠性高;體積小、價格低、易于產(chǎn)品化;具有良好

的性能價格比。。

6.微型計(jì)算機(jī)有哪些應(yīng)用形式?各適于什么場合?

答:微型計(jì)算機(jī)有三種應(yīng)用形式:多板機(jī)(系統(tǒng)機(jī))、單板機(jī)和單片機(jī)。

多板機(jī),通常作為辦公或家庭的事務(wù)解決及科學(xué)計(jì)算,屬于通用計(jì)算機(jī)。

單板機(jī),I/O設(shè)備簡樸,軟件資源少,使用不方便。初期重要用于微型計(jì)算機(jī)原理的教學(xué)及簡

樸的測控系統(tǒng),現(xiàn)在已很少使用。

單片機(jī),單片機(jī)體積小、價格低、可靠性高,其非凡的嵌入式應(yīng)用形態(tài)對于滿足嵌入式應(yīng)用需

求具有獨(dú)特的優(yōu)勢。目前,單片機(jī)應(yīng)用技術(shù)已經(jīng)成為電子應(yīng)用系統(tǒng)設(shè)計(jì)的最為常用技術(shù)手段。

7.當(dāng)前單片機(jī)的重要產(chǎn)品有哪些?各有何特點(diǎn)?

答:數(shù)年來的應(yīng)用實(shí)踐已經(jīng)證明,80C51的系統(tǒng)結(jié)構(gòu)合理、技術(shù)成熟。因此,許多單片機(jī)芯

片生產(chǎn)廠商傾力于提高80c51單片機(jī)產(chǎn)品的綜合功能,從而形成了80c51的主流產(chǎn)品地位,近

年來推出的980c51兼容的重要產(chǎn)品芍:

?ATMEL公司融入Flash存儲器技術(shù)推出的AT89系列單片機(jī);

?Philips公司推出的80c51、80c552系列高性能單片機(jī);

?華邦公司推出的W78c51、W77C51系列高速低價單片機(jī);

?ADI公司推出的ADuC8xx系列高精度ADC單片機(jī);

?LG公司推出的GMS90/97系列低壓高速單片機(jī);

■Maxim公司推出的DS89c420高速(50MIPS)單片機(jī);

?Cygna1公司推出的C8051F系列高速S0C單片機(jī)等。

8.簡述單片機(jī)的開發(fā)過程。

答:系統(tǒng)需求分析,硬件方案設(shè)計(jì),軟件編程,仿真調(diào)試,實(shí)際運(yùn)營。

9.單片機(jī)應(yīng)用系統(tǒng)開發(fā)方法有哪些新方法?

答:在系統(tǒng)編程(ISP)技術(shù),在應(yīng)用編程QAP)技術(shù)。

章280c51的結(jié)構(gòu)和原理

1.80C51單片機(jī)在功能上、工藝上、程序存儲器的配置上有哪些種類?

答:功能上分為基本型和增強(qiáng)型;

工藝上分為HM0S工藝和CHM0S工藝;

在片內(nèi)程序存儲器的配置上有掩膜ROM、EPROM和Flash、無片內(nèi)程序存儲器形式。

2.80C51單片機(jī)的存儲器的組織采用何種結(jié)構(gòu)?存儲器地址空間如何劃分?各地址空間的地

址范圍和容量如何?在使用上有何特點(diǎn)?

答:采用哈佛結(jié)構(gòu),在物理上設(shè)計(jì)成程序存儲器和數(shù)據(jù)存儲器兩個獨(dú)立的空間;80c51基本型

單片機(jī)片內(nèi)程序存儲器為4KB,地址范圍是OOOOH-OFFFH,用于存放程序或常數(shù);片內(nèi)數(shù)據(jù)存儲

器為128字節(jié)RAM,地址范圍是OOH-7FH,用于存放運(yùn)算的中間結(jié)果、暫存數(shù)據(jù)和數(shù)據(jù)緩沖;此

夕卜在8OH—FFH還配有21個SFRo

3.80c51單片機(jī)的PO~P3口在結(jié)構(gòu)上有何不同?在使用上有何特點(diǎn)?

答:作為通用I/O口時,P0、Pl、P2和P3都是準(zhǔn)雙向口。

P0可以作為地址/數(shù)據(jù)總線,此時是一個真正的雙向口;P2口可以作為地址線的高8位;P3

口是雙功能口,每條口線還具有不同的第二功能。

此外,P0口的驅(qū)動能力為8個TTL負(fù)載,而其它口僅可驅(qū)動4個TTL負(fù)載。

4.假如80c51單片機(jī)晶振頻率分別為6MHz.11.0592MHz、12MHz時,機(jī)器周期分別

為多少?

答:機(jī)器周期分別為2us,1.085us,1uso

5.80c51單片機(jī)復(fù)位后的狀態(tài)如何?復(fù)位方法有幾種?

答:復(fù)位后,PC內(nèi)容為0000H,P0口?P3口內(nèi)容為FFH,SP內(nèi)容為07H,SBUF內(nèi)容不定,

IP、IE和PC0N的有效位為0,其余的特殊功能寄存器的狀態(tài)均為OOHo

復(fù)位方法一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。

6.80C51單片機(jī)的片內(nèi)、片外存儲器如何選擇?

答:80c51的曲引腳為訪問片內(nèi)、片外程序存儲器的選擇端。訪問片內(nèi)、片外數(shù)據(jù)存儲器需

要采用不同的指令加以區(qū)分。

7.80C51單片機(jī)的PSW寄存器各位標(biāo)志的意義如何?

答:CY:進(jìn)位、借位標(biāo)志。有進(jìn)位、借位時CY=1,否則CY=0;

AC:輔助進(jìn)位、借位標(biāo)志(高半字節(jié)與低半字節(jié)間的進(jìn)位或借位);

F0:用戶標(biāo)志位,由用戶自己定義;

RSI、RS0:當(dāng)前工作寄存器組選擇位;

0Y:溢出標(biāo)志位。有溢出時0W1,否則0W0;

P:奇偶標(biāo)志位。存于ACC中的運(yùn)算結(jié)果有奇數(shù)個1時P=1,否則PR。

8.80C51單片機(jī)的當(dāng)前工作寄存器組如何選擇?

答:當(dāng)前工作寄存器組的選擇由特殊功能寄存器中的程序狀態(tài)字寄存器PSW的RSI、RSO來

決定。

9.80C51單片機(jī)的控制總線信號有哪些?各信號的作用如何?

答:RST/VPD:復(fù)位信號輸入引腳/備用電源輸入引腳;ALE/fSoG:地址鎖存允許信號輸出

引腳/編程脈沖輸入引腳;EA/VPP:內(nèi)外存儲器選擇引腳/片內(nèi)EPROM(或F1ashROM)編程

電壓輸入引腳;由函:外部程序存儲器選通信號輸出引腳。

10.80C51單片機(jī)的程序存儲器低端的幾個特殊單元的用途如何?

答:0000H:單片機(jī)復(fù)位入口地址;0003H:外部中斷0的中斷服務(wù)程序入口地址;000BH:定

期/計(jì)數(shù)器0溢出中斷服務(wù)程序入口地址;0013H:外部中斷1的中斷服務(wù)程序入口地址;001BH:

定期/計(jì)數(shù)器1溢出中斷服務(wù)程序入口地址;0023H:串行口的中斷服務(wù)程序入口地址。

章380C51的指令系統(tǒng)

1.80C51系列單片機(jī)的指令系統(tǒng)有何特點(diǎn)?

答:執(zhí)行時間短。1個機(jī)器周期指令有64條,2個機(jī)器周期指令有45條,而4個機(jī)器周期指令僅

有2條(即乘法和除法指令);

指令編碼字節(jié)少。單字節(jié)的指令有49條,雙字節(jié)的指令有45條,三字節(jié)的指令僅有17條;

位操作指令豐富。這是80c51單片機(jī)面向控制特點(diǎn)的重要保證。

2.80C51單片機(jī)有哪幾種尋址方式?各尋址方式所相應(yīng)的寄存器或存儲器空間如何?

答:80c51單片機(jī)的尋址方式有七種。即:寄存器尋址、直接尋址、寄存器間接尋址、立即尋

址、基址寄存器加變址寄存器變址尋址、相對尋址和位尋址。

這些尋址方式所相應(yīng)的寄存器和存儲空間如下表所示。

號序?qū)ず眉拇嫫骰虼鎯臻g

書器奇仔器ROR7,A、AB、DPTR

1i-nr,而4r更力門奧)

I荽尋片內(nèi)kA「低『8字節(jié)、SF

2R

廳內(nèi)RAM(@RO,@R1,SP)

3片外RAM(@RO,@R

101,@DPTR)

4立即尋ROM

南址尋

5ROM(@A十DPTR,@A十。

甫對尋C)

6ROM(、也當(dāng)明值的+127

址-128字節(jié))

位尋址20H號需1落需部RAM

7日和部分SF

3.訪問特殊功能寄存器SFR可以采用哪些尋址方式?

答:直接尋址和位尋址方式U

4.訪問內(nèi)部RAM單元可以采用哪些尋址方式?

答:直接尋址、寄存器間接尋址和位尋址方式。

5.訪問外部RAM單元可以采用哪些尋址方式?

答:寄存器間接尋址。

6.訪問外部程序存儲器可以采用哪些尋址方式?

答:立即尋址、變址尋址和相對尋址方式。

7.為什么說布爾解決功能是80C51單片機(jī)的重要特點(diǎn)?

答:單片機(jī)指令系統(tǒng)中的布爾指令集、存儲器中的位地址空間與CFU中的位操作構(gòu)成了片內(nèi)的布

爾功能系統(tǒng),它可對位(bit)變量進(jìn)行布爾解決,如置位、清零、求補(bǔ)、測試轉(zhuǎn)移及邏輯“與”、

“或”等操作。在實(shí)現(xiàn)位操作時,借用了程序狀態(tài)標(biāo)志器(PSW)中的進(jìn)位標(biāo)志Cy作為位操作的“累

加器”。

8.對于80C52單片機(jī)內(nèi)部RAM還存在高128字節(jié),應(yīng)采用何種方式訪問?

答:寄存器間接尋址方式。

9.試根據(jù)指令編碼表寫出下列指令的機(jī)器碼。

(l)MOVA,#88H------------------74H,88H

(2)MOVR3,50H-------------------ABH,50H

(3)MOVPl,#55H-----------75H,90H,55H

(4)ADDA,@R1---------------------------27H

(5)SETB12H-------------------------D2H,12H

10.完畢某種操作可以采用幾條指令構(gòu)成的指令序列實(shí)現(xiàn),試寫出完畢以下每種操作的指令序

列。

⑴將R0的內(nèi)容傳送到R1;

(2)內(nèi)部RAM單元60H的內(nèi)容傳送到寄存器R2;

(3)外部RAM單元1000H的內(nèi)容傳送到內(nèi)部RAM單元60H;

(4)外部RAM單元1000H的內(nèi)容傳送到寄存器R2;

(5)外部RAM單元1000H的內(nèi)容傳送到外部RAM單元2023H。

答:(1)MOVA,RO

MOVRI,A

(2)MOVR2,60H

(3)MOVDPTR,#1000H

MOVXA,@DPTR

MOV6OH,A

(4)MOVDPTR,#1000H

MOVXA,@DPTR

MOVR2,A

(5)MOVDPTR,#1000H

MOVXA,@DPTR

MOVDPTR,#2023H

MOVX@DPTR,A

IL若(RI)=30H,(A)=40H,(30H)=60H,(40H)=08Ho試分析執(zhí)行下列程序段后上述各

單元內(nèi)容的變化。

MOVA,@R1

MOV@R1,40H

MOV4OH,A

MOVRI,#7FH

答:(R1)=7FH

(A)=60H

(30H)=08H

(4OH)=60H

12.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,試寫出

下列各指令獨(dú)立執(zhí)行后有關(guān)寄存器和存儲單元的內(nèi)容?若該指令影響標(biāo)志位,試指出CY、AC、和

0V的值。

(1)MOVA,@R0

(2)ANL40H,#0FH

(3)ADDA,R4

(4)SWAPA

(5)DEC@R1

(6)XCHDA,@R1

答:(1)(A)=2CH

(2)(40H)=0CH

(3)(A)=22H,(CY)=1,(AC)=1,(OV)=0

(4)(A)=8EH

(5)(20H)=0EH,P=1

(6)(A)-EFH,(20)-08H

13.若(50H)=40H,試寫出執(zhí)行以下程序段后累加器A、寄存器R0及內(nèi)部RAM的4OH、41H、

42H單元中的內(nèi)容各為多少?

MOVA,50H

MOVRO,A

MOVA,#00H

MOV@RO,A

MOVA,#3BH

MOV41H,A

MOV42H,41H

答:(A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH0

14.試用位操作指令實(shí)現(xiàn)下列邏輯操作v規(guī)定不得改變未涉及的位的內(nèi)容V

(1)使ACC.0置位;

⑵清除累加器高4位;

(3)清除ACC.3,ACC.4,ACC.5,ACC.6。

答:(1)SETBACC.0

(2)ANLA,itOFH

(3)ANLA,#87H

15.試編寫程序,將內(nèi)部RAM的20H、21H、22H三個連續(xù)單元的內(nèi)容依次存入2FH、2EH和

2DH單元。

答:MOV2FH,2OH

MOV2EH,21H

MOV2DH,22H

16.試編寫程序,完畢兩個16位數(shù)的減法:7F4DH-2B4EH,結(jié)果存入內(nèi)部RAM的30H和3

1H單元,30H單元存差的高8位,31H單元存差的低8位。

答:CLRCY

MOV30H,#7FH

MOV31H,#4DH

MOVRO,#31H

MOVA,@R0

SUBBA,#4E

MOV@R0,A;保存低字節(jié)相減結(jié)果

DECRO

MOVA,@R0

SUBBA,#2BH

MOV@RO,A;保存高字節(jié)相減結(jié)果

17.試編寫程序,將RI中的低4位數(shù)與R2中的高4位數(shù)合并成一個8位數(shù),并將其存放在R

1中。

答:MOVA,R2

ANLA,#OFOH

ORLRI,A

18.試編寫程序,將內(nèi)部RAM的20H、21H單元的兩個無符號數(shù)相乘,結(jié)果存放在R2、R3

中,R2中存放高8位,R3中存放低8位。

答:MOVA,20H

MOVB,21H

MULAB

MOVR3,A

MOVR2,B

19.若£丫)=1,(Pl)=l010001IB,(P3)=01101lOOBo試指出執(zhí)行下列程序段后,CY、Pl口

及P3口內(nèi)容的變化情況。

MOVP1.3,C

MOVP1.4,C

MOVC,Pl.6

MOVP3.6,C

MOVC,P1.0

MOVP3.4,C

答:(CY)=1,(Pl)=10111011B,(P3)=00111100B

章480C51的匯編語言程序設(shè)計(jì)

1.80C51單片機(jī)匯編語言有何特點(diǎn)?

答:匯編語言結(jié)構(gòu)緊湊、靈活,匯編成的目的程序效率高,具有占存儲空間少、運(yùn)營速度快、實(shí)

時性強(qiáng)等優(yōu)點(diǎn)。它是面向機(jī)器的語言,對于單片機(jī)硬件的操作直接、方便,有助于初學(xué)者對單片機(jī)

結(jié)構(gòu)的認(rèn)知U

但它與高級語言相比移植性不好、編程復(fù)雜、對編程人員的基礎(chǔ)規(guī)定高。

2,運(yùn)用80c51單片機(jī)匯編語言進(jìn)行程序設(shè)計(jì)的環(huán)節(jié)如何?

答:一、任務(wù)分析

一方面,要對單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)目的進(jìn)行進(jìn)一步分析,明確系統(tǒng)設(shè)計(jì)任務(wù):功能規(guī)定和技術(shù)

指標(biāo)。然后對系統(tǒng)的運(yùn)營環(huán)境進(jìn)行調(diào)研。這是應(yīng)用系統(tǒng)程序設(shè)計(jì)的基礎(chǔ)和條件。

二、算法設(shè)計(jì)

通過任務(wù)分析和環(huán)境調(diào)研后,已經(jīng)明確的功能規(guī)定和技術(shù)指標(biāo)可以用數(shù)學(xué)方法(或模型)來描

述,進(jìn)而把一個實(shí)際的系統(tǒng)規(guī)定轉(zhuǎn)化成由計(jì)算機(jī)進(jìn)行解決的算法。并對各種算法進(jìn)行分析比較,并

進(jìn)行合理的優(yōu)化。

三、流程描述

程序的總體構(gòu)建。先要擬定程序結(jié)構(gòu)和數(shù)據(jù)形式,資源分派和參數(shù)計(jì)算等。然后根據(jù)程序運(yùn)營

的過程,規(guī)劃程序執(zhí)行的邏輯順序,用圖形符號將程序流程繪制在平面圖上。應(yīng)用程序的功能通常

可以分為若干部分,用流程圖將具有一定功能的各部分有機(jī)地聯(lián)系起來。

流程圖可以分為總流程圖和局部流程圖??偭鞒虉D側(cè)重反映程序的邏輯結(jié)構(gòu)和各程序模塊之間

的互相關(guān)系;局部流程圖反映程序模塊的具體實(shí)行細(xì)節(jié)。

3.常用的程序結(jié)構(gòu)有哪幾種?特點(diǎn)如何?

答:順序程序:無分支、無循環(huán)結(jié)構(gòu)的程序,其執(zhí)行流程是依指令在存儲器中的存放順序進(jìn)行的;

分支程序:可以改變程序的執(zhí)行順序;

循環(huán)程序:按某種控制規(guī)律反復(fù)執(zhí)行的程序,控制一部分指令反復(fù)執(zhí)行若干次,以便用簡短的

程序完畢大量的解決任務(wù)。

4,子程序調(diào)用時,參數(shù)的傳遞方法有哪幾種?

答:運(yùn)用累加器或寄存器;運(yùn)用存儲器;運(yùn)用堆棧。

5.什么是偽指令?常用的偽指令功能如何?

答:偽指令是匯編程序可以辨認(rèn)并對匯編過程進(jìn)行某種控制的匯編命令。常用的偽指令涉及:

ORG,功能是向匯編程序說明下面緊接的程序段或數(shù)據(jù)段存放的起始地址;

END,功能是結(jié)束匯編;

DB,功能是從標(biāo)號指定的地址單元開始,在程序存儲器中定義字節(jié)數(shù)據(jù);

DW,功能是從標(biāo)號指定的地址單元開始,在程序存儲器中定義字?jǐn)?shù)據(jù)空間;

EQU,功能是將表達(dá)式的值或特定的某個匯編符號定義為一個指定的符號名;

BIT,功能是將位地址賦給指定的符號名。

6,設(shè)被加數(shù)存放在內(nèi)部RAM的20H、21H單元,加數(shù)存放在22H、23H單元,若規(guī)定和存放在

24H、25H中,試編寫出16位無符號數(shù)相加的程序(采用大端模式存儲)。

答:程序如下:

ORG00OOH

MOVRO,#2

MOVRI,#23H

MOVA,@R0

ADDA,@R1

MOV25H,A

DECRO

DECRI

MOVA,@R0

ADDCA,@R1

MOV24H,A

SJMP$

END

7.編寫程序,把外部RAM中10OOHlOlFH的內(nèi)容傳送到內(nèi)部RAM的30H~4FH中。

答:ORG0000H

MOVDPTR,#1OOOH

MOVRO,#30H

MOVR7,#32

LOOP:MOVXA,?DPTR

MOV@R0,A

INCRO

INCDPTR

DJNZR7,LOOP

RET

8.編寫程序,實(shí)現(xiàn)雙字節(jié)無符號數(shù)加法運(yùn)算,規(guī)定(ROR1)+(R6R7)f(60H61H)。

答:ORGOOOOH

MOVA,RI

ADDA,R7

MOV61H,A

MOVA,RO

ADDCA,R6

MOV60H,A

SJMP$

END

9.若80c51的晶振頻率為6MHz,試計(jì)算延時子程序的延時時間。

DELAY:MOVR7,#0F6H

LP:M0VR6,#0FAH

DJNZR6,$

DJNZR7,LP

RET

答:延時時間:2M*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含調(diào)用指令2

個機(jī)器周期)

10.在內(nèi)部RAM的30H?37H單元存有一組單字節(jié)無符號數(shù)。規(guī)定找出最大數(shù)存入BIG單元。

試編寫程序?qū)崿F(xiàn)。

答:ORG00OOH

BIGDATA2FH

ONEDATA2AH

TWODATA2BH

START:MOVR7,#7;比較次數(shù)

MOVRO,#30H

LOOP:MOVA,0R0

MOVONE,A

INCRO

MOVTWO,@R0

CLRC

SUBBA,@R0

JCNEXT;ONE小,TWO大繼續(xù)比下一對數(shù)

MOV@R0,0NE;ONE大放后面(互換)

DECRO

MOV@R0,TWO;TWO小放前面

INCRO

NEXT:DJNZR7,LOOP

MOVBIG,37H

SJMP$

。END

11.編寫程序,把累加器A中的二進(jìn)制數(shù)變換成3位BCD碼,并將百、十、個位數(shù)分別存放在

內(nèi)部RAM的50H、5UK52H中。

答:單字節(jié)二進(jìn)制數(shù)轉(zhuǎn)換為壓縮的BCD碼僅需要2個字節(jié);在將壓縮的BCD碼拆分存于3個單

兀0

org0

MOV52H,#0

。MOV51H,#0

8MOV50H,#0

sMOVA,#0FDh

8LCALLDCDTH

sSJMP$

DCDTH:MOVR7,#8

MOVRO,A;暫存于RO

LOOP:CLRC

MOVA,RO

RLCA

MOVRO,A

。MOVRI,#51H;

MOVA,@R1;

ADDCA,0R1;

DAA;

MOV@R1,A;

。DECRI

MOVA,@R1

ADDCA,0R1

DAA

MOV@R1,A

DJNZR7,LOOP。

sINCRI;50H已是結(jié)果,RI指向51H,51H單元需拆分

sMOVA,#00H

>XCHDA,@R1

。MOV52H,A

8MOVA,@R1

sSWAPA

。MOV@R1,A?

RET

。END

12.編寫子程序,將RI中的2個十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼后存放在R3和R4中。

答:0RG0

MOVRl,#5BH

MOVA,RI

ANLA,#0F0H

SWAPA

ACALLASCII

MOVR3,Ao

MOVA,RI

ANLA,#0FH

ACALLASCII

MOVR4,A

SJMP

ASCII:PUSHACC

CLRC

SUBBA,#OAH

POPACC

JCLOOP

ADDA,#07H

LOOP:ADDA,#30H

RET

END

13.編寫程序,求內(nèi)部RAM中5Of59H十個單元內(nèi)容的平均值,并存放在5AH單元。

答:0RG0000H

MOVR7,#10

MOVR0,#50H

MOVB,#10

CLRC

CLRA

LOOP:ADDCA,@R0

INCRO

DJNZR7,LOOP

DIVAB

MOV5AH,A

SJMP$

END

14.如圖4.10所示,編制程序?qū)崿F(xiàn):上電后顯示,有鍵按下時顯示相應(yīng)的鍵號“0”

an,,

答:實(shí)現(xiàn)程序如下:

TEMPEQU30H

oORG0000H

ooJMPSTART

oORG010OH

START:MOVSP,#5FH

MOVPO,#8CH;正序顯示〃P〃

。MOVP3,#OFFH;輸入方式

。CLRCY

NOKEY:MOVA,P3

CPLA

JZNOKEY;無鍵按下

。MOVTEMP,P3;有鍵按下

oCALLDIOms

MOVA,P3

oCJNEA,TEMP,NOKEY;去抖動

MOVR2,#0;鍵號計(jì)數(shù)器復(fù)位

oMOVA,TEMP

LP:RRCA

JNCDONE

oINCR2

SJMPLP

DONE:MOVA,R2

8MOVDPTR,#C0DEPO

00MOVCA,0A+DPTR

MOVPO,A

JMPNOKEY

DIOms:MOVR5,#10;10MS

Dims:MOVR4,#249

DL:NOP

NOP

DJNZR4,DL

DJNZR5,D1ms

RET

CODE_PO:

DB0C0H,0F9H,0A4H,0BOH,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH

ENDs

章580C51的中斷系統(tǒng)及定期/計(jì)數(shù)器

1.80C51有幾個中斷源?各中斷標(biāo)志是如何產(chǎn)生的?又是如何復(fù)位的?CPU響應(yīng)各中斷時,

其中斷入口地址是多少?

答:5個中斷源,分別為外中斷而再和而i、TO和T1溢出中斷、串口中斷。

電平方式觸發(fā)的外中斷標(biāo)志與引腳信號一致;邊沿方式觸發(fā)的外中斷響應(yīng)中斷后由硬件自動

復(fù)位。

TO和Tl,CPU響應(yīng)中斷時,由硬件自動復(fù)位。

RI和TI,由硬件置位。必須由軟件復(fù)位。

此外,所有能產(chǎn)生中斷的標(biāo)志位均可由軟件置位或復(fù)位。

各中斷入口地址:麗一0003H,TO-OOOBH,而一0013H,口一001BH,RI和T1一

0023Ho

2.某系統(tǒng)有三個外部中斷源1、2、3,當(dāng)某一中斷源變低電平時便規(guī)定CPU解決,它們的優(yōu)先

解決順序由高到低為3、2、1,解決程序的入口地址分別為2023H、2100H、2200比試編寫主

程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的入口即可)。

答:將3個中斷信號經(jīng)電阻線或,接而。

0RG0000H

LJMPMAIN

0RG00013H

LJMPZDFZ

ORG0040H

MAIN:SETBEA

SETBEX1

SJMP

0RG0200H

ZDFZ:PUSHPSW

PUSHACC

JBP1.0,DV0

JBPl.1,DVI

JBPl.2,DV2

INRET:POPACC

POPPSW

RETI

ORG2023H

DVO:----------

JMPINRET

ORG2100H

DVI:―

JMPINRET

ORG22OOH

DV2:------------------

JMPINRET

3.外部中斷源有電平觸發(fā)和邊沿觸發(fā)兩種觸發(fā)方式,這兩種觸發(fā)方式所產(chǎn)生的中斷過程有何

不同?如何設(shè)定?

答:當(dāng)口0二0時,而而為電平觸發(fā)方式。電平觸發(fā)方式時,CPU在每個機(jī)器周期的S5P2采樣而而

引腳電平,當(dāng)采樣到低電平時,置IEO=1向CPU請求中斷;采樣到高電平時,將IE0清0。在電平

觸發(fā)方式下,CPU響應(yīng)中斷時,不能自動清除IE0標(biāo)志。

電平觸發(fā)方式時,外部中斷源的有效低電平必須保持到請求獲得響應(yīng)時為止,不然就會漏掉;在

中斷服務(wù)結(jié)束之前,中斷源的有效的低電平必須撤除,否則中斷返回之后將再次產(chǎn)生中斷。該方式

適合于外部中斷輸入為低電平,且在中斷服務(wù)程序中能清除外部中斷請求源的情況。

當(dāng)“0二1時,而而為邊沿觸發(fā)方式,邊沿觸發(fā)方式時,CPU在每個機(jī)器周期的S5P2采樣麗引

腳電平,假如在連續(xù)的兩個機(jī)器周期檢測到麗引腳由高電平變?yōu)榈碗娖?,即第一個周期采樣到

而J-1,第二個周期采樣到而J=0,則置IE0-1,產(chǎn)生中斷請求。在邊沿觸發(fā)方式下,CPU響應(yīng)中斷

時,能由硬件自動清除IE0標(biāo)志。

邊沿觸發(fā)方式時,在相繼兩次采樣中,先采樣到外部中斷輸入為高電平,下一個周期采樣到為

低電平,則在IE0或IE1中將鎖存一個邏輯1。若CPU暫時不能響應(yīng),中斷申請標(biāo)志也不會丟失,

直到CPU響應(yīng)此中斷時才清0。此外,為了保證下降沿可以被可靠地采樣到,市而和而T引腳上的

負(fù)脈沖寬度至少要保持一個機(jī)器周期(若晶振頻率為12MHz,為1微秒)。邊沿觸發(fā)方式適合于以負(fù)

脈沖形式輸入的外部中斷請求。

4.定期/計(jì)數(shù)器工作于定期和計(jì)數(shù)方式時有何異同點(diǎn)?

答:定期/計(jì)數(shù)器實(shí)質(zhì)是加1計(jì)數(shù)器。

不同點(diǎn):設(shè)立為定期器模式時,加1計(jì)數(shù)器是對內(nèi)部機(jī)器周期計(jì)數(shù)(1個機(jī)器周期等于12個

振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1/12)。計(jì)數(shù)值乘以機(jī)器周期就是定期時間。設(shè)立為計(jì)數(shù)器模式

時,外部事件計(jì)數(shù)脈沖由TO或T1引腳輸入到計(jì)數(shù)器°在每個機(jī)器周期的S5P2期間采樣TO、T

1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計(jì)數(shù)器加1,更新

的計(jì)數(shù)值在下一個機(jī)器周期的S3P1期間裝入計(jì)數(shù)器。

相同點(diǎn):它們的工作原理相同,它們都有4種工作方式,由TMOD中的M1M0設(shè)定,即

方式0:13位計(jì)數(shù)器;

方式1:16位計(jì)數(shù)器;

方式2:具有自動重裝初值功能的8位計(jì)數(shù)器;

方式3:T0分為兩個獨(dú)立的8位計(jì)數(shù)器,T1停止工作。

5.定期/計(jì)數(shù)器的4種工作方式各有何特點(diǎn)?

答:方式0位13位計(jì)數(shù)器,由TL0的低5位(高3位未用)和?的8位組成。TL0的低

5位溢出時向THO進(jìn)位,TH0溢出時,置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請求。

計(jì)數(shù)初值計(jì)算的公式為:X=2,3-N

方式1的計(jì)數(shù)位數(shù)是16位,由TLO作為低8位、THO作為高8位,組成了16位加1計(jì)數(shù)器。

計(jì)數(shù)個數(shù)與計(jì)數(shù)初值的關(guān)系為:X=216-N

方式2為自動重裝初值的8位計(jì)數(shù)方式。THO為8位初值寄存器。當(dāng)TLO計(jì)滿溢出時,由硬件

使TF0置1,向CPU發(fā)出中斷請求,并將THO中的計(jì)數(shù)初值自動送入TLO。TLO從初值重新進(jìn)行加

1計(jì)數(shù)。周而復(fù)始,直至TRO二0才會停止。計(jì)數(shù)個數(shù)與計(jì)數(shù)初值的關(guān)系為:X=28-N

方式3只合用于定期/計(jì)數(shù)器TO,定期器T1處在方式3時相稱于TR1=0,停止計(jì)數(shù)。方式3

時,T0提成為兩個獨(dú)立的8位計(jì)數(shù)器TL0和THO,TL0使用T0的所有控制位。當(dāng)TL0計(jì)數(shù)溢出

時,由硬件使TF0置1,向CPU發(fā)出中斷請求。而TH0固定為定期方式(不能進(jìn)行外部計(jì)數(shù)),并

且借用了T1的控制位TRI、TFL因此,TH0的啟、停受TR1控制,THO的溢出將置位TF1。

6.規(guī)定定期/計(jì)數(shù)器的運(yùn)營控制完全由TRI、TR0擬定和完全由前、而高低電平控制

時,其初始化編程應(yīng)作何解決?

答:TM0D中GATE的值不同:完全由TRI、TRO擬定期GATE為0;完全由市而、而T高低

電平控制時GATE為1。

7.當(dāng)定期/計(jì)數(shù)器TO用作方式3時,定期/計(jì)數(shù)器T1可以工作在何種方式下?如何控制T1

的啟動和關(guān)閉?

答:TO用作方式3時,T1可以工作在方式0、1和2。T1的啟動由TR1控制,即TR1二1時,

T1開始工作;TR1=0時或者定期/計(jì)數(shù)器工作在方式3時,T1停止工作。

8.運(yùn)用定期/計(jì)數(shù)器TO從P1.0輸出周期為1s,脈寬為20ms的正脈沖信號,晶振頻率為12MHzo

試設(shè)計(jì)程序。

答:采用定期20nls,然后再計(jì)數(shù)1、49次的方法實(shí)現(xiàn)。

a、TO工作在定期方式1時,控制字TMOD配置:

MlM0=01,GATE=0,C/f=O,可取方式控制字為01H;

b、計(jì)算計(jì)數(shù)初值X:

晶振為12MHz,所以機(jī)器周期Tcy為1四。

N=t/Tcy=20X10-71X106=20230

X=2,6-N=65536-20230=45536=4E20H

即應(yīng)將4EH送入TH1中,20H送入TL1中。

c、實(shí)現(xiàn)程序如下:

0RG0000H

AJMPMAIN;跳轉(zhuǎn)到主程序

ORG0030H

MAIN:MOVTMOD,#01H;設(shè)11工作于方式2

MOVTHO,#4EH;裝入循環(huán)計(jì)數(shù)初值

MOVTLO,#20H;初次計(jì)數(shù)值

LPO:SETBP1.0

ACALLNT0

CLRP1.0

MOVR7,#49;計(jì)數(shù)49次

LP1:ACALLNTO

DJNZR7,LP1

AJMPLPO

NTO:MOVTHO,#4EH

MOVTLO,#20H

SETBTRO

JNBTFO,$

。CLRTR0

CLRTFO

RET

END

9.規(guī)定從Pl.1引腳輸出1000Hz方波,晶振頻率為12MHzo試設(shè)計(jì)程序。

答:采用TO實(shí)現(xiàn)

a、TO工作在定期方式1時,控制字TMOD配置:

MlM0=01,GATE=O,C/f=O,可取方式控制字為01H:

b、計(jì)算計(jì)數(shù)初值X:

晶振為12MHz,所以機(jī)器周期Tcy為1陷。1/I00O=1X1O-3

N=t/Tcy=0.5Xl(r/lXl(r=500

X=216-N=65536-500=65036=FEOC1I

即應(yīng)將FEH送入TH0中,0CH送入TLO中。

c、實(shí)現(xiàn)程序如下:

ORG0000H

AJMPMAIN;跳轉(zhuǎn)到主程序

ORGOOOBH;TO的中斷入口地址

LJMPDVTO

ORG0030H

MAIN:MOVTMOD,#01H;設(shè)10工作于方式2

MOVTHO,#0FEH;裝入循環(huán)計(jì)數(shù)初值

MOVTLO,#OCH;初次計(jì)數(shù)值

SETBETO;T0開中斷

SETBEA;CPU開中斷

SETBTRO;啟動TO

SJMP$;等待中斷

DVTO:CPLPl.1

MOVTHO,#OFEH

MOVTLO,#OCH

SETBTRO

RETI

END

10.試用定期/計(jì)數(shù)器T1對外部事件計(jì)數(shù)。規(guī)定每計(jì)數(shù)100,就將T1改成定期方式,控制P

1.7輸出一個脈寬為10ms的正脈沖,然后又轉(zhuǎn)為計(jì)數(shù)方式,如此反復(fù)循環(huán)。設(shè)晶振頻率為12MHz。

答:a、T1工作在計(jì)數(shù)方式2時,控制字TMOD配置:

M1MO=10,GATE=0,C/T=1,可取方式控制字為6OH;

T1工作在定期方式1時,控制字TM0D配置:

M1MO=O1,GATE=O,C/產(chǎn)0,可取方式控制字為10H;

b、計(jì)算初值X:

定期10ms時:

晶振為12MHz,所以機(jī)器周期Tcy為

N=t/Tcy=10X10-3/1X10-6=10000

X=216-N=65536-10000:55536=D8F0H

即應(yīng)將D8H送入TH1中,FOH送入TL1中。

計(jì)數(shù)100時:

N=100

X=28-N=256-100=156=9CH

c、實(shí)現(xiàn)程序如下:

ORG0000H

AJMPMAIN;跳轉(zhuǎn)到主程序

ORG001BH;T1的中斷入口地址

LJMPDVT1

ORG0030H

MAIN:MOVTM0D,#60H;T1工作于計(jì)數(shù)方式2

MOVTH1,#9CH;裝入計(jì)數(shù)初值

MOVTL1,#9CH9

CLRPl.7

SETBET1;TIJT中斷

SETBEA;CPU開中斷

SETBTR1;啟動T1

SJMP$;等待中斷

DVT1:SETBPl.7

CLRET1

CLRTRI

MOVTM0D,#10H;T1工作于定期方式1

MOVTH1,#0D8H;裝初值

MOVTL1,#OFOH

SETBTRI

JNBTF1,$;查詢等待10ms

CLRTF1

CLRTRI

CLRPl.7

MOVTMOD,#60H;T1工作于計(jì)數(shù)方式2

MOVTH1,#9CH;裝初值

MOVTL1,#9CHt

SETBET1;T1開中斷。

SETBTRI;啟動T1

RETI

END

1L運(yùn)用定期/計(jì)數(shù)器TO產(chǎn)生定期時鐘,由Pl口控制8個指示燈。編一個程序,使8個指示

燈依次閃動,閃動頻率為1次/秒(即,亮1秒后熄滅并點(diǎn)亮下一個,------)o

答:采用定期20ms,計(jì)數(shù)50次實(shí)現(xiàn)1秒定期。編制1秒延時子程序,由主程序調(diào)用。

a、TO工作在定期方式1時,控制字TMOD配置:

MlM0=01,GATE=0,C/f=0,可取方式控制字為01H;

b、計(jì)算計(jì)數(shù)初值X:

晶振為12MHz,所以機(jī)器周期Tcy為1聯(lián)。

N=t/Tcy=20X10〃1X10-6=20230

X=2,6-N=65536-20230=45536=4E2OH

即應(yīng)將4EH送入TH1中,20H送入TL1中。

c、實(shí)現(xiàn)程序如下:

ORG000OH

AJMPMAIN;跳轉(zhuǎn)到主程序

ORG0030H

MAIN:CLRCY

MOVA,#0111

LPO:MOVPl,A

CALLDISEC

RLA

AJMPLPO

D1SEC:M

溫馨提示

  • 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

提交評論