c51復(fù)習(xí)題(2)_第1頁
c51復(fù)習(xí)題(2)_第2頁
c51復(fù)習(xí)題(2)_第3頁
c51復(fù)習(xí)題(2)_第4頁
c51復(fù)習(xí)題(2)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一、填空1KeiL C51軟件中,工程文件的擴(kuò)展名是_.c_,編譯連接后生成可燒寫的文件擴(kuò)展名是_HEX_。2C51支持的指針有 基于存儲(chǔ)器的指針 和 一般指針 。3C51中,沒有專門的循環(huán)語句,我們可以用函數(shù)_完成一個(gè)字節(jié)的循環(huán)左移,用_完成二個(gè)字節(jié)的循環(huán)左移。4 函數(shù)     是C語言的基本單位。5C語言中輸入和輸出操作是由庫(kù)函數(shù)        和         等函數(shù)來完成。6若有說明int i,j

2、,k;則表達(dá)式i=10,j=20,k=30,k*=i+j的值為_ _。7 是一組有固定數(shù)目和相同類型成分分量的有序集合。8變量的指針就是變量的 ;指針變量的值是 。9在C語言中,把多個(gè)不同類型的變量結(jié)合在一起形成的一個(gè)組合型變量,稱為 ,簡(jiǎn)稱 。10C51的數(shù)據(jù)類型有 、 、 、 。11C51的基本數(shù)據(jù)類型有 、 、 、 、 、 。12C51的構(gòu)造數(shù)據(jù)類型有 、 、 、 。13C51的存儲(chǔ)類型有 data 、 idata 、 bdata 、 xdata 、 pdata 、 code 。14C51的存儲(chǔ)模式有 SMALL模式 、COMPACT模式 和 LARGE模式 。15C51程序與其他語言程

3、序一樣,程序結(jié)構(gòu)也分為 、 、 三種。16數(shù)組的一個(gè)很重要的用途就是 。17.二、單項(xiàng)選擇題:1.89S51的內(nèi)部程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器容量各為多少?(c )(A)64KB、 128B ( B)4KB、64KB (C)4KB、128B (D)8KB、256B2在8x51芯片里,哪個(gè)引腳用于控制使用內(nèi)部程序存儲(chǔ)器還是外部程序存儲(chǔ)器?( b)(A)XTAL1 (B)/EA (C)/PSEN (D)ALE3.下列哪個(gè)不是KeilC的預(yù)處理命令?( c(A)#include (B)#define (C)#exit (D)#if4.下列哪個(gè)不是KeilC的數(shù)據(jù)類型?( b)(A)void (B)stri

4、ng (C)char (D)float5.在8x51的輸入/輸出端口里,哪個(gè)輸入/輸出端口執(zhí)行在輸出功能時(shí)沒有內(nèi)部上拉電阻( A)(A)P0 (B)P1 (C)P2 (D)P36在KeilC的程序里,若要指定P0口的bit3,如何編寫?( C)(A)P0.3 (B)Port0.3 (C)P03 (D)Port37.在8x51里,若要擴(kuò)展外部存儲(chǔ)器時(shí),數(shù)據(jù)總線連接哪個(gè)輸入/輸出端口?(A )(A)P0 (B)P1 (C)P2 (D)P38點(diǎn)亮一般的LED所耗的電流約為多少?( D)(A)15uA (B)1020uA (C)15mA (D)1020mA9.在8x51的程序里,若要將個(gè)輸入/輸出端口

5、設(shè)置成輸入功能,應(yīng)如何處理?( A)(A)先輸出高電平到該輸入/輸出端口 (B)先輸出低電平到該輸入/輸出端口(C)先讀取該輸入/輸出端口的狀態(tài) (D)先保存該輸入/輸出端口的狀態(tài)10根據(jù)實(shí)驗(yàn)統(tǒng)計(jì),當(dāng)操作開關(guān)時(shí),其不穩(wěn)定關(guān)態(tài)大約持續(xù)多久?( B)(A)15ms (B)1020ms (C)100150ms (D)150250us11.在KeilC里,判讀開關(guān)狀態(tài)時(shí),使用if_else if語句與使用switch語句有何差異?( B)(A)if-else if 語句較快 (B)if-else if語句有優(yōu)先級(jí) (C)switch語句可判讀較多開關(guān)狀態(tài) (D)switch語句有優(yōu)先級(jí)12對(duì)于低電平動(dòng)

6、作(低電平觸發(fā))的開關(guān)而言,下列哪個(gè)不是在輸入口上連接一個(gè)上拉電阻VCC的目的?( A)(A)提供足夠的驅(qū)動(dòng)電流 (B)防止確定狀態(tài) (C)保持輸入高電平 (D)防止噪聲干擾13.中斷功能具有什么好處?(C )(A)讓程序更復(fù)雜 (B)讓程序執(zhí)行速度更快 (C)讓程序更有效率 (D)以上皆非148x51的IP緩存器的功能為何?(A )(A)設(shè)置中斷優(yōu)先級(jí) (B)啟用中斷功能 (C)設(shè)置中斷觸發(fā)信號(hào) (D)定義CPU的網(wǎng)址15.在KeilC里,中斷子程序與函數(shù)有何不同?( A)(A)中斷子程序不必聲明 (B)函數(shù)不必聲明 (C)中斷子程序必須有形式參數(shù) (D)中斷子程序一定會(huì)有返回值16若要同時(shí)

7、啟用INT0及INT1中斷功能,則應(yīng)如何設(shè)置?(B )(A)TCON=0x81 (B)IE=0x85 (C)IP=0x83 (D)IE=0x0317.若要提高INT1的優(yōu)先級(jí),則應(yīng)如何設(shè)置?( C)(A)IP=0x01 (B)IE=0x01 (C)IP=0x04 (D)IE=0x0418.在8x51的Timer里,若使用Mode 0,其最大計(jì)數(shù)值為多少個(gè)機(jī)器周期?(B )(A)65536 (B)8192 (C)1024 (D)25619.12 MHz的8x51系統(tǒng)里,哪一種方式一次可定時(shí)5ms?( A)(A)Mode0及Mode1 (B)Mode1及Mode2 (C ) Mode2及Mode3

8、 (D) Mode3及Mode1 20.8x51的定時(shí)器,在下列哪種方式下具有自動(dòng)加載功能?( C)(A)Mode0 (B) Mode1 (C)Mode2 (D)Mode321.若將Timer0設(shè)置為外部啟動(dòng),則可由哪個(gè)引腳啟動(dòng)?( A)(A)P3.2 (B)P3.3 (C)P3.4 (D)P3.522.下列哪個(gè)IC具有將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)的功能?( B)(A)74138 (B)74164 (C)74165 (D)7416823在同一時(shí)刻,只能接收或發(fā)送信號(hào)者稱為什么?( A(A)半雙工 (B)全雙工 (C)半單工 (D)單工24在8x51的串行口里,在哪一種方式下,可利用Timer1產(chǎn)生

9、波特率?(C )(A)Mode0 (B)Mode1 (C)Mode2 (D)Mode325.在8x51里,若通過串行端口傳出數(shù)據(jù),則只要將數(shù)據(jù)放入哪個(gè)寄存器,CPU就會(huì)自動(dòng)將它會(huì)傳出?( B)(A)SMOD (B)SBUF (C)PCON (D)RBUF26.在8x51里,若CPU完成串行端口數(shù)據(jù)的接收將會(huì)如何?( D)(A)將TI標(biāo)志變?yōu)? (B)將RI標(biāo)志為0 (C)將TI標(biāo)志變?yōu)榱?1 (D)將RI標(biāo)志變?yōu)?27若要設(shè)置8x51串行端口方式,可在哪個(gè)寄存器中設(shè)置?( B)(A)SMOD (B)SCON (C)PCON (D)TCON28在共陽極8*8LED點(diǎn)陣?yán)铮潢枠O如何連接?(C)(

10、A)各行陽極連接到行引腳 (B)各列陽極連接到列引腳 (C)各行陽極連接到列引腳 (D)各列陽極連接到行引腳29在共陽極8*8點(diǎn)陣?yán)?,其陰極如何連接?( C)(A)各行陰極連接到行引腳 (B)各列陰極連接到列引腳 (C)各行陰極連接到列引腳 (D)各列陰極連接到行引腳30通常8*8LED點(diǎn)陣的驅(qū)動(dòng)方式是什么?( B)(A)直接驅(qū)動(dòng) (B)掃描驅(qū)動(dòng) (C)雙向驅(qū)動(dòng) (D)以上皆非31若要對(duì)LCM下指令,則應(yīng)如保設(shè)置?(A )(A)RS=0,R/W=0 (B)RS=1,R/W=0 (C)RS=1,R/W=1 (D)RS=0,R/W=132若要在LCM中顯示些字符,則需把所要顯示的字符放入何處?(B

11、 )(A)CG RAM (B)DDRAM (C)IRAM (D)GDRAM33若要將數(shù)據(jù)寫入LCM,則應(yīng)如何設(shè)置?(B )(A)RS=0,R/W=0 (B)RS=1,R/W=0 (C)RS=1,R/W=1 (D)RS=0,R/w=134利用下列(  D     )關(guān)鍵字可以改變工作寄存器組A、interruptB、sfrC、while      D、using35C51中一般指針變量占用( C        )字節(jié)存儲(chǔ)。A、一

12、個(gè)       B、兩個(gè)       C、三個(gè)       D、四個(gè)36使用宏來訪問絕對(duì)地址時(shí),一般需包含的庫(kù)文件是(B )A、reg51.h     B、absacc.h   C、intrins.h    D、startup.h37執(zhí)行#define PA8255  XBYTE0x3FFC;PA8255=0x7e;后

13、存儲(chǔ)單元0x3FFC的值是(A  )A、Ox7e   B、8255H    C、未定    D、7e38設(shè)有int i;則表達(dá)式i=1,+i,+i|+i,i的值為 ( )A、1 B、2 C、3 D、439設(shè)有int a =10,11,12,*p=&a0;則執(zhí)行完*p+;*p+=1;后a0,a1,a2的值依次是 (C )A、10,11,12 B、11,12,12 C、10,12,12 D、11,11,1240設(shè)有int i;則表達(dá)式i=1,+i,i|+i,i的值為 ( )A、1 B、2 C、3 D、

14、4三、判斷題:(每小題1分,共10分。正確的在括號(hào)內(nèi)打“”,錯(cuò)誤的打“×”。判對(duì)得分,不判、判錯(cuò)均不得分。)1若一個(gè)函數(shù)的返回類型為void,則表示其沒有返回值。( 對(duì)  )2特殊功能寄存器的名字,在C51程序中,全部大寫。( 對(duì))3“sfr”后面的地址可以用帶有運(yùn)算的表達(dá)式來表示。(   錯(cuò)   )4#include  <reg51.h>與#include  “reg51.h”是等價(jià)的。( 對(duì))5sbit不可以用于定義內(nèi)部RAM的可位尋址區(qū),只能用在可位尋址的SFR上。(對(duì) )6Contin

15、ue 和break都可用來實(shí)現(xiàn)循環(huán)體的中止。(     錯(cuò) )7所有定義在主函數(shù)之前的函數(shù)無需進(jìn)行聲明。( 錯(cuò)     )8int i,*p=&i;是正確的C說明。(   對(duì))97&3+12的值是15。(  錯(cuò)    )10一個(gè)函數(shù)利用return不可能同時(shí)返回多個(gè)值。(對(duì)   )四、問答題1簡(jiǎn)述C51語言和匯編語言的比較使用C51語言進(jìn)行嵌入式系統(tǒng)的開發(fā),有著匯編語言所不可比擬的優(yōu)勢(shì): 編程調(diào)試靈活方便; 生成的代碼編

16、譯效率高; 模塊化開發(fā); 可移植性好; 便于項(xiàng)目的維護(hù);2簡(jiǎn)述單片機(jī)的C語言和標(biāo)準(zhǔn)C的比較單片機(jī)的C語言和標(biāo)準(zhǔn)C的比較主要有以下幾點(diǎn)不同: C51中定義的庫(kù)函數(shù)和標(biāo)準(zhǔn)的C語言定義的庫(kù)函數(shù)不同; C51中的數(shù)據(jù)類型和標(biāo)準(zhǔn)C的數(shù)據(jù)類型也有一定的區(qū)別; C51變量的存儲(chǔ)模式與標(biāo)準(zhǔn)C中變量的存儲(chǔ)模式不一樣; C51與標(biāo)準(zhǔn)C的輸入/輸出處理不一樣; C51與標(biāo)準(zhǔn)C語言在函數(shù)使用方面有一定的區(qū)別。3簡(jiǎn)述單片機(jī)的C語言的特點(diǎn)單片機(jī)的C語言的特點(diǎn)主要體現(xiàn)在以下幾個(gè)方面: 無需了解機(jī)器硬件及其指令系統(tǒng),只需初步了解MCS-51的存儲(chǔ)器結(jié)構(gòu); C51能方便的管理內(nèi)部寄存器的分配、不同存儲(chǔ)器的尋址和數(shù)據(jù)類型等細(xì)節(jié)問

17、題,但對(duì)硬件控制有限;而匯編語言可以完全控制硬件資源; C51在小應(yīng)用程序中,產(chǎn)生的代碼量大,執(zhí)行速度慢;但在較大的程序中代碼效率高; C51程序由若干函數(shù)組成,具有良好的模塊化結(jié)構(gòu),便于改進(jìn)和擴(kuò)充; C51程序具有良好的可讀性和可維護(hù)性;而匯編語言在大應(yīng)用程序開發(fā)中,開發(fā)難度增加,可讀性差; C51有豐富的庫(kù)函數(shù),可大大減少用戶的編程量,顯著縮短編程與調(diào)試時(shí)間,大大提高軟件開發(fā)效率; 使用匯編語言編制的程序,當(dāng)機(jī)型改變時(shí),無法直接移植使用,而C語言程序是面向用戶的程序設(shè)計(jì)語言,能在不同機(jī)型的機(jī)器上運(yùn)行,可移植性好。4簡(jiǎn)述使用KeilC51開發(fā)工具開發(fā)軟件的流程使用Keil Software工

18、具時(shí),用戶的項(xiàng)目開發(fā)流程和其它軟件開發(fā)項(xiàng)目的流程極其相似,主要包括以下幾個(gè)步驟: 創(chuàng)建一個(gè)項(xiàng)目,從器件庫(kù)中選擇目標(biāo)器件并配置工具軟件的設(shè)置; 用C語言或匯編語言創(chuàng)建源程序; 用項(xiàng)目管理器生成用戶的應(yīng)用; 修改源程序中的錯(cuò)誤; 調(diào)試鏈接后的應(yīng)用。1哪些變量類型是51單片機(jī)直接支持的? C51編譯器支持的數(shù)據(jù)類型有:位型(bit)、無符號(hào)字符型(unsigned char)、有符號(hào)字符型(signed char)、無符號(hào)整型(unsigned int)、有符號(hào)整型(signed int)、無符號(hào)長(zhǎng)整型(unsigned long)、有符號(hào)長(zhǎng)整型(signed long)、浮點(diǎn)型(float)和指針

19、型等。2簡(jiǎn)述C51的數(shù)據(jù)存儲(chǔ)類型我們都知道,8051單片機(jī)存儲(chǔ)區(qū)可分為內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)、外部數(shù)據(jù)存儲(chǔ)區(qū)以及程序存儲(chǔ)區(qū)。8051單片機(jī)內(nèi)部的數(shù)據(jù)存儲(chǔ)區(qū)是可讀寫的,8051派生系列最多可有256字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū),其中低128字節(jié)可直接尋址,高128字節(jié)(從0x80到0xFF)只能間接尋址,從20H開始的16字節(jié)可位尋址。內(nèi)部數(shù)據(jù)區(qū)可分為3個(gè)不同的存儲(chǔ)類型:data、idata和bdata。3簡(jiǎn)述C51對(duì)51單片機(jī)特殊功能寄存器的定義方法(1)使用關(guān)鍵字定義sfr(2)通過頭文件訪問SFR(3)SFR中位定義4簡(jiǎn)述C51對(duì)51單片機(jī)片內(nèi)I/O口和外部擴(kuò)展的I/O口的定義方法答:C51對(duì)51單片機(jī)片

20、內(nèi)I/O口的定義方法是將片內(nèi)I/O口看成SFR。 C51對(duì)51單片機(jī)片外I/O的訪問有兩種比較常用的訪問方法: (1)絕對(duì)宏C51編譯器提供了一組宏定義來對(duì)51系列單片機(jī)的code、data、pdata和xdata空間進(jìn)行絕對(duì)尋址。(2)_at_關(guān)鍵字可以使用關(guān)鍵字_at_對(duì)指定的存儲(chǔ)器空間的絕對(duì)地址進(jìn)行訪問,一般格式如下: 存儲(chǔ)器類型 數(shù)據(jù)類型說明符 變量名 _at_地址常數(shù);5簡(jiǎn)述C51對(duì)51單片機(jī)位變量的定義方法答:除了通常的C數(shù)據(jù)類型外,C51編譯器支持bit數(shù)據(jù)類型。 采用關(guān)鍵字“bit”進(jìn)行定義。如: bit direction_bit; bit lock_pointer;/* 將

21、direction_bit定義為位變量 */ /* 將lock_pointer定義為位變量 */bit display_invers; /* 將display_invers定義為位變量 */6C51 和Turbo C 的數(shù)據(jù)類型和存儲(chǔ)類型有哪些異同點(diǎn)?答:C51增加了位變量,取消了布爾變量。7C51 的data、bdata、idata 有什么區(qū)別?答:data、bdata、idata是表明數(shù)據(jù)的存儲(chǔ)類型, data是指片內(nèi)RAM的低128字節(jié),可在一個(gè)周期內(nèi)直接尋址; bdata是指片內(nèi)RAM的位尋址區(qū),16字節(jié);8C51中的中斷函數(shù)和一般的函數(shù)有什么不同?答:C51編譯器允許用C51創(chuàng)建中斷

22、服務(wù)函數(shù),中斷函數(shù)是由中斷系統(tǒng)自動(dòng)調(diào)用的。 中斷函數(shù)的定義格式為:函數(shù)類型 函數(shù)名 interrupt n using n 其中:interrupt和using為關(guān)鍵字;interrupt后面的n 為中斷源的編號(hào),即中斷號(hào); using后面的n所選擇的寄存器組,取值范圍為03。定義中斷函數(shù)時(shí),using是一個(gè)選項(xiàng),可以省略不用。如果不用using選項(xiàng),則由編譯器選擇一個(gè)寄存器組作為絕對(duì)寄存器組。8051的中斷過程通過使用interrupt關(guān)鍵字和中斷號(hào)(031)來實(shí)現(xiàn),中斷號(hào)告訴編譯器中斷函數(shù)的入口地址。9C51采用什么形式對(duì)絕對(duì)地址進(jìn)行訪問?絕對(duì)地址的訪問包括片內(nèi)RAM、片外RAM及I/O的

23、訪問。C51提供了兩種比較常用的訪問絕對(duì)地址的方法。(1)絕對(duì)宏(2)_at_關(guān)鍵字可以使用關(guān)鍵字_at_對(duì)指定的存儲(chǔ)器空間的絕對(duì)地址進(jìn)行訪問10按照給定的數(shù)據(jù)類型和存儲(chǔ)類型,寫出下列變量的說明形式答:(1)在data區(qū)定義字符變量val1char data vall;(2)在idata區(qū)定義整型變量val2int idata val2;(3)在xdata區(qū)定義無符號(hào)字符型數(shù)組val34。 unsigned xdata val34;(4)在xdata區(qū)定義一個(gè)指向char類型的指針px。char xdata *px;(5)定義可位尋址變量flag。bit flag;11/13(6)定義特殊功能

24、寄存器變量P3。Sfr P3=0xB0;11break和continue語句的區(qū)別是什么?答:break語句用于從循環(huán)代碼中退出,然后執(zhí)行循環(huán)語句之后的語句,不再進(jìn)入循環(huán)。 Continue語句用于退出當(dāng)前循環(huán),不再執(zhí)行本輪循環(huán),程序代碼從下一輪循環(huán)開始執(zhí)行,直到判斷條件不滿足為止。和break的區(qū)別是該語句不是退出整個(gè)循環(huán)。12C51選擇語句、循環(huán)語句包含那些?答:參看課本P68P77。13什么是重入函數(shù)?重入函數(shù)一般什么情況下使用,使用時(shí)有哪些需要注意的地方?答: 多個(gè)函數(shù)可以同時(shí)使用的函數(shù),稱為重入函數(shù)。通常情況下,C51函數(shù)不能被遞歸調(diào)用,也不能應(yīng)用導(dǎo)致遞歸調(diào)用的結(jié)構(gòu)。有此限制是由于函數(shù)參數(shù)和局部變量是存儲(chǔ)在固定的地址單元中。重入函數(shù)特性允許你聲明一個(gè)重入函數(shù)。即可以被遞歸調(diào)用的函數(shù)。重入函數(shù)可以被遞歸調(diào)用,也可以同時(shí)被兩個(gè)或更多的進(jìn)程調(diào)用。重入函數(shù)在實(shí)時(shí)應(yīng)用中及中斷服務(wù)程序代碼和非中斷程序代碼必須共用一個(gè)函數(shù)的

溫馨提示

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