單片機(jī)原理及應(yīng)用-習(xí)題及答案 高惠芳 ch01單片機(jī)概述-ch09 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì)_第1頁
單片機(jī)原理及應(yīng)用-習(xí)題及答案 高惠芳 ch01單片機(jī)概述-ch09 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì)_第2頁
單片機(jī)原理及應(yīng)用-習(xí)題及答案 高惠芳 ch01單片機(jī)概述-ch09 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì)_第3頁
單片機(jī)原理及應(yīng)用-習(xí)題及答案 高惠芳 ch01單片機(jī)概述-ch09 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì)_第4頁
單片機(jī)原理及應(yīng)用-習(xí)題及答案 高惠芳 ch01單片機(jī)概述-ch09 單片機(jī)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章單片機(jī)概述

1.按照自己的理解用一句話回答“什么是單片機(jī)”。

單片機(jī)就是一塊組件獨(dú)立構(gòu)成的微型計(jì)算機(jī),即在一塊芯片上集成了CPU、RAM.ROM,

定時(shí)器和多種I/O接口等一臺(tái)完整微型計(jì)算機(jī)的全部基本單元。

2.概述單片機(jī)的應(yīng)用特點(diǎn)。

(1)單片機(jī)體積小,應(yīng)用系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,能滿足很多應(yīng)用領(lǐng)域?qū)τ布δ艿囊蟆#?)單片

機(jī)的可靠性高。(3)單片機(jī)的指令系統(tǒng)簡(jiǎn)單,易學(xué)易用。(4)單片機(jī)的發(fā)展迅速,特別是最近幾

年,單片機(jī)的部結(jié)構(gòu)越來越完善。

3.概述單片機(jī)的主要應(yīng)用領(lǐng)域。

醫(yī)用設(shè)備:呼吸機(jī)、分析儀、電子溫度計(jì)等。

家用電器:電冰箱、空調(diào)、電飯煲、音響霧化器等。

工業(yè)控制:智能管理報(bào)警系統(tǒng)、數(shù)據(jù)采集、控制系統(tǒng)等。

計(jì)算機(jī)網(wǎng)絡(luò)通信:無線對(duì)講機(jī)、遠(yuǎn)程監(jiān)控交換機(jī)、手機(jī)等設(shè)備。

4.MCS51系列單片機(jī)的CPU是幾位的?數(shù)據(jù)總線是幾位的?地址總線是幾位

的?

8、8、16o

5.簡(jiǎn)述單片機(jī)的組成結(jié)構(gòu)。

單片機(jī)由核心單元、存儲(chǔ)器、輸入輸出接口、計(jì)數(shù)定時(shí)器、串行接口、中斷程序和時(shí)鐘

電路等部分組成。

6.簡(jiǎn)述現(xiàn)階段單片機(jī)的發(fā)展趨勢(shì)。

1、主流機(jī)型發(fā)展趨勢(shì):8位單片機(jī)成為市場(chǎng)低端主流機(jī)型。4位機(jī)主要用于玩具市場(chǎng)。

32位成為高端的主流市場(chǎng)。

2、內(nèi)部結(jié)構(gòu)發(fā)展趨勢(shì):程序存儲(chǔ)器的容量不斷擴(kuò)大,外圍電路集成到單片機(jī)內(nèi)部。

3、制造工藝發(fā)展趨勢(shì):在制造工藝上,實(shí)現(xiàn)CMOS化、低功耗化、低壓化。

4、開發(fā)環(huán)境發(fā)展趨勢(shì):?jiǎn)纹瑱C(jī)開發(fā)軟件有Wave、Keil、Proteus等,Proteus是目前唯

一能仿真單片機(jī)的電子設(shè)計(jì)軟件。

第二章MCS-51單片機(jī)的結(jié)構(gòu)和原理

1.MCS-51單片機(jī)芯片包含哪些主要功能部件?

負(fù)責(zé)指令的執(zhí)行,實(shí)際是既有控制器的功能,也有運(yùn)算器的功能。包括:ALU、標(biāo)志寄

存器、暫存器、寄存器組。

2.MCS-51單片機(jī)的歐端有何用途?

略。

3.MCS-51單片機(jī)有哪些信號(hào)需要芯片引腳以第二功能的方式提供?

P3的8條口線都定義有第二功能,并且應(yīng)用的最多。P3口線的第二功能見表??诰€

第二功能

信號(hào)名稱

RXD

串行數(shù)據(jù)接收

TXD

串行數(shù)據(jù)發(fā)送

INTo

外部中斷申請(qǐng)

INTi

外部中斷1申請(qǐng)

To

定時(shí)器/計(jì)數(shù)器計(jì)數(shù)輸入

Ti

定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)輸入

WR

外部RAM寫選通

RD

外部RAM讀選通

4.MCS-51單片機(jī)的4個(gè)V0口在使用上各有什么功能和特點(diǎn)?

MCS-51單片機(jī)有P0、Pl、P2、P3四個(gè)雙向的8位并行I/O口,每個(gè)端口可以

按字節(jié)輸入或輸出,每一條I/O線也可以單獨(dú)用作輸入或輸出(即按位進(jìn)行輸入或輸出)。每

個(gè)端口都是由一個(gè)鎖存器(即特殊功能寄存器P0~P3),一個(gè)輸出驅(qū)動(dòng)器和兩個(gè)(P3口為3

個(gè))輸入緩沖器組成。并行I/O口作輸出時(shí)數(shù)據(jù)可以鎖存,作輸入時(shí)數(shù)據(jù)可以緩沖,但它們又

各具特點(diǎn)。(1)P0口和P2口構(gòu)成MCS-51單片機(jī)的16位地址總線,P0口還是8位

的數(shù)據(jù)總線。P3口多用于第二功能輸入或輸出。通常只有P1口用于一般輸入/輸出。P3

口各位的第二功能P3口引腳第二功能P3口引腳第二功能P3.0RXD(串行輸入端)

P3.4TO(定時(shí)器0的外部輸入)P3.1TXD(串行輸出端)P3.5T1(定時(shí)器1的外部輸入)

P3.2INTO(外部中斷0輸入)P3.6WR(片外數(shù)據(jù)存儲(chǔ)器寫選通控制輸出)P3.3INT1(外部

中斷1輸入)P3.7RD(片外數(shù)據(jù)存儲(chǔ)器讀選通控制輸出)(2)系統(tǒng)復(fù)位后,P0~P3口的

32個(gè)管腳均輸出高電平,因此在系統(tǒng)的設(shè)計(jì)過程中,應(yīng)保證這些管腳控制的外設(shè)不會(huì)因?yàn)橄?/p>

統(tǒng)復(fù)位而發(fā)生誤動(dòng)作。(3)PO~P3口輸出級(jí)的電路結(jié)構(gòu)有所不同。P0口是三態(tài)輸出,

其每個(gè)管腳均可以驅(qū)動(dòng)8個(gè)LSTTL輸入,而Pl~P3口的輸出級(jí)均有上拉電阻,每個(gè)管腳

可驅(qū)動(dòng)4個(gè)LSHL輸入。(4)每個(gè)并行口,可定義一部分管腳為輸入腳,另一部分管腳為

輸出腳,沒有使用的管腳可以懸空。

5.MCS-51單片機(jī)的存儲(chǔ)器分為哪幾個(gè)空間?試述各空間的作用。

MCS-51單片機(jī)有4個(gè)存儲(chǔ)空間,它們是片內(nèi)程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,在片外能夠擴(kuò)展

的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。這4個(gè)存儲(chǔ)空間能夠分成三類:片內(nèi)數(shù)據(jù)存儲(chǔ)空間(256B的RAM

和128B的特殊功能寄放器)、片外數(shù)據(jù)存儲(chǔ)空間(64KB)、片內(nèi)和片外統(tǒng)一編址的程序存儲(chǔ)空

間(64KB)o

6.簡(jiǎn)述內(nèi)部RAM中包含哪些可位尋址單元?

片內(nèi)RAM區(qū)從00H~FFH(256B)。

其中20Hs2FH(字節(jié)地址)是位尋址區(qū)。

對(duì)應(yīng)的位地址是00H-7FH。

7.什么叫堆棧?堆棧指針CSP)的作用是什么?在程序設(shè)計(jì)中為何要對(duì)SP重

新賦值?

堆棧是在內(nèi)部RAM區(qū)開辟的一個(gè)區(qū)域,用來保存程序運(yùn)行過程中的一些特殊的數(shù)據(jù)。堆

棧指針寄存器的作用是指定棧頂?shù)奈恢?。單片機(jī)在復(fù)位時(shí)SP=07H,堆棧實(shí)際位置從08H開

始,即在工作寄存器區(qū)內(nèi)。為此,用戶在初始化程序中要給SP重新賦值,以指定堆棧的起

始位置。

8.程序狀態(tài)字寄存器PSW的作用是什么?簡(jiǎn)述各位的作用。

程序狀態(tài)字PSW是一個(gè)8位寄存器,用于寄存程序運(yùn)行的狀態(tài)信息;各位的作用如下:

位序

PSW.7

PSW.6

PSW.5

PSW.4

PSW.3

PSW.2

PSW.1

PSW.

位標(biāo)志

CY

AC

F

RS1

RSO

0V

/

P

①CY:進(jìn)位標(biāo)志位。

②AC:輔助進(jìn)位標(biāo)志位。

③F0:用戶標(biāo)志位。

@RS1和RSO:寄存器組選擇位。用于設(shè)定通用寄存器的組號(hào)。

⑤0V:溢出標(biāo)志位。

⑥P:奇偶標(biāo)志位。

9?位地址65H與字節(jié)地址65H如何區(qū)別?位地址65H具體在內(nèi)部R心J中的什

么位置?

MCS-51的位存儲(chǔ)器由以內(nèi)部RAM中20H~2FH單元和特殊功能寄存器中地址為8的倍數(shù)

的特殊功能寄存器兩部分組成。其中每個(gè)單元的每一位都有一個(gè)位地址映像,它們既可以像

普通內(nèi)部RAM單元一樣按字節(jié)存取,也可以對(duì)單元中的任何一位單獨(dú)存取。字節(jié)地址是內(nèi)部

RAM中和特殊功能寄存器中每個(gè)存儲(chǔ)單元的地址。位地址2011是內(nèi)部RAM24H中的D0位。

10.什么是振蕩周期、時(shí)鐘周期、機(jī)器周期和指令周期?如何計(jì)算機(jī)器周期的確

切時(shí)間?

時(shí)鐘周期也稱為振蕩周期,定義為時(shí)鐘脈沖頻率(fosc)的倒數(shù),它是計(jì)算機(jī)中最基本的、

最小的時(shí)間單位。

時(shí)鐘周期經(jīng)2分頻后成為內(nèi)部的時(shí)鐘信號(hào),用作單片機(jī)內(nèi)部各功能部件按序協(xié)調(diào)工作的

控制信號(hào),稱為狀態(tài)周期,用S表示。

完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。

指令周期是執(zhí)行一條指令所需要的時(shí)間,一般由若干個(gè)機(jī)器周期組成,指令不同,所需要

的機(jī)器周期數(shù)也不同。

11.單片機(jī)工作過程中在運(yùn)行出錯(cuò)或進(jìn)入死循環(huán)時(shí),如何處理?

左交錯(cuò)律70;一百二十萬;4205700;弱穩(wěn)定性590;12203500。

解;一百二十萬寫作:1200030

所以9980正則圖一百二十萬V4205700V42中斷過程0V12203500。

12.使單片機(jī)復(fù)位的方法有幾種?復(fù)位后機(jī)器的初始狀態(tài)如何?

(1)單片機(jī)復(fù)位方法

單片機(jī)復(fù)位方法有:上電自動(dòng)復(fù)位、按鍵電平復(fù)位和外部脈沖三種方式

(2)復(fù)位后的初始狀態(tài)

復(fù)位后機(jī)器的初始狀態(tài),即各寄存器的狀態(tài):PC之外,復(fù)位操作還對(duì)其他一些特殊功能

寄存器有影響。

13.開機(jī)復(fù)位后,單片機(jī)使用的是哪組工作寄存器?它們的地址是什么?如何改

變當(dāng)前工作寄存器組?

一般開機(jī)復(fù)位后都是選擇第一組通用工作寄存器作為工作寄存器的,一共有4組,分別

為0_L2.3連續(xù)位于00h至ij1FH地址,然后在機(jī)器中有個(gè)程序狀態(tài)字PSW,它的第四和第三

位RSI,RSO是用來選擇工作寄存器組的,可能不同機(jī)器地址稍有不同。她們倆的值和寄存

器組的關(guān)系:

RS1/RS00/00/11/01/1

使用的工作寄存器0123

地址00-0708-0F10-1718-1F

寫程序的時(shí)候就是經(jīng)過定義程序狀態(tài)字來選擇使用不同的寄存器組。也能夠直接對(duì)

RS1和RSO賦值。

第三章KeiI與Proteus軟件的使用

1.輸入并編譯圖3.1.10中的HeII。程序,其編譯結(jié)果占用多少單片機(jī)RAM空間?

程序代碼占用多少單片機(jī)ROM空間?調(diào)試時(shí)如何觀察該程序的輸出結(jié)果?

略。

2.如圖3.1.15所示示例程序,在Memory窗口中觀察定時(shí)器。的計(jì)數(shù)值和狀態(tài)

寄存器的變化情況。

略。

3.試用定時(shí)中斷方式改寫圖3.1.15所示示例程序并在調(diào)試模式中觀察0.5s定

時(shí)間隔是否準(zhǔn)確。

略。

4.不用定時(shí)中斷方式,試將圖3.1.15所示示例程序的0.5s定時(shí)間隔優(yōu)化到最

接近0.5so

略。

5.完成本章示例原理圖和示例程序的仿真實(shí)驗(yàn),并在此基礎(chǔ)上實(shí)現(xiàn)本章最后附

加數(shù)碼管顯示LED燈狀態(tài)的功能。

略。

第四章MCS-51單片機(jī)匯編語言指令系統(tǒng)及其編

1.簡(jiǎn)述MCS-51單片機(jī)的指令格式及每部分的作用。

1、單片機(jī)的核心部分是CPU,CPU是單片機(jī)的大腦和心臟。

2、程序存儲(chǔ)器用于存放編好的程序或表格常數(shù)。

3、數(shù)據(jù)存儲(chǔ)器用于存放中間運(yùn)算結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。

4、定時(shí)/計(jì)數(shù)器實(shí)質(zhì)上是加法計(jì)數(shù)器,當(dāng)它對(duì)具有固定時(shí)間間隔的內(nèi)部機(jī)器周期進(jìn)行計(jì)

數(shù)時(shí),它是定時(shí)器;當(dāng)它對(duì)外部事件進(jìn)行計(jì)數(shù)時(shí),它是計(jì)數(shù)器。

5、I/O接口的主要功能包括:緩沖與鎖存數(shù)據(jù)、地址譯碼、信息格式轉(zhuǎn)換、傳遞狀態(tài)(外

設(shè)狀態(tài))和發(fā)布命令等。

6、中斷控制可以解決CPU與外設(shè)之間速度匹配的問題,使單片機(jī)可以及時(shí)處理系統(tǒng)中

許多隨機(jī)的參數(shù)和信息,同時(shí),它也提高了其處理故障與應(yīng)變能力的能力。

2.MCS-51單片機(jī)有哪幾種尋址方式?各有什么特點(diǎn)?每種尋址方式的尋址范

圍是什么?

①寄存器尋址②直接尋址③寄存器間接尋址④立即尋址⑤基址加變址

⑥位尋址⑦相對(duì)尋址。

3.對(duì)片內(nèi)RAM可以用哪幾種尋址方式?對(duì)片外RAM可以用哪幾種尋址方式?

共7種尋址方式,分別為:寄存器尋址,直接尋址,寄存器間接尋址,立即尋址,變址尋址,

位尋址和相對(duì)尋址。

寄存器尋址方式:由指令指出某一寄存器的內(nèi)容做為操作數(shù)。

直接尋址方式:指令中操作數(shù)直接以單元地址的形式給出。

寄存器間接尋址方式:寄存器間接尋址方式,寄存器中存放的則是操作數(shù)的地址,即操作

數(shù)是通過寄存器間接得到的。立即尋址方式:操作數(shù)在指令中直接給出。變址尋址方式:變址

尋址是為了訪問程序存儲(chǔ)器中的數(shù)據(jù)和表格。MCS-51的變址尋址是以DPTR或PC作基址寄

存器,以累加器A作變址寄存器,并以兩者內(nèi)容相加形成的16位地址做為操作數(shù)地址,以達(dá)

到訪問數(shù)據(jù)和表格的目的。位尋址方式:指對(duì)片內(nèi)RAM的位尋址區(qū)和某些可尋址的特殊功能

寄存器進(jìn)行位操作的尋址方式。相對(duì)尋址方式:相對(duì)尋址方式是為解決程序轉(zhuǎn)移而專門設(shè)置

的,為轉(zhuǎn)移指令所采用。

4.在對(duì)片外RAM單元的尋址中,用ri間接尋址與用DPTR間接尋址有什么區(qū)別?

片外數(shù)據(jù)存儲(chǔ)器尋址中,用Ri間接尋址只能訪問低端的256字節(jié)單元,而用DPTR作指針

間接訪問可訪問整個(gè)64K字節(jié)。

5.指出下列指令源操作數(shù)的尋址方式:

(DMOVA,#00H

⑵MOVA,50H

⑶MOVA,@R0

(4)MOVA戊5

⑸MOVCA,@A+DPTR

(6)SJMP70H

⑺CLRA

略。

6.已知片內(nèi)RAM中,(30H)=38H,(38H)二40H,(40H)=48H,(48H)二90H。請(qǐng)分析下列

指令,說明源操作數(shù)的尋址方式及按順序執(zhí)行每條指令的結(jié)果。

MOVA,40H

MOVRO,A

MOVPI,#OFOH

MOV@RO,30H

MOVDPTR,#3848HM0V40H,38H

MOVRO,30H

MOVPO,RO

M0V18H,#30H

MOVA,@RO

MOVP2,PI

略。

7.區(qū)分下列指令有什么不同:

(1)MOVA,00H和MOVA,#00Ho

⑵MOVA,@R0和MOVXA,@R0。

(3)MOVA,RI和MOVA,@RI0

(4)MOVXA,@R0和MOVXA,@DPTRO

⑸MOVXA,@DPTR和MOVCA,@A+DPTRO

略。

8.如果PSW的RSI、RSO為0和1,分析指令MOVA,RO與指令MOVA,08H有何不同。

執(zhí)行時(shí)間長(zhǎng)短不同。

9.已知(A)二7AH,(R0)二30H,(30H)=A5H,(PSW)=80H,(SP)=65H,試分析下面每條

指令的執(zhí)行結(jié)果及對(duì)標(biāo)志位的影響。

(I)ADDA,@R0⑵ADDA,#30H⑶ADDA,(4)ADDCA,30H⑸SUBBA,(6)DAA(7)RLCA(8)

RRA(9)PUSH30H(10)XCHA,30H@R0(11)ANLA,R030H

略。

10.寫出完成如下要求的指令,但是不得改變未涉及位的內(nèi)容。

(1)使ACC.2、人(^.3置“1”。

(2)使累加器高4位清零。

⑶使ACC.3、ACC.4、ACC.5^ACC.6清零。

略。

11.寫出完成下列要求的指令:

(1)累加器A的低2位清零,其余位不變;

(2)累加器A的高2位置其余位不變;

(3)累加器A的高4位取反,其余位不變;

(4)累加器A的第0位、2位、4位、6位取反,其余位不變。

略。

12.已知(A)二78H(R1)二78H,⑻=04H,CY=I,片內(nèi)RAM(78H)=ODDH,(80H)=6CH,試分

別寫出下列指令執(zhí)行后目標(biāo)單元的結(jié)果和相應(yīng)標(biāo)志位的值。

⑴ADDA,@RI(2)SUBBA,#77H⑶MULAB(4)DIVAB⑸ANL78H,#78H(6)ORLA,#OFH⑺

XRL80H,A

略。

13.寫出下列指令的執(zhí)行結(jié)果。

MOVA,#7FH

CPLA

RPA

SWAPA

MOVRO,#45H

XCHA,RO

SWAPA

XCHA,RO

R0=54H

14.說明LJMP指令與AJMP指令的區(qū)別。

SJMP提供了以SJMP的下一條指令的起始地址為中心的256字節(jié)范圍的轉(zhuǎn)移

(-128>127),AJMP的轉(zhuǎn)移目標(biāo)地址必須在與AJMP的下一條指令的第一字節(jié)相同的2KB區(qū)的

程序儲(chǔ)存器中。短轉(zhuǎn)移方便了可重定位編碼。SJMP方便了PC可重定位編碼,但轉(zhuǎn)移范圍小。

而ASJMP轉(zhuǎn)移范圍大,但存在跳區(qū)的限制,AJMP指令只能位于2KB區(qū)的最后2個(gè)字節(jié)處時(shí),才

可跳到下一個(gè)區(qū)去。因此用AJMP指令來代替SJMP指令是有條件的,乜就是目標(biāo)地址必須與

它下面的指令存放地址在同一個(gè)2KB區(qū)域內(nèi)。

15.設(shè)當(dāng)前指令CJNEA,#IOH,20H的地址是OFFEH,若累加器A的值為12H,則該指

令執(zhí)行后的PC值為多少?若累加器A的值為I0H,又如何?

略。

16.用位處理指令實(shí)現(xiàn)PI.4:PLO/\(PI.IVPI.2)V/PI.3的邏輯功能。

略。

17.試編寫程序?qū)⑵瑑?nèi)RAM從INBUF開始存放的10個(gè)數(shù)據(jù)傳送到片外RAM以

OUIBUF開始的區(qū)域。

MOVRO,#2011

MOVDPTR,#100011

M0VR7,#10

LOOP:MOVA,?R0

MOVX@DPTR,A

INCRO

INCDPTR

DJNZR7,LOOP

SJMP$

18.在外部數(shù)據(jù)存儲(chǔ)器首地址為TABLE的數(shù)據(jù)表中存有I0B的數(shù)據(jù),編程將每個(gè)

字節(jié)的最高位置1,并送回原來的單元。

略。

19.編程將片內(nèi)35H-55H單元中的內(nèi)容送到以3000H為首的存儲(chǔ)區(qū)中。

M0VR1,#40H

MOVRO,#20H

MOVDPTR,#3000H

L1:MOVA,@R1

INCR1

INCDPTR

DJNZRO,LI

20.設(shè)內(nèi)部RAM5AH單元中有一非0變噩X,請(qǐng)編寫計(jì)算下述函數(shù)式的程序,其結(jié)

果存入5BH單元中。

略。

21.編程設(shè)計(jì)計(jì)算片內(nèi)RAM區(qū)50H~57H八個(gè)單元中數(shù)的算術(shù)乎均值,結(jié)果存于54H

開始的單元中。

MOVRO,#50H

MOVR2,#10

MOVA,#0

LP:ADDA,?RO

INCRO

DJNZR2,LP

MOVB,#10

DIVAB

M0V5AH,A

SJMP$

22.編寫對(duì)一個(gè)多字節(jié)數(shù)做乘以10的運(yùn)算子程序。

略。

23.設(shè)有兩個(gè)長(zhǎng)度均為15的數(shù)組,分別存放在以2000H和2100H為首的存儲(chǔ)區(qū)

中,試編程求其對(duì)應(yīng)項(xiàng)之和,結(jié)果存于以2200H為首的存儲(chǔ)區(qū)中。

MOVDPH,#02H

MOVR1,#15

M0VR2,#00H;數(shù)組1首地址低位

M0VR3,#10H;數(shù)組2首地址低位

M0VR4,#20H;和首地址低位

L1:MOVDPL,R2

MOVXA,@DPTR

M0VR1,A

MOVDPL,R3

MOVXA,?DPTR

ADDA,RI

MOVDPL,R4

MOVX@DTPR,A

INCR2

INCR3

INCR4

DJNZR1,L1

SJMP$

24.試編程把以2000H為首地址的連續(xù)50個(gè)單元中的內(nèi)容按升序排列,存于以

3000H為首地址的存儲(chǔ)區(qū)中。

■OVDPIK,#2OOOH

■OVRO,#3OH;讀到片內(nèi)的30H開始的單元

■OVR7,#50

LI:;將208丘開始的電元數(shù)據(jù)存儲(chǔ)到30遍]內(nèi)部單元

■OVXA,?DPn<

■0V?0,A

INCRO

INCDm

DJNZR7LI

START:;排序

CLROOH

CLRC

10VR7,#49

■OVRO,?30H

■OVA,ORO

L3:INCRO

K>VR2,A

SUBB&?RO

10V&R2

JCNEXT

SETBOOH

XCH&?R0

DECRO

10V播0,A

INCRO

NEXT:

■OVA,額0

DJNZR7,L3

JB00START

■OVDHK,?3000H,送到片外3000所始的單元

■OVRO,#20H

■OVR7,#50

L2:?0VA,ORO

■OVXOPTR,A

INCDPTE

INCRO

DJNZR7L2

RET

25.設(shè)有100個(gè)無符號(hào)數(shù),連續(xù)存放在以2000H為首地址的外部數(shù)據(jù)存儲(chǔ)區(qū)中,

試編程統(tǒng)計(jì)奇數(shù)和偶數(shù)的個(gè)數(shù)。

略。

26.將片外數(shù)據(jù)存儲(chǔ)器地址為1000H~1030H的數(shù)據(jù)塊,全部搬遷到片內(nèi)

RAM30H~60H中,并將原數(shù)據(jù)塊區(qū)域全部清零。

略。

27.從20H單元開始有一個(gè)無符號(hào)數(shù)據(jù)塊,其長(zhǎng)度在20H單元中。求出數(shù)據(jù)塊中

最小值,并存入21H單元中。

M0V@R0,#21H;數(shù)據(jù)塊首地址

MOVR1,2OH;取數(shù)據(jù)塊長(zhǎng)度

M0VA,@R0;取一個(gè)數(shù)

M0V21H,A;存數(shù)

DDD:DJNZR1,KKK;判斷是否取完

SJMP$;W完結(jié)束

KKK:INCR0;指向下一個(gè)數(shù)

M0VA,@R0;取數(shù)

MOVB,A;暫存

CLRC

SUBBA,21H;比較

JNCDDD;C=0,21H中數(shù)小,轉(zhuǎn)移

MOV21H,B;存小數(shù)

SJMPDDD

28.在以2000H為首地址的存儲(chǔ)區(qū)中,存放著20個(gè)用ASCII碼表示的0~9之間

的數(shù),試編程將它們轉(zhuǎn)換成BCD碼,并以壓縮BCD碼(即一個(gè)單元存放二位BCD

碼)的形式存于3000H~3009H單元中。

略。

29.試編寫一個(gè)雙字節(jié)有符號(hào)數(shù)除法子程序。

略。

30.試編寫一個(gè)多字節(jié)BCD碼加法子程序。

略。

第五章單片機(jī)C51程序設(shè)計(jì)基礎(chǔ)

1.編寫函數(shù)htoi(s),把由十六進(jìn)制數(shù)字組成的字符串(前面可能包含Ox或0X)

轉(zhuǎn)換成等價(jià)的整數(shù)值。字符串中允許的數(shù)字為0~9,a~f和A~F。

BOOLHexToDec(LPCTSTRshex,intidec){inti,mid;intlen=lstrlen(shex);if(len>8)re

turnFALSE;mid=0;idec=0;for(i=0;i<len;i++){if(shex[i]>=,0*shex[i]<=,9')mid=shex[

i]_,0*jelseif(shex[i]>=,a*shex[i]<=,f*)mid=shex[i]-'af+10;elseif(shex[i]>=>A*sh

ex[i]<=,F')mid=shex[i]->A*+10;elsereturnFALSE;mid<〈=((len-iT)<<2);〃移位表示變

為2的n次方倍

idee二idc+mid;}returnTRUE;}

2.編寫函數(shù)bitcount(x),用于統(tǒng)計(jì)整數(shù)變量x中值為1的位的個(gè)數(shù)。

略。

3.編寫函數(shù)strend(s,t),如果字符串t出現(xiàn)在字符串s的尾部,則返回1;否則

返回Oo

略。

4.利用定時(shí)器/計(jì)數(shù)器TI產(chǎn)生定時(shí)時(shí)鐘,由PI口控制8個(gè)發(fā)光二極管,使8

個(gè)指示燈依次一個(gè)一個(gè)閃動(dòng),閃動(dòng)頻率為8次俐)(8個(gè)燈依次亮一遍為一個(gè)周期),

循環(huán)。

ORGOOOOHLJMPMAINORGOOOBHLJMPDVTOORGO1OOHMOVAO1HMAIN:MOVTMOD,#O1HMOVTHO,#03C

HMOVTLO,#OBOHSETBETOSETBEASETBTROSJMP$DVTO:MOVP1,ARLAMOVTHO,tt03CHM0VTL0,#OBOHRE

TIEND

5.已知inta=12,"S,請(qǐng)計(jì)算以下表達(dá)式運(yùn)算后a的值:

24;10;60;0;0:

6.華氏溫度F與攝氏溫度C的轉(zhuǎn)換公式為:C—(F-32)x5/9,則以下語句:

floatc,F;c=S/9*(F-32);是其對(duì)應(yīng)的C語言表達(dá)式嗎?如果不是,為什么?

不是,一定要以分號(hào)結(jié)束

c=5/9*(F-32);

7.簡(jiǎn)述C51中bit和sbit的區(qū)別,以及unsignedchar和sfr的不同點(diǎn)?

略。

8.C51中斷函數(shù)和普通C語言函數(shù)的區(qū)別在哪里?中斷函數(shù)主要用于什么操

作?

中斷函數(shù)要中關(guān)鍵字Interrupt,中斷函數(shù)執(zhí)行時(shí),系統(tǒng)會(huì)進(jìn)行狀態(tài)的壓棧保存,就是進(jìn)

行當(dāng)前運(yùn)行狀態(tài)的保護(hù),函數(shù)結(jié)束后恢復(fù)。

第六章單片機(jī)內(nèi)部資源及編程

1.什么是中斷?MCS-51單片機(jī)有幾個(gè)中斷源?中斷諸求如何提出?單片機(jī)如何

進(jìn)行中斷的響應(yīng)?

中斷是中間打斷某一工作過程去處理一些與本工作過程無關(guān)或間接相關(guān)的事件,處理完

后繼續(xù)原工作過程。

2.MCS-51的中斷源中,哪些中斷請(qǐng)求信號(hào)在中斷響應(yīng)時(shí)可以自動(dòng)清除?哪些不

能自動(dòng)清除?不能清除的如何處理?

外部中斷/INTO、定時(shí)器/計(jì)數(shù)器中斷外部中斷INT1.定時(shí)器/計(jì)數(shù)器中斷T0、對(duì)于有些

中斷源,CPUT1串行口中斷。在響應(yīng)中斷后會(huì)自動(dòng)清除中斷標(biāo)志,如定時(shí)器溢出標(biāo)志TFO、TF1

和邊沿觸發(fā)方式下的外部中斷標(biāo)志IE0、IE1;而有些中斷標(biāo)志不會(huì)自動(dòng)清除,只能由用戶用

軟件清除,如串行口接收發(fā)送中斷標(biāo)志RLTI;在電平觸發(fā)方式下的外部中斷標(biāo)志IE0和IE1

則是根據(jù)引腳/NTO和/INT1的電平變化的,CPU無法直接干預(yù),需在引腳外加硬件(如D觸發(fā)

器)使其自動(dòng)撤銷外部中斷請(qǐng)求。

3.8051的中斷優(yōu)先級(jí)有幾級(jí)?在形成中斷嵌套時(shí)各級(jí)有何規(guī)定?

8051的中斷優(yōu)先級(jí)有兩級(jí);形成中斷嵌套時(shí)規(guī)定(1)正在進(jìn)行的中斷過程不能被新的同

級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷,直到該中斷服務(wù)程序結(jié)束,返回了主程序且執(zhí)行了主程序

中的一條指令后,CPU才響應(yīng)新的中斷請(qǐng)求。(2)正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù)程序能被高優(yōu)

先級(jí)中斷請(qǐng)求所中斷,實(shí)現(xiàn)兩級(jí)中斷嵌套。(3)CPU同時(shí)接收到幾個(gè)中斷請(qǐng)求時(shí),首先響應(yīng)優(yōu)

先級(jí)最高的中斷請(qǐng)求。

4.MCS-51單片機(jī)響應(yīng)中斷后,各中斷入口地址是什么?

中斷服務(wù)程序的入口地址如下表:中斷源中斷矢量外部中斷0(INT0)0003H定時(shí)器T0中

斷OOOBH外部中斷1(INT1)O013H定時(shí)器T1中斷001BH。

5.簡(jiǎn)述MCS-51單片機(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)中斷,MCS-51首先置位相應(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)志。

6.MCS-51單片機(jī)內(nèi)部有幾個(gè)定時(shí)器/計(jì)數(shù)器?它們由哪些功能寄存器組成?怎

樣實(shí)現(xiàn)定時(shí)功能?怎樣實(shí)現(xiàn)計(jì)數(shù)功能?

80c51單片機(jī)內(nèi)部有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,由THO,丁以),丁陽,111,丁乂01)和1'。^

功能寄存器組成。通過TMOD中的C/T位選擇對(duì)機(jī)器周期計(jì)數(shù)實(shí)現(xiàn)計(jì)數(shù)功能,選擇對(duì)外部脈

沖計(jì)數(shù)實(shí)現(xiàn)計(jì)數(shù)功能。

7.定時(shí)器/計(jì)數(shù)器的4種工作方式各自的計(jì)數(shù)范圍是多少?如果要計(jì)10個(gè)單位,

不同的方式初值應(yīng)為多少?

依據(jù)題意,只要使P1.0引腳每隔5us取反一次即可得到10us的方波,因此定是時(shí)間

T=5us,可選擇定時(shí)器/計(jì)數(shù)器TO,以中斷方式工作。

1,設(shè)定TMOD

TMOD的低4位控制T0,設(shè)定T0定時(shí)模式,即=0;工作在方式0,即M1MOOOH;軟件啟動(dòng)定

時(shí)器,即GAME=0oTMOD的高4位與T0無關(guān),一般取0,所以TMOD控制字為001U

2,計(jì)算定時(shí)初值

晶振頻率為12MHz,機(jī)器周期=lus

定時(shí)初值二8192-5=8187=1FFB卞000111111111101IB

因TLO的高3位未用,對(duì)計(jì)算出的初值要進(jìn)行修正,即低5位前插入3個(gè)0構(gòu)成低8位初

值,從低6位向前取8位構(gòu)成高8位初值,BP11111111OOO11O11B=FF1BH

ORGOOOOH

AJMPMAIN;轉(zhuǎn)主程序

ORGOOOBH;TO中斷矢量地址

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

0RG100H

MAIN:MOVSP,#60H;設(shè)堆棧指針

MOVTMOD,#00H;寫控制字

MOVTLO,#1BH;置T0初值

MOVTIIO,#OFFH

SETBETO;允許TO中斷

SETBEA;CPU開中斷

SETBTRO;啟動(dòng)T0

5口W$;等待中斷

ISER:MOVTLO,#1BH;TO中斷服務(wù)子程序,重置T0初值

MOVTHO,#OFFH

CPLPl.OjPl.1取反

RETI

END

8.設(shè)單片機(jī)外接晶振,晶振頻率為12M應(yīng),如果用定時(shí)器/計(jì)數(shù)器T0產(chǎn)生頻率

為10kHz的方波,可以選擇哪幾種方式,初值分別設(shè)為多少?

#include<reg51.h>〃包含特殊功能寄存器庫

sbitPl_仁P11;

chari;

voidmainO

(

TMOD=OxlO;

THl=0xD8;TLl=0xf0;

EA=1;ET1=1;

i=0;

TR1=1;

while(l)

{

if(i==0){P1_C1;}

if(i==l)(Pl_l=0;)

if(i==2){Pl_l=0;}

)

)

voidtimeOint(void)interr」pt3〃中斷服務(wù)程序

{

THl=0xD8;TLl=0xf0;

i++;

if(i==3){i=0;}

9.已知振蕩頻率為12M壓,用定時(shí)器/計(jì)數(shù)器TO,實(shí)現(xiàn)從P2.0口產(chǎn)生周期為

lOOms的方波。要求分別用匯編語言和C語言編程實(shí)現(xiàn)。

略。

10.已知振蕩頻率為6MHz,用定時(shí)器/計(jì)數(shù)器T0,實(shí)現(xiàn)從PLO口產(chǎn)生周期為Is.

占空比30%的波形。要求分別用匯編語言和C語言編程實(shí)現(xiàn)。

略。

11.設(shè)8051單片機(jī)的時(shí)鐘頻率為6MHz,請(qǐng)編寫程序在P1.7口輸出周期為2s方波

的程序。

略。

12.通過外部中斷。,觸發(fā)一個(gè)延時(shí)過程,假定延時(shí)時(shí)間為Is,延時(shí)期間可以點(diǎn)亮

一個(gè)LED及讓蜂鳴器發(fā)出聲音。已知單片機(jī)晶振頻率為6.00M應(yīng),畫出電路圖,

并編程實(shí)現(xiàn)。

略。

13.利用單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器TI產(chǎn)生定時(shí)時(shí)鐘,由PI口輸出信號(hào)控制8

個(gè)LED指示燈。試編程使8個(gè)指示燈依次輪流點(diǎn)亮,每個(gè)指示燈的點(diǎn)亮?xí)r間為

lOOms?

略。

14.利用定時(shí)器/計(jì)數(shù)器測(cè)堡某正脈沖寬度,已知此脈沖寬度小于10ms,試編程

測(cè)量脈寬,并把結(jié)果存入內(nèi)部RAM的50H和51H單元中。

略。

15.設(shè)某異步通信接口,每幀信息格式為10位,當(dāng)接口每秒傳送960個(gè)字符時(shí),

其波特率為多少?

9600波特。

16.MCS-51單片機(jī)串行口有幾種工作方式?各自的特點(diǎn)是什么?

有四種工作方式,分別是方式0、方式1、方式2和方式3。其中:方式0,稱為同步移位

寄存器方式,一般用于外接移位寄存器芯片擴(kuò)展I/O接口。方式1,稱為8位的異步通信方式,

通常用于雙機(jī)通信。方式2和方式3,稱為9位的異步通信方式,通常用于多機(jī)通信。

17.串行口數(shù)據(jù)寄存器CSBUF)有什么特點(diǎn)?

發(fā)送數(shù)據(jù)存放器和接收數(shù)據(jù)存放器合起用一個(gè)特殊功能存放器SBUF(串行口數(shù)據(jù)存放

器),執(zhí)行MOVSBUF

溫馨提示

  • 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)論