單片機(jī)應(yīng)用技術(shù)(c語言版第3版)[王靜霞]_習(xí)題答案_第1頁
單片機(jī)應(yīng)用技術(shù)(c語言版第3版)[王靜霞]_習(xí)題答案_第2頁
單片機(jī)應(yīng)用技術(shù)(c語言版第3版)[王靜霞]_習(xí)題答案_第3頁
單片機(jī)應(yīng)用技術(shù)(c語言版第3版)[王靜霞]_習(xí)題答案_第4頁
單片機(jī)應(yīng)用技術(shù)(c語言版第3版)[王靜霞]_習(xí)題答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1.1 單項選擇題1)A (2)C( 3)C1.2 填空題1)硬件系統(tǒng)、軟件系統(tǒng)2)時鐘電路、復(fù)位電路3)XTAL1 、XTAL2 、 RESET、EA4)晶振1.3 問答題什么是單片機(jī)?它由哪幾部分組成?什么是單片機(jī)應(yīng)用系統(tǒng)?答:單片微型計算機(jī)( Single Chip Microcomputer )簡稱單片機(jī),是指集成在一個芯片上的微型計算機(jī),它的各種功能部件, 包括CPU ( Central ProCeSSing Unit)、存儲器(memory)、基本輸入/輸出(InPUt/Output ,簡稱I/O)接口電路、定時/計數(shù)器和中斷 系統(tǒng)等,都制作在一塊集成芯片上,構(gòu)成一個完整的微型計算

2、機(jī)。單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心,配以輸入、輸出、顯示等外圍接口電路和控制程序,能實現(xiàn)一種或多種功能的實用系 統(tǒng)。1.4 上機(jī)操作題1)參考程序:#inClude <reg51.h>/函數(shù)名: delay/函數(shù)功能:實現(xiàn)軟件延時/形式參數(shù):無符號整型變量i,/返回值:無void delay(unSigned int i)unSigned int k;for(k=0;k<i;k+);void main()while(1)P1=0x00;delay(20000);P1=0xff;delay(20000);2)參考程序:#inClude <reg51.h>/函數(shù)名:

3、delay/包含頭文件reg51.h,定義了 51單片機(jī)的專用寄存器控制空循環(huán)的循環(huán)次數(shù)/延時函數(shù)/主函數(shù)/調(diào)用延時函數(shù),實際參數(shù)為20000/調(diào)用延時函數(shù),實際參數(shù)為20000/函數(shù)功能:實現(xiàn)軟件延時 /形式參數(shù):無符號整型變量i,/返回值:無void delay(unSigned int i)unSigned int k;for(k=0;k<i;k+);void main()while(1)P1=0x55;delay(20000);P1=0xff;delay(20000);/包含頭文件reg51.h,定義了 51單片機(jī)的專用寄存器控制空循環(huán)的循環(huán)次數(shù)/延時函數(shù)/主函數(shù)/調(diào)用延時函數(shù),

4、實際參數(shù)為20000/調(diào)用延時函數(shù),實際參數(shù)為200002.1 單項選擇題1) C(2) A3)A( 4)A ( 5) A( 6)D( 7)C( 8)A ( 9) A ( 10) C(2)答:單片機(jī)時鐘電路單片機(jī)時鐘電路如下圖。一般地,電容G和C2取30 PF左右;晶體振蕩器,簡稱晶振,頻率范圍是 頻率也越高,單片機(jī)的運行速度也就越快。在通常情況下,使用振蕩頻率為 機(jī)的串行口通信,則一般采用振蕩頻率為11.0592 MHZ的晶振。(3) 什么是機(jī)器周期?機(jī)器周期和晶振頻率有何關(guān)系?當(dāng)晶振頻率為1答:51單片機(jī)采用定時控制方式,有固定的機(jī)器周期。規(guī)定一個機(jī)器周期的寬度為 器周期就是振蕩脈沖的十二

5、分頻。當(dāng)晶振頻率為6MHz時,機(jī)器周期是2us=(4) 51單片機(jī)常用的復(fù)位方法有幾種?畫電路圖并說明其工作原理。答:2種,上電復(fù)位和按鍵復(fù)位。單片機(jī)常見的復(fù)位電路下圖所示。1.212 MHZ=晶體振蕩頻率越高,系統(tǒng)的時鐘6 MHZ或12 MHZ的晶振。如果系統(tǒng)中使用了單片6MHz時,機(jī)器周期是多少?6個狀態(tài),即12個振蕩脈沖周期,因此機(jī)2.2 填空題(1) 外部程序存儲器、外部數(shù)據(jù)存儲器、內(nèi)部程序存儲器、內(nèi)部數(shù)據(jù)存儲器(2) 程序存儲器(3) 工作寄存器組、位尋址區(qū)、用戶RAM(4) 1us、2us(5) 按鍵復(fù)位、上電復(fù)位(6) 2、高2.3 回答題(1) P3 口的第二功能是什么?答:P

6、3 口各引腳的第二功能如下表。第一功能第二功能第二功能信號名稱P3.0RXD串行數(shù)據(jù)接收P3.1TXD串行數(shù)據(jù)發(fā)送P3.2J外部中斷0申請P3.3a外部中斷1申請P3.4T0定時/計數(shù)器0的外部輸入P3.5T1定時/計數(shù)器1的外部輸入P3.6外部RAM或外部I/O寫選通P3.7u I外部RAM或外部I/O讀選通畫岀單片機(jī)時鐘電路,并指岀石英晶體和電容的取值范圍。在接電瞬間,RST端的電位與VCC相同,隨著充電電流的減少,RST的電位逐漸下降。只要保證 RST為高電平的時間大于兩個機(jī)器周期,便能正常復(fù)位。(b)為按鍵復(fù)位電路。該電路除具有上電復(fù)位功能外,還可以按圖2.5 (b)中的RESET鍵實

7、現(xiàn)復(fù)位,此時電源VCC經(jīng)兩個電阻分壓,在 RST端產(chǎn)生一個復(fù)位高電平。圖1.23中的信號燈控制電路就采用按鍵復(fù)位電路。(5) 51單片機(jī)片內(nèi)RAM的組成是如何劃分的?各有什么功能?答:8051的內(nèi)部RAM共有256個單元,通常把這256個單元按其功能劃分為兩部分:低128單元(單元地址0x000x7F)和高128單元(單元地址 0x80 0xFF )。片內(nèi)RAM的低128個單元用于存放程序執(zhí)行過程中的各種變量和臨時數(shù)據(jù),稱為DATA區(qū)。內(nèi)部RAM的高128單元地址為0x800xFF ,是供給專用寄存器 SFR ( SPeCial FUnCtion RegiSter ,也稱為特殊功能寄存器)使用

8、的。(6) 51單片機(jī)有多少個特殊功能寄存器?它們分布在什么地址范圍?答:51單片機(jī)有21個可尋址的專用寄存器,它們不連續(xù)地分布在片內(nèi)RAM的高128單元中,盡管其中還有許多空閑地址,但用戶不能使用。另外還有一個不可尋址的專用寄存器,即程序計數(shù)器PC,它不占據(jù)RAM單元,在物理上是獨立的。(7) 簡述程序狀態(tài)寄存器 PSW各位的含義,單片機(jī)如何確定和改變當(dāng)前的工作寄存器組。答:程序狀態(tài)字PSW是一個8位寄存器,用于存放程序運行中的各種狀態(tài)信息。PSW的各位定義如下表所示。位地址0xD70xD60xD50xD40xD30xD20xD10xD0位名稱CYACF0RS1RS0OVF1PCY (PSW

9、.7):進(jìn)位標(biāo)志位。存放算術(shù)運算的進(jìn)位標(biāo)志。AC ( PSW.:輔助進(jìn)位標(biāo)志位。存放算術(shù)運算中低4位向高4位進(jìn)位或借位。F0 ( PSW.5):用戶標(biāo)志位。供用戶定義的標(biāo)志位,需要利用軟件方法置位或復(fù)位。RS1和RS0 (PSW.4,PSW.3):工作寄存器組選擇位。上電或復(fù)位后,RS1 RS0=00。OV (PSW.2):溢出標(biāo)志位。存放帶符號數(shù)加減運算的溢出位。F1 ( PSW.1):保留未使用。P (PSW.0):奇偶標(biāo)志位。存放累加器 ACC數(shù)據(jù)的二進(jìn)制形式中1的個數(shù)的奇偶性。一般用于異步串行通信中的奇偶校驗。(8) C51編譯器支持的存儲器類型有哪些?答:單片機(jī)的存儲器結(jié)構(gòu)包括4個物

10、理存儲空間,C51編譯器對這4個物理存儲空間都能支持。常見的 C51編譯器支持的存儲器類型如下表所示。存儲器類型描述data直接訪問內(nèi)部數(shù)據(jù)存儲器,允許最快訪問(128 B)bdata可位尋址內(nèi)部數(shù)據(jù)存儲器,允許位與字節(jié)混合訪問(16 B)idata間接訪問內(nèi)部數(shù)據(jù)存儲器,允許訪問整個內(nèi)部地址空間(256 B)Pdata分頁”外部數(shù)據(jù)存儲器(256 B)Xdata外部數(shù)據(jù)存儲器(64 KB )code程序存儲器(64 KB)(9) 當(dāng)單片機(jī)外部擴(kuò)展 RAM和ROM時,P0 口和P2 口各起什么作用?答:P0 口可以分時復(fù)用作為 8位數(shù)據(jù)總線和低8位地址線,P2 口作為高8位地址線。(10) 在

11、單片機(jī)的C語言程序設(shè)計中,如何使用 SFR和可尋址位? 答:采用Sfr和Sbit來定義專用寄存器和位。2.4上機(jī)操作題(1) 修改程序ex2_1.c,使得蜂鳴器發(fā)岀有變化的報警聲。提示:修改延時參數(shù),聲音就會有改變。(2) 利用單片機(jī)控制蜂鳴器和發(fā)光二極管,設(shè)計一個聲光報警系統(tǒng)。提示:增加一個LED發(fā)光二極管,采用一個I/O 口來控制,當(dāng)報警時,發(fā)出聲音的同時,燈也閃動(3) 利用單片機(jī)控制按鍵和發(fā)光二極管,設(shè)計一個單鍵控制單燈亮滅的系統(tǒng)。/功能:單鍵控制單燈程序#include <reg51.h>Sbit P1_0=P10;定義 P1.0 引腳名稱為 P1_0Sbit P3.0=

12、P30; 定義 P3.0 引腳名稱為 P3_0void main()主函數(shù)bit led;/定義位變量ledP3_0=1;/P3.0 作為輸入口,置 1Ied=P3_0;/讀 P3.0if(led=1)P1_0=1; /判斷按鍵是否按下,沒有按下,燈熄滅if()led=O P1_O=O;/按鍵按下,燈點亮(4) 利用單片機(jī)控制4個按鍵和4個發(fā)光二極管,設(shè)計一個 4人搶答器,要求當(dāng)有某一參賽者首先按下?lián)尨痖_關(guān)時,相應(yīng) 的LED燈亮,此時搶答器不再接受其他輸入信號,需按復(fù)位按鍵才能重新開始搶答。參考電路如下圖。參考程序如下。功能:實用4路搶答器程序#include <reg51.h>S

13、bit P3.0=P30;Sbit P3_ 仁 P31;Sbit P3_2=P32;Sbit P3_3=P33;main()void /定義P3.0引腳名稱為 定義P3.1引腳名稱為 /定義P3.2引腳名稱為 /定義P3.3引腳名稱為/主函數(shù)P3_0P3_1P3_2P3 3bit flag; /定義位變量flag while(!flag)if(!P3_0)P仁 0xfe; flag=1;else if(!P3_1)P仁 0xfd; flag=1; else if(!P3_2)P仁0xfb; flag=1; else if(!P3_3)P仁0xf7; flag=1; while(flag);3.

14、1單項選擇題(2) A ( 3)A ( 4)D ( 5)D(I) C(II) void delay (UnSigned int i)、delay、(6)D ( 7)A delay(8) B ( 9)C ( 10)A3.2 填空題(I) main( 2) Sbit FLAG=P31;( 3) Sfr ( 4)順序、選擇和循環(huán)(5) 表達(dá)式和分號(6) if、SWitCh( 7) do-while語句、while語句(8)無限次(9) 10000( 10) UnSigned Char(II) 指定該變量在51單片機(jī)硬件系統(tǒng)中所使用的存儲區(qū)域,并在編譯時準(zhǔn)確的定位。(12) '0'3

15、.3 上機(jī)操作題 (1)感應(yīng)燈控制系統(tǒng)設(shè)計。實現(xiàn)當(dāng)照明燈感應(yīng)到有人接近時自動開燈,當(dāng)人離開后自動關(guān)燈的功能。 提示:采用熱釋電紅外傳感器模塊和發(fā)光二極管模擬電燈(2) 自動滑動門開關(guān)控制系統(tǒng)設(shè)計。實現(xiàn)當(dāng)滑動玻璃門感應(yīng)到有人接近時自動開門,當(dāng)人離開后自動關(guān)門的功能 提示:采用熱釋電紅外傳感器模塊和電機(jī)模擬自動開關(guān)門習(xí)題 44.1 單項選擇題( 1 ) C( 2) A( 3) C( 4) B( 5) B ( 6) D ( 7) B(8) C(9) D(10) D ( 11) C4.2 填空題( 1 ) ledkdelay(); ( 2) '0'( 3)程序存儲器4.3 在任務(wù) 10

16、的圖 4.1 中,如果直接將共陽極數(shù)碼管換成共陰極數(shù)碼管,能否正常顯示?為什么?應(yīng)采取什么措施? 答:不能正常顯示。因為共陽極數(shù)碼管和共陰極數(shù)碼管的顯示碼不同,二者是反相關(guān)系。修改程序,或者將顯示碼數(shù)組 disp 中的顯示碼換成共陰極顯示碼,或者在程序中增加取反操作即可。4.4七段LED靜態(tài)顯示和動態(tài)顯示在硬件連接上分別具有什么特點,實際設(shè)計時應(yīng)如何選擇使用?答:靜態(tài)顯示是指使用數(shù)碼管顯示字符時,數(shù)碼管的公共端恒定接地(共陰極)或5 V 電源(共陽極)。將每個數(shù)碼管的 8個段控制引腳分別與單片機(jī)的一個 8 位 I/O 端口相連。只要 I/O 端口有顯示字型碼輸出,數(shù)碼管就顯示給定字符,并保持不

17、變, 直到 I/O 端口輸出新的段碼。數(shù)碼管動態(tài)顯示電路通常是將所有數(shù)碼管的8 個顯示段分別并聯(lián)起來,僅用一個并行 I/O 端口控制,稱為“段選端” 。各位數(shù)碼管的公共端,稱為“位選端” ,由另一個 I/O 端口控制。實際應(yīng)用時,當(dāng)顯示位數(shù)少于 2 位時,可以采用靜態(tài)顯示方式;當(dāng)顯示位數(shù)較多時,建議采用動態(tài)顯示方式。4.5 LED大屏幕顯示一次能點亮多少行?顯示的原理是怎樣的?答:LED大屏幕顯示一次能點亮 1行,采用逐行點亮的方式。顯示原理:先給第 1 行送高電平(行高電平有效) ,同時給 8 列送該行顯示碼(列低電平有效) ;然后給第 2 行送高電平, 同時給8列送顯示碼,最后給第 8行送

18、高電平,同時給 8列顯示碼。每行點亮延時時間為約1 ms,第8行結(jié)束后再從第1行開始循環(huán)顯示。利用視覺駐留現(xiàn)象,人們看到的就是一個穩(wěn)定的字符。4.6 機(jī)械式按鍵組成的鍵盤,應(yīng)如何消除按鍵抖動?答:按鍵的機(jī)械抖動可采用硬件電路來消除, 也可以采用軟件方法進(jìn)行去抖。軟件去抖編程思路: 在檢測到有鍵按下時,先執(zhí)行10 ms左右的延時程序,然后再重新檢測該鍵是否仍然按下,以確認(rèn)該鍵按下不是因抖動引起的。同理,在檢測到該鍵釋放時, 也采用先延時再判斷的方法消除抖動的影響。4.7 獨立式按鍵和矩陣式按鍵分別具有什么特點?適用于什么場合?答:在單片機(jī)應(yīng)用系統(tǒng)中,如果系統(tǒng)需要按鍵數(shù)量較少,一般采用獨立式按鍵接

19、口,每個按鍵單獨占用一根I/O 端口線,按鍵的工作不會影響其他 I/O 端口線的狀態(tài),獨立式按鍵的電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O 端口線,因此,在按鍵較多時, I/O 端口線浪費較大,不宜采用。為了節(jié)約單片機(jī)硬件接口資源,當(dāng)系統(tǒng)需要按鍵數(shù)量較多時,一般采用矩陣鍵盤接口方式。由4根行線和 4根列線組成,例如:P0.0P0.3控制行線,P2.0P2.3控制列線,按鍵位于行、列線的交叉點上,且行線通過上拉電阻接到+5 V電源上,構(gòu)成了一個4×4 ( 16個按鍵)的矩陣式鍵盤。習(xí)題55.1單項選擇題1) C( 2) A ( 3) D ( 4) A( 5) A( 6)

20、 B( 7) A( 8) A ( 9) C10) A(11) C (12) C (13) C( 14) D5.2填空題(1)T0、 T1 、方式寄存器TMOD和控制寄存器 TCON( 2)GATE=0( 3) 0x50( 4)設(shè)置定時器的工作方式( 5)控制定時器的啟動、停止、標(biāo)識定時器的溢出和中斷情況(6) 中斷標(biāo)志寄存器 TCoN、串行口控制寄存器 SCoN、中斷允許控制寄存器IE和中斷優(yōu)先級控制寄存器IP(7) 中斷標(biāo)志寄存器 TCON和串行口控制寄存器 SCON、中斷允許控制寄存器IE和中斷優(yōu)先級控制寄存器 IP(8) 電平觸發(fā)方式(9)軟件方法、硬件方法、硬軟結(jié)合(10) 05.3

21、問答題( 1) 51 單片機(jī)定時 /計數(shù)器的定時功能和計數(shù)功能有什么不同?分別應(yīng)用在什么場合?答:T0或T1用做計數(shù)器時,分別對從芯片引腳T0 (P3.4)或T1 (P3.5)上輸入的脈沖進(jìn)行計數(shù),外部脈沖的下降沿將觸發(fā)計數(shù),每輸入一個脈沖,加法計數(shù)器加 1。計數(shù)器對外部輸入信號的占空比沒有特別的限制,但必須保證輸入信號的高電平與低 電平的持續(xù)時間都在一個機(jī)器周期以上。一般用于需要計數(shù)的場合,對時間沒有要求。用做定時器時,對內(nèi)部機(jī)器周期脈沖進(jìn)行計數(shù),由于機(jī)器周期是固定值,故計數(shù)值確定時,定時時間也隨之確定。如果51單片機(jī)系統(tǒng)采用12MHz晶振,則計數(shù)周期為:T機(jī)器周期=1/(12 ×

22、06 /12)=1 S,這是最短的定時周期。適當(dāng)選擇定時器的初值可獲 取各種定時時間。一般用于對時間有要求的場合。(2) 軟件定時與硬件定時的原理有何異同?答:軟件定時是靠CPU運行空操作實現(xiàn)的,CPU在定時時不能進(jìn)行其它操作,白白占用CPU時間。硬件定時是指采用單片機(jī)內(nèi)部定時器實現(xiàn)定時,當(dāng)定時器進(jìn)行計數(shù)操作時,CPU可以進(jìn)行其它操作。(3) 51單片機(jī)的定時/計數(shù)器是增1計數(shù)器還是減1計數(shù)器?增1和減1計數(shù)器在計數(shù)和計算計數(shù)初值時有什么不同? 答:51單片機(jī)的定時/計數(shù)器是增1計數(shù)器。增1計數(shù)器是在初值基礎(chǔ)上加 1計數(shù),直到翻轉(zhuǎn);減1計數(shù)器是在初值基礎(chǔ)上減1計數(shù),直到翻轉(zhuǎn)。計算初值時,增1計

23、數(shù)的初值需要用最大計數(shù)值(模值)減去計數(shù)值;減 1計數(shù)的初值就是計數(shù)值。(4) 當(dāng)定時/計數(shù)器在工作方式1下,晶振頻率為6 MHZ ,請計算最短定時時間和最長定時時間各是多少?答:工作方式1的計數(shù)模值是65536 ,機(jī)器周期2us,所以最短定時時間為2us,最長定時時間為:2us*65536=130ms。(5) 51單片機(jī)定時/計數(shù)器四種工作方式的特點有哪些?如何進(jìn)行選擇和設(shè)定?答:工作方式0是13位定時計數(shù)器,工作方式 1是16位定時計數(shù)器,工作方式 2是初值自動重載的8位定時計數(shù)器,工 作方式3下只有T0可以設(shè)置為工作方式 3, T1設(shè)置為工作方式3后不工作??筛鶕?jù)應(yīng)用場合和定時時間來確定

24、工作方式,在TMOD寄存器中設(shè)定。(6) 什么叫中斷?中斷有什么特點?答:中斷是指通過硬件來改變 CPU的運行方向。計算機(jī)在執(zhí)行程序的過程中,外部設(shè)備向CPU發(fā)出中斷請求信號,要求CPU暫時中斷當(dāng)前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來被中斷的程序。這種程序在執(zhí) 行過程中由于外界的原因而被中間打斷的情況稱為“中斷"。中斷特點:同步工作、實時處理、異常處理等。(7) 51單片機(jī)有哪幾個中斷源?如何設(shè)定它們的優(yōu)先級?答:中斷源有5個,分別為外部中斷 0請求壬J、外部中斷1請求 I、T0溢出中斷請求TF0、T1溢出中斷請求TF1和串行 口中斷請求RI或TI

25、。51單片機(jī)有兩個中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。每個中斷源都可以通過設(shè)置中斷優(yōu)先級寄存器IP確定為高優(yōu)先級中斷或低優(yōu)先級中斷,實現(xiàn)二級嵌套。同一優(yōu)先級別的中斷源可能不止一個,因此,也需要進(jìn)行優(yōu)先權(quán)排隊。同一優(yōu)先級別的中斷源采用自然優(yōu)先級。中斷優(yōu)先級寄存器IP ,用于鎖存各中斷源優(yōu)先級控制位。IP中的每一位均可由軟件來置1或清零,1表示高優(yōu)先級,0表示低優(yōu)先級。(8) 夕卜部中斷有哪兩種觸發(fā)方式?如何選擇和設(shè)定?答:外部中斷有電平觸發(fā)方式和下降沿觸發(fā)方式。由TCON中的IT位設(shè)定,例如:當(dāng)IT1 = 0時,外部中斷1控制為電平觸發(fā)方式;當(dāng)IT1 = 1時,外部中斷1控制為邊沿(下降沿)觸發(fā)方式

26、。(9) 中斷函數(shù)的定義形式是怎樣的?答:C51編譯器支持在C源程序中直接以函數(shù)形式編寫中斷服務(wù)程序。中斷函數(shù)的定義形式如下:Void 函數(shù)名()interrupt n其中n為中斷類型號,C51編譯器允許031個中斷,n的取值范圍為031。5.4 操作題(1)設(shè)計時間間隔為1 S的流水燈控制程序。參考程序如下:/功能:間隔顯示時間為1秒的流水燈程序#include "REG51.H"/包含頭文件REG51.H定義了 MCS-5單片機(jī)的特殊功能寄存器/ 函數(shù)名:delay1s/函數(shù)功能:用T1工作在方式1下的1秒延時函數(shù),采用查詢方式實現(xiàn)/形式參數(shù):無/返回值:無void d

27、elay1s()UnSigned Char i;for(i=0;i<0x14;i+)/設(shè)置20次循環(huán)次數(shù)TH1=0x3c;/設(shè)置定時器初值為3CB0HTL1=0xb0;TR1=1;/啟動T1while(!TF1);/查詢計數(shù)是否溢出,即定時 50msB寸間到,TF1=1TF1=0;/50ms定時時間到,將T1溢出標(biāo)志位TF1清零void main()UnSigned Char i,w;/主函數(shù)TMOD=0x10;/設(shè)置T1為工作方式1while(1)w=0x01;/顯示碼初值為01Hfor(i=0;i<8;i+)P1=w;w<<=1;delay1s();IIyN取反后送

28、P1 口,點亮相應(yīng)LED丁/ 點亮燈的位置移動II 調(diào)用 1 秒延時函數(shù)(2)用單片機(jī)控制8個LED發(fā)光二極管,要求8個發(fā)光二極管按照 BCD碼格式循環(huán)顯示OO59,時間間隔為1 SO 提示:BCD( Binary Coded Decimal )碼是用二進(jìn)制數(shù)形式表示十進(jìn)制數(shù),例如十進(jìn)制數(shù) 45,其 BCD 碼形式為 Ox45O BCD 碼 只是一種表示形式,與其數(shù)值沒有關(guān)系。BCD碼用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù),這4位二進(jìn)制數(shù)的權(quán)為 8421 ,所以BCD碼又稱為8421碼。用4位二進(jìn)制數(shù)表示一個十進(jìn)制數(shù),例如十進(jìn)制數(shù)56、87 和 143的 BCD 碼表示形式如下:O1O1 O11O(5

29、6)1OOO O111(87)OOO1 O1OO OO11(143)答:參考程序如下:II功能:米用BCD碼格式顯示的0 59簡易秒表程序 #include <reg51.h> void delay1s() II1 void main()秒延時函數(shù),參見任務(wù) 7程序 ex4_1.cunsigned char i, t;TMOD=0x10;while(1)for(i=0;i<60;i+) t=(iI10)<<4)|(i%10);II P1=t;delay1s();II 置 T1 為工作方式 1將i轉(zhuǎn)換為BCD碼II 計數(shù)值取反后送 P1 口顯示II 調(diào)用 1 秒延時

30、函數(shù)( 3)可控霓虹燈設(shè)計。系統(tǒng)包括8 個發(fā)光二極管,連接在 P3.2 引腳的一個按鍵,通過按鍵改變霓虹燈的顯示方式。要求正常情況下8個霓虹燈依次順序點亮,循環(huán)顯示,時間間隔為1 s。按鍵按下后8個霓虹燈同時亮滅一次,時間間隔為0.5s。(按鍵動作米用外部中斷 0 實現(xiàn))。答:參考程序如下: II 功能:可控信號燈程序#include <reg51.h>II 函數(shù)名: delay0_5sII函數(shù)功能:用TO的方式1編制0.5秒延時程序,假定系統(tǒng)采用 12MHz晶振,定II時器1、工作方式1定時50ms,再循環(huán)10次即可定時到0.5秒II 形式參數(shù):無II 返回值:無void del

31、ay0_5s()unsigned char i;for(i=0;i<0x0a;i+)TH0=0x3c;TL0=0xb0;TR0=1;while(!TF0);IITF0=0;II 設(shè)置 10 次循環(huán)次數(shù)II 設(shè)置定時器初值II 啟動 T0查詢計數(shù)是否溢出,即定時50ms時間到,TF0=0II 50ms定時時間到,將定時器溢出標(biāo)志位TF0清零II 函數(shù)名: delay_tII函數(shù)功能:實現(xiàn) 0.5秒128秒延時II 形式參數(shù): unsigned char t;II延時時間為0.5秒X tII 返回值:無void delay_t(unsigned char t)unsigned char i;

32、for(i=0;i<t;i+)delay0_5s();/ 函數(shù)名: int_0/函數(shù)功能:外部中斷 O中斷函數(shù),當(dāng)CPU響應(yīng)外部中斷O的中斷請求時,自動執(zhí)行該 /函數(shù),實現(xiàn)八個信號燈閃爍/ 形式參數(shù):無/ 返回值:無外部中斷 O 的中斷號為 O/ 熄滅八個信號燈/ 調(diào)用 O.5 秒延時函數(shù)/ 點亮八個信號燈/ 調(diào)用 O.5 秒延時函數(shù)/ 主函數(shù)P1=OxOO;delayO_5s();P1=Oxff;delayO_5s();void main()unsigned char i,w;EA=1;EXO=1;ITO=1;TMOD=OxO1;while(1)w=OxO1;for(i=O;i<

33、8;i+)P1=w;w<<=1;delay_t(2);void int_O() interrupt O / 打開中斷總允許位/ 打開外部中斷 O 允許位/ 設(shè)置外部中斷為邊沿(下降沿)觸發(fā)方式 / 設(shè)置 TO 為工作方式 1/ 顯示碼初值為 O1H / W取反后送P1 口,點亮相應(yīng)LEDT/ 點亮燈的位置移動/ 調(diào)用延時函數(shù) delay_t() ,實際參數(shù)為 2,延時 1秒習(xí)題66.1單項選擇題1) A(2) B( 3) D( 4) C (5)B( 6) C( 7) B( 8) C9) C(10) A(11)C(12)D( 13) A6.2問答題(1) 什么是串行異步通信?有哪幾種

34、幀格式?答:在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)是低位在前, 高位在后,通過傳輸線由接收端一幀一幀地接收。發(fā)送端和接收端分別使用各自獨立的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個 時鐘彼此獨立,互不同步。在串行通信中,兩相鄰字符幀之間可以沒有空閑位,也可以有若干空閑位,這由用戶來決定。(2) 定時器 T1 做串行口波特率發(fā)生器時,為什么采用工作方式2?答:實際上,當(dāng)定時器 T1 做波特率發(fā)生器使用時,通常是工作在定時器的模式 2 下,即作為一個自動重裝載的 8 位定時器, TL1 做計數(shù)用,自動重裝載的值在 TH1 內(nèi)。7.3 編程題(1)利

35、用串行口設(shè)計 4位靜態(tài)LED顯示,畫出電路圖并編寫程序, 要求4位LED每隔1 S交替顯示“1234”和“ 5678” 參考電路在教材第 207頁圖6.16的基礎(chǔ)之上再添加兩片 74LS164和兩個數(shù)碼管即可。參考程序如下:#include "reg51.h" / 包含頭文件 reg51.h ,定義 51 單片機(jī)的專用寄存器UnSigned Char da=0xF9,0xA4,0xB0,0x99; /定義 1 4 的共陽極字型顯示碼UnSigned Char da1=0x92,0x82,0x0F8,0x80; /定義 58 的共陽極字型void delay1S()UnSig

36、ned Char i;for(i=0;i<0x20;i+)/ 設(shè)置 20 次循環(huán)次數(shù)/ 設(shè)置定時器初值TH0=0x3C;TL0=0xb0;TR0=1;while(!TF0); /TF0=0;main()unsigned char i;P1=0xff;SCON=0x00;TMOD=0x01; while(1)for (i=0;i<4;i+) SBUF=dai; TI=0; while(!TI);delay1s();for (i=0;i<4;i+) SBUF=da1i; TI=0; while(!TI);/ 啟動 T0 查詢計數(shù)是否溢出,即定時 50ms 時間到, TF0=0Zz

37、 50ms定時時間到,將定時器溢出標(biāo)志位TFo清零/P1.0 置 1,允許串行移位ZZ 設(shè)串行口方式 0ZZ 設(shè)置 T0 為工作方式 1ZZ 送顯示數(shù)據(jù) 1234ZZ 等待發(fā)送完畢ZZ 送顯示數(shù)據(jù) 5678ZZ 等待發(fā)送完畢(2)編程實現(xiàn)甲乙兩個單片機(jī)進(jìn)行點對點通信,甲機(jī)每隔1 S發(fā)送一次“ A ”字符,乙機(jī)接收到以后,在 LCD上能夠顯示出來。參考電路圖略。參考程序如下:甲機(jī)發(fā)送程序:ZZ 功能:甲機(jī)發(fā)送數(shù)據(jù)程序,采用查詢方式實現(xiàn)#include <reg51.h> ZZ 包含頭文件 reg51.h ,定義 51 單片機(jī)的專用寄存器 void main()ZZ 主函數(shù)unsigned char i;TMOD=0x20; ZZ TL1=0xf4; ZZ TH1=0xf4;TR1=1;while(1)SCON=0x40; ZZ SBUF=0x41; ZZ while(TI=0); ZZ TI=0;ZZdelay1s(); ZZ1乙機(jī)接收程序略。定時器 T1 工作于方式 2波特率為 2400bps定義串行口工作于方式 1發(fā)送 A查詢等待發(fā)送是否完成發(fā)送完成, TI 由軟件清 0 秒延時函數(shù)參見 7.3(1) 題(3) 編寫一個實用的串行通信測試軟件,其功能為:將PC機(jī)鍵盤的輸入數(shù)

溫馨提示

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

評論

0/150

提交評論