單片機(jī)復(fù)習(xí)題帶答案_第1頁(yè)
單片機(jī)復(fù)習(xí)題帶答案_第2頁(yè)
單片機(jī)復(fù)習(xí)題帶答案_第3頁(yè)
單片機(jī)復(fù)習(xí)題帶答案_第4頁(yè)
單片機(jī)復(fù)習(xí)題帶答案_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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)介

一、單項(xiàng)選擇題1.利用下列(D)關(guān)鍵字可以改變工作寄存器組A、interruptB、sfrC、whileD、usingC51中一般指針變量占用(C)字節(jié)存儲(chǔ)。TOC\o"1-5"\h\zA、一個(gè)B、兩個(gè)C、三個(gè)D、四個(gè)使用宏來(lái)訪問(wèn)絕對(duì)地址時(shí),一般需包含的庫(kù)文件是(B)A、B、C、D、執(zhí)行#definePA8255XBYTE[0x3FFC];PA8255=0x7e;后存儲(chǔ)單元0x3FFC的值是(A)A、Ox7eB、8255HC、未定D、7e設(shè)有inti;則表達(dá)式i=1,++i,++i||++i,i的值為(C)A、1BA、1B、2C、3D、4設(shè)有inta[]={10,11,12},*p二&a[0];則執(zhí)行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是(C)A、10,11,12B、11,12,12C、10,12,12D、11,11,12設(shè)有inti;則表達(dá)式i=1,++i,i||++i,i的值為(B)TOC\o"1-5"\h\zA、1B、2C、3D、48、單片機(jī)8051的XTAL1和XTAL2引腳是(D)引腳。A、外接定時(shí)器B、外接串行口C、外接中斷D、外接晶振9、單片機(jī)的定時(shí)器/計(jì)數(shù)器設(shè)定為工作方式1時(shí),是(D)。A、8位計(jì)數(shù)器結(jié)構(gòu)B、2個(gè)8位計(jì)數(shù)器結(jié)構(gòu)TOC\o"1-5"\h\zC、13位計(jì)數(shù)器結(jié)構(gòu)D、16位計(jì)數(shù)器結(jié)構(gòu)10、串行口每一次傳送(C)字符。A、1個(gè)字節(jié)B、1bitC、1幀D、1串11、計(jì)算機(jī)能直接識(shí)別的語(yǔ)言是(C)。A、匯編語(yǔ)言B、自然語(yǔ)言C、機(jī)器語(yǔ)言D、C語(yǔ)言12、MCS—51單片機(jī)的CPU主要的組成部分為(A)。A、運(yùn)算器、控制器B、加法器、寄存器C、運(yùn)算器、加法器D、運(yùn)算器、譯碼器13、MCS-51系列單片機(jī)芯片是雙列直插式封裝的,有(C)個(gè)引腳。A、24B、30C、40D、5014、MCS-51的中斷允許觸發(fā)器內(nèi)容為83H,CPU將響應(yīng)的中斷請(qǐng)求是(A)。A、TOB、INT1C、串行接口D、INTO15、P0口作數(shù)據(jù)線和低8位地址線時(shí)(C)。A、應(yīng)外接上拉電阻B、不能作I/O口C、能作I/O口D、應(yīng)外接高電平二、判斷題:(每小題1分,共10分。正確的在括號(hào)內(nèi)打“"”,錯(cuò)誤的打“X”。判對(duì)得分,不判、判錯(cuò)均不得分。)1?若一個(gè)函數(shù)的返回類(lèi)型為void,則表示其沒(méi)有返回值。(Y)特殊功能寄存器的名字,在C51程序中,全部大寫(xiě)。(Y)“sfr”后面的地址可以用帶有運(yùn)算的表達(dá)式來(lái)表示。(N)#include?與#inelude“”是等價(jià)的。(Y)sbit不可以用于定義內(nèi)部RAM的可位尋址區(qū),只能用在可位尋址的SFR上。(N)Continue和break都可用來(lái)實(shí)現(xiàn)循環(huán)體的中止。(N)若一個(gè)函數(shù)的返回類(lèi)型為void,則表示其沒(méi)有返回值。(Y)所有定義在主函數(shù)之前的函數(shù)無(wú)需進(jìn)行聲明。(N)inti,*p=&i;是正確的C說(shuō)明。(Y)10.7&3+12的值是15。(Y)11、一個(gè)函數(shù)利用return不可能同時(shí)返回多個(gè)值。(Y)12、51單片機(jī)只能做控制用,不能完成算術(shù)運(yùn)算。(N)13、MCS-51的中斷源全部編程為同級(jí)時(shí),優(yōu)先級(jí)最高的是INT1。(N)14、MCS-51單片機(jī)的CPU能同時(shí)處理8位二進(jìn)制數(shù)據(jù)。(Y)15、單片機(jī)的主頻越高,其運(yùn)算速度越快。(N)16、為了消除按鍵的抖動(dòng),常用的方法有硬件和軟件兩種方法。(Y)三、填空(每空1分,共20分。在空白處填上正確的內(nèi)容)KeiLC51軟件中,工程文件的擴(kuò)展名是__UV2,編譯連接后生成可燒寫(xiě)的文件擴(kuò)展名是hex_。C51支持的指針有和存儲(chǔ)器指針。C51中,沒(méi)有專(zhuān)門(mén)的循環(huán)語(yǔ)句,我們可以用函數(shù)___crol完成一個(gè)字節(jié)的循環(huán)左移,用irol完成二個(gè)字節(jié)的循環(huán)左移。是C語(yǔ)言的基本單位。5.C語(yǔ)言中輸入和輸出操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成。若有說(shuō)明inti,j,k;則表達(dá)式i=10,j=20,k=30,k*二i+j的值為—TOC\o"1-5"\h\z900。數(shù)組是一組有固定數(shù)目和相同類(lèi)型成分分量的有序集合。變量的指針就是變量的地址;指針變量的值是指針。在C語(yǔ)言中,把多個(gè)不同類(lèi)型的變量結(jié)合在一起形成的一個(gè)組合型變量,稱(chēng)為結(jié)構(gòu)變量,簡(jiǎn)稱(chēng)結(jié)構(gòu)。針類(lèi)型、空類(lèi)型。10.C51的數(shù)據(jù)類(lèi)型有基本類(lèi)型、結(jié)構(gòu)類(lèi)型、指C51的基本數(shù)據(jù)類(lèi)型有位型、字符型、整形、長(zhǎng)整形、浮點(diǎn)型、雙精度浮點(diǎn)型。C51的構(gòu)造數(shù)據(jù)類(lèi)型有數(shù)組類(lèi)型、結(jié)構(gòu)類(lèi)型、共用體型、梅舉型。C51的存儲(chǔ)類(lèi)型有data、bdata、idata、pdata、xdata、code。C51的存儲(chǔ)模式有small、compact和large。C51程序與其他語(yǔ)言程序一樣,程序結(jié)構(gòu)也分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三種。數(shù)組的一個(gè)很重要的用途就是查表。在單片機(jī)擴(kuò)展時(shí),P0口和P2口為地址線,_P0口又分時(shí)作為數(shù)據(jù)線。在MCS-51單片機(jī)中,如采用6MHZ晶振,一個(gè)機(jī)器周期為2us。消除鍵盤(pán)抖動(dòng)常用兩種方法,一是采用硬件,用基本RS觸發(fā)器構(gòu)成;二是采用軟件,既測(cè)試有鍵輸入時(shí)需延時(shí)10毫秒后再測(cè)試是否有鍵輸入,此方法可判斷是否有鍵抖動(dòng)。20、在串行通信中,根據(jù)數(shù)據(jù)傳送方向分為單工、半雙工和全雙工三種方式。四、問(wèn)答題(共20分)簡(jiǎn)述C51語(yǔ)言和匯編語(yǔ)言的比較(5分)使用C51語(yǔ)言進(jìn)行嵌入式系統(tǒng)的開(kāi)發(fā),有著匯編語(yǔ)言所不可比擬的優(yōu)勢(shì):編程調(diào)試靈活方便;生成的代碼編譯效率高;模塊化開(kāi)發(fā);可移植性好;便于項(xiàng)目的維護(hù);簡(jiǎn)述單片機(jī)的C語(yǔ)言的特點(diǎn)(7分)單片機(jī)的C語(yǔ)言的特點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:無(wú)需了解機(jī)器硬件及其指令系統(tǒng),只需初步了解MCS-51的存儲(chǔ)器結(jié)構(gòu);C51能方便的管理內(nèi)部寄存器的分配、不同存儲(chǔ)器的尋址和數(shù)據(jù)類(lèi)型等細(xì)節(jié)問(wèn)題,但對(duì)硬件控制有限;而匯編語(yǔ)言可以完全控制硬件資源;C51在小應(yīng)用程序中,產(chǎn)生的代碼量大,執(zhí)行速度慢;但在較大的程序中代碼效率高;C51程序由若干函數(shù)組成,具有良好的模塊化結(jié)構(gòu),便于改進(jìn)和擴(kuò)充;C51程序具有良好的可讀性和可維護(hù)性;而匯編語(yǔ)言在大應(yīng)用程序開(kāi)發(fā)中,開(kāi)發(fā)難度增加,可讀性差;C51有豐富的庫(kù)函數(shù),可大大減少用戶的編程量,顯著縮短編程與調(diào)試時(shí)間,大大提高軟件開(kāi)發(fā)效率;使用匯編語(yǔ)言編制的程序,當(dāng)機(jī)型改變時(shí),無(wú)法直接移植使用,而C語(yǔ)言程序是面向用戶的程序設(shè)計(jì)語(yǔ)言,能在不同機(jī)型的機(jī)器上運(yùn)行,可移植性好。3.哪些變量類(lèi)型是51單片機(jī)直接支持的(5分)答:C51編譯器支持的數(shù)據(jù)類(lèi)型有:位型(bit)、無(wú)符號(hào)字符型(unsignedchar)、有符號(hào)字符型(signedchar)、無(wú)符號(hào)整型(unsignedint)、有符號(hào)整型(signedint)、無(wú)符號(hào)長(zhǎng)整型(unsignedIong)、有符號(hào)長(zhǎng)整型(signedIong)、浮點(diǎn)型(float)和指針型

等。C51編譯器支持的數(shù)據(jù)類(lèi)型、長(zhǎng)度和值域如表1-1所示。表1-1C51的數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型長(zhǎng)度/bit長(zhǎng)度/byte值域bit10,1unsigned810?255charsignedchar81-128?127unsignedint1620?65535signedint162-32768?32767unsigned3240?4294967295longsignedlong324-2147483648?2147483647float324±1.176E-38?±3.40E+38(6位數(shù)字)double648±1.176E-38?±3.40E+38(10位數(shù)字)一般指針243存儲(chǔ)空間0?655354.簡(jiǎn)述C51的數(shù)據(jù)存儲(chǔ)類(lèi)型(10分)答:我們都知道,8051單片機(jī)存儲(chǔ)區(qū)可分為內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)、外部數(shù)據(jù)存儲(chǔ)區(qū)以及程序存儲(chǔ)區(qū)。8051單片機(jī)內(nèi)部的數(shù)據(jù)存儲(chǔ)區(qū)是可讀寫(xiě)的,8051派生系列最多可有256字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū),其中低128字節(jié)可直接尋址,高128字節(jié)(從0x80到OxFF)只能間接尋址,從20H開(kāi)始的16字節(jié)可位尋址。內(nèi)部數(shù)據(jù)區(qū)可分為3個(gè)不同的存儲(chǔ)類(lèi)型:data、idata和bdata。外部數(shù)據(jù)區(qū)也是可讀寫(xiě)的,訪問(wèn)外部數(shù)據(jù)區(qū)比訪問(wèn)內(nèi)部數(shù)據(jù)區(qū)慢,因?yàn)橥獠繑?shù)據(jù)區(qū)是通過(guò)數(shù)據(jù)指針加載地址來(lái)間接訪問(wèn)的。C51提供兩種不同的存儲(chǔ)類(lèi)型xdata和pdata訪問(wèn)外部數(shù)據(jù)。程序存儲(chǔ)區(qū)是只能讀不能寫(xiě)。程序存儲(chǔ)區(qū)可能在8051單片機(jī)內(nèi)部或者在外部或者內(nèi)外都有,這由8051單片機(jī)的硬件決定。C51提供了code存儲(chǔ)類(lèi)型來(lái)訪問(wèn)程序存儲(chǔ)區(qū)。每個(gè)變量可以明確地分配到指定的存儲(chǔ)空間,對(duì)內(nèi)部數(shù)據(jù)存儲(chǔ)器的訪問(wèn)比對(duì)外部數(shù)據(jù)存儲(chǔ)器的訪問(wèn)快許多,因此應(yīng)當(dāng)將頻繁使用的變量放在內(nèi)部存儲(chǔ)器中,而把較少使用的變量放在外部存儲(chǔ)器中。各存儲(chǔ)區(qū)的簡(jiǎn)單描述如表1-2所示。表1-2C51存儲(chǔ)類(lèi)型與8051存儲(chǔ)空間的對(duì)應(yīng)關(guān)系存儲(chǔ)區(qū)描述DATA片內(nèi)RAM的低128字節(jié),可在一個(gè)周期內(nèi)直接尋址BDATA片內(nèi)RAM的位尋址區(qū),16字節(jié)IDATA片內(nèi)RAM的256字節(jié),必須采用間接尋址XDATA外部數(shù)據(jù)存儲(chǔ)區(qū),使用DPTR間接尋址PDATA外部存儲(chǔ)區(qū)的256個(gè)字節(jié),通過(guò)P0口的地址對(duì)其尋址。使用MOVX@Ri,需要兩個(gè)指令周期

CODE程序存儲(chǔ)區(qū),使用DPTR尋址。以上介紹的是C51的數(shù)據(jù)存儲(chǔ)類(lèi)型,C51存儲(chǔ)類(lèi)型及其大小和值域如表1-3所示。表1-3C51存儲(chǔ)類(lèi)型及其大小和值域存儲(chǔ)類(lèi)型長(zhǎng)度/bit長(zhǎng)度/byte值域data810?255idata810?255pdata810?255code1620?65535xdata1620?65535簡(jiǎn)述C51對(duì)51單片機(jī)特殊功能寄存器的定義方法(5分)答:MCS-51通過(guò)其特殊功能寄存器(SFR)實(shí)現(xiàn)對(duì)其內(nèi)部主要資源的控制°MCS-51單片機(jī)有21個(gè)SFR,有的單片機(jī)還有更多的SFR,它們分布在片內(nèi)RAM的高128字節(jié)中,其地址能夠被8整除的SFR一般可以進(jìn)行位尋址。關(guān)于MCS-51單片機(jī)的特殊功能寄存器參看附錄A。對(duì)SFR只能用直接尋址方式訪問(wèn)。C51允許通過(guò)使用關(guān)鍵字sfr、sbit或直接引用編譯器提供的頭文件來(lái)實(shí)現(xiàn)對(duì)SFR的訪問(wèn)。使用關(guān)鍵字定義sfr為了能直接訪問(wèn)特殊功能寄存器SFR,C51提供了一種自主形式的定義方法。這種定義方法與標(biāo)準(zhǔn)的C語(yǔ)言不兼容,只適用于對(duì)8051系列單片機(jī)進(jìn)行C編程。這種定義的方法是引入關(guān)鍵字“sfr”,語(yǔ)法如下:sfr特殊功能寄存器名字=特殊功能寄存器地址;如:sfrSCON=0x98;/*串口控制寄存器地址98H*/sfrTMOD=0X89;/*定時(shí)器/計(jì)數(shù)器方式控制寄存器地址89H*/通過(guò)頭文件訪問(wèn)SFR8051系列單片機(jī)的寄存器數(shù)量與類(lèi)型是極不相同的,因此對(duì)單片機(jī)特殊功能寄存器的訪問(wèn)可以通過(guò)對(duì)頭文件的訪問(wèn)來(lái)進(jìn)行。為了用戶處理方便,C51編譯器把MCS-51單片機(jī)的常用的特殊功能寄存器和特殊位進(jìn)行了定義,放在一個(gè)“”或“”的頭文件中。當(dāng)用戶要使用時(shí),只需要在使用之前用一條預(yù)處理命令“#inelude<>”把這個(gè)頭文件包含到程序中,然后就可以使用特殊功能寄存器名和特殊位名稱(chēng)了。用戶可以通過(guò)文本編輯器對(duì)頭文件進(jìn)行增減。(3)SFR中位定義在8051單片機(jī)的應(yīng)用問(wèn)題中,經(jīng)常需要單獨(dú)訪問(wèn)SFR中的位,C51的擴(kuò)充功能使之成為可能,使用關(guān)鍵字“sbit”可以訪問(wèn)位尋址對(duì)象。特殊位(sbit)的定義,像SFR一樣不與標(biāo)準(zhǔn)C兼容。與SFR定義一樣,用關(guān)鍵字“sbit”定義某些特殊位,并接受任何符號(hào)名,“=”號(hào)后將絕對(duì)地址賦給變量名。這種地址分配有三種方法:第一種方法:sbit位名二特殊功能寄存器名八位置;當(dāng)特殊功能寄存器的地址為字節(jié)(8位)時(shí),可使用這種方法。特殊功能寄存器名必須是已定義的SFR的名字?!鞍恕焙蟮摹拔恢谩闭Z(yǔ)句定義了基地址上的特殊位的位置。該位置必須是0?7的數(shù)。如:第二種方法:sbit位名二字節(jié)地址八位置;這種方法是以一個(gè)整常數(shù)為基地址,該值必須在0x80?OxFF之間,并能被8整除,確定位置的方法同上。第三種方法:sbit位名=位地址;這種方法將位的絕對(duì)地址賦給變量,地址必須在0x80?OxFF之間。C51的data、bdata、idata有什么區(qū)別(6分)答:data、bdata、idata是表明數(shù)據(jù)的存儲(chǔ)類(lèi)型,data是指片內(nèi)RAM的低128字節(jié),可在一個(gè)周期內(nèi)直接尋址;bdata是指片內(nèi)RAM的位尋址區(qū),16字節(jié);idata是指片內(nèi)RAM的256字節(jié),必須采用間接尋址。C51中的中斷函數(shù)和一般的函數(shù)有什么不同(6分)答:C51編譯器允許用C51創(chuàng)建中斷服務(wù)函數(shù),中斷函數(shù)是由中斷系統(tǒng)自動(dòng)調(diào)用的。中斷函數(shù)的定義格式為:函數(shù)類(lèi)型函數(shù)名interruptnusingn其中:interrupt和using為關(guān)鍵字;interrupt后面的n為中斷源的編號(hào),即中斷號(hào);using后面的n所選擇的寄存器組,取值范圍為0?3。定義中斷函數(shù)時(shí),using是一個(gè)選項(xiàng),可以省略不用。如果不用using選項(xiàng),則由編譯器選擇一個(gè)寄存器組作為絕對(duì)寄存器組。8051的中斷過(guò)程通過(guò)使用interrupt關(guān)鍵字和中斷號(hào)(0?31)來(lái)實(shí)現(xiàn),中斷號(hào)告訴編譯器中斷函數(shù)的入口地址。8.按照給定的數(shù)據(jù)類(lèi)型和存儲(chǔ)類(lèi)型,寫(xiě)出下列變量的說(shuō)明形式(6分)在data區(qū)定義字符變量vall答:chardatavall;在idata區(qū)定義整型變量val2答:intidataval2;在xdata區(qū)定義無(wú)符號(hào)字符型數(shù)組val3[4]。答:unsignedxdataval3[4];在xdata區(qū)定義一個(gè)指向char類(lèi)型的指針px。答:charxdata*px;定義可位尋址變量flag。答:bitflag;定義特殊功能寄存器變量P3。答:SfrP3=0xB0;9.什么是重入函數(shù)重入函數(shù)一般什么情況下使用,使用時(shí)有哪些需要注意的地方答:多個(gè)函數(shù)可以同時(shí)使用的函數(shù),稱(chēng)為重入函數(shù)。(6分)通常情況下,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ù)的場(chǎng)合中經(jīng)常用到。如何消除鍵盤(pán)的抖動(dòng)(5分)答:由于按鍵是機(jī)械開(kāi)關(guān)結(jié)構(gòu),所以當(dāng)用手按下其中一個(gè)鍵時(shí),往往會(huì)出現(xiàn)所按鍵在閉合位置和斷開(kāi)位置之間發(fā)生跳幾下后才會(huì)穩(wěn)定到閉合狀態(tài)的情況。在釋放一個(gè)鍵時(shí),也會(huì)出現(xiàn)類(lèi)似的情況,這就是鍵的抖動(dòng),抖動(dòng)的持續(xù)時(shí)間不一,但通常不會(huì)大于10ms。若抖動(dòng)問(wèn)題不解決,就會(huì)引起對(duì)閉合鍵的多次讀入。對(duì)于鍵抖動(dòng)最方便的解決方法就是當(dāng)發(fā)現(xiàn)有鍵按下后,不是立即進(jìn)行掃描,而是延時(shí)大約10ms后再進(jìn)行。由于一個(gè)鍵按下的時(shí)間一般會(huì)持續(xù)上百毫秒,所以延遲10ms后再掃描處理并不遲。在使用8051的定時(shí)器/計(jì)數(shù)器前,應(yīng)對(duì)它進(jìn)行初始化,其步驟是什么(4分)課本P198答:(1)確定T/C的工作方式——編程TMOD寄存器;(2)計(jì)算T/C中的計(jì)數(shù)初值,并裝載到TH和TL;(3)T/C在中斷方式工作時(shí),須開(kāi)CPU中斷和源中斷——編程IE寄存器;啟動(dòng)定時(shí)器/計(jì)數(shù)器——編程TCON中TR1或TRO位。什么叫中斷設(shè)置中斷有什么優(yōu)點(diǎn)五、程序分析題(10分)仁設(shè)單片機(jī)時(shí)鐘頻率為6MHz,分析下面程序?qū)崿F(xiàn)什么功能#inelude""sbitP10二PLO;voidmain(){TMOD=OxO1;TH0=(65536-12500)/256;TL0=(65536-12500)%256;ETO=1;EA=1;TRO=1;while(1);}voidT0_srv(void)interrupt1using1TH0=(65536-12500)/256;TL0=(65536-12500)%256;P10二!P10;解:引腳輸出50ms周期的方波。2?分析下面程序?qū)崿F(xiàn)什么功能{SCON=0x50;/*SCON:工作模式1,8-bitUART,允許接收*/TMOD|=0x20;/*TMOD:定時(shí)器T1,工作模式2,8位自動(dòng)重載方式*/TH1=0xf3;/*當(dāng)波特率為2400時(shí),定時(shí)器初值*/TR1=1;/*定時(shí)器T1開(kāi)始運(yùn)行*/TI=1;/*允許發(fā)送數(shù)據(jù)*/}longfactorial(intn)reentrant{longresult;if(n==0)result=1;elseresult二n*factorial(nT);returnresult;}voidmain(){intj;longtmp;long(*p)(intn);/*函數(shù)指針變量定義*/init_ser();p=(void*)factorial;/*函數(shù)指針變量p指向factorial。函數(shù)*/for(j=O;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í)器/計(jì)數(shù)器TO實(shí)現(xiàn)從產(chǎn)生周期是2s的方波,試編程。(10分)解:#include<>#include<>sbitP1_1=P1^1;unsignedchari;voidtimer0over(void);voidmain(){i=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;for(;;)//定義位變量//定時(shí)次數(shù)//函數(shù)聲明(定時(shí)50ms函數(shù))//主函數(shù)//定時(shí)器T0定時(shí)50ms,方式1//開(kāi)T0ET1=1;ET1=1;P1_1=1;}P1_1=1;}TL0=(65536-10000)%256;TL0=(65536-10000)%256;EA=1;P1_1=!P1_1;}P1_1=!P1_1;}if(TF0)timer0over();}}voidtimer0over(void){TH0=(65536-50000)/256;TL0=(65536-50000)%256;TF0=0;i++;//20次到了嗎//20次到了嗎{i=0;2?在8051系統(tǒng)中,已知振蕩頻率是12MHz,用定時(shí)器/計(jì)數(shù)器T1實(shí)現(xiàn)從產(chǎn)生高電平寬度是10ms,低電平寬度是20ms的矩形波,試編程。(10分)解:#include<>unsignedchari;sbitP1_1=PL1;voidmain()//主函數(shù){i=0;TMOD=0x10;//T1定時(shí)方式1,定時(shí)時(shí)間10msTH0=(65536-10000)/256;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;用單片機(jī)和內(nèi)部定時(shí)器來(lái)產(chǎn)生矩形波,要求頻率為100Hz,占空比為2:1,設(shè)單片機(jī)的時(shí)鐘頻率為12MHz,寫(xiě)出有關(guān)程序。(10分)解:#include<>unsignedchari;sbitP1_1=P1^1;voidmain(){i=0;TMOD=0x10;TH0=(65536-10000)/256;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;如圖1-1所示,單片機(jī)P1口的和各接一個(gè)開(kāi)關(guān)S1、S2,、、和各接一只發(fā)光二極管。由S1和S2的不同狀態(tài)來(lái)確定哪個(gè)發(fā)光二極管被點(diǎn)亮、如表1-4所示。(10分)P1DPitPL7P16[iXCS-5]FL5PMP1DPitPL7P16[iXCS-5]FL5PM表1-4S1、S2與二極管的關(guān)系JIII解:(一)程序如下:#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)⑴⑴9|iqM⑴⑴9|iqM}}}}iejeqo1QUIBUIpIOA“”即n|ou!#:丄口乍會(huì)尋(包){idoo|oq.oS{?Slx0=ld:S9seo?>|e9Jq:比xo二加:^sseo冷

溫馨提示

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