第4章思考與練習(xí)_第1頁
第4章思考與練習(xí)_第2頁
第4章思考與練習(xí)_第3頁
第4章思考與練習(xí)_第4頁
第4章思考與練習(xí)_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、7思考與練習(xí)一、填空題1. 匯編程序有順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)3種基本結(jié)構(gòu)。2. 分支結(jié)構(gòu)分為單分支、雙分支和多分支。3. 通常情況下,循環(huán)結(jié)構(gòu)分為循環(huán)初始化、循環(huán)體和循環(huán)結(jié)束3個部分。4. 查表用的關(guān)鍵語句是:MOVC A A+DPTR5. JMP A+DPT用于多分支結(jié)構(gòu)的程序設(shè)計。6. 在C51程序中,一般來說,參數(shù)傳遞有也和 地址傳遞-兩種形式。7. C語言3個循環(huán)語句分別是 while 語句、do-while 語句和for 語句。8. 若要將十六進制數(shù)據(jù) ED送入P1 口,用匯編語言指令表示為MOV P1 , #0EDH,用C語言表示為_P1 = 0xED。9. 分別寫出外部中斷

2、 0和定時中斷1的C語言函數(shù)名interrupt 0、interrupt 310. 要把編好的C51程序生成可執(zhí)行文件,要經(jīng)過編譯 和 下載 兩個步驟。、選擇題1. 在Keil里開發(fā)80C51程序的第一步是什么?(D)A.調(diào)試與仿真B.產(chǎn)生可執(zhí)行文件C.組建程序D.打開或新建項目文件2. 在Keil里要導(dǎo)入C源程序,應(yīng)如何操作?(B)A.運行File/New命令B.雙擊Source Group 1C.運行 Project/New 命令D.左擊Source Group 13. 用來設(shè)置輸出HEX File這個命令的標簽頁為下面哪項? ( B)A.Debug標簽頁B.Output標簽頁C.Targ

3、et 標簽頁D.Device標簽頁三、簡答題1. C51編程與標準 C語言編程有什么主要區(qū)別?C51是標準C的擴展,使用專用的編輯器,如keil 與 franklin 等;C51特有的有以下幾點不同:Sfr、bit型變量bdata、code、xdata 、pdata、idata存儲類型In terrupt中斷函數(shù)最主要的是C51主要面向的是硬件,程序的編寫思路與標準C不同。2. C51單片機的數(shù)據(jù)類型?答:Keil C51支持的基本數(shù)據(jù)類型如下表所示。針對51單片機的硬件特點,C51在標準C的基礎(chǔ)上,擴展了 4個數(shù)據(jù)類型(擴展的4種數(shù)據(jù)類型,不能使用指針來對它們存?。?。表Keil C51支持的

4、數(shù)據(jù)類型數(shù)據(jù)類型位數(shù)字節(jié)數(shù)值域signed char81-128+127,有符號字符變量unsigned char810255,無符號字符變量signed int162-32768+32767,有符號整型數(shù)unsigned int162065535,無符號整型數(shù)signed long324-2 147 483 648+2 147 483 647,有符號長整型數(shù)unsigned long3240+4 294 967 295,無符號長整型數(shù)float324 3.302 823 E+38,浮點數(shù)(精確到 7位)double648 1.175 494E-308,浮點數(shù)(精確到 15位)*2413對象指

5、針bit10或1sfr810255sfr16162065 535sbit1可進行位尋址的特殊功能寄存器的某位的絕對地址C51的擴展4種數(shù)據(jù)類型:bit :位類型??梢远x一個位變量,位變量值為0或1,不能定義位指針和位數(shù)組。sbit :可尋址位??梢远x單片機內(nèi)部 RAM中的可尋址位或特殊功能寄存器中的可尋址位。例如:sfr PSW = 0xd0;/定義 PSW寄存器地址為 0xd0sbit PSWA2 = 0xd2;/ 定義 OV位為 PSW.2sfr :特殊功能寄存器??梢远x單片機內(nèi)部的所有8位特殊功能寄存器。該類數(shù)據(jù)占用一個內(nèi)存單元,取值范圍為0255。女口 sfr P仁0x90。sf

6、r16 : 16位特殊功能寄存器??梢远x單片機內(nèi)部16位特殊功能寄存器。該類數(shù)據(jù)占用兩個內(nèi)存單元,取值范圍為065535。例如:“sfr16 DPTR=0x82 ”語句定義了片內(nèi) 16位數(shù)據(jù)指針寄存器 DPTR其低8位字節(jié)地址為82H,高8位字節(jié)地址為83H。3. 簡述C51存儲類型與51單片機存儲空間的對應(yīng)關(guān)系。4.存儲區(qū)5.描述6. DATA7.片內(nèi)RAM的低128字節(jié),可在一個周期內(nèi)直接尋址8. BDATA9. 片內(nèi)RAM的位尋址區(qū),16字節(jié)10. IDATA11.片內(nèi)RAM的256字節(jié),必須米用間接尋址12. XDATA13.外部數(shù)據(jù)存儲區(qū),使用 DPTR間接尋址14. PDATA1

7、5.外部存儲區(qū)的256個字節(jié),通過 P0 口的地址對其尋址。使用MOVXRi需要倆個指令周期16. CODE17.程序存儲區(qū),使用 DPTRt址4. C51 中 51 單片機的特殊功能寄存器如何定義?試舉例說明。( 1)使用關(guān)鍵字定義 sfrsfr 特殊功能寄存器名字 = 特殊功能寄存器地址;如: sfr SCON=0x98 ; /* 串口控制寄存器地址 98H*/sfr TMOD=0X89 ; /* 定時器 / 計數(shù)器方式控制寄存器地址 89H*/( 2)通過頭文件訪問 SFR為了用戶處理方便,C51編譯器把MCS-51單片機的常用的特殊功能寄存器和特殊位進 行了定義,放在一個“ reg51

8、.h ”或“ reg52.h ”的頭文件中。當(dāng)用戶要使用時,只需要在使 用之前用一條預(yù)處理命令“ #include ”把這個頭文件包含到程序中,然后就可以 使用特殊功能寄存器名和特殊位名稱了。(3)SFR中位定義使用關(guān)鍵字“ sbit ”可以訪問位尋址對象。與SFR定義一樣,用關(guān)鍵字“ sbit ”定義某些特殊位,這種地址分配有三種方法: 第一種方法:sbit 位名=特殊功能寄存器名 A位置;sbit led=P1A0 ;當(dāng)特殊功能寄存器的地址為字節(jié)( 8 位)時,可使用這種方法。特殊功能寄存器名必須 是已定義的SFR的名字?!癮”后的“位置”語句定義了基地址上的特殊位的位置。該位置必 須是0

9、7的數(shù)。第二種方法:sbit 位名=字節(jié)地址a位置;這種方法是以一個整常數(shù)為基地址,該值必須在0x800xFF之間,并能被8整除,確定位置的方法同上。第三種方法:sbit 位名 =位地址;這種方法將位的絕對地址賦給變量,地址必須在 0x80 0xFF 之間。四、應(yīng)用題1、試編寫一段程序,將片內(nèi)RAM的20H,21H,22H連續(xù)3個單元的內(nèi)容依次存入 2FH,2EH 和 2DH 單元。參考答案:ORG 0000HMOV R0,#20HMOV R1,#2FHMOV R2,#3LP:MOV A,R0MOV R1,AINC R0DEC R1DJNZ R2,LPEND2、試編寫程序完成將片外數(shù)據(jù)存儲地址

10、為1000H1030H 的數(shù)據(jù)塊全部搬到片內(nèi) RAM的 30H60H 中并原數(shù)據(jù)塊區(qū)全部清零。參考答案:ORG 0000HMOV R0, #31MOV R1, #30HMOV DPTR,#1000HLP:MOVX A,DPTRMOV R1,ACLR AMOVX DPTR,AINC R1INC DPTRDJNZ R0,LPEND3、設(shè)有 100 個有符號數(shù), 連續(xù)存放在 2000H 為首的地址存儲中, 試編程統(tǒng)計其中正數(shù), 負數(shù),零的個數(shù)。參考答案:ORG 0000HMOV R0,#100MOV R1,#0MOV R2,#0MOV R3,#0MOV DPTR,#2000HLP:MOVX A,DP

11、TRCJNE A,#0,LP1INC R1LJMP LP3LP1:JB ACC.7,LP2INC R2LJMP LP3LP2:INC R3LP3:INC DPTRDJNZ R0,LPEND4. 試編寫一段程序,將片內(nèi)30H-32H和33H-35H中的兩個3字節(jié)壓縮BCD碼十進制數(shù)相 加,將結(jié)果以單字節(jié) BCD碼形式寫到外部 RAM的1000H-1005H單元。參考答案ORG 0000HMOV R0,#30HMOV R1,#33HMOV R2,#3MOV DPTR,#1000HLP:MOV A,R0ANL A,#0FHMOV R3,AMOV A R1ANL A, #0FHADD A,R3DA A

12、MOVX DPTR,AINC DPTRMOV A,R0SWAP AANL A,#0FHMOV R3,AMOV A,R1SWAP AANL A,#0FHADD A,R3DA AMOVX DPTR,AINC R0INC R1INC DPTRDJNZ R2,LPEND5. 試編寫一段程序,把0500H-0506H單元中的壓縮 BCD碼轉(zhuǎn)換成ASCII碼,存放在0500H 為首地址的存儲單元中。參考答案ORG 0000HMOV DPTR,#0500HMOV R0, #30HMOV R1, #7LP:MOVX A,DPTRANL A,#0FHADD A,#30HMOV R0, AINC R0MOVX A

13、,DPTRSWAP AANL A,#0FHADD A,#30HMOV R0, AINC R0INC DPTRDJNZ R1,LPMOV DPTR,#0500HMOV R0, #30HMOV R2,#14LP1:MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R2,LP1按由小到END6. 用C51試編一段數(shù)據(jù)塊搬遷程序。將外部RAM2000 202FH單元中的內(nèi)容,大的順序移入內(nèi)部 RAM204FH單元中。參考答案:ORG 0000HLJMP STARTORG 0100HSTART:MOV DPTR,#2000HMOV R0,#20HMOV R2,#30HLP1:M

14、OVX A,DPTRMOV R0,ADJNZ R2,LP1MOV 40H,#20H;比較數(shù)的首地址。MOV 41H,#2FH ;比較的次數(shù)(比較的數(shù)減1 是比較的次數(shù))。LP2:LCALL MININC 40HDEC 41HCJNE 41H,#01H,LP2 ;待比較的數(shù)只有一個時就停止比較。LJMP STARTMIN:MOV R1,40HMOV R0,40HMOV R3,41HLP5:MOV A,R0MOV 50H,AINC R1MOV A,R1CJNE A,50H,LP3 ;兩數(shù)不相等則轉(zhuǎn)移。LJMP LP4LP3:JC LP4 ;50H中的內(nèi)容大于 A中的內(nèi)容轉(zhuǎn)移。XCH A,50HMO

15、V R1,AMOV R0,50HLP4:DJNZ R3,LP5RETEND7. P1 口接發(fā)光二極管(低電平發(fā)光),用C51編寫實現(xiàn)任意花樣燈控制程序。 參考答案如下:本程序設(shè)計實現(xiàn)五種花樣燈控制,依次為P1.0P1.7順序點亮;P1.7P1.0依次熄滅;P1.0P1.7間隔點亮;高低四位交替點亮。全部LED燈交替閃爍。#include reg51.h #include #define uchar unsigned char / 宏定義#define uint unsigned int / 宏定義uchar a8=0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F;

16、/ 建立數(shù)組uchar b8=0XFE,0XFC,0XF8,0XF0,0XE0,0XC0,0X80,0X00;/ 建立數(shù)組void delay(uint temp);void orderly1();void orderly2();void orderly3();void orderly4();void orderly5();main()P1=0Xff;while (1)orderly1();/ 順序點亮orderly2();/ 依次熄滅orderly3();/ 間隔點亮orderly4();/ 高低四位交替點亮orderly5();/ 閃爍void delay(uint temp) / 延時程序uint x,y;for(x=0;x0;y-);void orderly1()int i;for(i=0;i0;i-

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論