版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧建筑職業(yè)學(xué)院《有機(jī)化學(xué)Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 科爾沁藝術(shù)職業(yè)學(xué)院《算法分析與設(shè)計(jì)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇理工學(xué)院《視聽節(jié)目策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉林大學(xué)《汽車電工電子技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南農(nóng)業(yè)大學(xué)《烹調(diào)工藝學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北體育職業(yè)學(xué)院《消費(fèi)者保護(hù)法》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】《功》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教版(2024)初中物理八年級(jí)下冊(cè)
- 高考物理總復(fù)習(xí)《帶電粒子在交變場(chǎng)中的運(yùn)動(dòng)》專項(xiàng)測(cè)試卷含答案
- 重慶工程職業(yè)技術(shù)學(xué)院《分布式系統(tǒng)與云計(jì)算》2023-2024學(xué)年第一學(xué)期期末試卷
- 正德職業(yè)技術(shù)學(xué)院《學(xué)習(xí)科學(xué)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 代理記賬有限公司簡(jiǎn)介(5個(gè)范本)
- 校園物業(yè)管理層培訓(xùn)課件
- 安全生產(chǎn)培訓(xùn)資料-20220703152820
- 3-U9C操作培訓(xùn)-MRP基礎(chǔ)
- 2024至2030年中國銅制裝飾材料行業(yè)投資前景及策略咨詢研究報(bào)告
- 中金公司在線測(cè)評(píng)真題
- 高中英語新課程標(biāo)準(zhǔn)解讀課件
- 2024供應(yīng)商大會(huì)策劃方案
- 2024小學(xué)語文六年級(jí)上冊(cè)第四單元:大單元整體教學(xué)課件
- 12S108-1 倒流防止器選用及安裝
- 人教版六年級(jí)下冊(cè)數(shù)學(xué)期末測(cè)試卷附答案【達(dá)標(biāo)題】
評(píng)論
0/150
提交評(píng)論