版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章單片機(jī)概述
1.按照自己的理解用一句話回答“什么是單片機(jī)”。
單片機(jī)就是一塊組件獨立構(gòu)成的微型計算機(jī),即在一塊芯片上集成了CPU、RAM.ROM,
定時器和多種I/O接口等一臺完整微型計算機(jī)的全部基本單元。
2.概述單片機(jī)的應(yīng)用特點。
(1)單片機(jī)體積小,應(yīng)用系統(tǒng)結(jié)構(gòu)簡單,能滿足很多應(yīng)用領(lǐng)域?qū)τ布δ艿囊?。?)單片
機(jī)的可靠性高。(3)單片機(jī)的指令系統(tǒng)簡單,易學(xué)易用。(4)單片機(jī)的發(fā)展迅速,特別是最近幾
年,單片機(jī)的部結(jié)構(gòu)越來越完善。
3.概述單片機(jī)的主要應(yīng)用領(lǐng)域。
醫(yī)用設(shè)備:呼吸機(jī)、分析儀、電子溫度計等。
家用電器:電冰箱、空調(diào)、電飯煲、音響霧化器等。
工業(yè)控制:智能管理報警系統(tǒng)、數(shù)據(jù)采集、控制系統(tǒng)等。
計算機(jī)網(wǎng)絡(luò)通信:無線對講機(jī)、遠(yuǎn)程監(jiān)控交換機(jī)、手機(jī)等設(shè)備。
4.MCS51系列單片機(jī)的CPU是幾位的?數(shù)據(jù)總線是幾位的?地址總線是幾位
的?
8、8、16o
5.簡述單片機(jī)的組成結(jié)構(gòu)。
單片機(jī)由核心單元、存儲器、輸入輸出接口、計數(shù)定時器、串行接口、中斷程序和時鐘
電路等部分組成。
6.簡述現(xiàn)階段單片機(jī)的發(fā)展趨勢。
1、主流機(jī)型發(fā)展趨勢:8位單片機(jī)成為市場低端主流機(jī)型。4位機(jī)主要用于玩具市場。
32位成為高端的主流市場。
2、內(nèi)部結(jié)構(gòu)發(fā)展趨勢:程序存儲器的容量不斷擴(kuò)大,外圍電路集成到單片機(jī)內(nèi)部。
3、制造工藝發(fā)展趨勢:在制造工藝上,實現(xiàn)CMOS化、低功耗化、低壓化。
4、開發(fā)環(huán)境發(fā)展趨勢:單片機(jī)開發(fā)軟件有Wave、Keil、Proteus等,Proteus是目前唯
一能仿真單片機(jī)的電子設(shè)計軟件。
第二章MCS-51單片機(jī)的結(jié)構(gòu)和原理
1.MCS-51單片機(jī)芯片包含哪些主要功能部件?
負(fù)責(zé)指令的執(zhí)行,實際是既有控制器的功能,也有運算器的功能。包括:ALU、標(biāo)志寄
存器、暫存器、寄存器組。
2.MCS-51單片機(jī)的歐端有何用途?
略。
3.MCS-51單片機(jī)有哪些信號需要芯片引腳以第二功能的方式提供?
P3的8條口線都定義有第二功能,并且應(yīng)用的最多。P3口線的第二功能見表??诰€
第二功能
信號名稱
RXD
串行數(shù)據(jù)接收
TXD
串行數(shù)據(jù)發(fā)送
INTo
外部中斷申請
INTi
外部中斷1申請
To
定時器/計數(shù)器計數(shù)輸入
Ti
定時器/計數(shù)器1計數(shù)輸入
WR
外部RAM寫選通
RD
外部RAM讀選通
4.MCS-51單片機(jī)的4個V0口在使用上各有什么功能和特點?
MCS-51單片機(jī)有P0、Pl、P2、P3四個雙向的8位并行I/O口,每個端口可以
按字節(jié)輸入或輸出,每一條I/O線也可以單獨用作輸入或輸出(即按位進(jìn)行輸入或輸出)。每
個端口都是由一個鎖存器(即特殊功能寄存器P0~P3),一個輸出驅(qū)動器和兩個(P3口為3
個)輸入緩沖器組成。并行I/O口作輸出時數(shù)據(jù)可以鎖存,作輸入時數(shù)據(jù)可以緩沖,但它們又
各具特點。(1)P0口和P2口構(gòu)成MCS-51單片機(jī)的16位地址總線,P0口還是8位
的數(shù)據(jù)總線。P3口多用于第二功能輸入或輸出。通常只有P1口用于一般輸入/輸出。P3
口各位的第二功能P3口引腳第二功能P3口引腳第二功能P3.0RXD(串行輸入端)
P3.4TO(定時器0的外部輸入)P3.1TXD(串行輸出端)P3.5T1(定時器1的外部輸入)
P3.2INTO(外部中斷0輸入)P3.6WR(片外數(shù)據(jù)存儲器寫選通控制輸出)P3.3INT1(外部
中斷1輸入)P3.7RD(片外數(shù)據(jù)存儲器讀選通控制輸出)(2)系統(tǒng)復(fù)位后,P0~P3口的
32個管腳均輸出高電平,因此在系統(tǒng)的設(shè)計過程中,應(yīng)保證這些管腳控制的外設(shè)不會因為系
統(tǒng)復(fù)位而發(fā)生誤動作。(3)PO~P3口輸出級的電路結(jié)構(gòu)有所不同。P0口是三態(tài)輸出,
其每個管腳均可以驅(qū)動8個LSTTL輸入,而Pl~P3口的輸出級均有上拉電阻,每個管腳
可驅(qū)動4個LSHL輸入。(4)每個并行口,可定義一部分管腳為輸入腳,另一部分管腳為
輸出腳,沒有使用的管腳可以懸空。
5.MCS-51單片機(jī)的存儲器分為哪幾個空間?試述各空間的作用。
MCS-51單片機(jī)有4個存儲空間,它們是片內(nèi)程序存儲器和數(shù)據(jù)存儲器,在片外能夠擴(kuò)展
的程序存儲器和數(shù)據(jù)存儲器。這4個存儲空間能夠分成三類:片內(nèi)數(shù)據(jù)存儲空間(256B的RAM
和128B的特殊功能寄放器)、片外數(shù)據(jù)存儲空間(64KB)、片內(nèi)和片外統(tǒng)一編址的程序存儲空
間(64KB)o
6.簡述內(nèi)部RAM中包含哪些可位尋址單元?
片內(nèi)RAM區(qū)從00H~FFH(256B)。
其中20Hs2FH(字節(jié)地址)是位尋址區(qū)。
對應(yīng)的位地址是00H-7FH。
7.什么叫堆棧?堆棧指針CSP)的作用是什么?在程序設(shè)計中為何要對SP重
新賦值?
堆棧是在內(nèi)部RAM區(qū)開辟的一個區(qū)域,用來保存程序運行過程中的一些特殊的數(shù)據(jù)。堆
棧指針寄存器的作用是指定棧頂?shù)奈恢?。單片機(jī)在復(fù)位時SP=07H,堆棧實際位置從08H開
始,即在工作寄存器區(qū)內(nèi)。為此,用戶在初始化程序中要給SP重新賦值,以指定堆棧的起
始位置。
8.程序狀態(tài)字寄存器PSW的作用是什么?簡述各位的作用。
程序狀態(tài)字PSW是一個8位寄存器,用于寄存程序運行的狀態(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è)定通用寄存器的組號。
⑤0V:溢出標(biāo)志位。
⑥P:奇偶標(biāo)志位。
9?位地址65H與字節(jié)地址65H如何區(qū)別?位地址65H具體在內(nèi)部R心J中的什
么位置?
MCS-51的位存儲器由以內(nèi)部RAM中20H~2FH單元和特殊功能寄存器中地址為8的倍數(shù)
的特殊功能寄存器兩部分組成。其中每個單元的每一位都有一個位地址映像,它們既可以像
普通內(nèi)部RAM單元一樣按字節(jié)存取,也可以對單元中的任何一位單獨存取。字節(jié)地址是內(nèi)部
RAM中和特殊功能寄存器中每個存儲單元的地址。位地址2011是內(nèi)部RAM24H中的D0位。
10.什么是振蕩周期、時鐘周期、機(jī)器周期和指令周期?如何計算機(jī)器周期的確
切時間?
時鐘周期也稱為振蕩周期,定義為時鐘脈沖頻率(fosc)的倒數(shù),它是計算機(jī)中最基本的、
最小的時間單位。
時鐘周期經(jīng)2分頻后成為內(nèi)部的時鐘信號,用作單片機(jī)內(nèi)部各功能部件按序協(xié)調(diào)工作的
控制信號,稱為狀態(tài)周期,用S表示。
完成一個基本操作所需要的時間稱為機(jī)器周期。
指令周期是執(zhí)行一條指令所需要的時間,一般由若干個機(jī)器周期組成,指令不同,所需要
的機(jī)器周期數(shù)也不同。
11.單片機(jī)工作過程中在運行出錯或進(jìn)入死循環(huán)時,如何處理?
左交錯律70;一百二十萬;4205700;弱穩(wěn)定性590;12203500。
解;一百二十萬寫作:1200030
所以9980正則圖一百二十萬V4205700V42中斷過程0V12203500。
12.使單片機(jī)復(fù)位的方法有幾種?復(fù)位后機(jī)器的初始狀態(tài)如何?
(1)單片機(jī)復(fù)位方法
單片機(jī)復(fù)位方法有:上電自動復(fù)位、按鍵電平復(fù)位和外部脈沖三種方式
(2)復(fù)位后的初始狀態(tài)
復(fù)位后機(jī)器的初始狀態(tài),即各寄存器的狀態(tài):PC之外,復(fù)位操作還對其他一些特殊功能
寄存器有影響。
13.開機(jī)復(fù)位后,單片機(jī)使用的是哪組工作寄存器?它們的地址是什么?如何改
變當(dāng)前工作寄存器組?
一般開機(jī)復(fù)位后都是選擇第一組通用工作寄存器作為工作寄存器的,一共有4組,分別
為0_L2.3連續(xù)位于00h至ij1FH地址,然后在機(jī)器中有個程序狀態(tài)字PSW,它的第四和第三
位RSI,RSO是用來選擇工作寄存器組的,可能不同機(jī)器地址稍有不同。她們倆的值和寄存
器組的關(guān)系:
RS1/RS00/00/11/01/1
使用的工作寄存器0123
地址00-0708-0F10-1718-1F
寫程序的時候就是經(jīng)過定義程序狀態(tài)字來選擇使用不同的寄存器組。也能夠直接對
RS1和RSO賦值。
第三章KeiI與Proteus軟件的使用
1.輸入并編譯圖3.1.10中的HeII。程序,其編譯結(jié)果占用多少單片機(jī)RAM空間?
程序代碼占用多少單片機(jī)ROM空間?調(diào)試時如何觀察該程序的輸出結(jié)果?
略。
2.如圖3.1.15所示示例程序,在Memory窗口中觀察定時器。的計數(shù)值和狀態(tài)
寄存器的變化情況。
略。
3.試用定時中斷方式改寫圖3.1.15所示示例程序并在調(diào)試模式中觀察0.5s定
時間隔是否準(zhǔn)確。
略。
4.不用定時中斷方式,試將圖3.1.15所示示例程序的0.5s定時間隔優(yōu)化到最
接近0.5so
略。
5.完成本章示例原理圖和示例程序的仿真實驗,并在此基礎(chǔ)上實現(xiàn)本章最后附
加數(shù)碼管顯示LED燈狀態(tài)的功能。
略。
第四章MCS-51單片機(jī)匯編語言指令系統(tǒng)及其編
程
1.簡述MCS-51單片機(jī)的指令格式及每部分的作用。
1、單片機(jī)的核心部分是CPU,CPU是單片機(jī)的大腦和心臟。
2、程序存儲器用于存放編好的程序或表格常數(shù)。
3、數(shù)據(jù)存儲器用于存放中間運算結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。
4、定時/計數(shù)器實質(zhì)上是加法計數(shù)器,當(dāng)它對具有固定時間間隔的內(nèi)部機(jī)器周期進(jìn)行計
數(shù)時,它是定時器;當(dāng)它對外部事件進(jìn)行計數(shù)時,它是計數(shù)器。
5、I/O接口的主要功能包括:緩沖與鎖存數(shù)據(jù)、地址譯碼、信息格式轉(zhuǎn)換、傳遞狀態(tài)(外
設(shè)狀態(tài))和發(fā)布命令等。
6、中斷控制可以解決CPU與外設(shè)之間速度匹配的問題,使單片機(jī)可以及時處理系統(tǒng)中
許多隨機(jī)的參數(shù)和信息,同時,它也提高了其處理故障與應(yīng)變能力的能力。
2.MCS-51單片機(jī)有哪幾種尋址方式?各有什么特點?每種尋址方式的尋址范
圍是什么?
①寄存器尋址②直接尋址③寄存器間接尋址④立即尋址⑤基址加變址
⑥位尋址⑦相對尋址。
3.對片內(nèi)RAM可以用哪幾種尋址方式?對片外RAM可以用哪幾種尋址方式?
共7種尋址方式,分別為:寄存器尋址,直接尋址,寄存器間接尋址,立即尋址,變址尋址,
位尋址和相對尋址。
寄存器尋址方式:由指令指出某一寄存器的內(nèi)容做為操作數(shù)。
直接尋址方式:指令中操作數(shù)直接以單元地址的形式給出。
寄存器間接尋址方式:寄存器間接尋址方式,寄存器中存放的則是操作數(shù)的地址,即操作
數(shù)是通過寄存器間接得到的。立即尋址方式:操作數(shù)在指令中直接給出。變址尋址方式:變址
尋址是為了訪問程序存儲器中的數(shù)據(jù)和表格。MCS-51的變址尋址是以DPTR或PC作基址寄
存器,以累加器A作變址寄存器,并以兩者內(nèi)容相加形成的16位地址做為操作數(shù)地址,以達(dá)
到訪問數(shù)據(jù)和表格的目的。位尋址方式:指對片內(nèi)RAM的位尋址區(qū)和某些可尋址的特殊功能
寄存器進(jìn)行位操作的尋址方式。相對尋址方式:相對尋址方式是為解決程序轉(zhuǎn)移而專門設(shè)置
的,為轉(zhuǎn)移指令所采用。
4.在對片外RAM單元的尋址中,用ri間接尋址與用DPTR間接尋址有什么區(qū)別?
片外數(shù)據(jù)存儲器尋址中,用Ri間接尋址只能訪問低端的256字節(jié)單元,而用DPTR作指針
間接訪問可訪問整個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。請分析下列
指令,說明源操作數(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í)行時間長短不同。
9.已知(A)二7AH,(R0)二30H,(30H)=A5H,(PSW)=80H,(SP)=65H,試分析下面每條
指令的執(zhí)行結(jié)果及對標(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ū)的
程序儲存器中。短轉(zhuǎn)移方便了可重定位編碼。SJMP方便了PC可重定位編碼,但轉(zhuǎn)移范圍小。
而ASJMP轉(zhuǎn)移范圍大,但存在跳區(qū)的限制,AJMP指令只能位于2KB區(qū)的最后2個字節(jié)處時,才
可跳到下一個區(qū)去。因此用AJMP指令來代替SJMP指令是有條件的,乜就是目標(biāo)地址必須與
它下面的指令存放地址在同一個2KB區(qū)域內(nèi)。
15.設(shè)當(dāng)前指令CJNEA,#IOH,20H的地址是OFFEH,若累加器A的值為12H,則該指
令執(zhí)行后的PC值為多少?若累加器A的值為I0H,又如何?
略。
16.用位處理指令實現(xiàn)PI.4:PLO/\(PI.IVPI.2)V/PI.3的邏輯功能。
略。
17.試編寫程序?qū)⑵瑑?nèi)RAM從INBUF開始存放的10個數(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ù)存儲器首地址為TABLE的數(shù)據(jù)表中存有I0B的數(shù)據(jù),編程將每個
字節(jié)的最高位置1,并送回原來的單元。
略。
19.編程將片內(nèi)35H-55H單元中的內(nèi)容送到以3000H為首的存儲區(qū)中。
M0VR1,#40H
MOVRO,#20H
MOVDPTR,#3000H
L1:MOVA,@R1
INCR1
INCDPTR
DJNZRO,LI
20.設(shè)內(nèi)部RAM5AH單元中有一非0變噩X,請編寫計算下述函數(shù)式的程序,其結(jié)
果存入5BH單元中。
略。
21.編程設(shè)計計算片內(nèi)RAM區(qū)50H~57H八個單元中數(shù)的算術(shù)乎均值,結(jié)果存于54H
開始的單元中。
MOVRO,#50H
MOVR2,#10
MOVA,#0
LP:ADDA,?RO
INCRO
DJNZR2,LP
MOVB,#10
DIVAB
M0V5AH,A
SJMP$
22.編寫對一個多字節(jié)數(shù)做乘以10的運算子程序。
略。
23.設(shè)有兩個長度均為15的數(shù)組,分別存放在以2000H和2100H為首的存儲區(qū)
中,試編程求其對應(yīng)項之和,結(jié)果存于以2200H為首的存儲區(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個單元中的內(nèi)容按升序排列,存于以
3000H為首地址的存儲區(qū)中。
■OVDPIK,#2OOOH
■OVRO,#3OH;讀到片內(nèi)的30H開始的單元
■OVR7,#50
LI:;將208丘開始的電元數(shù)據(jù)存儲到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個無符號數(shù),連續(xù)存放在以2000H為首地址的外部數(shù)據(jù)存儲區(qū)中,
試編程統(tǒng)計奇數(shù)和偶數(shù)的個數(shù)。
略。
26.將片外數(shù)據(jù)存儲器地址為1000H~1030H的數(shù)據(jù)塊,全部搬遷到片內(nèi)
RAM30H~60H中,并將原數(shù)據(jù)塊區(qū)域全部清零。
略。
27.從20H單元開始有一個無符號數(shù)據(jù)塊,其長度在20H單元中。求出數(shù)據(jù)塊中
最小值,并存入21H單元中。
M0V@R0,#21H;數(shù)據(jù)塊首地址
MOVR1,2OH;取數(shù)據(jù)塊長度
M0VA,@R0;取一個數(shù)
M0V21H,A;存數(shù)
DDD:DJNZR1,KKK;判斷是否取完
SJMP$;W完結(jié)束
KKK:INCR0;指向下一個數(shù)
M0VA,@R0;取數(shù)
MOVB,A;暫存
CLRC
SUBBA,21H;比較
JNCDDD;C=0,21H中數(shù)小,轉(zhuǎn)移
MOV21H,B;存小數(shù)
SJMPDDD
28.在以2000H為首地址的存儲區(qū)中,存放著20個用ASCII碼表示的0~9之間
的數(shù),試編程將它們轉(zhuǎn)換成BCD碼,并以壓縮BCD碼(即一個單元存放二位BCD
碼)的形式存于3000H~3009H單元中。
略。
29.試編寫一個雙字節(jié)有符號數(shù)除法子程序。
略。
30.試編寫一個多字節(jié)BCD碼加法子程序。
略。
第五章單片機(jī)C51程序設(shè)計基礎(chǔ)
1.編寫函數(shù)htoi(s),把由十六進(jìn)制數(shù)字組成的字符串(前面可能包含Ox或0X)
轉(zhuǎn)換成等價的整數(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)計整數(shù)變量x中值為1的位的個數(shù)。
略。
3.編寫函數(shù)strend(s,t),如果字符串t出現(xiàn)在字符串s的尾部,則返回1;否則
返回Oo
略。
4.利用定時器/計數(shù)器TI產(chǎn)生定時時鐘,由PI口控制8個發(fā)光二極管,使8
個指示燈依次一個一個閃動,閃動頻率為8次俐)(8個燈依次亮一遍為一個周期),
循環(huán)。
ORGOOOOHLJMPMAINORGOOOBHLJMPDVTOORGO1OOHMOVAO1HMAIN:MOVTMOD,#O1HMOVTHO,#03C
HMOVTLO,#OBOHSETBETOSETBEASETBTROSJMP$DVTO:MOVP1,ARLAMOVTHO,tt03CHM0VTL0,#OBOHRE
TIEND
5.已知inta=12,"S,請計算以下表達(dá)式運算后a的值:
24;10;60;0;0:
6.華氏溫度F與攝氏溫度C的轉(zhuǎn)換公式為:C—(F-32)x5/9,則以下語句:
floatc,F;c=S/9*(F-32);是其對應(yīng)的C語言表達(dá)式嗎?如果不是,為什么?
不是,一定要以分號結(jié)束
c=5/9*(F-32);
7.簡述C51中bit和sbit的區(qū)別,以及unsignedchar和sfr的不同點?
略。
8.C51中斷函數(shù)和普通C語言函數(shù)的區(qū)別在哪里?中斷函數(shù)主要用于什么操
作?
中斷函數(shù)要中關(guān)鍵字Interrupt,中斷函數(shù)執(zhí)行時,系統(tǒng)會進(jìn)行狀態(tài)的壓棧保存,就是進(jìn)
行當(dāng)前運行狀態(tài)的保護(hù),函數(shù)結(jié)束后恢復(fù)。
第六章單片機(jī)內(nèi)部資源及編程
1.什么是中斷?MCS-51單片機(jī)有幾個中斷源?中斷諸求如何提出?單片機(jī)如何
進(jìn)行中斷的響應(yīng)?
中斷是中間打斷某一工作過程去處理一些與本工作過程無關(guān)或間接相關(guān)的事件,處理完
后繼續(xù)原工作過程。
2.MCS-51的中斷源中,哪些中斷請求信號在中斷響應(yīng)時可以自動清除?哪些不
能自動清除?不能清除的如何處理?
外部中斷/INTO、定時器/計數(shù)器中斷外部中斷INT1.定時器/計數(shù)器中斷T0、對于有些
中斷源,CPUT1串行口中斷。在響應(yīng)中斷后會自動清除中斷標(biāo)志,如定時器溢出標(biāo)志TFO、TF1
和邊沿觸發(fā)方式下的外部中斷標(biāo)志IE0、IE1;而有些中斷標(biāo)志不會自動清除,只能由用戶用
軟件清除,如串行口接收發(fā)送中斷標(biāo)志RLTI;在電平觸發(fā)方式下的外部中斷標(biāo)志IE0和IE1
則是根據(jù)引腳/NTO和/INT1的電平變化的,CPU無法直接干預(yù),需在引腳外加硬件(如D觸發(fā)
器)使其自動撤銷外部中斷請求。
3.8051的中斷優(yōu)先級有幾級?在形成中斷嵌套時各級有何規(guī)定?
8051的中斷優(yōu)先級有兩級;形成中斷嵌套時規(guī)定(1)正在進(jìn)行的中斷過程不能被新的同
級或低優(yōu)先級的中斷請求所中斷,直到該中斷服務(wù)程序結(jié)束,返回了主程序且執(zhí)行了主程序
中的一條指令后,CPU才響應(yīng)新的中斷請求。(2)正在進(jìn)行的低優(yōu)先級中斷服務(wù)程序能被高優(yōu)
先級中斷請求所中斷,實現(xiàn)兩級中斷嵌套。(3)CPU同時接收到幾個中斷請求時,首先響應(yīng)優(yōu)
先級最高的中斷請求。
4.MCS-51單片機(jī)響應(yīng)中斷后,各中斷入口地址是什么?
中斷服務(wù)程序的入口地址如下表:中斷源中斷矢量外部中斷0(INT0)0003H定時器T0中
斷OOOBH外部中斷1(INT1)O013H定時器T1中斷001BH。
5.簡述MCS-51單片機(jī)中斷響應(yīng)的全過程。
答:CPU在每個機(jī)器周期S5P2期間順序采用每個中斷源,CPU在下一個機(jī)器周期S6期間
按優(yōu)先級順序查詢中斷標(biāo)志,如查詢到某個中斷標(biāo)志為1,將在接下來的機(jī)器周期S1期間按
優(yōu)先級進(jìn)行中斷處理,中斷系統(tǒng)通過硬件自動將相應(yīng)的中斷矢量地址裝入PC,以便進(jìn)入相應(yīng)
的中斷服務(wù)程序。一旦響應(yīng)中斷,MCS-51首先置位相應(yīng)的中斷“優(yōu)先級生效”觸發(fā)器,然后
由硬件執(zhí)行一條長調(diào)用指令,把當(dāng)前的PC值壓入堆棧,以保護(hù)斷點,再將相應(yīng)的中斷服務(wù)的
入口地址送入PC,于是CPU接著從中斷服務(wù)程序的入口處開始執(zhí)行。對于有些中斷源,CPU
在響應(yīng)中斷后會自動清除中斷標(biāo)志。
6.MCS-51單片機(jī)內(nèi)部有幾個定時器/計數(shù)器?它們由哪些功能寄存器組成?怎
樣實現(xiàn)定時功能?怎樣實現(xiàn)計數(shù)功能?
80c51單片機(jī)內(nèi)部有兩個16位的可編程定時/計數(shù)器,由THO,丁以),丁陽,111,丁乂01)和1'。^
功能寄存器組成。通過TMOD中的C/T位選擇對機(jī)器周期計數(shù)實現(xiàn)計數(shù)功能,選擇對外部脈
沖計數(shù)實現(xiàn)計數(shù)功能。
7.定時器/計數(shù)器的4種工作方式各自的計數(shù)范圍是多少?如果要計10個單位,
不同的方式初值應(yīng)為多少?
依據(jù)題意,只要使P1.0引腳每隔5us取反一次即可得到10us的方波,因此定是時間
T=5us,可選擇定時器/計數(shù)器TO,以中斷方式工作。
1,設(shè)定TMOD
TMOD的低4位控制T0,設(shè)定T0定時模式,即=0;工作在方式0,即M1MOOOH;軟件啟動定
時器,即GAME=0oTMOD的高4位與T0無關(guān),一般取0,所以TMOD控制字為001U
2,計算定時初值
晶振頻率為12MHz,機(jī)器周期=lus
定時初值二8192-5=8187=1FFB卞000111111111101IB
因TLO的高3位未用,對計算出的初值要進(jìn)行修正,即低5位前插入3個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;啟動T0
5口W$;等待中斷
ISER:MOVTLO,#1BH;TO中斷服務(wù)子程序,重置T0初值
MOVTHO,#OFFH
CPLPl.OjPl.1取反
RETI
END
8.設(shè)單片機(jī)外接晶振,晶振頻率為12M應(yīng),如果用定時器/計數(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ù)器TO,實現(xiàn)從P2.0口產(chǎn)生周期為
lOOms的方波。要求分別用匯編語言和C語言編程實現(xiàn)。
略。
10.已知振蕩頻率為6MHz,用定時器/計數(shù)器T0,實現(xiàn)從PLO口產(chǎn)生周期為Is.
占空比30%的波形。要求分別用匯編語言和C語言編程實現(xiàn)。
略。
11.設(shè)8051單片機(jī)的時鐘頻率為6MHz,請編寫程序在P1.7口輸出周期為2s方波
的程序。
略。
12.通過外部中斷。,觸發(fā)一個延時過程,假定延時時間為Is,延時期間可以點亮
一個LED及讓蜂鳴器發(fā)出聲音。已知單片機(jī)晶振頻率為6.00M應(yīng),畫出電路圖,
并編程實現(xiàn)。
略。
13.利用單片機(jī)內(nèi)部定時器/計數(shù)器TI產(chǎn)生定時時鐘,由PI口輸出信號控制8
個LED指示燈。試編程使8個指示燈依次輪流點亮,每個指示燈的點亮?xí)r間為
lOOms?
略。
14.利用定時器/計數(shù)器測堡某正脈沖寬度,已知此脈沖寬度小于10ms,試編程
測量脈寬,并把結(jié)果存入內(nèi)部RAM的50H和51H單元中。
略。
15.設(shè)某異步通信接口,每幀信息格式為10位,當(dāng)接口每秒傳送960個字符時,
其波特率為多少?
9600波特。
16.MCS-51單片機(jī)串行口有幾種工作方式?各自的特點是什么?
有四種工作方式,分別是方式0、方式1、方式2和方式3。其中:方式0,稱為同步移位
寄存器方式,一般用于外接移位寄存器芯片擴(kuò)展I/O接口。方式1,稱為8位的異步通信方式,
通常用于雙機(jī)通信。方式2和方式3,稱為9位的異步通信方式,通常用于多機(jī)通信。
17.串行口數(shù)據(jù)寄存器CSBUF)有什么特點?
發(fā)送數(shù)據(jù)存放器和接收數(shù)據(jù)存放器合起用一個特殊功能存放器SBUF(串行口數(shù)據(jù)存放
器),執(zhí)行MOVSBUF
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年花卉文化節(jié)贊助商合作協(xié)議3篇
- 2025年私立學(xué)校綠化養(yǎng)護(hù)及環(huán)境衛(wèi)生管理合作協(xié)議3篇
- 二零二五年綠色建筑改造場二手房置換協(xié)議3篇
- 2025年上半年鄭州鞏義市森林防火監(jiān)控指揮中心專業(yè)技術(shù)人員招考易考易錯模擬試題(共500題)試卷后附參考答案
- 二零二五版拆除工程環(huán)境保護(hù)責(zé)任協(xié)議2篇
- 2025年上半年遼寧阜新市事業(yè)單位招聘普通高校退伍大學(xué)生重點基礎(chǔ)提升(共500題)附帶答案詳解-1
- 2025年上半年遼寧省高速公路運營管理限責(zé)任公司錦州分公司校園招聘40人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年遼寧省冶金地質(zhì)勘查局所屬事業(yè)單位高層次人才擬聘人員易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年遼寧水資源集團(tuán)清潔能源限公司招聘12人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年遼寧丹東市事業(yè)單位公開招聘工作人員前易考易錯模擬試題(共500題)試卷后附參考答案
- 使用錯誤評估報告(可用性工程)模版
- 公司章程(二個股東模板)
- GB/T 19889.7-2005聲學(xué)建筑和建筑構(gòu)件隔聲測量第7部分:樓板撞擊聲隔聲的現(xiàn)場測量
- 世界奧林匹克數(shù)學(xué)競賽6年級試題
- 藥用植物學(xué)-課件
- 文化差異與跨文化交際課件(完整版)
- 國貨彩瞳美妝化消費趨勢洞察報告
- 云南省就業(yè)創(chuàng)業(yè)失業(yè)登記申請表
- UL_標(biāo)準(zhǔn)(1026)家用電器中文版本
- 國網(wǎng)三個項目部標(biāo)準(zhǔn)化手冊(課堂PPT)
- 快速了解陌生行業(yè)的方法論及示例PPT課件
評論
0/150
提交評論