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

下載本文檔

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

文檔簡(jiǎn)介

1、練習(xí)練習(xí)練習(xí)第二章 單片機(jī)結(jié)構(gòu)及原理1、MCS-51單片機(jī)內(nèi)部包含哪些主要功能部件?它們的作用是什么? 答: 1 一個(gè) 8bit CPU 是微處理器的核心,是運(yùn)算和邏輯計(jì)算的中心。2片內(nèi)震蕩器及時(shí)鐘電路:提供標(biāo)準(zhǔn)時(shí)鐘信號(hào),所有動(dòng)作都依據(jù)此進(jìn)行。34K ROM程序存貯器:存貯程序及常用表格。4 128B RAM 數(shù)據(jù)存貯器:存貯一些中間變量和常數(shù)等。5兩個(gè) 16bit 定時(shí)器 /計(jì)數(shù)器:完全硬件定時(shí)器 6 32 根可編程 I/O 口線:標(biāo)準(zhǔn) 8 位雙向 4 個(gè) I/O 接口,每一條 I/O 線都能獨(dú)立地作輸入 或輸出。 7一個(gè)可編程全雙工串行口。 8 五個(gè)中斷源。2、什么是指令?什么是程序? 答

2、:指令是規(guī)定電腦執(zhí)行某種操作的命令。程序是根據(jù)任務(wù)要求有序編排指令的集合。3、如何認(rèn)識(shí) 89S51/52 存儲(chǔ)器空間在物理結(jié)構(gòu)上可以劃分為 4個(gè)空間,而在邏輯上又可以劃分為 3 個(gè)空間?答:89S51/52存儲(chǔ)器空間在物理結(jié)構(gòu)上設(shè)有4個(gè)存儲(chǔ)器空間:片內(nèi)程序存儲(chǔ)器、片外程序存 儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器。在邏輯上有3個(gè)存儲(chǔ)器地址空間:片內(nèi)、片外統(tǒng)一的 64KB程序存儲(chǔ)器地址空間,片內(nèi)256 B數(shù)據(jù)存儲(chǔ)器地址空間,片外64KB的數(shù)據(jù)存儲(chǔ)器地址空間。4、 開(kāi)機(jī)復(fù)位后,CPU使用的是哪組工作存放器?他們的地址是多少?CPU如何確定和改變當(dāng)前工作 存放器組?答:開(kāi)機(jī)復(fù)位后,CPU使用的是第0組

3、工作存放器,地址為 00H07H, CPU通過(guò)改變狀態(tài)字存放器 PSW中的RS0和 RS1來(lái)確定工作存放器組。5、 什么是堆棧?堆棧有何作用?在程序設(shè)計(jì)時(shí),有時(shí)為什么要對(duì)堆棧指針SP重新賦值?如果 CPU在操作中要使用兩組工作存放器,SP應(yīng)該多大?答:堆棧是一個(gè)特殊的存儲(chǔ)區(qū),主要功能是暫時(shí)存放數(shù)據(jù)和地址,通常用來(lái)保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。堆棧指針SP復(fù)位后指向07H單元,00H1FH為工作存放器區(qū),20H2FH為位尋址區(qū),這些單元有其他 功能,因此在程序設(shè)計(jì)時(shí),需要對(duì)SP重新賦值。如果 CPU在操作中要使用兩組工作存放器,SP應(yīng)該至少設(shè)置為 0FH。6、 89S51/52的時(shí)鐘周期、機(jī)器周期、指令周期是

4、如何分配的?當(dāng)振蕩頻率為8MHz時(shí),一個(gè)單片 機(jī)周期為多少微秒? 答:時(shí)鐘周期為時(shí)鐘脈沖頻率的倒數(shù),他是單片機(jī)中最根本的、最小的時(shí)間單位。機(jī)器周期是指完 成一個(gè)根本操作所需要的時(shí)間,一個(gè)機(jī)器周期由 12 個(gè)時(shí)鐘周期組成。指令周期是執(zhí)行一條指令所 需要的時(shí)間,由假設(shè)干個(gè)機(jī)器周期組成。假設(shè)fosc=8MHz,那么一個(gè)機(jī)器周期 =1/8 X 12卩卩s7、89S51/52 擴(kuò)展系統(tǒng)中,片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器共處同一地址空間為什么不會(huì)發(fā)生總 線沖突?答:訪問(wèn)片外程序存儲(chǔ)器和訪問(wèn)數(shù)據(jù)存儲(chǔ)器使用不同的指令用來(lái)區(qū)分同一地址空間。&程序狀態(tài)字存放器 PSW勺作用是什么?常用狀態(tài)標(biāo)志有哪些位?作

5、用是什么?答:程序狀態(tài)字 PSW是 8位存放器,用于存放程序運(yùn)行的狀態(tài)信息,PSW中各位狀態(tài)通常是在指令執(zhí)行的過(guò)程中自動(dòng)形成的, 但也可以由用戶根據(jù)需要采用傳送指令加以改變。 各個(gè)標(biāo)志位的意義如 下:PSW.7Cy :進(jìn)位標(biāo)志位。PSW.6 AC:輔助進(jìn)位標(biāo)志位,又稱為半進(jìn)位標(biāo)志位。PSW.5 F0:用戶標(biāo)志位。PSW.4 PSW.3 RS1和RSO:存放器組選擇位。PSW.2 OV:溢出標(biāo)志位。PSW.1空缺位:此位未定義。PSW.0 P:奇偶校驗(yàn)位。9、 位地址7CH和字節(jié)地址7CH有何區(qū)別?位地址 7CH具體在內(nèi)存中什么位置?答:字節(jié)地址7CH是片內(nèi)數(shù)據(jù)存儲(chǔ)器中的一個(gè)地址單元,該地址單元

6、中可以存放8位二進(jìn)制數(shù),位地址7CH是內(nèi)部數(shù)據(jù)存儲(chǔ)器中位尋址區(qū)中的一位,該地址單元中可以存放1位二進(jìn)制數(shù)。位地址7CH具體在片內(nèi)數(shù)據(jù)存儲(chǔ)器字節(jié)地址為2FH中的第4位2FH.4。10、89S51/52 中 4 個(gè) I/O 端口的作用是什么? 89S51/52 的片外三總線是如何分配的?答: I/O 端口是單片機(jī)與外界聯(lián)系的重要通道,實(shí)現(xiàn)與外部設(shè)備的信息的傳輸。總線分配:片外數(shù)據(jù)總線8根通過(guò)P0 口輸出,片外地址總線16根通過(guò)P0 口低8位和P2 口高8位 輸出,片外控制總線PSEN,ALE,RD,WR, EA主要通過(guò) P3 口。11、89S51/52 中4個(gè) I/O 端口在結(jié)構(gòu)上有何異同?89S

7、51/52單片機(jī)的4個(gè)I/O 口在結(jié)構(gòu)上是根本相同的,但又各具特點(diǎn)。這四個(gè)端口都是8位 雙向口,每個(gè)端口都包括一個(gè)鎖存器、一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器。在無(wú)片外擴(kuò)展存儲(chǔ)器的系統(tǒng) 中,這四個(gè)端口的每一位都可以作為雙向通用 I/O 端口使用。在作為一般的通用 I/O 輸入時(shí),都必 須先向鎖存器寫(xiě)入“1 ,使輸出驅(qū)動(dòng)場(chǎng)效應(yīng)管 FET截止,以免誤讀數(shù)據(jù)。各自特點(diǎn)如下:1P0 口為雙向8位三態(tài)I/O 口,它既可作為通用I/O 口,又可作為外部擴(kuò)展時(shí)的數(shù)據(jù)總線 及低 8 位地址總線的分時(shí)復(fù)用口。作為通用 I/O 口時(shí),輸出數(shù)據(jù)可以得到鎖存,不需外接專用鎖存 器;輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性。

8、每個(gè)引腳可驅(qū)動(dòng)8個(gè)TTL負(fù)載。數(shù)字電路按工藝有肖特基雙極晶體管和CMO工藝兩種,使用雙極晶體管的數(shù)字電路稱TTL數(shù)字電路,單片機(jī)輸出端帶負(fù)載能力,意思就是單片機(jī)的P3端口只能并聯(lián)4個(gè)TTL型集成電路輸 入端。 2 P1 口為 8 位準(zhǔn)雙向 I/O 口,內(nèi)部具有上拉電阻,一般作通用 I/O 口使用,它的每一位都 可以分別定義為輸入線或輸出線,作為輸入時(shí),鎖存器必須置1。每個(gè)引腳可驅(qū)動(dòng) 4個(gè)TTL負(fù)載。3P2 口為8位準(zhǔn)雙向I/O 口,內(nèi)部具有上拉電阻,可直接連接外部I/O設(shè)備。它與地址總線高8位復(fù)用,可驅(qū)動(dòng)4個(gè)TTL負(fù)載。一般作為外部擴(kuò)展時(shí)的高8位地址總線使用。4P3 口為8位準(zhǔn)雙向I/O 口,

9、內(nèi)部具有上拉電阻, 它是雙功能復(fù)用口, 每個(gè)引腳可驅(qū)動(dòng) 4個(gè)TTL 負(fù)載。作為通用I/O 口時(shí),功能與P1 口相同,常用第二功能。12、復(fù)位的作用是什么?有幾種復(fù)位方法?復(fù)位后單片機(jī)的狀態(tài)如何?答:復(fù)位是單片機(jī)的初始化操作。單片機(jī)在RST引腳產(chǎn)生兩個(gè)機(jī)器周期即 24個(gè)時(shí)鐘周期以上的高電平即可實(shí)現(xiàn)復(fù)位。 主要的復(fù)位方法有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種。 按鍵手動(dòng)復(fù)位又分: 按鍵電平復(fù)位和按鍵脈沖復(fù)位。第三章 指令系統(tǒng)1 、簡(jiǎn)述以下名詞術(shù)語(yǔ)的根本概念:指令、指令系統(tǒng)、程序、匯編語(yǔ)言指令 答:指令:規(guī)定單片機(jī)進(jìn)行某種操作的命令稱為指令。指令系統(tǒng):?jiǎn)纹瑱C(jī)能夠執(zhí)行的各種指令的集合。 程序:一系列指令的有

10、序集合稱為程序。匯編語(yǔ)言指令:用助記符形式來(lái)表示機(jī)器指令。2、80C51 單片機(jī)有哪幾種尋址方式?這幾種尋址方式是如何尋址的?答:共 7 種尋址方式,分別為:存放器尋址,直接尋址,存放器間接尋址,立即尋址,變址尋址, 位尋址和相對(duì)尋址。存放器尋址方式:由指令指出某一存放器的內(nèi)容做為操作數(shù)。直接尋址方式:指令中操作數(shù)直接以單元地址的形式給出。存放器間接尋址方式 :存放器間接尋址方式,存放器中存放的那么是操作數(shù)的地址,即操作數(shù) 是通過(guò)存放器間接得到的。立即尋址方式:操作數(shù)在指令中直接給出。變址尋址方式:變址尋址是為了訪問(wèn)程序存儲(chǔ)器中的數(shù)據(jù)和表格。MCS51 的變址尋址是以DPTR或 PC作基址存放

11、器,以累加器A作變址存放器,并以兩者內(nèi)容相加形成的 16?位地址做為操 作數(shù)地址,以到達(dá)訪問(wèn)數(shù)據(jù)和表格的目的。位尋址方式:指對(duì)片內(nèi) RAM的位尋址區(qū)和某些可尋址的特殊功能存放器進(jìn)行位操作的尋址方式。相對(duì)尋址方式:相對(duì)尋址方式是為解決程序轉(zhuǎn)移而專門(mén)設(shè)置的,為轉(zhuǎn)移指令所采用。3、要訪問(wèn)特殊功能存放器和片外數(shù)據(jù)存放器,應(yīng)采用哪些尋址方式? 答:訪問(wèn)特殊功能存放器可以采用直接尋址、存放器尋址和位尋址針對(duì)可以進(jìn)行位尋址的特殊功 能存放器方式。訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器可采用存放器間接尋址方式。4、80C51 單片機(jī)的指令系統(tǒng)可以分為哪幾類(lèi)?說(shuō)明各指令的功能。答: 51 單片機(jī)指令系統(tǒng)按功能可分為 5 類(lèi):1 數(shù)

12、據(jù)傳送指令 2算術(shù)運(yùn)算指令 3邏輯運(yùn)算指令 4控制轉(zhuǎn)移指令 5位操作指令主要進(jìn)行數(shù)據(jù)的傳送、交換等; 主要進(jìn)行根本的加減乘除運(yùn)算; 主要實(shí)現(xiàn)邏輯運(yùn)算與移位運(yùn)算; 主要是實(shí)現(xiàn)對(duì)程序流程的控制;5、外部數(shù)據(jù)傳送指令有哪幾條?有和區(qū)別?讀外部存儲(chǔ)器指令:寫(xiě)外部存儲(chǔ)器指令:MOVXA, Ri;尋址范圍為256 字節(jié)MOVXA, DPTR;尋址范圍為64K字節(jié)MOVXR,i A;尋址范圍為256 字節(jié)MOVXDPT,RA;尋址范圍為64K字節(jié)答:外部數(shù)據(jù)傳送指令有讀指令和寫(xiě)指令兩類(lèi),每類(lèi)指令的尋址范圍不同,分別為:6、在 89S51 片內(nèi) RAM中,30H=38H,38H=40H, 40H=48H, 4

13、8H=90H,請(qǐng)分別分析下段程序按序執(zhí)行后的結(jié)果。MOVA, 40H; A=48HMOVR0, A; R0=48HMOVP1, #0FFH; P1=FFHMOVR0, 30H; (48H)=38HMOVDPTR, #1246H; DPTR=1246HMOV40H, 38H; (40H)=40HMOVR0, 30H; R0=38HMOV90H, R0; (90H)=38HMOV48H, #30H; (48H)=30HMOVA, R0; A=40HMOVP2, P1; P2=38H7、略8、 DA A 指令的作用是什么?怎樣使用?答:對(duì)十進(jìn)制 BCD數(shù)作加法時(shí)進(jìn)行調(diào)整,當(dāng)結(jié)果的低4位A0A3>

14、;9,或半進(jìn)位 AC=1,貝U A0A3+6,否那么不加;當(dāng)結(jié)果的高4位A4A7>9,或進(jìn)位CY=1,那么A4A7+ 6,否那么不加;這條指令是在進(jìn)行BCD碼加法運(yùn)算時(shí),跟在“ ADD和“ ADDC指令之后,用來(lái)對(duì) BCD碼的加法運(yùn)算結(jié)果自動(dòng)進(jìn) 行修正,使其仍為 BCD碼表示形式。9、試編程將片外數(shù)據(jù)存儲(chǔ)器 60H中的內(nèi)容傳送到片內(nèi) RAM54H單元中。答:MOVR0, #60HMOVX A, R0MOV 54H, AA=57H , CY=1, OV=1, AC=1, P=1A=3BH , CY=0, AC=1, OV=116、試編程將片外RAM中 30H和31H單元中的內(nèi)容相乘,結(jié)果存

15、放在32H低位和33H高位10、試編程將存放器 R7的內(nèi)容傳送到 R1中去。答:MOVA, R7MOVR1, A11、答:當(dāng)前PC值為210H,請(qǐng)用兩種方法將程序存儲(chǔ)器2F0H中的常數(shù)送入累加器 A中。1以程序計(jì)數(shù)器PC作為基址存放器MOVA, #0E0HMOVC A, A+PC2以數(shù)據(jù)指針DPTR作為基址存放器MOVDPTR, #02F0HMOVA, #00HMOVC A, A+DPTRMOVXCHSWAPXCHR0, #0A7HA, R0AA, R0;R0-A7H立即數(shù)送存放器 R0;A-A7H累加器A中的數(shù)據(jù)與R0中的數(shù)據(jù)進(jìn)行交換;A-7AH累加器A中的上下四位進(jìn)行交換;R0-7AH數(shù)據(jù)

16、交換回 R013、請(qǐng)用兩種方法實(shí)現(xiàn)累加器A與存放器B的內(nèi)容交換。答: 1 MOVR0, AMOVA, BMOVB, R0 2 MOVR0, BXCHA, R014 、試編程將片外RAM中 40H單兀的內(nèi)容與 R1的內(nèi)容交換。答:MOVR0, #40HMOVXA, R0XCHA, R1MOVXR0, A12、試說(shuō)明下段程序中每條指令的作用,并分析當(dāng)指令執(zhí)行完后,R0中的內(nèi)容是什么?15、: A=0C9H, B=8DH, CY=1。執(zhí)行指令A(yù)DDC A, B結(jié)果如何? 執(zhí)行指令SUBB A,B結(jié)果如何?單元中。答: MOV R0, #30HMOVX A, R0MOV B, AINC R0MOVX

17、A, R0MUL ABINC R0MOVX R0, AMOVA, BINC R0MOVX R0, A17、試用 3 種方法將累加器 A 中的無(wú)符號(hào)數(shù)乘 2.答: 1MOV R0, AADDA, R0 2MOV B, #2MUL AB 3RLA18、分析依次執(zhí)行以下指令的結(jié)果:MOV30H, #0A4H;(30H)=A4HMOVA, #0D6H;A=D6HMOVR0, #30H;R0=30HMOVR2, #47H;R2=47HANLA, R2;A=46HORLA, R0;A=E6HSWAPA;A=6EHCPLA;A=91HXRLA, #0FFH;A=6EHORL30H, A;(30H)=EEH1

18、9、求以下指令執(zhí)行后,累加器A及PSW中進(jìn)位CY奇偶位P和溢出位OV的值。1當(dāng)A=5BH時(shí);ADDA, #8CH2當(dāng)A=5BH時(shí);ANLA, #7AH3當(dāng)A=5BH時(shí);XRLA, #7FH4當(dāng) A=5BH, CY=1 時(shí) ;SUBB A, #0E8H答:1 A=E7H, 2A=5AH , 3A=24H ,CY=1, P=0,P=0P=0OV=04A=72H,CY=1, P=0,OV=020、 把累加器A中的低4位數(shù)據(jù)送到外部數(shù)據(jù)存儲(chǔ)器的2000H單元。答: ANLA, #OFHMOVDPTR, #2000HMOVX DPT,R A21、 試說(shuō)明指令 CJNE R1 #7AH, 10H的作用,假

19、設(shè)本指令地址為250H,其轉(zhuǎn)移地址是多少?答:指令作用:如果以 R1內(nèi)容為地址的單元中的數(shù)據(jù)等于7AH,那么程序順序執(zhí)行,否那么轉(zhuǎn)移后繼續(xù)執(zhí)行。假設(shè)本指令地址為250H,那么轉(zhuǎn)移地址為 250H+ 03H+ 10H= 263H。22、將累加器A中的數(shù)據(jù)由0遞增,加到50,結(jié)果在累加器 A中。答:CLRAMOVR0, #50L1:INCADJNZR0, L123、試說(shuō)明壓棧指令和彈棧指令的作用及執(zhí)行過(guò)程。答:壓棧入棧或進(jìn)棧指令的作用是將數(shù)據(jù)存入堆棧中,其執(zhí)行過(guò)程是先將堆棧指針SP 的內(nèi)容加 1,然后將直接地址單元中的數(shù)據(jù)壓入SP 指向的單元中。假設(shè)數(shù)據(jù)已推入堆棧,那么SP 指向最后推入數(shù)據(jù)所在的

20、存儲(chǔ)單元即指向棧頂。彈棧出棧指令的作用是將數(shù)據(jù)從堆棧中取出,其執(zhí)行過(guò)程為先將堆棧指針SP所指出單元的內(nèi)容送入直接尋址單元中,然后將SP的內(nèi)容減1,此時(shí)SP指向新的棧頂。24、下述程序執(zhí)行后,SP=?, A=?, B=?。L1:ORG2000HMOVSP, #40HMOVA, #30HLCALL250H;下條指令地址 2022H送41H 42H,SP=42HADDA, #10HMOVB, A;地址為 200AHSJMPL1ORG250HMOVDPTR, #200AHPUSHDPL;SP+1=43H,DP (43H)PUSHDPH;SP+1=44H,DPHk(44H)RET;200AHH PC答:

21、上述程序執(zhí)行后, SP=42H, A=30H, B=30H。25、發(fā)光二極管點(diǎn)亮規(guī)律:先是第 1 和第 8個(gè)亮,延時(shí)一段時(shí)間后,第 2和第 7個(gè)亮,延時(shí)后,再是第 3 和第 6 個(gè)亮,延時(shí)后,最后是第 4 和第 5 個(gè)點(diǎn)亮,延時(shí)后循環(huán)。26、假設(shè)系統(tǒng)晶振頻率為 6MHz求子程序DELAY的延時(shí)時(shí)間,假設(shè)想加長(zhǎng)或縮短時(shí)間,應(yīng)該怎樣 修改?答:DELAY: MOV R2, #0FAHL1:MOVR3, #0FAHL2:DJNZR3, L2DJNZR2, L1RET總時(shí)間計(jì)算:T=4 s + 250X 4卩 s + 4 卩 sX 250 + 4卩估算:T=250 X 4 卩 s X 250=250m

22、s假設(shè)想加長(zhǎng)延時(shí)時(shí)間,可以增加循環(huán)次數(shù)或再加一重循環(huán);假設(shè)想減小延時(shí)時(shí)間,可以減少循環(huán)次數(shù)或較少一重循環(huán)。27、P1 口連接 8 個(gè)共陽(yáng)極連接的發(fā)光二極管,是編制燈亮移位程序。答:MOVA, #0FEHL1:MOVP1, ARLALCALLDELAY;DELAY子程序同上題SJMPL128、試編一程序,將外部數(shù)據(jù)存儲(chǔ)器2100H單兀中的高4位置“ 1其余位清“ 0答:MOVDPTR, #2100HMOVXA, DPTRORLA, #0F0HANLA, #0F0HMOVXDPT,R A29、試編程將片內(nèi)數(shù)據(jù)存儲(chǔ)器40H單兀的第0為和第7位置1,其余取反。答: MOVA, 40HCPL ASETB

23、 ACC.7MOV 40H, A30、將A.5與80H位相與的結(jié)果,通過(guò) P1.4輸出。MOVC, 80HMOV P1.4 , C31、請(qǐng)用位操作指令,求以下邏輯方程。1P1.7 ACC.0 (B.0 P2.1) P32MOV P1.7,C2PSW.5P1.3 ACC.2 B.5 P1.1MOV20H, CORL C,20HMOVPSW.5, C3P2.3P1.5 B.4ACC.7 P1.0MOV20H, CORLC,20H下一行MOVP2.3,C第四章匯編語(yǔ)言程序設(shè)計(jì)1、編程將片內(nèi)40H60H單元中的內(nèi)容送到以 3000H為首的存儲(chǔ)區(qū)內(nèi)。答:MOVR1, #40HMOVR2, #21HMOV

24、DPTR #3000HL1:MOVA, R1MOVXDPTR AINCR1INCDPTRDJNZR2, L12、編程計(jì)算以下算式的程序123H+45H+ABH+03H=MOVA,#23HADDA,#45HADDA,#0ABHXCHA,B;溢出處理ADDCA,#00HXCHA,BADDA,#03H;A中為結(jié)果低位,B中為高位2CDH+15H-38H-46H=MOVA,#0CDHADDA,#15HSUBBA,#38HSUBBA,#46H31234H+8347H=MOVA,#34HADDA,#47HMOV30H, AMOVA, #12HADDC A, #83HMOV31, A; 30H 存結(jié)果低位,

25、 31H 存結(jié)果高位4 AB123H-43ADCH=CLRCMOVA, #23HSUBBA, DCHMOV30H, AMOVA, #0B1HSUBBA, #3AHMOV31H, AMOVA, #0AHSUBBA, #04HMOV32H, A;30H為低位,32H為高位3、設(shè)有兩個(gè)4位BCD碼,分別存放在23H、22H單元和33H、32H單元中,求他們的和,并送入43H、 42H單元中低位在低字節(jié),高位在高字節(jié)。答: MOVA,22HADDA,32HMOV42H, AMOVA,23HADDCA,33HMOV43H, A4、略5、編程計(jì)算片內(nèi)RAM區(qū) 50H- 59H單元中數(shù)的平均值,結(jié)果存放在5

26、AH 中。答: MOVR0, #8MOV R1, #50HMOVA, #00HL1:ADDA, R1INCR1DJNZR0, L1MOVB, #8DIVABMOV5AH, A6、編寫(xiě)計(jì)算下式的程序。設(shè)乘積和平方結(jié)果均小于255。 a、b值分別存在片外 3001H和3002H單元中,結(jié)果存于片外3000H單元中。25,a b1 Yab ,a bab ,a bMOVDPTR, #3001HMOVXA, DPTRMOV30H, A;a暫存30H單元INCDPLMOVXA, DPTRCJNEA, 30H, L1;是否 a=bMOVA, #25SJMPSAVEL1:JNCL2MOVB, 30HMULAB

27、SJMPSAVEL2:MOVB, AMOVA, 30HDIVABSAVE:MOVDPTR, #3000HMOVXDPR,T A(ab) 2 10,(ab)2 102Y(ab)2,(ab)2 10(ab) 2 10,(a2b)2 10MOVDPTR, #3001HMOVXA, DPTRMOV30H, AINCDPTRMOVXA, DPTRADDA, 30HMOVB, AMULAB;(a b) 2MOV31H, ACJNEA, #10, L1SJMPSAVEL1:JCL2CLRC答:MOVDPH, #02HMOVR1, #15MOVR2, #00H; 數(shù)組 1 首地址低位MOVR3, #10H;

28、數(shù)組 2 首地址低位MOVR4, #20H; 和首地址低位L1:MOVDPL, R2MOVXA, DPTRMOVR1, AMOVDPL, R3MOVXA, DPTRADDA, R1MOVDPL, R4MOVXDTP,R AINCR2INCR3INCR4DJNZR1, L1SJMP$8、設(shè)有100個(gè)無(wú)符號(hào)數(shù),連續(xù)存放在以2000H為首地址的存儲(chǔ)區(qū)中,試編程統(tǒng)計(jì)正數(shù)、負(fù)數(shù)和零的個(gè)數(shù)。答:MOV30H, #00H;正數(shù)計(jì)數(shù)器MOV31H, #00H;負(fù)數(shù)計(jì)數(shù)器MOV32H, #00H;零計(jì)數(shù)器MOVDPTR, #2000HMOVR1, #100L4:MOVXA, DPTRINCDPTRCJNEA,

29、#0, L1INC32HSJMPL2L1:JCL3INC30HSJMPL2L3:INC31HL2:DJNZR1, L4SJMP$7、設(shè)有兩個(gè)長(zhǎng)度均為 15 的數(shù)組, 分別存放在以 200H 和 210H 為首地址的存儲(chǔ)區(qū)中, 試編程求其對(duì)9、將片外數(shù)據(jù)存儲(chǔ)器地址為1000H1030H的數(shù)據(jù)塊,全部搬遷到片內(nèi)RAM 30H-60H中,并將原數(shù)據(jù)塊區(qū)域全部清零。SUBBSJMPA, #10SAVEL2:ADDA, #10SAVE:MOVDPTR, #3000HMOVCDPT,R A應(yīng)項(xiàng)之和,結(jié)果存放到以 220H 為首地址的存儲(chǔ)區(qū)中。答:MOVR0, #30HMOVR2, #31HMOVDPTR

30、, #1000HLP:MOVXA, DPTRMOVR0, AANDA, #00HMOVXDPT,R AINCR0INCDPTRDJNZR2, LPSJMP$10、試編寫(xiě)一子程序,是R1、RO指向的兩個(gè)片外 RAM連續(xù)單元中的高4 位二進(jìn)制數(shù),合并成一個(gè)字節(jié),裝入累加器A中。R0指向低地址,并要求該單元高四位放在A中高四位。答: MOVX A, R1ANLA, #OFOHSWAP AMOVR2, AMOVX A, ROANL A, #OFOHORLA, R22040H為首地址的連續(xù) 50個(gè)單元的無(wú)符號(hào)數(shù)按降序排列,存放到以3OOOH 為首地址的存儲(chǔ)區(qū)中。答:MOVR2, #50MOVR3, #2

31、0HMOVR4, #40HMOVR5, #30HMOVR6, #00HSEND:MOVDPH, R3MOVDPL, R4MOVXA, DPTRINCDPTRMOVR3, DPHMOVR4, DPLMOVDPH, R5MOVDPL, R6MOVXDPT,R AINCDPTRMOVR5, DPHMOVR6, DPLDJNZR2, SENDMOVR2, #49CMP1:MOVDPTR, #3000HMOVR3, #4911、試編程把以;源地址;目的地址;SEND各2040H數(shù)據(jù)塊移入 3000H存儲(chǔ)區(qū);重復(fù)次數(shù);比擬次數(shù)CMP2:MOVXMOVINCMOVXCJNEA, DPTRB, ADPTRA,

32、 DPTRA, B, L1L1:JCNOMOVEMOV30H, ACLRCMOVA, DPLSUBBA, #01HMOVDPL, AMOVA, 30HMOVXDPT,R AINCDPTRMOVA, BMOVXDPT,R ANOMOVE: DJNZR3, CMP2; 50 個(gè)數(shù)重復(fù)一遍?DJNZR2, CMP1;排序結(jié)束?LJMP$12、試編一查表程序,從首地址為2000H,長(zhǎng)度為100的數(shù)據(jù)塊中找出 ASCII碼為A,將其地址送到20A0H和20A伯單元中。答:MOVDPTR, #2000HMOVR2, #100GO_ON:MOVXA, DPTRCJNEA, #41H, IFENDMOVA,

33、DPHMOVB, DPLMOVDPTR, #20A0HMOVXDPT,R AINCDPTRXCHA, BMOVXDPT,R ASJMPOVERIFEND:INCDPTRDJNZR2, GO_ONOVER:SJMPOVER13、設(shè)在200H204H單元中,存放5個(gè)壓縮BCD碼,編程將他們轉(zhuǎn)換成 ASCII碼,存放到以205H 單元為首地址的存儲(chǔ)區(qū)。答:MOVR2,#05HMOVR3,#02HMOVR4,#00HMOVR5,#02HMOVR6,#05HCHLP:MOVDPH,R3MOVDPL,R4MOVXA, DPTRINCDPTRMOVR3, DPHMOVR4, DPLMOVB, ASWAPAA

34、NLA, #0FHORLA, #30HMOVDPH, R5MOVDPL, R6MOVXDPT,R AINCDPTRMOVA, BANLA, #0FHORLA, #30HMOVXDPT,R AMOVR5, DPHMOVR6, DPLDJNZR2, CHLP14、有一無(wú)符號(hào)數(shù)據(jù)塊長(zhǎng)度在 30H 單元中,其首地址為 31H 單元,求出數(shù)據(jù)塊中最大值,并存入40H 中。答:MOVR0, #31HMOVR1, 30HMOV40H, #00HLOOP:MOVA, R0CJNEA, 40H, L1SJMPAGAINL1:JNCL2SJMPAGAINL2:MOV40H, AAGAIN:INCR0DJNZR1,

35、 LOOPSJMP $15、略16、在以2000H為首地址的存儲(chǔ)區(qū)內(nèi),存放20個(gè)用ASCII碼表示的09之間的數(shù),試編程,將它們轉(zhuǎn)換成BCD碼,并以壓縮 BCD碼的形式存在 3000H- 3009H單元中。R2,#10R3,#20HR4,#00HR5,#30HR6,#00HDPH,R3DPL,R4A, DPTRA, #0FH答: MOVMOVMOVMOVMOVLP: MOVMOVMOVXANLSWAPAXCHA,BINCDPTRMOVXA,DPTRANLA, #0FHORLA,BINCDPTRMOVR3,DPHMOVR4, DPLMOVDPH R5MOVDPL,R6MOVXDPTR AINCD

36、PTRMOVR5,DPHMOVR6,DPLDJNZR2, LPSJMP$17、試編程實(shí)現(xiàn)以下邏輯表達(dá)式功能。設(shè)P1.7P1.0為8個(gè)變量的輸入端,而其中P1.7又作為變量的輸出端。;輸入端定義1Y X0X1X2 X3 X4X5X6 X7MOVC,X0ANLC,X1ANLC,/X2ORLC,X3MOVOOH, CMOVC,X4ANLC,X5ANLC,X6ORLC,/X7ORLC,00HMOVP1.7,C2Y X0X1X2X3X4X5X6X7MOVC,X0ANLC,X1CPLCMOV00H, CMOVC, X2ANLC, X3ANLC, X4CPLCMOV01H, CMOVC, X5ANLC, X

37、6ANLC, X7CPLCORLC, O1HCPLCORLC, 00HMOVP1.7 , C18 、略19 、略20、試編寫(xiě)延時(shí)1s、 1min、1h 子程序。;單片機(jī)時(shí)鐘fosc=12MHz,計(jì)算為近似值; 1s 延時(shí)子程序21 、用程序?qū)崿F(xiàn)c=a2+b2。設(shè)a、b均小于10, a存在31H單兀中,元。答: ORG1000HSR:MOVA, 31HACALLSQRMOVR1, Ab 存在 32H 單元中,c存33H單DLY_1S: MOVR0, #10L3:MOVR1,#200L2:MOVR2,#250L1:DJNZR2,L1DJNZR1,L2DJNZR0,L3RET;延時(shí)1minDLY_1

38、M: MOVR3,#60L4:LCALLDLY_1SDJNZR3,L4RET;延時(shí)1hDLY_1H: MOVR4,#60L5:LCALLDLY_1MDJNZR4,L5RETMOVA, 32HACALLSQRADDA, R1MOV33H, ASJMP$;求平方子程序如下采用查平方表的方法SQR:INCAMOVCA,A+PCRETTABLE:DB O ,1 ,4,9,16DB 25 ,36,49, 64,81END22、如何實(shí)現(xiàn)將內(nèi)存單元40H60H的數(shù)逐個(gè)對(duì)應(yīng)傳到片外 2540H2560H單元中?答:MOVMOVMOVRO, #4OH DPTR, #254OHR2, #21HL1:MOVA, R

39、OMOVXDPT,R AINCROINCDPTRDJNZR2, L1SJMP$23、4 -4y.參考21 題24、4 -4y.參考21 題25、參考實(shí)驗(yàn)程序26、參考實(shí)驗(yàn)程序第五章 定時(shí)/ 計(jì)數(shù)器1、89S51單片機(jī)內(nèi)部有幾個(gè)定時(shí)/計(jì)數(shù)器,他們有哪些專用存放器組成?答:89S51單片機(jī)內(nèi)部有兩個(gè)16位定時(shí)/計(jì)數(shù)器,為定時(shí)器 0 TO和定時(shí)器1 T1。在定時(shí)器/ 計(jì)數(shù)器的16位的計(jì)數(shù)器是由兩個(gè) 8位的專用存放器 THO TLO, TH1、TL1組成。2、89S51 單片機(jī)的定時(shí) /計(jì)數(shù)器有哪幾種工作方式,各有什么特點(diǎn)?答:定時(shí)器 /計(jì)數(shù)器有四種工作方式:方式0,方式 1,方式 2,方式 3。其中

40、,方式 3只適用于 T0。以TO為例:方式 0, 16位存放器只用了 13位,TLO的高三位未用。由 TH0的8位和TLO的 低5位組成一個(gè)13位計(jì)數(shù)器;方式 1,和方式O的工作相同,唯一的差異是THO和TLO組成一個(gè)16位計(jì)數(shù)器;方式 2,把TLO配置成一個(gè)可以自動(dòng)恢復(fù)初值的8位計(jì)數(shù)器,THO作為常數(shù)緩沖器。THO由軟件預(yù)置值。當(dāng) TLO產(chǎn)生溢出時(shí),一方面使溢出標(biāo)志TFO置1,同時(shí)把THO中的8位數(shù)據(jù)重新裝入TLO中;方式3,將使TLO和THO成為兩個(gè)相互獨(dú)立的 8位計(jì)數(shù)器,TLO利用TO本身 的一些控制,它的操作與方式O和方式1類(lèi)似。而THO被規(guī)定為只用作定時(shí)器功能,對(duì)機(jī)器周期計(jì)數(shù),并借用

41、了 T1的控制位TR1和TF1。在這種情況下 THO控制了 T1的中斷。這時(shí) T1還可以設(shè)置為方式02,用于任何不需要中斷控制的場(chǎng)合,或者用作串行口的波特率發(fā)生器。3、定時(shí)/ 計(jì)數(shù)器用作定時(shí)方式時(shí), 其定時(shí)時(shí)間與哪些因素有關(guān)?作為計(jì)數(shù)時(shí), 對(duì)外界計(jì)數(shù)頻率有何 限制?答:定時(shí) /計(jì)數(shù)器作定時(shí)時(shí),其計(jì)數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時(shí)鐘信號(hào)12分頻后提供。定時(shí)時(shí)間與時(shí)鐘頻率和定時(shí)初值有關(guān)。定時(shí)/計(jì)數(shù)器作計(jì)數(shù)時(shí),由于確認(rèn) 1次負(fù)跳變要花 2個(gè)機(jī)器周期,即 24個(gè)振蕩周期,因此外部 輸入的計(jì)數(shù)脈沖的最高頻率為系統(tǒng)振蕩器頻率的 1/24 。T1 自動(dòng)開(kāi)始運(yùn)行,假設(shè)要停止,只需送入一個(gè)置定時(shí)器4、 當(dāng)定時(shí)器T

42、0用作方式3時(shí),由于TR1位已被T0占用,如何控制定時(shí)器 T1的開(kāi)啟和關(guān)閉?答:定時(shí)器T0用作方式3時(shí),由于TR1位已被T0占用,此時(shí)通過(guò)控制位 C/T切換其定時(shí)或計(jì)數(shù)器 工作方式。當(dāng)設(shè)置好工作方式時(shí),定時(shí)器T1 為方式 3 的方式字。24MHz請(qǐng)利用定時(shí)器 T0和P1.2輸出矩形脈沖。矩形波高5、 89S51 單片機(jī)系統(tǒng)時(shí)鐘頻率為 電平寬度50宙,低電平寬度 350 e。ORGMOVTMOD, 02H;設(shè)置工作方式MOVTH0, 09CH;設(shè)置定時(shí)器初值MOVTL0, 09CHSETBTR0;啟動(dòng)定時(shí)器MOV R0, 07HJBCTF0 , REP;定時(shí)是否到?AJMPDELDJNZR0,

43、DELAJMPLOOPEND1000HDEL:答:選擇方式 2,用定時(shí)器 T1MOVTMOD, #20HMOVTH1, #06HMOVTL1 , #06HSETBTR1L1:MOVR2, #04HL2:JNBTF1, $CLRTF1,DJNZR2, L2LJMPL17、設(shè)系統(tǒng)時(shí)鐘為24MHz試用;卩s的方波。2ms定時(shí),定時(shí)時(shí)間到后,答:L1:MOV MOV MOV SETBTMOD,TH0, #0FCHTL0, #18HTR0T0 做外部計(jì)數(shù)器,編程實(shí)現(xiàn)每計(jì)到 1000 個(gè)脈沖,是 T1 開(kāi)始 T0 又開(kāi)始計(jì)數(shù),循環(huán)往復(fù)。#15H;T1定時(shí)方式1,T0計(jì)數(shù)方式1答:JNBTF0,$CLRTR

44、0CLRTF0MOVTH1,# HMOVTL1,# HSETBTR1JNBTF1,$CLRTR1CLRTF1LJMPL18、略9、略第六章 80C51 的串行接口1、什么是串行異步通信?他有哪些特點(diǎn)?有哪幾種幀格式? 答: 串行通信即所傳輸數(shù)據(jù)的各位按順序一位一位的發(fā)送或接收。串行通信分為同步和異步兩種方式。在異步通信中數(shù)據(jù)或字符是一幀一幀地傳送的。 幀定義為一個(gè)字符的完整的通信格式, 通常也 稱為幀格式。它的主要特點(diǎn): 由于異步通信每傳送一幀有固定的格式, 通信雙方只需按約定的幀格式來(lái)發(fā)送 和接收數(shù)據(jù),所以硬件結(jié)構(gòu)比同步通信方式簡(jiǎn)單;此外它還能利用校驗(yàn)位檢測(cè)錯(cuò)誤。幀格式的一般形式是先用一個(gè)起

45、始位“0表示字符的開(kāi)始,然后是數(shù)據(jù)位,其后是奇偶校驗(yàn)位,最后是停止位,用以表示字符結(jié)束。2、某異步通信接口按方式 3 傳送,其每分鐘傳送 3600 個(gè)字符,計(jì)算其傳送波特率。 答:設(shè)每個(gè)字符由 1個(gè)起始位、 8 個(gè)數(shù)據(jù)位、 1個(gè)可編程位和 1 個(gè)結(jié)束位組成,其傳送波特率為:11b x 3600/60s=660bps3、80C51 單片機(jī)的串行口由哪些根本功能部件組成?答:80C51單片機(jī)的串行口根本功能部件主要有:兩個(gè)數(shù)據(jù)緩沖存放器SBUF 個(gè)串行口控制存放器SCON個(gè)輸入移位存放器。4、 80C51 單片機(jī)的串行口有幾種工作方式?幾種幀格式?如何設(shè)置不同方式的波特率?答:80C51單片機(jī)的串

46、行口有四種工作方式,由串行口控制存放器中的SM0 SM1控制。80C51單片機(jī)的串行通信有 8位、10位、11位三種幀格式。波特率設(shè)置: 4種工作方式波特率的計(jì)算方法不同,其中方式0和方式 2的波特率是固定的,方式 1 和方式 3 的波特率是可變的,均由定時(shí)器 T1 的溢出率控制。具體計(jì)算如下:方式0:波特率固定為時(shí)鐘頻率的1/12,不受SMO啲影響。SMO場(chǎng)波特率倍增位方式1的波特率=2SMOD32 X定時(shí)器T1的溢出率方式 2 的波特率 =2SMO/D64 x fosc方式3的波特率=2SMO/32 X定時(shí)器T1的溢出率5、 為什么定時(shí)器 T1 用作串行口波特率發(fā)生器時(shí),常采用工作方式2?

47、 答:在串行通信中,收發(fā)雙方對(duì)發(fā)送或接收的數(shù)據(jù)速率即波特率要有一定的約定。串口有四種 工作方式,其中方式 0和方式 2 的波特率是固定的,而方式 1 和方式 3 的波特率是可變的,有定時(shí)器T1的溢出率控制。定時(shí)器 T1用作串行口波特率發(fā)生器時(shí),因?yàn)楣ぷ鞣绞?是自動(dòng)重裝載方式,因而定時(shí)器T1作波特率發(fā)生器常采用工作方式2.6、定時(shí)器T1設(shè)置成方式2,用作波特率發(fā)生器,系統(tǒng)時(shí)鐘頻率為24MHz求可能產(chǎn)生的最高和最低的波特率是多少?答:最高波特率: TH1=0FFH TL1=0FFH波特率 最高=2/32 X 24M/ 12X最低波特率:TH1=00H TL仁00H波特率最低=1/32 X 24M/ 12X 256- 0bps=244bps9、 串行口異步通信時(shí),ASCII碼“3的字符格式10位如何?答:串行口異步通信時(shí),10位的數(shù)據(jù)幀結(jié)構(gòu)為: 一個(gè)起始位0,8個(gè)數(shù)據(jù)位先低位后高位, 一個(gè)停止位1。故ASCII碼“ 3 的字符格式為:0110011001B。10、 假設(shè)選用定時(shí)器 T1作波特率發(fā)生器,設(shè) fosc=6MHz,計(jì)數(shù)初值為OFDH SMOD=,1求波特率是 多少?答:假設(shè)選用定時(shí)器T1作波

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論