單片機(jī)思考題及習(xí)題參考答案_第1頁(yè)
單片機(jī)思考題及習(xí)題參考答案_第2頁(yè)
單片機(jī)思考題及習(xí)題參考答案_第3頁(yè)
單片機(jī)思考題及習(xí)題參考答案_第4頁(yè)
單片機(jī)思考題及習(xí)題參考答案_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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í)題參考答案1、第一臺(tái)計(jì)算機(jī)的問(wèn)世有什么意義?答:第一臺(tái)電子數(shù)字計(jì)算機(jī)ENIAC問(wèn)世,開(kāi)創(chuàng)了計(jì)算機(jī)科學(xué)技術(shù)的新紀(jì)元,對(duì)人類的生產(chǎn)和生活方式產(chǎn)生了巨大的影響,標(biāo)志著計(jì)算機(jī)時(shí)代的到來(lái)。2、計(jì)算機(jī)由哪幾部分構(gòu)成?答:典型的計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成。3、微型計(jì)算機(jī)由哪幾部分構(gòu)成?答:微型計(jì)算機(jī)由微處理器、存儲(chǔ)器加上I/O接口電路組成。4、微處理器與微型計(jì)算機(jī)有何區(qū)別?答:微處理器是集成了運(yùn)算器和控制器及一些寄存器的芯片;微型計(jì)算機(jī)除了包括了微處理器所有的,還加上了存儲(chǔ)器和I/O接口電路。5、什么叫單片機(jī)?其主要特點(diǎn)有哪些?答:在一片集成電路芯片上集成微處理器、存

2、儲(chǔ)器、I/O接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),即單片機(jī);其主要特點(diǎn)有:一、控制性能和可靠性高,二、體積小、價(jià)格低、易于產(chǎn)品化。6、微型計(jì)算機(jī)有哪些應(yīng)用形式?各適于什么場(chǎng)合?答:從應(yīng)用形式上,微型計(jì)算機(jī)可以分為三種:多板機(jī)(系統(tǒng)機(jī))、單板機(jī)和單片機(jī)。目前人們廣泛使用的個(gè)人計(jì)算機(jī)(pc機(jī))就是典型的多板微型計(jì)算機(jī),通常用于辦公或家庭事務(wù)處理及科學(xué)計(jì)算和工業(yè)測(cè)試;單板機(jī)主要在早期用于微型計(jì)算機(jī)原理的教學(xué)及簡(jiǎn)單的測(cè)控系統(tǒng),現(xiàn)在已很少使用;單片機(jī)具有很好的控制性能和靈活的嵌入品質(zhì),被廣泛應(yīng)用于智能儀器儀表、機(jī)電一體化產(chǎn)品、實(shí)時(shí)工業(yè)控制、分布系統(tǒng)的前端模塊、家用電器。7、當(dāng)前單片機(jī)的主要產(chǎn)品有哪些?各

3、有何特點(diǎn)?答:當(dāng)前廣泛應(yīng)用的單片機(jī)產(chǎn)品為80C51系列,主要有:ATMEL公司融入Flash存儲(chǔ)器技術(shù)推出的AT89系列單片機(jī);Phlilps公司推出的80c51、80c552系列高性能單片機(jī);*華邦公司推出的W78c51、W77c51系列高速低價(jià)單片機(jī);ADI公司推出的ADPC8XX系列高精度ADC單片機(jī);LG公司推出的GMS90/97系列低壓高速單片機(jī);Maxim公司推出的DS89c420高速(50MIPS)單片機(jī);Cygnal公司推出的c8051F系列高速SOC單片機(jī)等。當(dāng)前影響比較大的非80C51系列單片機(jī)主要有:Intel公司推出的MCS-96系列16位單片機(jī);Microchip公司

4、推出的PIC系列RISC結(jié)構(gòu)單片機(jī);TI公司推出的MSP430F系列16位低電壓、低功耗單片機(jī);ATMEL公司推出的AVR系列RISC結(jié)構(gòu)單片機(jī)等。8、簡(jiǎn)述單片機(jī)的開(kāi)發(fā)過(guò)程。答:?jiǎn)纹瑱C(jī)的應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程應(yīng)包括四部分工作內(nèi)容,即系統(tǒng)硬件設(shè)計(jì)、系統(tǒng)軟件設(shè)計(jì)、系統(tǒng)仿真調(diào)試及脫機(jī)運(yùn)行調(diào)試。9、常用的單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)方法有哪些?答:常用的單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)方法有:一、利用獨(dú)立型仿真器開(kāi)發(fā)獨(dú)立型仿真器采用與單片機(jī)應(yīng)用系統(tǒng)相同類型的單片機(jī)做成單板機(jī)形式,板上配置LED顯示器和簡(jiǎn)易鍵盤。這種開(kāi)發(fā)系統(tǒng)在沒(méi)有普通微機(jī)系統(tǒng)的支持下,仍能對(duì)單片機(jī)應(yīng)用系統(tǒng)進(jìn)行仿真,便于在現(xiàn)場(chǎng)對(duì)應(yīng)用軟件進(jìn)行調(diào)試和修改。二、利用非獨(dú)立

5、型仿真器開(kāi)發(fā)這種仿真器采用通用微型計(jì)算機(jī)加仿真器方式構(gòu)成。仿真器與通用微機(jī)間以串行通信的方式連接。這種開(kāi)發(fā)方式必須有微機(jī)的支持,利用微機(jī)系統(tǒng)配備的組合軟件進(jìn)行源程序的編輯、匯編和仿真調(diào)試。第二章80C51的結(jié)構(gòu)和原理習(xí)題及答案1、80C514單片機(jī)在功能上、工藝上、程序存儲(chǔ)器的配置上有哪些種類?答:80C51單片機(jī)在功能上有兩種大類:(1)、基本型;(2)、增強(qiáng)型;80C51單片機(jī)在生產(chǎn)工藝上有兩種:(1)、HMOS工藝(即高密度短溝道MOS工藝);(2)、CHMOS工藝(即互補(bǔ)金屬氧化物的HMOS工藝);80C51單片機(jī)在程序存儲(chǔ)器的配置上有三種形式:(1)、掩膜ROM;(2)、EPROM;

6、(3)、ROMLess(無(wú)片內(nèi)程序存儲(chǔ)器)。2、80C51單片機(jī)存儲(chǔ)器的組織采用何種結(jié)構(gòu)?存儲(chǔ)器地址空間如何劃分?各地址空間的地址范圍和容量如何?在使用上有何特點(diǎn)?答:80C51單片機(jī)存儲(chǔ)器的組織采用哈佛結(jié)構(gòu):存儲(chǔ)器在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間?;拘蛦纹瑱C(jī)片內(nèi)程序存儲(chǔ)器容量為4KB,地址范圍是0O00HOFFFHo增強(qiáng)型單片機(jī)片內(nèi)程序存儲(chǔ)器容量為8KB,地址范圍是0000H0FFFHo基本型單片機(jī)片內(nèi)數(shù)據(jù)存儲(chǔ)器均為128字節(jié),地址范圍是00H7FH,用于存放運(yùn)算的中間結(jié)果、暫存數(shù)據(jù)和數(shù)據(jù)緩沖。這128字節(jié)的低32個(gè)單元用作工作寄存器,在20H2FH共16個(gè)單元是位尋址區(qū)

7、,然后是80個(gè)單元的他通用數(shù)據(jù)緩沖區(qū)。增強(qiáng)型單片機(jī)片內(nèi)數(shù)據(jù)存儲(chǔ)器為256字節(jié),地址范圍是00HFFH。低128字節(jié)的配置情況與基本型單片機(jī)相同,高128字節(jié)為一般RAM,僅能釆用寄存器間接尋址方式訪問(wèn)(而與該地址范圍重疊的SFR空間釆用直接尋址方式訪問(wèn))。3、80C51單片機(jī)的P0P3口在結(jié)構(gòu)上有何不同?在使用上有何特點(diǎn)?答:80C51單片機(jī)各口均由接口鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成,但是結(jié)構(gòu)存在差異:P0、P1口有轉(zhuǎn)換開(kāi)關(guān)MUX,P2、P3口沒(méi)有;P1P3口都有上來(lái)電阻,但是P0沒(méi)有。4個(gè)I/O口的使用特點(diǎn):(1)、P0:P0口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn)也可以按位訪問(wèn)。用做通用的

8、I/O口,相當(dāng)于一個(gè)真正的雙向口:輸出鎖存,輸入緩沖,但輸入是須先將口置1;每根口線可以獨(dú)立定義輸入或輸出。用作地址/數(shù)據(jù)復(fù)用總線:作數(shù)據(jù)總線用時(shí),輸入/輸出8位數(shù)據(jù)D0D7;作地址總線用時(shí),輸出低8位地址A0A7。(2)、P1:P1口惟一的單功能口,僅能用作通用的I/O口??砂醋止?jié)訪問(wèn)也可以按位訪問(wèn),輸入時(shí)需先輸出1,將該口設(shè)為輸入狀態(tài)。(3)、P2:P2口是一個(gè)多功能8位口,可按字節(jié)訪問(wèn)也可以按位訪問(wèn)。在單片機(jī)采用并行擴(kuò)展方式時(shí),P2口作為地址總線的高8位D8D15。(4)、P3:P3口是一個(gè)雙功能8位口,可按字節(jié)訪問(wèn)也可以按位訪問(wèn)。除作I/O口使用(位準(zhǔn)雙向口)外,每一條接口線還具有不同

9、的第二功能:P3.0:RXD(串行口輸入);P31:TXD(串行口的輸出);P3.2:INTO(外部中斷0輸入);P3.3:INT1(外部中斷0輸入)P3.4:T0(定時(shí)/計(jì)數(shù)器0的外部輸入);P3.5:T1(定時(shí)/計(jì)數(shù)器1的外部輸入)P3.6:WR(片外數(shù)據(jù)存儲(chǔ)器“寫”選通控制輸出,輸出,低電平有效);P37:RD(片外數(shù)據(jù)存儲(chǔ)器“讀”選通控制輸出,輸出,低電平有效)。4、如果80C51單片機(jī)晶振頻率為12MHz,時(shí)鐘周期、機(jī)器周期為多少?答:根據(jù)“一個(gè)機(jī)器周期包含12個(gè)晶蕩周期或6個(gè)時(shí)鐘周期”得,時(shí)鐘周期是1/6us,機(jī)器周期是1us。5、80C51單片機(jī)復(fù)位后的狀態(tài)如何?復(fù)位方法有幾種?

10、答:80C51單片機(jī)復(fù)位后的狀態(tài):?jiǎn)纹瑱C(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),PC=0000H,程序從0000H地址單元開(kāi)始執(zhí)行。特殊功能寄存器復(fù)位后的狀態(tài)是確定的。P0P3=FFH,PSW=00H,SFR=00H,SP=07H,SBUF不定,IP、IE和PCON的有效位為0。6、80C51單片機(jī)的片內(nèi)、片外存儲(chǔ)器如何選擇?答:80C51單片機(jī)的EA引腳為訪問(wèn)內(nèi)部和外部程序存儲(chǔ)器的選擇端。程序存儲(chǔ)器ROM:其內(nèi)部容量4KB,指令可直接訪問(wèn);當(dāng)容量不足時(shí),可擴(kuò)展到片外ROM,此時(shí)容量可達(dá)到64KB,但此時(shí)要注意設(shè)置EA=0;相反,當(dāng)選擇片內(nèi)ROM時(shí),設(shè)置EA=1數(shù)據(jù)存儲(chǔ)器RAM:內(nèi)部容量128字節(jié),

11、指令豐富,當(dāng)要對(duì)片外RAM訪問(wèn)時(shí)使用指令MOVX,此時(shí)讀寫信號(hào)都有效,但是片外RAM不能進(jìn)行堆棧操作;而訪問(wèn)片內(nèi)RAM使用MOV指令,無(wú)讀寫信號(hào)產(chǎn)生。7、80C51單片機(jī)的PSW寄存器各位標(biāo)志的意義如何?答:程序狀態(tài)字寄存器PSW,8位,其各位含意:CY:進(jìn)位、借位標(biāo)志。有進(jìn)位、借位時(shí)CY=1,否則CY=0;AC:輔助進(jìn)位、借位標(biāo)志。當(dāng)進(jìn)行加法或減法運(yùn)算時(shí),若低4位向高4位發(fā)生進(jìn)位(或借位)時(shí),AC將被硬件置位;否則,被清除;F0:用戶標(biāo)志。開(kāi)機(jī)時(shí)該位為0,用戶可以根據(jù)需要,通過(guò)操作指令將F0置1或者清0;當(dāng)CPU執(zhí)行對(duì)F0位測(cè)試條件轉(zhuǎn)移指令時(shí),根據(jù)F0的狀態(tài)實(shí)現(xiàn)分支轉(zhuǎn)移,相當(dāng)于“軟開(kāi)關(guān)”;R

12、S1、RS0:當(dāng)前工作寄存器組選擇位,用于設(shè)定當(dāng)前寄存器的組號(hào);OV:溢出標(biāo)志位。有溢出時(shí)OV=1,否則OV=0;P奇偶標(biāo)志位。存累加器A的運(yùn)算結(jié)果有奇數(shù)個(gè)1時(shí)P=1,否則P=0;在串行通信中,常以傳送奇偶檢驗(yàn)位來(lái)檢驗(yàn)數(shù)據(jù)的可靠性。8、80C51單片機(jī)的當(dāng)前工作寄存器組如何選擇?答:當(dāng)前工作寄存器組的選擇由特殊功能寄存器中的程序狀態(tài)字寄存器PSW的RS1、RS0來(lái)決定??梢詫?duì)這兩位進(jìn)行編程,以選擇不同的工作寄存器組。工作寄存器組與RS1、RS0的關(guān)系及地址如表2.2所示組號(hào)RS1RS0R7R6R5R4R3R2R1R000007H06H05H04H03H02H01H00H1010FH0EH0DH

13、0CH0BH0AH09H08H21017H16H15H14H13H12H11H10H3111FH1EH1DH1CH1BH1AH19H18H當(dāng)某一時(shí)刻,只能選用一個(gè)寄存器組??梢酝ㄟ^(guò)軟件對(duì)程序狀態(tài)字寄存器PSW中RS1、RS0位的設(shè)置來(lái)實(shí)現(xiàn)。設(shè)置RS1、RS0時(shí),可以對(duì)PSW采用字節(jié)尋址方式,也可以采用位尋址方式,間接或直接修改RS1、RS0的內(nèi)容。9、80C51單片機(jī)的控制總線信號(hào)有哪些?各信號(hào)的作用如何?答:控制總線:(1)復(fù)位信號(hào)。使單片機(jī)進(jìn)入初始化狀態(tài)。(2)ALE信號(hào),在訪問(wèn)片外程序存儲(chǔ)器期間,下降沿用于控制鎖存P0口輸出的低8位地址;在不訪問(wèn)片外程序期間,可作為對(duì)外輸出的時(shí)鐘脈沖或用

14、于定時(shí)目的。(3)PSEN信號(hào),片外程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效。在從外部程序存儲(chǔ)器讀取指令或常數(shù)期間,每個(gè)機(jī)器周期該信號(hào)有效兩次,通過(guò)數(shù)據(jù)總線P0口讀回指令或常數(shù)。在訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器期間,該信號(hào)不出現(xiàn)。(4)EA,EA為片外程序存儲(chǔ)器選用端,該引腳為低電平時(shí),選用片外程序存儲(chǔ)器,高電平或懸空時(shí)選用片外程序存儲(chǔ)器。(5)另外還有第二功能下的P3口。10、80C51單片機(jī)的程序存儲(chǔ)器低端的幾個(gè)特殊單元的用途如何?答:80C51單片機(jī)的程序存儲(chǔ)器低端的特殊單元的用途:0000H:?jiǎn)纹瑱C(jī)復(fù)位后的入口地址;0003H:外部中斷0的中斷服務(wù)程序入口地址;000BH:定時(shí)/計(jì)數(shù)器0溢出中斷服務(wù)

15、程序入口地址;0013H:外部中斷1的中斷服務(wù)程序入口地址;001BH:定時(shí)/計(jì)數(shù)器1溢出中斷服務(wù)程序入口地址;0023H:串行接口的中斷服務(wù)程序入口地址;002BH:定時(shí)/計(jì)時(shí)器2溢出或T2EX負(fù)跳變中斷服務(wù)程序入口地址(增強(qiáng)型單片機(jī))。由于每個(gè)中斷入口之間的間隔進(jìn)位8個(gè)地址單元,所以在程序設(shè)計(jì)時(shí),通常在這些中斷入口處設(shè)置一條無(wú)條件轉(zhuǎn)移指令,使之轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)子程序處執(zhí)行。第三章指令系統(tǒng)習(xí)題參考答案1、80C51系列單片機(jī)的指令系統(tǒng)有何特點(diǎn)?答:80c51的指令系統(tǒng)的特點(diǎn)有:(1)執(zhí)行時(shí)間短。一個(gè)機(jī)器周期指令有64條,2個(gè)時(shí)間周期指令有45條,而4個(gè)機(jī)器周期指令僅有2條(即乘法和除法指令

16、);(2)指令編碼字節(jié)少。單字節(jié)的指令有49條,雙字節(jié)的指令有45條,三字節(jié)的指令僅有17條;(3)位操作指令豐富。這是80c51單片機(jī)面向控制特點(diǎn)的重要保證。2、80C51單片機(jī)有哪幾種尋址方式?各尋址方式所對(duì)應(yīng)的寄存器或存儲(chǔ)器空間如何?答:(1)寄存器尋址。對(duì)應(yīng)的寄存器有:工作寄存器R0R7累加器A寄存器B數(shù)據(jù)指針DPTR(2)直接尋址。對(duì)應(yīng)的存儲(chǔ)空間有:片內(nèi)RAM低128字節(jié)(以地址形式表示)SFR(以地址形式或SFR符號(hào)形式表示,但符號(hào)將轉(zhuǎn)換為相應(yīng)的SFR地址)(3)寄存器間接尋址。對(duì)應(yīng)的空間有:片內(nèi)RAM(采用R0,R1或SP);片外RAM(采用R0,R1或。戸丁只)(4)變址尋址。

17、對(duì)應(yīng)的空間有:ROM空間(采ffiA+DPTR,A+PC)(5)相對(duì)尋址。ROM空間(采用JCrel)(6)位尋址。片內(nèi)RAM的20H2FH單元的128可尋址位SFR的可尋址位3、訪問(wèn)特殊功寄存器SFR可以采用哪些尋址方式?答:直接尋址、位尋址4、訪問(wèn)內(nèi)部RAM單元可以采用哪些尋址方式?答:寄存器尋址、直接尋址、寄存器間接尋址5、訪問(wèn)外部RAM單元可以采用哪些尋址方式?答:寄存器間接尋址6、訪問(wèn)外部程序存儲(chǔ)器可以采用哪些尋址方式?答:立即尋址、變址尋址、相對(duì)尋址7、為什么說(shuō)布爾處理功能是80C51單片機(jī)的重要特點(diǎn)?答:布爾處理功能是MCS-51系列單片機(jī)的一個(gè)重要特征,在物理結(jié)構(gòu)上,MCS-5

18、1單片機(jī)有一個(gè)布爾(位)處理器,對(duì)位地址空間具有豐富的位操作指令。它在進(jìn)行位操作時(shí),以進(jìn)位標(biāo)志做為位累加器。8、對(duì)于80C52單片機(jī)幾個(gè)內(nèi)部RAM還存在高128字節(jié),應(yīng)采用何種方式訪問(wèn)?答:對(duì)片外RAM進(jìn)行訪問(wèn)時(shí),需要以下四條指令進(jìn)行:讀:a)MOVXA,DPTR;b)MOVXA,Ri;寫:c)MOVXDPTR,A;d)MOVXRi,A;9、試根據(jù)指令編碼表寫出下列指令的機(jī)器碼。MOVA,88HMOVR3,50HMOVP1.1,#55HADDA,R1SETB12H答:指令對(duì)應(yīng)的機(jī)器碼為74HABH75H27H10、完成某種操作可以采用幾條指令構(gòu)成的指令序列實(shí)現(xiàn),試寫出完成以下每種操作的指令序列

19、。將R0的內(nèi)容傳送到R1;外部RAM單元1000H的內(nèi)容傳送到內(nèi)部RAM單元60H;外部RAM單元1000H的內(nèi)容傳送到寄存器R2;外部RAM單元10000H的內(nèi)容傳送到外部RAM單元2000H。答:(1)MOVA,R0;MOVR1,A;MOVDPTR,#1000H;MOVXA,DPTR;MOV60H,A;MOVDPTR,#1000H;MOVXA,DPTR;MOVR2,A;MOVDPTR,#1000H;MOVXA,DPTR;MOVR0,#2000H;MOVXR0,A;11、若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。試分析執(zhí)行下列程序段后上述各單元內(nèi)容的變化。答

20、:MOVXA,R1;A=60HMOVR1,40H;(30H)=08HMOV40H,A;(40H)=40HMOVR1,#7FH;(R1)=7FH即最終結(jié)果為(R1)=7FH,(40H)=40H,(30H)=08H,(A)=60H12、若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=OFH,試指出CY、AC和OV的值。答:(1)MOVA,R0(2)ANL40H,#0FH(3)ADDA,R4(4)SWAPA(5)DECR1(6)XCHDA,R1;(A)=2CH,R0=40H;(40H)=OCH,邏輯與;(A)=66H,(CY)=0,(AC)=1,

21、(OV)=0;(A)=66H;(20H)=0EH,(R1)=20H;(A)=6EH,(20H)=06H,(R1)=20H13、若(50H)=40H,試寫出執(zhí)行以下程序段后累加器A、寄存器R0及內(nèi)部RAM的40H、41H和42H單元中的內(nèi)容各為多少?答:MOVA,50HMOVR0,AMOVA,#00HMOVR0,AMOVA,3BHMOV41H,AMOV42H,41H;(A)=40H;(R0)=40H;(A)=00H;(40H)=00H;(A)=(3BH);(41H)=(3BH);(42H)=(3BH)即最終結(jié)果為(R0)=40H,(40H)=00H,(A)=(3BH),(41H)=(3BH),(

22、42H)=(3BH)14、試用位操作指令實(shí)現(xiàn)下列邏輯操作。要求不得改變未涉及位的內(nèi)容使ACC。0置位;清除累加器高4位;清除ACC.3,ACC.4,ACC.5,ACC.6.答:CLRACC.0;使ACC.0置位(2)CLRACC.7CLRACC.6CLRACC.5CLRACC.4(3)CLRACC.3CLRACC.4CLRACC.5CLRACC.615、試編寫程序,將內(nèi)部RAM的20H、21H和22H三個(gè)連續(xù)單元的內(nèi)容存入2FH、2EH和2DH單元。答:MOVA,#20HMOVR0,#2FHLOOP:MOVR0,AINCADECR0CJNER0,#2CH,LOOPSJMP$16、試編寫程序,完

23、成兩個(gè)16位數(shù)的減法:7F4DH2B4EH,結(jié)果存入內(nèi)部RAM的30H和31H,31H單元存差的高8位,30H單元存差的低8位答:CLRCMOVA,#4DHMOVR0,#4EHSUBBA,R0MOV30H,R0MOVA,#7FHMOVR0,#2BHSUBBA,R0MOV31H,R017、試編寫程序,將R1中的低4位數(shù)與R2中的高4位數(shù)合并成一個(gè)8位數(shù),并將其存入在R1中。答:MOVA,R2MOV40H,R1MOVR1,#40HXCHDA,R1MOVR1,A(XCHD是A與R0、R1間接尋址的低四位交換,例A是12,R0是56,則XCHDA,R1之后,A為16,R0為52)18、試編寫程序,將內(nèi)

24、部RAM的20H和21H單元的兩個(gè)無(wú)符號(hào)數(shù)相乘,結(jié)果存放在R2、R3中,R2中存放高8位,R3存放低8位。答:MOVA,20HMOVB,21HMULABMOVR2,BMOVR3,A19、若(CY)=1,(P1)=10100011B,(P3)=01101100B。試指出執(zhí)行下列程序段后,CY、P1口及P3口內(nèi)容的變化情況。答:MOVP1.3,CMOVP1.4,C;(P1)=10111011BMOVC,P1.6;(CY)=0MOVP3.6,CMOVC,P1.0;(CY)=1MOVP3.4,C;(P2)=00111100B即最終為(CY)=1,(P1)=10111011B,(P2)=00111100

25、B(CY即C)20、若單片機(jī)的主頻為12MHz,試用循環(huán)轉(zhuǎn)移指令編寫延時(shí)20ms的延時(shí)子程序,并說(shuō)明這種軟件延時(shí)方式的優(yōu)缺點(diǎn)。答:分析:一個(gè)機(jī)器周期=12個(gè)晶振周期=1us利用一對(duì)內(nèi)外循環(huán),運(yùn)行20000個(gè)機(jī)器周期,從而延遲20ms。匯編程序如下:LOOP:MOVR1,#00HINCR1NEXT:MOVR0,#00HINCR0NOPCJNER0,#13H,NEXTNOPCJNER1,#C8H,LOOPSJMP$第四章習(xí)題及答案1、80C51單片機(jī)匯編語(yǔ)言有何特點(diǎn)?答:80C51單片機(jī)匯編語(yǔ)言的源程序結(jié)構(gòu)緊湊、靈活,匯編成的目標(biāo)程序效率高,具有占存儲(chǔ)空間少、運(yùn)行速度快、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn)。但它的是面

26、向機(jī)器的語(yǔ)言,所以它缺乏通用性,編程復(fù)雜繁瑣,但應(yīng)用相當(dāng)廣泛。2、利用80C51單片機(jī)匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)的步驟如何?答:在進(jìn)行程序設(shè)計(jì)時(shí),首先需要對(duì)單片機(jī)應(yīng)用系統(tǒng)預(yù)先完成的任務(wù)進(jìn)入深入的分析,明確系統(tǒng)的設(shè)計(jì)任務(wù)、功能要求、技術(shù)指標(biāo)。然后,要對(duì)系統(tǒng)的硬件資源和人工作環(huán)境進(jìn)行分析和熟悉。經(jīng)過(guò)分析、研究和明確規(guī)定后,利用數(shù)學(xué)方法或數(shù)學(xué)模型來(lái)對(duì)其進(jìn)行描述,從而把一個(gè)實(shí)際問(wèn)題轉(zhuǎn)化成由計(jì)算機(jī)進(jìn)行處理的問(wèn)題。進(jìn)而,對(duì)各種算法進(jìn)行分析比較,并進(jìn)行合理的優(yōu)化。3、常用的程序結(jié)構(gòu)有哪幾種?特點(diǎn)如何?答:常用的程序結(jié)構(gòu)有以下幾種:(1)順序程序結(jié)構(gòu)順序結(jié)構(gòu)是按照邏輯操作順序,從某一條指令開(kāi)始逐條順序進(jìn)行,直到某一

27、條指令為止;比如數(shù)據(jù)傳送與交換、查表程序和查表程序的設(shè)計(jì)等;在順序結(jié)構(gòu)中沒(méi)有分支,也沒(méi)有子程序,但它是組成復(fù)雜程序的基礎(chǔ)和主干;(2)分支程序結(jié)構(gòu)它的主要特點(diǎn)是程序執(zhí)行流程中必然包含有條件判斷指令,符合條件要求的和不符條件合要求的有不同的處理程序;(3)循環(huán)程序結(jié)構(gòu)它在本質(zhì)上只是分支程序中的一個(gè)特殊形式,它由循環(huán)初始化、循環(huán)體、循環(huán)控制和結(jié)束部分構(gòu)成;在循環(huán)次數(shù)已知情況下,采用計(jì)數(shù)循環(huán)程序,其特點(diǎn)是必須在初始部分設(shè)定計(jì)數(shù)的初始值,循環(huán)控制部分依據(jù)計(jì)數(shù)器的值決定循環(huán)次數(shù);根據(jù)控制循環(huán)結(jié)束的條件,決定是否繼續(xù)循環(huán)程序的執(zhí)行。子程序它的主要特點(diǎn)是,在執(zhí)行過(guò)程中需要由其它的程序來(lái)調(diào)用,執(zhí)行完后又需要把

28、執(zhí)行流程返回到調(diào)用該子程序的主程序。4、子程序調(diào)用時(shí),參數(shù)的傳遞方法有哪幾種?答:在80C51單片機(jī)中,子程序調(diào)用時(shí),參數(shù)的傳遞方法由三種:1、利用累加器或寄存器;2、利用存儲(chǔ)器;3、利用堆棧。5、什么是偽指令?常用的偽指令功能如何?答:偽指令是匯編程序能夠識(shí)別并對(duì)匯編過(guò)程進(jìn)行某種控制的匯編命令。常用的偽指令有:起始地址設(shè)定偽指令ORG,該指令的功能是向匯編程序說(shuō)明下面緊接的程序段或數(shù)據(jù)段存放的起始地址;匯編結(jié)束偽指令END,該指令的功能是匯編程序遇到END偽指令后立即結(jié)束匯編;字節(jié)數(shù)據(jù)定義偽指令DB,該指令的功能是從標(biāo)號(hào)指定的地址單元開(kāi)始,在程序存儲(chǔ)器中定義字節(jié)數(shù)據(jù);字?jǐn)?shù)據(jù)定義偽指令DW,該

29、指令的功能是從標(biāo)號(hào)指定的地址單元開(kāi)始,在程序存儲(chǔ)器中定義字?jǐn)?shù)據(jù);空間定義偽指令DS,該指令的功能是從標(biāo)號(hào)指定的地址單元開(kāi)始,在程序存儲(chǔ)器中保留由表達(dá)式所指定的個(gè)數(shù)存儲(chǔ)單元作為備用空間,并都填以零值;賦值偽指令EQU,該指令的功能是將表達(dá)式的值或特定的某個(gè)匯編符號(hào)定義為一個(gè)指定的符號(hào)名;位地址符號(hào)定義偽指令BIT,該指令的功能是將位地址賦給指定的符號(hào)名。6、設(shè)被加數(shù)存放在內(nèi)部RAM的20H、21H單元,加數(shù)存放在22H、23H單元,若要求和存放在24H、25H中,試編寫出16位數(shù)相加的程序。答:由于相加字節(jié)數(shù)不多,所以不用循環(huán)模式。程序如下:MOVA,21HADDA,23HMOV24H,AMOV

30、A,22HADDCA,20HMOV25H,ASJMP$7、編寫一段程序,把外部RAM中1000H1030H單元的內(nèi)容傳送到內(nèi)部RAM的30H60H單元中。答:MOVR1,#49MOVR0,#30HMOVDPTR,#1000HLOOP:MOVXA,DPTRMOVR0,AINCDPTRINCR0DJNZR1,LOOPSJMP$END8、編寫程序,實(shí)現(xiàn)雙字節(jié)無(wú)符號(hào)數(shù)加法運(yùn)算,要求(R1R0)+(R7R6)f(61H60H)。答:MOVA,R0ADDA,R6MOV60H,AMOVA,R1ADDCA,R7MOV61H,ASJMP$9、若80C51的晶振頻率為6MHz,試計(jì)算延時(shí)子程序的延時(shí)時(shí)間。DELA

31、Y:MOVR7,#0F6HLP:MOVR6,#0FAHDJNZR6,$DJNZR7,LPRET答:一個(gè)機(jī)器周期=12個(gè)晶振周期=2us根據(jù)本題中有一對(duì)內(nèi)外循環(huán),可以算出該延時(shí)子程序的延時(shí)時(shí)間約為247ms。10、在內(nèi)部RAM的21H單元開(kāi)始存有一組單字節(jié)不帶符號(hào)數(shù),數(shù)據(jù)長(zhǎng)度為30H,要求找出最大數(shù)存入BIG單元。答:方法一START:CLR00HMOVR7,#2FHMOVR0,#21HLOOP:MOVA,R0MOV1BH,AINCR0MOV1AH,R0CLRCSUBBA,R0JCNEXTMOVR0,1BHDECR0MOVR0,1AHINCR0SETB00HNEXT:DJNZR7,LOOPJB0

32、0H,STARTSJMP$方法二ORG0000HMOVR3,#21HLOOP0:MOVA,R3MOVR0*;指針?biāo)蚏OMOVR7,#2FH;長(zhǎng)度送R7CLROOH;標(biāo)志位清0MOVA,RO;(21h)=ALOOP1:INCRO;(RO)=22HMOVR2,A;(R2)=(21H)CLRCMOV52H,RO;(52H)=(22h)CJNEA,52H,LOOP2;21H和22H不等轉(zhuǎn),而且當(dāng)(A)v(52H)時(shí),(CY)=1SETBC湘等cy置1LOOP2:MOVA,R2;(A)=(21H)JCLOOP3;相等轉(zhuǎn)SETBOOHXCHA,RO;(22H)=(21H),(A)=(22H)DECRO;(

33、RO)=(21H)XCHA,R0;(21H)=原來(lái)的(22H);交換完成INCRO;從22h開(kāi)始比較LOOP3:MOVA,RO;(A)=(22H)DJNZR7,LOOP1JBOOH,LOOPOSJMP$END方法三(執(zhí)行時(shí)間優(yōu)化版)ORGOOOOHMOVR3,#5OHmovR6,#0AH;增加R6作時(shí)間優(yōu)化控制LOOPO:MOVA,R3MOVR0,A;指針?biāo)蚏0MOVA,R6MOVR7,A長(zhǎng)度送R7CLR00H;標(biāo)志位清0MOVA,R0;(50h)=ALOOP1:INCR0;(R0)=51HMOVR2,A;(R2)=(50H)CLRCMOV22H,R0;(22H)=(51h)CJNEA,22H

34、,LOOP2;50H和51H不等轉(zhuǎn),而且當(dāng)(A)v(222H)時(shí),(CY)=1SETBC湘等cy置1LOOP2:MOVA,R2;(A)=(50H)JCLOOP3;相等轉(zhuǎn)SETB00HXCHA,R0;(51H)=(50H),(A)=(51H)DECR0;(R0)=(50H)XCHA,R0;(50H)=原來(lái)的(51H);交換完成INCR0;從51h開(kāi)始比較LOOP3:MOVA,R0;(A)=(51H)CLRCCJNER6,#01H,LOOP4LOOP4:JCLOOPDJNZR7,LOOP1DECR6JB00H,LOOP0LOOP:SJMP$END11、編寫程序,把累加器A中的二進(jìn)制數(shù)變換成3位BC

35、D碼,并將百、十、個(gè)位數(shù)分別存放在內(nèi)部RAM的50H、51H、52H單元中。答:MOVB,#100MOVR0,#50HDIVABMOVR0,AMOVA,BMOVB,#10DIVABINCR0MOVR0,AINCR0MOVR0,BSJMP$END12、編寫子程序,將R1中的2哥十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼后存放在R3和R4中。答:ORG0000HMOVA,R1ANLA,#0FHADDA,#10MOVCA,A+PCMOVR3,AMOVA,R1SWAPAANLA,#0FHADDA,#2MOVCA,A+PCMOVR4,ARETASCTAB:DB30H,31H,32H,33H,34H,35H,36H,3

36、7HDB38H,39H,41H,42H,43H,44H,35H,36H13、編寫程序,求內(nèi)部RAM中50H59H十個(gè)單元內(nèi)容的平均值,并存放在5AH單元。答:ORG0000HMOVR1,#50HMOVR7,#0AH;長(zhǎng)度送R7CLRAMOVR5,ACLRCLOOP:ADDCA,R1INCR5INCR1DJNZR7,LOOPMOVB,R5DIVABMOV5AH,A第五章課后答案1、80C51有幾個(gè)中斷源?各中斷標(biāo)志是如何產(chǎn)生的?又是如何復(fù)位的?CPU響應(yīng)各中斷時(shí),其中斷地址入口是多少?答:80C51有5個(gè)中斷源,具體的名稱、產(chǎn)生方式、復(fù)位方式和中斷入口地址如下:(1)INT0(P32),外部中斷

37、0請(qǐng)求信號(hào)輸入引腳。當(dāng)CPU檢測(cè)到P3.2引腳出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE0(TCON.1)置一,向CPU申請(qǐng)中斷,中斷入口地址為0003H。可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)IT0=0時(shí),中斷標(biāo)志在CPU響應(yīng)中斷時(shí)不能自動(dòng)清零,只能撤除INT0引腳的低電平,IE0才清零;當(dāng)IT0=1時(shí),由硬件自動(dòng)清除IE0標(biāo)志。(2)INT1(P33),外部中斷1請(qǐng)求信號(hào)輸入引腳。當(dāng)CPU檢測(cè)到P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE1(TCON.3)置一,向CPU申請(qǐng)中斷,入口地址為00OBH。可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效,中斷標(biāo)志復(fù)

38、位清零與INTO類同。TFO(TCON5),片內(nèi)定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T0發(fā)生溢出時(shí),置位TF0,并向CPU申請(qǐng)中斷,入口地址為0013H。CPU響應(yīng)中斷時(shí),TF0自動(dòng)清零。TF1(TCON.7),片內(nèi)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T1發(fā)生溢出時(shí),置位TF1,并向CPU申請(qǐng)中斷,入口地址為001BH。CPU響應(yīng)中斷時(shí),TF1自動(dòng)清零。RI(SCON.0)或TI(SCON.1),串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TI,向CPU申請(qǐng)中斷,入口地址為0023H。RI和TI必須由軟件清除。2、某系統(tǒng)有三個(gè)

39、外部中斷源1、2、3,當(dāng)某一中斷源變低電平時(shí)便要求CPU處理,它們的優(yōu)先處理次序由高到低為3、2、1,處理程序的入口地址分別為2000H、2100H、2200H,試編寫主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的入口即可)。答:ORG0000HLJMPBOOTORG0003HLJMPINT3ORG000BHLJMPINT2ORG0013HLJMPINT1ORG001BHRETIBOOT:ACALLINT0_0;中斷啟動(dòng)程序ACALLT0_0ACALLINT1_0SETBEASJMP$INT0_0:CLRIT0;設(shè)置為低電平觸發(fā)方式SETBEX0RETT0_0:MOVTMOD,#06H;設(shè)置為工作方式2,模式為外部計(jì)數(shù),GATE=0MOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0RETINT1_0:CLRIT1SETBEX1RETORG2000HINT1:NOPRETIORG2100HINT2:NOPRETIORG2200HINT3:NOPRETI3、外部中斷源有電平觸發(fā)和邊沿觸發(fā)兩種觸發(fā)方式

溫馨提示

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