




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1.利用以下(D)重點字能夠改變工作存放器組A、interruptB、sfrC、whileD、using2.C51中一般指針變量占用(C)字節(jié)儲存。A、一個B、兩個C、三個D、四個3.使用宏來接見絕對地點時,一般需包括的庫文件是(B)A、B、C、D、4.履行#definePA8255XBYTE[0x3FFC];PA8255=0x7e;后儲存單元0x3FFC的值是(A)A、Ox7eB、8255HC、不決D、7e5.設(shè)有inti;則表達式i=1,++i,++i||++i,i的值為(C)A、1B、2C、3D、46.設(shè)有inta[]={10,11,12},*p=&a[0];則履行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是(C)A、10,11,12B、11,12,12C、10,12,12D、11,11,127.設(shè)有inti;則表達式i=1,++i,i||++i,i的值為(B)A、1B、2C、3D、4二、判斷題:(每題1分,共10分。正確的在括號內(nèi)打“√”,錯誤的打“×”。判對得分,不判、判錯均不得分。)1.若一個函數(shù)的返回種類為void,則表示其沒有返回值。(√)2.特別功能存放器的名字,在C51程序中,所有大寫。(√)3.“sfr”后邊的地點能夠用帶有運算的表達式來表示。(×)4.#include<>與#include“”是等價的。(√)5.sbit不可以夠用于定義內(nèi)部RAM的可位尋址區(qū),只好用在可位尋址的SFR上。(×)6.Continue和break都可用來實現(xiàn)循環(huán)體的中斷。(×)7.若一個函數(shù)的返回種類為void,則表示其沒有返回值。(√)8.所有定義在主函數(shù)以前的函數(shù)無需進行申明。(×)9.inti,*p=&i;是正確的C說明。(√)10.7&3+12的值是15。(×)11.一個函數(shù)利用return不行能同時返回多個值。(√)三、填空(每空1分,共20分。在空白處填上正確的內(nèi)容)1.KeiLC51軟件中,工程文件的擴展名是____UV2______,編譯連結(jié)后生成可燒寫的文件擴展名是_____HEX_______。2.C51支持的指針有一般指針和儲存器指針。3.C51中,沒有特意的循環(huán)語句,我們能夠用函數(shù)______crol_______達成一個字節(jié)的循環(huán)左移,用____irol_____達成二個字節(jié)的循環(huán)左移。4.函數(shù)是C語言的基本單位。5.C語言中輸入和輸出操作是由庫函數(shù)scanf和printf等函數(shù)來達成。6.如有說明inti,j,k;則表達式i=10,j=20,k=30,k*=i+j的值為__900______。7.數(shù)組是一組有固定數(shù)目和同樣種類成分重量的有序會合。8.變量的指針就是變量的地點;指針變量的值是指針。9.在C語言中,把多個不一樣種類的變量聯(lián)合在一同形成的一個組合型變量,稱為結(jié)構(gòu)變量,簡稱結(jié)構(gòu)。10.C51的數(shù)據(jù)種類有基本種類、結(jié)構(gòu)種類、指針種類、空類型。11.C51的基本數(shù)據(jù)種類有位型、字符型、整形、長整形、浮點型、雙精度浮點型。12.C51的結(jié)構(gòu)數(shù)據(jù)種類有數(shù)組種類、結(jié)構(gòu)種類、共用體型、梅舉型。13.C51的儲存種類有data、bdata、idata、pdata、xdata、code。14.C51的儲存模式有SMALL、COMPACT和LARGE。15.C51程序與其余語言程序同樣,程序結(jié)構(gòu)也分為次序結(jié)構(gòu)、選擇結(jié)構(gòu)(或分支結(jié)構(gòu))、循環(huán)結(jié)構(gòu)三種。16.數(shù)組的一個很重要的用途就是查表。17.四、問答題(共20分)1.簡述C51語言和匯編語言的比較(5分)使用C51語言進行嵌入式系統(tǒng)的開發(fā),有著匯編語言所不行比較的優(yōu)勢:①編程調(diào)試靈巧方便;②生成的代碼編譯效率高;③模塊化開發(fā);④可移植性好;⑤便于項目的保護;2.簡述單片機的
C語言的特色(
7分)單片機的C語言的特色主要表此刻以下幾個方面:①無需認識機器硬件及其指令系統(tǒng),只要初步認識MCS-51的儲存器結(jié)構(gòu);C51能方便的管理內(nèi)部存放器的分派、不一樣儲存器的尋址和數(shù)據(jù)種類等細節(jié)問題,但對硬件控制有限;而匯編語言能夠完整控制硬件資源;③C51在小應(yīng)用程序中,產(chǎn)生的代碼量大,履行速度慢;但在較大的程序中代碼效率高;④C51程序由若干函數(shù)構(gòu)成,擁有優(yōu)秀的模塊化結(jié)構(gòu),便于改良和擴大;⑤C51程序擁有優(yōu)秀的可讀性和可保護性;而匯編語言在大應(yīng)用程序開發(fā)中,開發(fā)難度增添,可讀性差;⑥C51有豐富的庫函數(shù),可大大減少用戶的編程量,明顯縮短編程與調(diào)試時間,大大提升軟件開發(fā)效率;⑦使用匯編語言編制的程序,當機型改變時,沒法直接移植使用,而C語言程序是面向用戶的程序設(shè)計語言,能在不一樣機型的機器上運轉(zhuǎn),可移植性好。3.哪些變量種類是51單片機直接支持的?(答:C51編譯器支持的數(shù)據(jù)種類有:位型(
bit
5分))、無符號字符型(
unsignedchar
)、有符號字符型(signedchar)、無符號整型(unsignedint)、有符號整型(signedint)、無符號長整型(unsignedlong)、有符號長整型(signedlong)、浮點型(float)和指針型等。C51編譯器支持的數(shù)據(jù)種類、長度和值域如表1-1所示。表1-1C51的數(shù)據(jù)種類數(shù)據(jù)種類長度/bit長度/byte值域bit10,1unsignedchar810~255signedchar81-128~127unsignedint1620~65535signedint162-32768~32767unsignedlong3240~4294967295signedlong324-2147483648~2147483647float324±1.176E-38~±3.40E+38(6位數(shù)字)double648±1.176E-38~±3.40E+38(10位數(shù)字)一般指針243儲存空間0~655354.簡述C51的數(shù)據(jù)儲存種類(10分)答:我們都知道,8051單片機儲存區(qū)可分為內(nèi)部數(shù)據(jù)儲存區(qū)、外面數(shù)據(jù)儲存區(qū)以及程序儲存區(qū)。8051單片機內(nèi)部的數(shù)據(jù)儲存區(qū)是可讀寫的,8051派生系列最多可有256字節(jié)的內(nèi)部數(shù)據(jù)儲存區(qū),此中低128字節(jié)可直接尋址,高128字節(jié)(從0x80到0xFF)只好間接尋址,從20H開始的16字節(jié)可位尋址。內(nèi)部數(shù)據(jù)區(qū)可分為3個不一樣的儲存種類:data、idata和bdata。外面數(shù)據(jù)區(qū)也是可讀寫的,接見外面數(shù)據(jù)區(qū)比接見內(nèi)部數(shù)據(jù)區(qū)慢,因為外面數(shù)據(jù)區(qū)是經(jīng)過數(shù)據(jù)指針加載地點來間接接見的。C51供給兩種不一樣的儲存種類xdata和pdata接見外部數(shù)據(jù)。程序儲存區(qū)是只好讀不可以寫。程序儲存區(qū)可能在8051單片機內(nèi)部或許在外面或許內(nèi)外都有,這由8051單片機的硬件決定。C51供給了code儲存種類來接見程序儲存區(qū)。每個變量能夠明確地分派到指定的儲存空間,對內(nèi)部數(shù)據(jù)儲存器的接見比對外面數(shù)據(jù)儲存器的接見快很多,所以應(yīng)該將屢次使用的變量放在內(nèi)部儲存器中,而把較少使用的變量放在外面儲存器中。各儲存區(qū)的簡單描繪如表1-2所示。表1-2C51儲存種類與8051儲存空間的對應(yīng)關(guān)系儲存區(qū)描繪DATA片內(nèi)RAM的低128字節(jié),可在一個周期內(nèi)直接尋址BDATA片內(nèi)RAM的位尋址區(qū),16字節(jié)IDATA片內(nèi)RAM的256字節(jié),一定采納間接尋址XDATA外面數(shù)據(jù)儲存區(qū),使用DPTR間接尋址外面儲存區(qū)的256個字節(jié),經(jīng)過P0口的地點對其尋址。使用MOVX@Ri,需要PDATA兩個指令周期CODE程序儲存區(qū),使用DPTR尋址。以上介紹的是C51的數(shù)據(jù)儲存種類,C51儲存種類及其大小和值域如表1-3所示。表1-3C51儲存種類及其大小和值域儲存種類長度/bit長度/byte值域data810~255idata810~255pdata810~255code1620~65535xdata1620~655355.簡述C51對51單片機特別功能存放器的定義方法(5分)答:MCS-51經(jīng)過其特別功能存放器(SFR)實現(xiàn)對其內(nèi)部主要資源的控制。MCS-51單片機有21個SFR,有的單片機還有更多的SFR,它們散布在片內(nèi)RAM的高128字節(jié)中,其地點能夠被8整除的SFR一般能夠進行位尋址。對于MCS-51單片機的特別功能存放器參看附錄A。對SFR只好用直接尋址方式接見。C51同意經(jīng)過使用重點字sfr、sbit或直接引用編譯器供給的頭文件來實現(xiàn)對SFR的接見。(1)使用重點字定義sfr為了能直接接見特別功能存放器SFR,C51供給了一種自主形式的定義方法。這類定義方法與標準的C語言不兼容,只合用于對8051系列單片機進行C編程。這類定義的方法是引入重點字“sfr”,語法以下:sfr特別功能存放器名字=特別功能存放器地點;如:sfrSCON=0x98;/*串口控制存放器地點98H*/sfrTMOD=0X89;/*準時器/計數(shù)器方式控制存放器地點89H*/(2)經(jīng)過頭文件接見SFR8051系列單片機的存放器數(shù)目與種類是極不同樣的,所以對單片機特別功能存放器的訪問能夠經(jīng)過仇家文件的接見來進行。為了用戶辦理方便,C51編譯器把MCS-51單片機的常用的特別功能存放器和特別位進行了定義,放在一個“”或“”的頭文件中。當用戶要使用時,只要要在使用以前用一條預(yù)處理命令“#include<>”把這個頭文件包括到程序中,而后就能夠使用特別功能存放器名和特別位名稱了。用戶能夠經(jīng)過文本編寫器仇家文件進行增減。(3)SFR中位定義在8051單片機的應(yīng)用問題中,常常需要獨自接見SFR中的位,C51的擴大功能使之成為可能,使用重點字“sbit”能夠接見位尋址對象。特別位(sbit)的定義,像SFR同樣不與標準C兼容。與SFR定義同樣,用重點字“sbit”定義某些特別位,并接受任何符號名,“=”號后將絕對地點賦給變量名。這類地點分派有三種方法:第一種方法:sbit位名=特別功能存放器名^地點;當特別功能存放器的地點為字節(jié)(8位)時,可使用這類方法。特別功能存放器名一定是已定義的SFR的名字?!癪”后的“地點”語句定義了基地點上的特別位的地點。該地點必須是0~7的數(shù)。如:第二種方法:sbit位名=字節(jié)地點^地點;這類方法是以一個整常數(shù)為基地點,該值一定在0x80~0xFF之間,并能被8整除,確立地點的方法同上。第三種方法:sbit位名=位地點;這類方法將位的絕對地點賦給變量,地點一定在0x80~0xFF之間。6.C51的data、bdata、idata有什么差別?(6分)答:data、bdata、idata是表示數(shù)據(jù)的儲存種類,data是指片內(nèi)RAM的低128字節(jié),可在一個周期內(nèi)直接尋址;bdata是指片內(nèi)RAM的位尋址區(qū),16字節(jié);idata是指片內(nèi)RAM的256字節(jié),一定采納間接尋址。7.C51中的中斷函數(shù)和一般的函數(shù)有什么不一樣?(6分)答:C51編譯器同意用C51創(chuàng)立中斷服務(wù)函數(shù),中斷函數(shù)是由中斷系統(tǒng)自動調(diào)用的。中斷函數(shù)的定義格式為:函數(shù)種類函數(shù)名interruptnusingn此中:interrupt和using為重點字;interrupt后邊的n為中斷源的編號,即中斷號;using后邊的n所選擇的存放器組,取值范圍為0~3。定義中斷函數(shù)時,using是一個選項,能夠省略不用。假如不用using選項,則由編譯器選擇一個存放器組作為絕對存放器組。8051的中斷過程經(jīng)過使用interrupt重點字和中斷號(0~31)來實現(xiàn),中斷號告訴編譯器中斷函數(shù)的進口地點。8.依據(jù)給定的數(shù)據(jù)種類和儲存種類,寫出以下變量的說明形式(6分)1)在data區(qū)定義字符變量val1答:chardatavall;2)在idata區(qū)定義整型變量val2答:intidataval2;(3)在xdata區(qū)定義無符號字符型數(shù)組val3[4]。答:unsignedxdataval3[4];4)在xdata區(qū)定義一個指向char種類的指針px。答:charxdata*px;5)定義可位尋址變量flag。答:bitflag;6)定義特別功能存放器變量P3。答:SfrP3=0xB0;9.什么是重入函數(shù)?重入函數(shù)一般什么狀況下使用,使用時有哪些需要注意的地方?答:多個函數(shù)能夠同時使用的函數(shù),稱為重入函數(shù)。(6分)往常狀況下,C51函數(shù)不可以被遞歸調(diào)用,也不可以應(yīng)用致使遞歸調(diào)用的結(jié)構(gòu)。有此限制是因為函數(shù)參數(shù)和局部變量是儲存在固定的地點單元中。重入函數(shù)特征同意你申明一個重入函數(shù)。即能夠被遞歸調(diào)用的函數(shù)。重入函數(shù)能夠被遞歸調(diào)用,也能夠同時被兩個或更多的進度調(diào)用。重入函數(shù)在及時應(yīng)用中及中斷服務(wù)程序代碼和非中斷程序代碼一定共用一個函數(shù)的場合中常常用到。10.怎樣除去鍵盤的顫動?(5分)答:因為按鍵是機械開關(guān)結(jié)構(gòu),所以當用手按下此中一個鍵時,常常會出現(xiàn)所按鍵在閉合位置和斷開地點之間發(fā)生跳幾下后才會穩(wěn)固到閉合狀態(tài)的狀況。在開釋一個鍵時,也會出現(xiàn)類似的狀況,這就是鍵的顫動,顫動的連續(xù)時間不一,但往常不會大于10ms。若顫動問題不解決,就會惹起對閉合鍵的多次讀入。對于鍵顫動最方便的解決方法就是當發(fā)現(xiàn)有鍵按下后,不是立刻進行掃描,而是延時大概10ms后再進行。因為一個鍵按下的時間一般會連續(xù)上百毫秒,所以延緩
10ms后再掃描辦理其實不遲。11.在使用
8051
的準時器
/計數(shù)器前,應(yīng)付它進行初始化,其步驟是什么?(
4分)答:
(1)確立
T/C的工作方式——編程
TMOD存放器;(2)計算
T/C
中的計數(shù)初值,并裝載到
TH和
TL;(3)T/C
在中斷方式工作時,須開
CPU中斷和源中斷——編程
IE
存放器;(4)啟動準時器
/計數(shù)器——編程
TCON中
TR1或
TR0位。五、程序剖析題(10分)1.設(shè)單片機時鐘頻次為6MHz,剖析下邊程序?qū)崿F(xiàn)什么功能?#include""sbitP10=P1^0;voidmain( ){TMOD=0x01;TH0=(65536-12500)/256;TL0=(65536-12500)%256;ET0=1;EA=1;TR0=1;while(1);}voidT0_srv(void)interrupt1using1{TH0=(65536-12500)/256;TL0=(65536-12500)%256;P10=!P10;}解:引腳輸出50ms周期的方波。2.剖析下邊程序?qū)崿F(xiàn)什么功能?#include""#include""voidinit_ser( ){SCON=0x50;/*SCON:工作模式1,8-bitUART,同意接收*/TMOD|=0x20;/*TMOD:準時器T1,工作模式2,8位自動重載方式*/TH1=0xf3;/*當波特率為2400時,準時器初值*/TR1=1;/*準時器T1開始運轉(zhuǎn)*/TI=1;/*同意發(fā)送數(shù)據(jù)*/}longfactorial(intn)reentrant{longresult;if(n==0)result=1;elseresult=n*factorial(n-1);returnresult;}voidmain( ){intj;longtmp;long(*p)(intn);/*函數(shù)指針變量定義*/init_ser( );p=(void*)factorial;/*函數(shù)指針變量p指向factorial( )函數(shù)*/for(j=0;j<11;++j){tmp=(*p)(j);/*用指針變量p調(diào)用factorial( )函數(shù)*/printf("%d!=%ld\n",j,tmp);}for(;;){;}}解:輸出0~10的階乘。六、編程題(30分)1.在8051系統(tǒng)中,已知振蕩頻次是12MHz,用準時器/計數(shù)器T0實現(xiàn)從產(chǎn)生周期是2s的方波,試編程。(10分)解:#include<>sbitP1_1=P1^1;//定義位變量unsignedchari;//準時次數(shù)voidtimer0over(void);//函數(shù)申明(準時50ms函數(shù))voidmain( )//主函數(shù){i=0;TMOD=0x01;//準時器T0準時50ms,方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;//開T0for(;;){if(TF0)timer0over( );}}voidtimer0over(void){TH0=(65536-50000)/256;TL0=(65536-50000)%256;TF0=0;i++;if(i==20)//20次到了嗎?{i=0;P1_1=!P1_1;}}2.在8051系統(tǒng)中,已知振蕩頻次是12MHz,用準時器/計數(shù)器T1實現(xiàn)從產(chǎn)生高電平寬度是10ms,低電平寬度是20ms的矩形波,試編程。(10分)解:#include<>unsignedchari;sbitP1_1=P1^1;voidmain( )//主函數(shù){i=0;TMOD=0x10;//T1準時方式1,準不時間10msTH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET1=1;TR1=1;while(1);}voidtimer1_int(void)interrupt3{TH0=(65536-10000)/256;TL0=(65536-10000)%256;i++;if(i==1)P1_1=0;elseif(i==3){i=0;P1_1=1;}}3.用單片機和內(nèi)部準時器來產(chǎn)生矩形波,要求頻次為100Hz,占空比為2:1,設(shè)單片機的時鐘頻次為12MHz,寫出相關(guān)程序。(10分)解:#include<>unsignedchari;sbitP1_1=P1^1;voidmain( ){i=0;TMOD=0x10;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET1=1;TR1=1;while(1);}voidtimer1_int(void)interrupt3{TH0=(65536-10000)/256;TL0=(65536-10000)%256;i++;if(i==2)P1_1=0;elseif(i==3){i=0;P1_1=1;}}4.如圖1-1所示,單片機P1口的和各接一個開關(guān)S1、S2,、、和各接一只發(fā)光二極管。由S1和S2的不一樣狀態(tài)來確立哪個發(fā)光二極管被點亮,如表1-4所示。(10分)表1-4S1、S2與二極管的關(guān)系S2S1被點亮的二極管00VD101VD2解:(一)程序以下:#include<>voidmain( ){chara;a=P1/*讀P1口*/a=a&0x03;/*障蔽高6位*/if(a==0)P1=0x83;elseifa==1P1=0x43;elseifa==2P1=0x23;elseP1=0x13;}(二)程序以下:#include“”voidmain( ){chara;a=P1;/*讀P1口*/a=a&0x03;/*障蔽高6位*/switch(a){case0:P1=0x83;break;case1:P1=0x43;break;case2:P1=0x23;break;case3:P1=0x13;}}(三)程序以下:#include“”voidmain( ){chara;loop:a=P1;a=a&0x03;/*障蔽高6位*/switch(a){case0:P1=0x83;break;case1:P1=0x43;break;case2:P1=0x23;break;case3:P1=0x13;}gotoloop;}(四)程序以下:#include“”voidmain( ){chara;while(1){a=P1;a=a&0x03;/*障蔽高6位*/switch(a){case0:P1=0x83;break;case1:P1=0x43;break;case2
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年秋新人教PEP版三年級上冊英語教學課件 Unit 6 Part A Letters and sounds
- 洗浴鍋爐采購合同范本
- 冀教版數(shù)學七下同步課時課件7.5 平行線的性質(zhì) 第二課時
- 2025年鐵道交通運營管理專業(yè)技能大賽理論考試指導題庫(含答案)
- 眼部中醫(yī)專科護理
- 建筑租賃購銷合同范本
- 2025至2030年中國抗汽油和溶劑閥門潤滑密封劑數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國康乃馨數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國帶架壓力鉗數(shù)據(jù)監(jiān)測研究報告
- 板房采購合同范本
- 森林防火安全生產(chǎn)工作
- 《服裝市場營銷》課件
- 網(wǎng)絡(luò)安全風險評估報告模板
- 什么是法律談判課件
- 成考教材-數(shù)學教程(文史財經(jīng)類)
- 保安服務(wù)管理制度范文
- 汽車行業(yè)維修記錄管理制度
- 老年護理團隊建設(shè)方案
- 《跨學科實踐活動3 水質(zhì)檢測及自制凈水器》教學設(shè)計
- 開塞露的使用
- 公務(wù)員2022年國考申論試題(行政執(zhí)法卷)及參考答案
評論
0/150
提交評論