周國(guó)運(yùn)版51單片機(jī)課后習(xí)題答案_第1頁(yè)
周國(guó)運(yùn)版51單片機(jī)課后習(xí)題答案_第2頁(yè)
周國(guó)運(yùn)版51單片機(jī)課后習(xí)題答案_第3頁(yè)
周國(guó)運(yùn)版51單片機(jī)課后習(xí)題答案_第4頁(yè)
周國(guó)運(yùn)版51單片機(jī)課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩33頁(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、 第1章 習(xí)題答案1什么是單片機(jī)?答:將中央處理器(Central Processing Unit,CPU)、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器以及I/O接口電路等微型計(jì)算機(jī)的主要部件集成在一塊芯片上,使其具有計(jì)算機(jī)的基本功能,就叫做單片微型計(jì)算機(jī)(Single Chip Micro Computer,SCMC),簡(jiǎn)稱單片機(jī)。由于單片機(jī)的指令功能是按照工業(yè)控制的要求設(shè)計(jì),所以單片機(jī)又稱為微控制器(Micro Controller Unit,MCU)。2單片機(jī)有哪些特點(diǎn)?答: (1)單片機(jī)的存儲(chǔ)器ROM和RAM是嚴(yán)格區(qū)分的。ROM稱為程序存儲(chǔ)器,只存放程序、固定常數(shù)及數(shù)據(jù)表格。RA

2、M則為數(shù)據(jù)存儲(chǔ)器,用作工作區(qū)及存放用戶數(shù)據(jù)。(2)采用面向控制的指令系統(tǒng)。(3)單片機(jī)的I/O引腳通常是多功能的。(4)單片機(jī)的外部擴(kuò)展能力強(qiáng)。(5)單片機(jī)體積小,成本低,運(yùn)用靈活,易于產(chǎn)品化。(6)面向控制,能有針對(duì)性地解決從簡(jiǎn)單到復(fù)雜的各類控制任務(wù),因而能獲得最佳的性能價(jià)格比。(7)抗干擾能力強(qiáng),適用溫度范圍寬。(8)可以方便地實(shí)現(xiàn)多機(jī)和分布式控制,使整個(gè)控制系統(tǒng)的效率和可靠性大為提高。3單片機(jī)的應(yīng)用有哪些?答: (1)工業(yè)控制。單片機(jī)可以構(gòu)成各種工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)等。如數(shù)控機(jī)床、自動(dòng)生產(chǎn)線控制、電機(jī)控制、測(cè)控系統(tǒng)等。(2)儀器儀表。如智能儀表、醫(yī)療器械、數(shù)字示波器等。(3)計(jì)算機(jī)

3、外部設(shè)備與智能接口。如圖形終端機(jī)、傳真機(jī)、復(fù)印機(jī)、打印機(jī)、繪圖儀、磁盤/磁帶機(jī)、智能終端機(jī)等。(4)商用產(chǎn)品。如自動(dòng)售貨機(jī)、電子收款機(jī)、電子秤等。(5)家用電器。如微波爐、電視機(jī)、空調(diào)、洗衣機(jī)、錄像機(jī)、音響設(shè)備等。(6)消費(fèi)類電子產(chǎn)品。(7)通訊設(shè)備和網(wǎng)絡(luò)設(shè)備。(8)兒童智能玩具。(9)汽車、建筑機(jī)械、飛機(jī)等大型機(jī)械設(shè)備。(10)智能樓宇設(shè)備。(11)交通控制設(shè)備。4常見(jiàn)的單片機(jī)有哪些類型?答: 1AVR單片機(jī);2Motorola單片機(jī);3MicroChip單片機(jī);4Scenix單片機(jī);5EPSON單片機(jī);7GMS90單片機(jī);8華邦單片機(jī)9Zilog單片機(jī);10NS單片機(jī);11AX1001單片

4、機(jī)第2章 習(xí)題答案1MCS-51單片機(jī)內(nèi)部包含哪些主要邏輯功能部件?答:(1)1個(gè)8位的微處理器CPU。(2)8KB的片內(nèi)程序存儲(chǔ)器Flash ROM(51子系列的Flash ROM為4KB),用于燒錄運(yùn)行的程序、常數(shù)數(shù)據(jù)。(3)256B的片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(51子系列的RAM為128B),在程序運(yùn)行時(shí)可以隨時(shí)寫入數(shù)據(jù)和讀出,用于存放函數(shù)相互傳遞的數(shù)據(jù)、接收的外部數(shù)據(jù)、中間結(jié)果、最后結(jié)果以及顯示的數(shù)據(jù)等。(4)3個(gè)16位的定時(shí)器/計(jì)數(shù)器(51子系列僅有2個(gè)定時(shí)器),每個(gè)定時(shí)器/計(jì)數(shù)器可以設(shè)置為計(jì)數(shù)方式,用于對(duì)外部事件信號(hào)進(jìn)行計(jì)數(shù),也可以設(shè)置為定時(shí)方式,滿足各種定時(shí)要求。(5)有一個(gè)管理6個(gè)中

5、斷源(51子系列1是5個(gè)中斷源)、兩個(gè)優(yōu)先級(jí)的中斷控制器。(6)4個(gè)8位并行I/O端,每個(gè)端口既可以用作輸入,也可以用于輸出。(7)一個(gè)全雙工的UART(通用異步接收發(fā)送器)串行I/O口,用于單片機(jī)之間的串行通信,或者單片機(jī)與PC機(jī)、其它設(shè)備、其它芯片之間的串行通信。(8)片內(nèi)振蕩電路和時(shí)鐘發(fā)生器,只需外面接上一晶振或輸入振蕩信號(hào)就可產(chǎn)生單片機(jī)所需要的各種時(shí)鐘信號(hào)。(9)有一個(gè)可尋址64KB外部數(shù)據(jù)存儲(chǔ)器、還可以尋址64KB外部程序存儲(chǔ)器的三總線的控制電路。2MCS-51單片機(jī)的引腳有何功能?信號(hào)為何種電平?答: 為片外程序存儲(chǔ)器選擇輸入端。該引腳為低電平時(shí),使用片外程序存儲(chǔ)器,為高電平時(shí),使

6、用片內(nèi)程序存儲(chǔ)器。3MCS-51單片機(jī)的ALE引腳有何功能?信號(hào)波形是什么?答: ALE為地址鎖存信號(hào),每個(gè)機(jī)器周期輸出兩個(gè)正脈沖。在訪問(wèn)片外存儲(chǔ)器時(shí),下降沿用于控制外接的地址鎖存器鎖存從P0口輸出的低8位地址。在沒(méi)有接外部存儲(chǔ)器時(shí),可以將該引腳的輸出作為時(shí)鐘信號(hào)使用。4MCS-51單片機(jī)的存儲(chǔ)器分為哪幾個(gè)空間?如何區(qū)分不同空間的尋址?答: 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)一編址的程序存

7、儲(chǔ)空間(64KB)。不同的存儲(chǔ)空間,它們有各自的尋址方式和訪問(wèn)指令。片內(nèi)數(shù)據(jù)存儲(chǔ)空間用MOV指令訪問(wèn)。片外數(shù)據(jù)存儲(chǔ)空間用MOVX指令訪問(wèn)。片內(nèi)和片外統(tǒng)一編址的程序存儲(chǔ)空間用MOVC指令訪問(wèn)。5簡(jiǎn)述MCS-51單片機(jī)片內(nèi)RAM的空間分配。內(nèi)部RAM低128字節(jié)分為哪幾個(gè)主要部分?各部分主要功能是什么?答: 片內(nèi)數(shù)據(jù)存儲(chǔ)器按照尋址方式,可以分為三個(gè)部分:低128字節(jié)數(shù)據(jù)區(qū),高128字節(jié)數(shù)據(jù)區(qū)間,特殊功能寄存器區(qū)。低128字節(jié)數(shù)據(jù)區(qū)分為三個(gè)區(qū)域:工作寄存器區(qū),位尋找區(qū)和通用數(shù)據(jù)區(qū)。工作寄存器區(qū)4組工作寄存器;位尋找區(qū)既可以做位操作,也可以字節(jié)操作;通用數(shù)據(jù)區(qū)用于堆棧和存放程序運(yùn)行時(shí)的數(shù)據(jù)和中間結(jié)果。

8、6簡(jiǎn)述MCS-51單片機(jī)布爾處理器存儲(chǔ)空間分配,片內(nèi)RAM包含哪些可以位尋址的單元。位地址7DH與字節(jié)地址7DH如何區(qū)別?位地址7DH具體在片內(nèi)RAM中的什么位置?答:低128字節(jié)數(shù)據(jù)區(qū)的位尋找區(qū)和高128字節(jié)數(shù)據(jù)區(qū)的某些可位尋址的特殊功能寄存器。位地址7DH與字節(jié)地址7DH可通過(guò)不同的指令來(lái)區(qū)別,位地址7DH用位尋址指令來(lái)訪問(wèn),字節(jié)地址7DH用字節(jié)尋址指令來(lái)訪問(wèn),位地址7DH在低128字節(jié)數(shù)據(jù)區(qū)的位尋找區(qū)的2FH字節(jié)。7MCS-51單片機(jī)的程序狀態(tài)寄存器PSW的作用是什么?常用標(biāo)志有哪些位?作用是什么?答:PSW是一個(gè)8位寄存器,用于設(shè)定CPU的狀態(tài)和指示指令執(zhí)行后的狀態(tài)。CY(PSW.7)

9、:進(jìn)位標(biāo)志。在執(zhí)行加減運(yùn)算指令時(shí),如果運(yùn)算結(jié)果的最高位(D7)發(fā)生了進(jìn)位或借位,則CY由硬件自動(dòng)置1。AC(PSW.6):半進(jìn)位標(biāo)志位,也稱為輔助標(biāo)志位。在執(zhí)行加減運(yùn)算指令時(shí),如果運(yùn)算結(jié)果的低半字節(jié)(D3)發(fā)生了向高半字節(jié)進(jìn)位或借位,則AC由硬件自動(dòng)置1。F0、F1(PSW.5 和PSW.1):用戶標(biāo)志位。用戶可以根據(jù)需要對(duì)F0、F1賦予一定的含義,由用戶置1和清0,作為軟件標(biāo)志。RS1、RS0(PSW.4 和PSW.3):工作寄存器組選擇控制位。通過(guò)對(duì)這兩位設(shè)定,可以從4個(gè)工作寄存器組中選擇一組作為當(dāng)前工作寄存器。OV(PSW.2):溢出標(biāo)志位,有兩種情況影響該位。一是執(zhí)行加減運(yùn)算時(shí),如果D

10、7或D6任一位,并且只一位發(fā)生了進(jìn)位或借位,則OV自動(dòng)置1, P(PSW.0):奇偶標(biāo)志位。每條指令執(zhí)行完后,該位都會(huì)指示當(dāng)前累加器A中1的個(gè)數(shù)。如果A中有奇數(shù)個(gè)1,則P自動(dòng)置1。8MCS-51單片機(jī)復(fù)位后,CPU使用哪組工作寄存器?它們的地址是什么?用戶如何改變當(dāng)前工作寄存器組?答: MCS-51單片機(jī)復(fù)位后,CPU使用0組工作寄存器。它們的地址是08H0FH。通過(guò)程序狀態(tài)字PSW中的RS1、RS0標(biāo)志位改變當(dāng)前工作寄存器組。9什么叫堆棧?堆棧指針SP的作用是什么?答: 堆棧是在RAM專門開(kāi)辟的一個(gè)特殊用途的存儲(chǔ)區(qū)。堆棧是按照“先進(jìn)后出”(即先進(jìn)入堆棧的數(shù)據(jù)后移出堆棧)的原則存取數(shù)據(jù)。堆棧指

11、針SP是一個(gè)8位寄存器,其值為棧頂?shù)牡刂?,即指向棧頂,SP為訪問(wèn)堆棧的間址寄存器。10PC與DPTR各有哪些特點(diǎn)?有何異同?答: PC與DPTR都是16位的寄存器。PC由兩個(gè)8位的計(jì)數(shù)器PCH和PCL組成。PC實(shí)際是程序的字節(jié)地址計(jì)數(shù)器,它的內(nèi)容是將要執(zhí)行的下一條指令的地址,具有自加1功能。改變PC的內(nèi)容就可以改變程序執(zhí)行的方向。DPTR的高字節(jié)寄存器用DPH表示,低字節(jié)寄存器用DPL表示。DPTR既可以作為一個(gè)16位寄存器使用,也可以作為兩個(gè)獨(dú)立的8位寄存器使用。DPTR主要用于存放16位地址,以便對(duì)64KB的片外RAM和64KB的程序存儲(chǔ)空間作間接訪問(wèn)。11測(cè)試哪個(gè)引腳,可以快捷地判斷單片

12、機(jī)是否正在工作?答: 若要檢查單片機(jī)是否工作,可以使用示波器查看ALE引腳是否有脈沖信號(hào)輸出。12讀端口鎖存器和“讀引腳”有何不同?各使用哪些指令?答: 一種是讀取鎖存器原來(lái)的輸出值,另一種情況是打開(kāi)端口的緩沖器讀取引腳上的信號(hào),讀端口鎖存器,用MOV A,Pi指令?!白x引腳”,要先用MOV Pi,#0FFH對(duì)相應(yīng)端口寫FFH,使輸出場(chǎng)效應(yīng)管T截止,才能夠正確輸入,再用MOV A,Pi指令。13MCS-51單片機(jī)的P0P3口結(jié)構(gòu)有何不同?用作通用I/O口輸入數(shù)據(jù)時(shí)應(yīng)注意什么?答: P2口是一個(gè)雙功能口,一是通用I/O口,二是以總線方式訪問(wèn)外部存儲(chǔ)器時(shí)作為高8位地址口。與P1口的結(jié)構(gòu)類似,驅(qū)動(dòng)部

13、分基本上與P1口相同,但比P1口多了一個(gè)多路切換開(kāi)關(guān)MUX和反相器3。P3口是一個(gè)多功能口,與P1口的結(jié)構(gòu)相比不難看出,P3口與P1口的差別在于多了“與非門”3和緩沖器4。正是這兩個(gè)部分,使得P3口除了具有P1口的準(zhǔn)雙向I/O口的功能之外,還可以使用各引腳所具有的第2功能。P0多了一路總線輸出(地址/數(shù)據(jù))、總線輸出控制電路(反相器3和與門4)、兩路輸出切換開(kāi)關(guān)MUX及開(kāi)關(guān)控制C,并且把上拉電阻換成了場(chǎng)效應(yīng)管T1,以增加總線的驅(qū)動(dòng)能力。用作通用I/O口輸入數(shù)據(jù)時(shí)應(yīng)注意要先用MOV Pi,#0FFH對(duì)相應(yīng)端口寫FFH,使輸出場(chǎng)效應(yīng)管T截止,才能夠正確輸入。14P0口用作通用I/O口輸出數(shù)據(jù)時(shí)應(yīng)注

14、意什么?答: P0口與其它端口不同,它的輸出級(jí)無(wú)上拉電阻。當(dāng)把它用作通用I/O口時(shí),輸出級(jí)是開(kāi)漏電路,故用其輸出去驅(qū)動(dòng)NMOS輸入時(shí)外接上拉電阻,這時(shí)每一位輸出可以驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。用作輸入時(shí),應(yīng)先向端口鎖存器寫1。15什么叫時(shí)鐘周期?什么叫機(jī)器周期?什么叫指令周期?時(shí)鐘周期、機(jī)器周期與振蕩周期之間有什么關(guān)系?答: 時(shí)鐘周期即振蕩周期:為晶振的振蕩周期,是最小的時(shí)序單位。狀態(tài)周期:是振蕩頻率2分頻后的時(shí)鐘周期。顯然,一個(gè)狀態(tài)周期包含2個(gè)振蕩周期。機(jī)器周期(MC):1個(gè)機(jī)器周期由6個(gè)狀態(tài)周期、即12個(gè)振蕩周期組成,是量度指令執(zhí)行時(shí)間的單位。指令周期:是執(zhí)行一條指令所需要的時(shí)間。一個(gè)指令周

15、期由14個(gè)機(jī)器周期組成。16MCS-51單片機(jī)常用的復(fù)位電路有哪些?復(fù)位后機(jī)器的初始狀態(tài)如何?答: 復(fù)位電路有兩種方式:上電自動(dòng)復(fù)位電路和手動(dòng)復(fù)位電路。復(fù)位后,程序計(jì)數(shù)器PC變?yōu)?000H,使單片機(jī)從程序存儲(chǔ)器地址0000H單元開(kāi)始執(zhí)行。除P0P3為FFH;SP為07H;SBUF為不確定。大部分特殊功能寄存器清零。17MCS-51單片機(jī)有幾種低功耗工作方式?如何實(shí)現(xiàn),又如何退出?答: MCS-51單片機(jī)有空閑和掉電兩種低功耗工作方式。當(dāng)CPU執(zhí)行完置IDL=1的指令后,系統(tǒng)就進(jìn)入空閑方式。進(jìn)入空閑方式之后,有兩種方法可以退出。一種是任何中斷請(qǐng)求被響應(yīng)都可以由硬件將IDL位清0而結(jié)束空閑方式。另

16、一種退出空閑方式的方法是硬件復(fù)位。當(dāng)CPU執(zhí)行完置PD=1的指令后,系統(tǒng)就進(jìn)入掉電工作方式。對(duì)于一般的單片機(jī)來(lái)說(shuō),退出掉電方式的唯一方法是由硬件復(fù)位。第3章 習(xí)題答案1簡(jiǎn)述MCS-51匯編指令格式。答: MCS-51匯編語(yǔ)言指令由四部分組成,其一般格式如下: 標(biāo)號(hào):操作碼 操作數(shù) ;注釋格式中的方括號(hào)意為可以沒(méi)有相應(yīng)部分,可以沒(méi)有標(biāo)號(hào)、操作數(shù)和注釋,至少要有操作碼。其操作數(shù)部分最多可以是兩項(xiàng): 第1操作數(shù) ,第2操作數(shù)2何謂尋址方式?MCS-51單片機(jī)有哪些尋址方式,是怎樣操作的?各種尋址方式的尋址空間和范圍是什么?答: MCS-51單片機(jī)有7種尋址方式:立即數(shù)尋址、寄存器尋址、直接尋址、寄存

17、器間接尋址、變址尋址、位尋址和指令尋址??梢苑譃閮深悾翰僮鲾?shù)尋址和指令尋址。立即數(shù)尋址的尋址空間和范圍是:在程序存儲(chǔ)空間,隨指令讀入MOV A,#46H直接尋址的尋址空間和范圍是:片內(nèi)RAM中,低128字節(jié)和SFRMOV A,46H寄存器尋址的尋址空間和范圍是:使用R0R7、A、B、C、DPTRMOV A,R2寄存器間接尋址的尋址空間和范圍是:片內(nèi)RAM:使用Ri,SP;范圍為256B,不含SFR,片外RAM:使用Ri,DPTR;范圍為64KB MOV A,R0 MOVX A,DPTR 變址尋址的尋址空間和范圍是:使用A+PC,A+DPTR;在程序存儲(chǔ)器中;范圍分別為PC之后256B之內(nèi)和64

18、KB全空間MOVC A,A+DPTR位尋址的尋址空間和范圍是:使用位地址;在位尋址空間;RAM的20H2FH和SFRSETB 36H指令絕對(duì)尋址的尋址空間和范圍是:操作數(shù)是目標(biāo)地址;在程序存儲(chǔ)空間;范圍為2KB或64KB全空間AJMP FIRST LJMP SECON指令相對(duì)尋址的尋址空間和范圍是:操作數(shù)是相對(duì)地址;在程序存儲(chǔ)空間;范圍128127SJMP LOOP3訪問(wèn)片內(nèi)RAM低128字節(jié)使用哪些尋址方式?訪問(wèn)片內(nèi)RAM高128字節(jié)使用什么尋址方式?訪問(wèn)SFR使用什么尋址方式?答: 訪問(wèn)片內(nèi)RAM低128字節(jié)使用直接尋址,寄存器間接尋址,位尋址;訪問(wèn)片內(nèi)RAM高128字節(jié)使用寄存器間接尋址

19、;訪問(wèn)SFR使用直接尋址,位尋址。4訪問(wèn)片外RAM使用什么尋址方式?答: 訪問(wèn)片外RAM使用寄存器間接尋址5訪問(wèn)程序存儲(chǔ)器使用什么尋址方式?指令跳轉(zhuǎn)使用什么尋址方式?答: 訪問(wèn)程序存儲(chǔ)器使用指令絕對(duì)尋址,指令相對(duì)尋址。指令跳轉(zhuǎn)使用指令絕對(duì)尋址,指令相對(duì)尋址。6分析下面指令是否正確,并說(shuō)明理由。MOVR3,R7錯(cuò),兩個(gè)操作數(shù)不能同時(shí)為工作寄存器MOVB,R2對(duì)DECDPTR錯(cuò),不存在MOV20H.8,F(xiàn)0錯(cuò),位傳送指令必須用CPUSHDPTRCPL36H錯(cuò),不存在MOVPC,#0800H 錯(cuò),PC不能訪問(wèn)7分析下面各組指令,區(qū)分它們的不同之處。MOVA,30H與MOVA,#30H前者表示:(30

20、H)A 后者表示:30HAMOVA,R0與MOVA,R0前者表示:(R0)A 后者表示:(R0)AMOVA,R1與MOVXA,R1前者表示:在片內(nèi)數(shù)據(jù)存儲(chǔ)器(R1)A 后者表示:在片外數(shù)據(jù)存儲(chǔ)器(R1)AMOVXA,R0與MOVXA,DPTR前者R0表示8位地址 后者DPTR表示16位地址MOVXA,DPTR與MOVCA,A+DPTR 前者表示:(DPTR)A 后者表示:(DPTR)+(A)A8在MCS-51單片機(jī)的片內(nèi)RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。請(qǐng)說(shuō)明下面各是什么指令和尋址方式,以及每條指令執(zhí)行后目的操作數(shù)的結(jié)果。MOVA,4

21、0H;數(shù)據(jù)傳送,直接尋址,(A)=48HMOVR0,A;數(shù)據(jù)傳送,寄存器尋址,(R0)=48HMOVP1,#0FH;數(shù)據(jù)傳送,立即數(shù)尋址,(P1)=0FHMOVR0,30H;數(shù)據(jù)傳送,直接尋址,(48H)=38HMOVDPTR,#1234H;數(shù)據(jù)傳送,立即數(shù)尋址,(DPTR)=1234HMOV40H,30H;數(shù)據(jù)傳送,直接尋址,(40H)=38HMOVR0,38H;數(shù)據(jù)傳送,直接尋址,(R0)=40HMOVP0,R0;數(shù)據(jù)傳送,直接尋址,(P0)=40HMOV28H,#30H;數(shù)據(jù)傳送,立即數(shù)尋址,(28H)=30HMOVA,R0 ;數(shù)據(jù)傳送,寄存器間接尋址,(A)=38H9已知(A)=23H

22、,(R1)=65H,(DPTR)=1FECH,片內(nèi)RAM(65H)=70H, ROM(205CH)=64H。試分析下列各條指令執(zhí)行后目標(biāo)操作數(shù)的內(nèi)容。MOVA,R1;(A)=70HMOVXDPTR,A;(1FECH)=70HMOVCA,A+DPTR;(A)=64HXCHDA,R1 ;(A)=65H10已知(A)=76H,(R1)=76H,(B)=4,CY=1,片內(nèi)RAM(76H)=0D0H,(80H)=6CH。試分析下列各條指令執(zhí)行后目標(biāo)操作數(shù)的內(nèi)容和相應(yīng)標(biāo)志位的值。ADDA,R1;(A)=46H,CY=1SUBBA,#75H;(A)=0D0H,CY=1MULAB;(A)=40H,(B)=03

23、HDIVAB;(A)=15H,(B)=01HANL76H,#76H;(76H)=50HORLA,#0FH;(A)=1FHXRL80H,A ;(80H)=73H11已知(A)=83H,(R0)=17H,(17H)=34H,試分析當(dāng)執(zhí)行完下面程序段后累加器A、R0、17H單元的內(nèi)容。ANLA,#17H;(A)=03HORL17H,A;(17H)=37HXRLA,R0;(A)=34HCPLA ;(A)=0CBH12閱讀下面程序段,說(shuō)明該段程序的功能。MOVR0,#40HMOVR7,#10CLRALOOP:MOVR0,AINCAINCR0DJNZR7,LOOPSJMP$ 答:把0,1,2,3數(shù)列送到4

24、0H開(kāi)始的10個(gè)單元中。13閱讀下面程序段,說(shuō)明該段程序的功能。MOVR0,#40HMOVA,R0INCR0ADDA,R0MOV43H,ACLRAADDCA,#0MOV42H,ASJMP$ 答:40H加41H單元的數(shù),結(jié)果送42H:43H第4章 習(xí)題答案1用C51編程較匯編語(yǔ)言有哪些優(yōu)勢(shì)?答:(1)編程容易(2)容易實(shí)現(xiàn)復(fù)雜的數(shù)值計(jì)算(3)容易閱讀、調(diào)試、維護(hù)程序(4)容易實(shí)現(xiàn)模塊化開(kāi)發(fā)(5)程序可移植性好2C51字節(jié)數(shù)據(jù)、整型數(shù)據(jù)以及長(zhǎng)整型數(shù)據(jù)在存儲(chǔ)器中的存儲(chǔ)方式各是怎樣的?答:字符變量(char)無(wú)論是unsigned char數(shù)據(jù)還是signed char數(shù)據(jù),均為1個(gè)字節(jié),即8位,因此

25、被直接存儲(chǔ)在RAM中,可能存儲(chǔ)在00x7f區(qū)域(包括位尋址區(qū)域),也可能存儲(chǔ)在0x800xff區(qū)域,與變量的定義有關(guān)。整型變量(int)不管是unsigned int數(shù)據(jù)還是signed int數(shù)據(jù),均為2個(gè)字節(jié),即16位,其存儲(chǔ)方法是高位字節(jié)保存在低地址(在前面),低位字節(jié)保存在高地址(在后面)。長(zhǎng)整型變量(long)為4個(gè)字節(jié),即32位,其存儲(chǔ)方法與整型數(shù)據(jù)一樣,是最高位字節(jié)保存的地址最低(在最前面),最低位字節(jié)保存的地址最高(在最后面)。3C51定義變量的一般格式是什么?變量的4種屬性是什么?特別要注意存儲(chǔ)區(qū)屬性。答:存儲(chǔ)類型數(shù)據(jù)類型 存儲(chǔ)區(qū) 變量名1=初值 ,變量名2=初值 ,變量的4

26、種屬性是存儲(chǔ)類型,數(shù)據(jù)類型,存儲(chǔ)區(qū),變量名4C51的數(shù)據(jù)存儲(chǔ)區(qū)域類型有哪些?各種存儲(chǔ)區(qū)域類型是哪種存儲(chǔ)空間,存儲(chǔ)范圍是什么?如何將變量定義存儲(chǔ)到確定的位置?答:bit片內(nèi)數(shù)據(jù)區(qū)的位尋找區(qū),位地址0x000x7f,128位(字節(jié)地址0x200x2f)data直接尋址片內(nèi)數(shù)據(jù)區(qū)的低128字節(jié)bdata片內(nèi)數(shù)據(jù)區(qū)的位尋址區(qū)0x200x2f,也可字節(jié)訪問(wèn),16字節(jié)idata間接尋址片內(nèi)數(shù)據(jù)區(qū)的256字節(jié),與MOV Ri 對(duì)應(yīng)pdata分頁(yè)尋址片外數(shù)據(jù)區(qū)的256字節(jié),與MOVX Ri 對(duì)應(yīng),P2不變xdata片外數(shù)據(jù)區(qū)的全空間,64KBcode全部程序存儲(chǔ)空間,64KB絕對(duì)定位關(guān)鍵字_at_ ,指針,庫(kù)

27、函數(shù)的絕對(duì)定位宏。5C51位變量的定義格式是什么?如何定義bdata型字節(jié)變量的位變量?答:存儲(chǔ)類型 bit 位變量名1=初值 ,位變量名2=初值 ,sbit 位變量名 bdata型變量名位號(hào)常數(shù)6如何定義8位字節(jié)型特殊功能寄存器?如何定義16位特殊功能寄存器?如何定義特殊功能寄存器的位變量?答:sfr特殊功能寄存器名 地址常數(shù)sfr16特殊功能寄存器名 地址常數(shù)sbit位變量名 特殊功能寄存器名位號(hào)常數(shù)7C51專用指針定義的一般格式是什么?如何確定專用指針定義的指向空間和指針變量本身存儲(chǔ)的空間?答:存儲(chǔ)類型 數(shù)據(jù)類型 指向存儲(chǔ)區(qū) *指針存儲(chǔ)區(qū) 指針名1 ,*指針存儲(chǔ)區(qū) 指針名2,*的左面是指

28、向存儲(chǔ)區(qū),*的右面是指針存儲(chǔ)區(qū)8C51函數(shù)定義的一般形式是什么?如何定義中斷處理程序?如何選擇工作寄存器組?答:返回類型 函數(shù)名(形參表) 函數(shù)模式 reentrant interrupt m using n局部變量定義執(zhí)行語(yǔ)句interrupt m字段中的m定義中斷處理程序的中斷號(hào)using n字段中的n選擇工作寄存器組9在C51中,對(duì)匯編語(yǔ)言函數(shù)的命名規(guī)則是怎樣的,具體地說(shuō):不傳遞參數(shù)的函數(shù)名格式是什么?通過(guò)寄存器傳遞參數(shù)的函數(shù)名格式是什么?傳遞參數(shù)重入函數(shù)的函數(shù)名格式是什么?答:?PR?函數(shù)名?模塊名/不傳遞參數(shù)?PR?_函數(shù)名?模塊名/通過(guò)寄存器傳遞參數(shù)?PR?_?函數(shù)名?模塊名/對(duì)重

29、入函數(shù)通過(guò)堆棧傳遞參數(shù)10在C51中,函數(shù)返回值傳遞的規(guī)則是什么?答:(1)調(diào)用時(shí)參數(shù)的傳遞分三種情況:少于等于3個(gè)參數(shù)時(shí)通過(guò)寄存器傳遞(寄存器不夠用時(shí)通過(guò)存儲(chǔ)區(qū)傳遞),多于3個(gè)時(shí)有一部分通過(guò)存儲(chǔ)區(qū)傳遞,對(duì)于重入函數(shù)參數(shù)通過(guò)堆棧傳遞。通過(guò)寄存器傳遞速度最快。(2)函數(shù)返回值的傳遞當(dāng)函數(shù)有返回值時(shí),其傳遞都是通過(guò)寄存器11在C51中,怎樣嵌入?yún)R編語(yǔ)言程序?怎樣進(jìn)行處理實(shí)現(xiàn)混合編程?答:其方法是用編譯控制指令“#pragma src”、“#pragma asm”和“#pragma endasm”實(shí)現(xiàn)。編譯控制命令“#pragma src”是控制編譯器將C源文件編譯成匯編文件,“#pragma sr

30、c”要放在文件的開(kāi)始;“#pragma asm”和“#pragma endasm”指示匯編語(yǔ)言程序的開(kāi)始和結(jié)束,分別放在匯編程序段的前面和后面。對(duì)于函數(shù)的調(diào)用方法,與調(diào)用匯編語(yǔ)言中的函數(shù)一樣,在C語(yǔ)言文件中調(diào)用匯編語(yǔ)言中的函數(shù),必須先聲明再調(diào)用。聲明格式如下:extern返回值類型 函數(shù)名(參數(shù)表);12在C51中如何定義模塊名?在C51文件中的模塊名是什么?答:模塊定義格式如下:NAME 模塊名13在匯編語(yǔ)言文件中:怎樣聲明函數(shù)段?怎樣聲明公共函數(shù)?怎樣聲明引用函數(shù)?怎樣聲明引用變量?定義函數(shù)的格式是什么?答:對(duì)本模塊定義的函數(shù)段作聲明,其格式為:?PR?函數(shù)名?模塊名 SEGMENTCOD

31、E公共函數(shù)聲明。聲明格式為:PUBLIC 函數(shù)名引用聲明。聲明格式為:EXTRN CODE(函數(shù)名)引用聲明。聲明格式為:EXTRN 存儲(chǔ)區(qū)域類型(變量名)匯編語(yǔ)言函數(shù)的格式如下: RSEG ?PR?函數(shù)名?模塊名函數(shù)名:14在C51中怎樣把函數(shù)定義到確定的位置?答:對(duì)函數(shù)的定位方法,CSEGAT001BH15如何在C51文件和匯編語(yǔ)言文件中相互調(diào)用對(duì)方文件中的函數(shù)?答:匯編語(yǔ)言文件中對(duì)于函數(shù)的調(diào)用方法,與調(diào)用匯編語(yǔ)言中的函數(shù)一樣,如:LCALLDISPLAY在C語(yǔ)言文件中調(diào)用匯編語(yǔ)言中的函數(shù),必須先聲明再調(diào)用。聲明格式如下:extern返回值類型 函數(shù)名(參數(shù)表);例如:externunsi

32、gned char right_shift ( char, char );16在C51中,如何訪問(wèn)DATA空間、PDATA空間、XDATA空間、CODE空間某個(gè)確定地址單元?答:用指針定義的訪問(wèn)存儲(chǔ)器的宏使用時(shí)需要用預(yù)處理命令把該頭文件包含到文件中,形式為:#include 。(1)按字節(jié)訪問(wèn)存儲(chǔ)器宏的形式宏名地址(2)按整型數(shù)訪問(wèn)存儲(chǔ)器宏的形式宏名下標(biāo)17在某程序中需要定義如下變量:(1)定義數(shù)碼管的顯示09的共陰極顯示代碼(0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07, 0x7f, 0x6f)數(shù)組dis_code,將其定義在CODE區(qū)。(2)定義定時(shí)器/

33、計(jì)數(shù)器0的賦計(jì)數(shù)值的高、低字節(jié)變量TL0_L和TH0_H,將其定義在DATA去區(qū)的0x30、0x31處。(3)定義長(zhǎng)度為20的無(wú)符號(hào)字符型數(shù)組data_buf于IDATA區(qū)中。(4)定義長(zhǎng)度為100的無(wú)符號(hào)字符型數(shù)組data_array于XDATA區(qū)中。(5)先定義一個(gè)無(wú)符號(hào)字符型變量status于BDATA區(qū)中,再定義8個(gè)與status的8個(gè)位對(duì)應(yīng)的位變量flag_lamp1、flag_lamp2、flag_machine1、flag_machine2、flag_port1、flag_port2、flag_calcu1和calcu2(從低位到高位)。答:(1)unsigned char co

34、de dis_code10=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f; (2)unsignedchardata TL0_L _at_ 0x30, TH0_H _at_ 0x31;(3)unsignedcharidata data_buf20;(4)unsignedcharxdata data_array100;(5)unsignedcharbdata status;sbitflag_lamp1=status0; sbitflag_lamp2=status1; sbitflag_machine1=status2; sbitflag_ma

35、chine2=status3; sbitflag_port1=status4; sbitflag_port2=status5; sbitflag_calcu1=status6; sbitflag_calcu2=status7; 18在89C52單片機(jī)中增加了定時(shí)器/計(jì)數(shù)器2(T2),修改頭文件“REG51.H”,添加如下內(nèi)容:(1)特殊功能寄存器T2CON、T2MOD、RCAP2L、RCAP2H、TL2、TH2,地址分別為0xc8 0xcd。(2)對(duì)T2CON的8個(gè)位分別定義位變量CP_RL2、C_T2、TR2、EXEN2、TCLK、RCLK、EXF2、和TF2(從低位到高位)。(3)定義位變

36、量T2、T2EX對(duì)應(yīng)于P1口的第0位和第1位;定義位變量ET2對(duì)應(yīng)于EI的第5位;定義位變量PT2對(duì)應(yīng)于IP的第5位;(4)對(duì)P1口的8個(gè)位分別定義位變量P0_0、P0_1、P0_2、P0_3、P0_4、P0_5、P0_6和P0_7(從低位到高位)。答:(1)sfrT2CON=0xc8;sfrT2MOD=0xc9;sfrRCAP2L=0xca;sfrRCAP2H=0xcb;sfrTL2=0xcc;sfrTH2=0xcd;(2)sbitCP_RL2=T2CON0; sbitC_T2=T2CON1; sbitTR2=T2CON2; sbitEXEN2=T2CON3; sbitTCLK=T2CON4

37、; sbitRCLK=T2CON5; sbitEXF2=T2CON6; sbitTF2=T2CON7; (3)sbitT2=P10;sbitT2EX=P11;sbitET2=EI5;sbitPT2=IP5;(4)sbitP0_0=P00;sbitP0_1=P01;sbitP0_2=P02;sbitP0_3=P03;sbitP0_4=P04;sbitP0_5=P05;sbitP0_6=P06;sbitP0_7=P07;19編寫一C51函數(shù),把從鍵盤輸入的5位十進(jìn)制數(shù)數(shù)轉(zhuǎn)換成一個(gè)無(wú)符號(hào)整型數(shù)(假設(shè)未超出整型數(shù)范圍)。設(shè)從鍵盤輸入的數(shù)存放在一無(wú)符號(hào)數(shù)組中,低位數(shù)為低下標(biāo)元素。unsigned cha

38、r data key_buffer5;unsigned int trans_int(void)unsigned char data i;unsigned int data temp=0;for(i=0;i5;i+)temp=temp*10+key_bufferi-0x30;return temp;20編寫一C51函數(shù),把一整型數(shù)按十進(jìn)制數(shù)將其各位分離,分離后放在一無(wú)符號(hào)數(shù)組中,便于顯示。要求把低位數(shù)作為低下標(biāo)元素。unsigned char data shu5;void main(unsigned int x)unsigned int temp;unsigned char i;for(i=0;

39、i4;i+)shui=temp%10;temp=temp/10;shu4=temp;21編寫一C51函數(shù),使用專用指針,把片外數(shù)據(jù)存儲(chǔ)器中從0x100開(kāi)始的30個(gè)字節(jié)數(shù)據(jù),傳送到片內(nèi)從0x40開(kāi)始的區(qū)域中。void main()unsigned char data i,*dpt;unsigned char xdata *xdpt;dpt=0x40;xdpt=0x100;for(i=0;i30;i+)*(dpt+i)=*(xdpt+i);22編寫一C51程序,實(shí)現(xiàn)從P1口輸出產(chǎn)生的流水燈,要求用匯編語(yǔ)言函數(shù)實(shí)現(xiàn)數(shù)據(jù)左移或右移。#pragma src#include void main()unsi

40、gned char temp,i;while(1)temp=0x55;P1=temp;delay();#pragma asmMOV A,tempRR AMOV temp,A#pragma endasmP1=temp;delay();23某單片機(jī)系統(tǒng)的P2口接一數(shù)模轉(zhuǎn)換器DAC0832輸出模擬量,現(xiàn)在要求從DAC0832輸出連續(xù)的三角波,實(shí)現(xiàn)的方法是從P2口連續(xù)輸出按照三角波變化的數(shù)值,從0開(kāi)始逐漸增大,到某一最大值后逐漸減小,直到0,然后再?gòu)?逐漸增大,一直這樣輸出。試編寫一函數(shù),使從P2口輸出的值產(chǎn)生三角波,并且使三角波的周期和最大值通過(guò)入口參數(shù)能夠改變。#include#define DA

41、C0832 XBYTE0x7FFFvoid san(unsigned char max1,unsigned char zhou1)unsigned char i,j,max,zhou;max=max1;zhou=zhou1;while(1)for(i=0;i=max,i+)DAC0832=i;for(j=0;j0,i-)DAC0832=i;for(j=0;j1,j-)for(i=0;i*(ptr+i+1)temp=*(ptr+i+1);*(ptr+i+1)=*(ptr+i);*(ptr+i)=temp;*ptr1=*(ptr+20/2);25在數(shù)字濾波中有一種叫做“去極值平均濾波”技術(shù),就是對(duì)

42、采集的數(shù)據(jù)按照從大到小或者從小到大進(jìn)行排序,然后去掉相同數(shù)目的極大值和極小值,對(duì)中間部分?jǐn)?shù)據(jù)求算術(shù)平均值作為采樣值。試編寫一函數(shù),對(duì)存放在片外數(shù)據(jù)存儲(chǔ)器中從0x150開(kāi)始的16個(gè)單元的采樣數(shù)據(jù),用選擇法進(jìn)行“去極值平均濾波”,把得到的采樣數(shù)據(jù)存放到0x14f單元中。void teaf()unsigned char xdata *ptr;unsigned char data temp,i,j,*ptr1;ptr=0x150;ptr1=0x4f;for(j=16;j1,j-)for(i=0;i*(ptr+i+1)temp=*(ptr+i+1);*(ptr+i+1)=*(ptr+i);*(ptr+i

43、)=temp;temp=0;for(i=0;i16-2;i+)temp=temp+*(ptr+i+1);*ptr1=temp/(16-2);26利用庫(kù)函數(shù)_getkey編寫一函數(shù),實(shí)現(xiàn)從單片機(jī)串行口接收數(shù)據(jù)的C51程序,把接收的數(shù)據(jù)存放在片內(nèi)數(shù)據(jù)存儲(chǔ)器從0x40開(kāi)始的區(qū)域,遇到回車符CR(ASCII碼是0x0d)結(jié)束。include void main()unsigned char data *dpt;unsigned char i=0,temp;dpt=0x40;while(1)temp=_getchar();if(temp=0x0d)break;*(dpt+i)=temp;i+;27利用庫(kù)

44、函數(shù)scanf編寫一函數(shù),實(shí)現(xiàn)從單片機(jī)串行口接收數(shù)據(jù)的C51程序,把接收的數(shù)據(jù)存放在片外數(shù)據(jù)存儲(chǔ)器從0x240開(kāi)始的區(qū)域,遇到回車符CR(ASCII碼是0x0d)結(jié)束。include void main()unsigned char xdata *xdpt;unsigned char i=0,temp;xdpt=0x240;while(1)scanf(“%c”,&temp);if(temp=0x0d)break;*(xdpt+i)=temp;i+;28利用庫(kù)函數(shù)putchar編寫一函數(shù),實(shí)現(xiàn)從單片機(jī)串行口發(fā)送數(shù)據(jù)的C51程序,發(fā)送的數(shù)據(jù)存放在片內(nèi)數(shù)據(jù)存儲(chǔ)器從0x50開(kāi)始的區(qū)域,遇到回車符CR(

45、ASCII碼是0x0d)結(jié)束。include void main()unsigned char data *dpt;unsigned char i=0;dpt=0x50;while(*(dpt+i)!=0x0d)putchar(*(dpt+i));i+;29利用庫(kù)函數(shù)printf編寫一函數(shù),實(shí)現(xiàn)從單片機(jī)串行口發(fā)送數(shù)據(jù)的C51程序,發(fā)送的數(shù)據(jù)存放在片外數(shù)據(jù)存儲(chǔ)器從0x100開(kāi)始的區(qū)域,遇到回車符CR(ASCII碼是0x0d)結(jié)束。include void main()unsigned char xdata *xdpt;unsigned char i=0;xdpt=0x100;while(*(xd

46、pt+i)!=0x0d)printf(“%c”,*(xdpt+i));i+;30編寫一定時(shí)器/計(jì)數(shù)器0定時(shí)100ms中斷處理函數(shù),使函數(shù)實(shí)現(xiàn)時(shí)鐘的功能,即產(chǎn)生時(shí)鐘的秒、分鐘和小時(shí)。設(shè)定時(shí)初值的高、低字節(jié)分別為TIMER_H和TIMER_L。設(shè)fosc=6mhz#include sfr TIMER_H=0x8b;sfr TIMER_L=0x8a;unsigned char data shi,fen,miao,bfm;void main()TMOD=0x01;TIMER_H=15536/16;TIMER_L=15536%16;ET0=1;EA=1;TR0=1;while(1);void time0

47、_int() interrupt 1TIMER_H=15536/16;TIMER_L=15536%16;bfm+;if(bfm=10)bfm=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;31在Keill C的調(diào)試狀態(tài)下,如何使用跟蹤運(yùn)行、單步運(yùn)行、跳出函數(shù)運(yùn)行命令?答:Step命令和Step Over命令的區(qū)別:當(dāng)遇到調(diào)用函數(shù)時(shí),前者將跟蹤進(jìn)入函數(shù),而后者是一步執(zhí)行完函數(shù)。如果用全速運(yùn)行命令Go,可以使用Stop Running命令停止運(yùn)行。欲退出調(diào)試狀態(tài),可以再次點(diǎn)擊Debug菜單下的Start/St

48、op Debug Session命令或相應(yīng)的按鈕。32在Keill C的調(diào)試狀態(tài)下,如何設(shè)置斷點(diǎn)和刪除斷點(diǎn)?答:方法1:用鼠標(biāo)雙擊。在需要設(shè)置的行的最前面,雙擊鼠標(biāo)左鍵,即可設(shè)置或清除斷點(diǎn)。方法2:用命令或命令按鈕。先將光標(biāo)移到需要設(shè)置的行,然后點(diǎn)擊Debug菜單下的Insert/Remove Breakpoint命令或工具欄中的相應(yīng)按鈕,即可設(shè)置或清除斷點(diǎn)。另外還有斷點(diǎn)禁用和全部清除命令及按鈕。33在Keill C的調(diào)試狀態(tài)下,如何觀察和修改寄存器?答:寄存器窗口、在線幫助窗口和工程管理器是同一個(gè)窗口,在工程管理器窗口下包含3個(gè)標(biāo)簽,即包含3個(gè)區(qū)域。在調(diào)試狀態(tài)下,點(diǎn)擊View菜單下的Proj

49、ect Window命令或?qū)?yīng)的按鈕,就會(huì)顯示或隱藏工程管理器窗口,然后點(diǎn)擊窗口下邊的寄存器標(biāo)簽,即顯示出寄存器窗口。除了sec和states之外,其它寄存器的值都可以改變。改變的方式有兩種:一是用鼠標(biāo)直接點(diǎn)擊左鍵進(jìn)行修改;二是在調(diào)試命令窗口直接輸入寄存器的值,如輸入“A=0x32”,則寄存器A的值立即顯示0x32。34在Keill C的調(diào)試狀態(tài)下,如何觀察和修改變量?答:在調(diào)試狀態(tài)下,點(diǎn)擊View菜單下的Watch & Call Stack Window命令或?qū)?yīng)的按鈕,就會(huì)顯示出或隱藏起變量窗口。變量窗口包含有4個(gè)標(biāo)簽,即4個(gè)顯示區(qū),可以分別顯示局部變量(Locals標(biāo)簽)、指定變量(Wa

50、tch #1和Watch #2兩個(gè)標(biāo)簽)、及堆棧調(diào)用(Call Stack標(biāo)簽)。在局部變量區(qū),顯示的是當(dāng)前函數(shù)中的變量,這些變量不用設(shè)置,自動(dòng)出現(xiàn)在窗口中。為了觀察其它變量,可以在Watch#1或Watch#2標(biāo)簽按F2輸入變量名。在程序運(yùn)行中,可以觀察這些顯示的變量的變化,也可以用鼠標(biāo)點(diǎn)擊修改它們的值。另外還有更簡(jiǎn)單的方法觀察變量的值,在程序停止運(yùn)行時(shí),將光標(biāo)放到要觀察的變量上停大約1秒,就會(huì)出現(xiàn)對(duì)應(yīng)變量的當(dāng)前值,如operate=0x32。35在Keill C的調(diào)試狀態(tài)下,如何觀察和修改data區(qū)、idata區(qū)、xdata區(qū)的數(shù)據(jù)?如何觀察code區(qū)的數(shù)據(jù)?答:在調(diào)試狀態(tài)下,點(diǎn)擊View

51、菜單下的Memory Window命令或?qū)?yīng)的按鈕,就會(huì)顯示出或隱藏起存儲(chǔ)器窗口。存儲(chǔ)器窗口包含4個(gè)標(biāo)簽,即4個(gè)顯示區(qū),分別是Memory#1、Memory#4。在4個(gè)顯示區(qū)上邊的“Address”欄輸入不同類型的地址,可以觀察不同的存儲(chǔ)區(qū)域。1)設(shè)置觀察片內(nèi)RAM直接尋址的data區(qū),在Address欄輸入D:xx(xx為十六進(jìn)制的兩位數(shù),下同),便顯示從xx地址開(kāi)始的數(shù)據(jù)。高128字節(jié)顯示的是特殊功能寄存器的內(nèi)容。2)設(shè)置觀察片內(nèi)RAM間接尋址的idata區(qū),在Address欄輸入I:xx,便顯示從xx地址開(kāi)始的數(shù)據(jù)。高128字節(jié)顯示的也是數(shù)據(jù)區(qū)的內(nèi)容,而不是特殊功能寄存器的內(nèi)容。3)設(shè)置

52、觀察片外RAM xdata區(qū),在Address欄輸入X:xxxx,便顯示從xxxx地址開(kāi)始的數(shù)據(jù)。4)設(shè)置觀察程序存儲(chǔ)器ROM code區(qū),在Address欄輸入C:xxxx,便顯示從xxxx地址開(kāi)始的程序代碼。在顯示區(qū)域中,默認(rèn)的顯示形式為十六進(jìn)制的字節(jié)。除了程序存儲(chǔ)器中的數(shù)據(jù)不能修改之外,其它3個(gè)區(qū)域的數(shù)據(jù)均可修改。修改方法是,用鼠標(biāo)對(duì)準(zhǔn)欲修改的單元,點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中對(duì)Modify Memory at 0x命令點(diǎn)擊鼠標(biāo)左鍵,會(huì)彈出的文本輸入欄輸入數(shù)據(jù),然后用鼠標(biāo)左鍵點(diǎn)擊“OK”即可。36在Keill C的調(diào)試狀態(tài)下,如何觀察各個(gè)片內(nèi)外設(shè)的運(yùn)行狀態(tài)?如何修改它們的設(shè)置?答:在調(diào)試狀態(tài)下,點(diǎn)擊Peripherals菜單下的不同外設(shè)選項(xiàng)命令,就會(huì)顯示或隱藏對(duì)應(yīng)外設(shè)的觀察窗口。如顯示定時(shí)器0窗口,點(diǎn)擊Peripherals菜單下的

溫馨提示

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