下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1.1單項選擇題(1)1.2填空題(1)(2)硬件系統(tǒng)、軟件系統(tǒng) 時鐘電路、復(fù)位電路(3)(4)晶振1.3問答題XTAL1 、 XTAL2 、 RESET、 EA什么是單片機?它由哪幾部分組成?什么是單片機應(yīng)用系統(tǒng)?答:單片微型計算機(Single Chip Microcomputer )簡稱單片機,是指集成在一個芯片上的微型計算機,它的各種功能部件,包括CPU(Central Processing Unit )、存儲器(memory)、基本輸入/輸出(Input/Output,單片機應(yīng)用系統(tǒng)是以單片機為核心, 或多種功能的實用系統(tǒng)。簡稱I/O)接口電路、定時/計數(shù)器和中斷系統(tǒng)等,都制作在一塊
2、集成芯片上,構(gòu)成一個完整的微型計算機。配以輸入、輸出、顯示等外圍接口電路和控制程序,能實現(xiàn)一種1.4上機操作題(1)參考程序:reg51.h,定義了 51單片機的專用寄存器#include <reg51.h>/ 包含頭文件/函數(shù)名:delay/函數(shù)功能:實現(xiàn)軟件延時/形式參數(shù):無符號整型變量 i,控制空循環(huán)的循環(huán)次數(shù)/延時函數(shù)/返回值:無void delay(unsigned int i)unsigned int k;for(k=0;kvi;k+);voidmain()主函數(shù)while(1)P1=0x00;delay(20000);P1=0xff;調(diào)用延時函數(shù),實際參數(shù)為20000
3、delay(20000);調(diào)用延時函數(shù),實際參數(shù)為20000(2)參考程序:#include <reg51.h>/ 包含頭文件reg51.h,定義了 51單片機的專用寄存器/函數(shù)名:delay/函數(shù)功能:實現(xiàn)軟件延時 /形式參數(shù):無符號整型變量 i,控制空循環(huán)的循環(huán)次數(shù)/延時函數(shù)/返回值:無 void delay(unsigned int i)unsigned int k;for(k=0;kvi;k+);voidmain()/主函數(shù)while(1)P1=0x55;delay(20000);調(diào)用延時函數(shù),實際參數(shù)為20000P 1=0xff;delay(20000);調(diào)用延時函數(shù),實
4、際參數(shù)為20000習題22.1單項選擇題(1)C ( 2) A(3) A(4)A( 5) A( 6) D( 7) C(8) A (9) A ( 10) C2.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 口的第二功能是什么?答:P3 口各引腳的第二功能如下表。第一功能第二功能第二功能信號名稱P 3.0RXD串行數(shù)據(jù)接收P 3.1TXD串行數(shù)據(jù)發(fā)送P 3.2INT0外部中斷0申請P 3.3INT1外部中斷1申請P 3.4T0定時/
5、計數(shù)器0的外部輸入P 3.5T1定時/計數(shù)器1的外部輸入P 3.6WR外部RAM或外部I/O寫選通P 3.7RD外部RAM或外部I/O讀選通(2)畫出單片機時鐘電路,并指出石英晶體和電容的取值范圍。 答:單片機時鐘電路單片機時鐘電路如下圖。C,EMfLJODXTAJ7一般地,電容Ci和G取30 pF左右;晶體振蕩器,簡稱晶振,頻率范圍是1.212 MHz。晶體振蕩頻率越高,系統(tǒng)的時鐘頻率也越高,單片機的運行速度也就越快。在通常情況下,使用振蕩頻率為12 MHz的晶振。如果系統(tǒng)中使用了單片機的串行口通信,則一般采用振蕩頻率為(3)什么是機器周期?機器周期和晶振頻率有何關(guān)系?當晶振頻率為6MHz答
6、:6 MHz 或11.0592 MHz 的晶振。時,機器周期是多少?51單片機采用定時控制方式,有固定的機器周期。規(guī)定一個機器周期的寬度為 蕩脈沖周期,因此機器周期就是振蕩脈沖的十二分頻。當晶振頻率為6MHz時,機器周期是2US。(4)51單片機常用的復(fù)位方法有幾種?畫電路圖并說明其工作原理。答:2種,上電復(fù)位和按鍵復(fù)位。單片機常見的復(fù)位電路下圖所示。6個狀態(tài),即12個振22Fftl 'T片機RSTIkfl *<a> hqi臭位哨wtV,ccI卻F十REStT =U102eoo1Lkll f*4按a熒位Ui舒(a) 為上電復(fù)位電路。它利用電容充電來實現(xiàn)復(fù)位,在接電瞬間,RS
7、T端的電位與Vcc相同,隨著 充電電流的減少,RST的電位逐漸下降。只要保證RST為高電平的時間大于兩個機器周期,便能正常復(fù)位。(b) 為按鍵復(fù)位電路。該電路除具有上電復(fù)位功能外,還可以按圖2.5 (b)中的RESET鍵實現(xiàn)復(fù)位,此時電源Vcc經(jīng)兩個電阻分壓,在 RST端產(chǎn)生一個復(fù)位高電平。圖1.23中的信號燈控制電路就采用按鍵復(fù)位電路。(5)51單片機片內(nèi)RAM的組成是如何劃分的?各有什么功能?答:8051的內(nèi)部RAM共有256個單元,通常把這256個單元按其功能劃分為兩部分:低128單元(單元地址0x000x7F)和高128單元(單元地址 0x80OxFF )。片內(nèi)RAM的低128個單元用
8、于存放程序執(zhí)行過程中的各種變量和臨時數(shù)據(jù),稱為DATA區(qū)。內(nèi)部RAM的高128單元地址為0x800xFF,是供給專用寄存器 SFR (Special Function Register,也稱為特殊功能寄存器)使用的。(6)51單片機有多少個特殊功能寄存器?它們分布在什么地址范圍?答:51單片機有21個可尋址的專用寄存器,它們不連續(xù)地分布在片內(nèi)RAM的高128單元中,盡管PC,它不其中還有許多空閑地址,但用戶不能使用。另外還有一個不可尋址的專用寄存器,即程序計數(shù)器 占據(jù)RAM單元,在物理上是獨立的。(7)簡述程序狀態(tài)寄存器 PSW各位的含義,單片機如何確定和改變當前的工作寄存器組。答:程序狀態(tài)字
9、PSW是一個8位寄存器,用于存放程序運行中的各種狀態(tài)信息。PSW的各位定義如下表所示。位地 址0xD70xD60xD50xD40xD30xD20xD10xD0位名 稱CYACF0RS1RS0OVF1PCY( PSW.7):進位標志位。存放算術(shù)運算的進位標志。AC( PSW.6):輔助進位標志位。存放算術(shù)運算中低4位向高4位進位或借位。RS1 RSO=OO。F0( PSW.5:用戶標志位。供用戶定義的標志位,需要利用軟件方法置位或復(fù)位。RS1和RS0( PSW.4,PSW.3):工作寄存器組選擇位。上電或復(fù)位后,OV( PSW.2):溢出標志位。存放帶符號數(shù)加減運算的溢出位。F1( PSW.1)
10、:保留未使用。1的個數(shù)的奇偶性。一般用于異步串4個物理存儲空間都能支持。常見的P( PSW.0):奇偶標志位。存放累加器ACC數(shù)據(jù)的二進制形式中行通信中的奇偶校驗。(8)C51編譯器支持的存儲器類型有哪些?(9)當單片機外部擴展 RAM和ROM時,P0 答:P0 口可以分時復(fù)用作為8位數(shù)據(jù)總線和低(10)在單片機的C語言程序設(shè)計中,如何使用 答:采用sfr和sbit來定義專用寄存器和位。答:單片機的存儲器結(jié)構(gòu)包括 4個物理存儲空間,C51編譯器對這存儲器類型描述data直接訪問內(nèi)部數(shù)據(jù)存儲器,允許最快訪問(128 B)bdata可位尋址內(nèi)部數(shù)據(jù)存儲器,允許位與字節(jié)混合訪問(16 B)idata
11、間接訪問內(nèi)部數(shù)據(jù)存儲器,允許訪問整個內(nèi)部地址空間(256 B)p data“分頁”外部數(shù)據(jù)存儲器(256 B)xdata外部數(shù)據(jù)存儲器(64 KB )code程序存儲器(64 KB )C51編譯器支持的存儲器類型如下表所示。口和P2 口各起什么作用?8位地址線,P2 口作為高8位地址線。SFR和可尋址位?2.4上機操作題(1)修改程序ex2_1.c,使得蜂鳴器發(fā)出有變化的報警聲。提示:修改延時參數(shù),聲音就會有改變。(2)利用單片機控制蜂鳴器和發(fā)光二極管,設(shè)計一個聲光報警系統(tǒng)。提示:增加一個LED發(fā)光二極管,采用一個I/O 口來控制,當報警時,發(fā)出聲音的同時,燈也閃動。(3)利用單片機控制按鍵和
12、發(fā)光二極管,設(shè)計一個單鍵控制單燈亮滅的系統(tǒng)。參考電路如下圖:<3V1參考程序如下:I' JUFa»9C5IP3.ti Ul 1XT MJ邑J*卻0 L HE.功能:單鍵控制單燈程序#include vreg51.h>sbit P1_0=P 1人0;定義P1.0引腳名稱為P1 0sbit P3_0=P 39/定義P3.0引腳名稱為P3_0void main()主函數(shù)bit led;定義位變量ledP3_0=1; led=P3_0;/P3.0作為輸入口,置1讀 P3.0if(led=1)if()led=0P1_0=1; /判斷按鍵是否按下,沒有按下,燈熄滅P1_0=0
13、; /按鍵按下,燈點亮(4)利用單片機控制 4個按鍵和4個發(fā)光二極管,設(shè)計一個 4人搶答器,要求當有某一參賽者首先按 下?lián)尨痖_關(guān)時,相應(yīng)的 LED燈亮,此時搶答器不再接受其他輸入信號,需按復(fù)位按鍵才能重新開始搶答。參考電路如下圖。參考程序如下。/功能:實用4路搶答器程序 #include <reg51.h>sbit P3_0=P3A0; /定義 P3.0 引腳名稱為 P3_0sbit P3_1= P3A1;定義P3.1引腳名稱為P3_1sbit P3_2=P3A2;定義P3.2引腳名稱為P3_2sbit P3_3=P3A3;定義P3.3引腳名稱為P3_3void main()/主函
14、數(shù)bit flag; 11定義位變量flagwhile(!flag)if(! P3_0)P1=0xfe;flag=1;else if(! P3_1)P1=0xfd;flag=1;else if(! P3_2)P1=0xfb;flag=1;else if(! P3_3)P1=0xf7;flag=1;while(flag);3.1單項選擇題(1) C(2) A (3) A (4) D ( 5) D(6)習題3D ( 7) A ( 8) B ( 9) C ( 10) A(11) void delay (unsigned int i)、delay、delay3.2 填空題(1) main( 2) sb
15、it FLAG=P3人1;( 3)sfr(4)順序、選擇和循環(huán)(5)表達式和分號(6) if、switch(7) do-while語句、while語句 (8)無限次(9) 10000( 10) unsigned char(11)指定該變量在51單片機硬件系統(tǒng)中所使用的存儲區(qū)域,并在編譯時準確的定位。(12) '0'3.3上機操作題(1)感應(yīng)燈控制系統(tǒng)設(shè)計。實現(xiàn)當照明燈感應(yīng)到有人接近時自動開燈,當人離開后自動關(guān)燈的功能。提示:采用熱釋電紅外傳感器模塊和發(fā)光二極管模擬電燈(2) 自動滑動門開關(guān)控制系統(tǒng)設(shè)計。實現(xiàn)當滑動玻璃門感應(yīng)到有人接近時自動開門,當人離開后自動關(guān)門 的功能。提示:
16、采用熱釋電紅外傳感器模塊和電機模擬自動開關(guān)門習題44.1單項選擇題(1) C(2)(3)C(4) B( 5) B ( 6) D ( 7) B(8) C (9)4.2填空題(1) ledk(10) D(11) CdelayO;(2),0'(3)程序存儲器的圖4.1中,如果直接將共陽極數(shù)碼管換成共陰極數(shù)碼管,能否正常顯示?為什么?應(yīng)采取4.3在任務(wù)10什么措施?答:不能正常顯示。因為共陽極數(shù)碼管和共陰極數(shù)碼管的顯示碼不同,二者是反相關(guān)系。修改程序,或者 將顯示碼數(shù)組disp中的顯示碼換成共陰極顯示碼,或者在程序中增加取反操作即可。4.4七段LED靜態(tài)顯示和動態(tài)顯示在硬件連接上分別具有什么特
17、點,實際設(shè)計時應(yīng)如何選擇使用?答:靜態(tài)顯示是指使用數(shù)碼管顯示字符時,數(shù)碼管的公共端恒定接地(共陰極)或+5V電源(共陽極)。將每個數(shù)碼管的8個段控制引腳分別與單片機的一個8位I/O端口相連。只要I/O端口有顯示字型碼輸出,數(shù)碼管就顯示給定字符,并保持不變,直到I/O端口輸出新的段碼。數(shù)碼管動態(tài)顯示電路通常是將所有數(shù)碼管的8個顯示段分別并聯(lián)起來,僅用一個并行I/O端口控制,稱為“段選端”。各位數(shù)碼管的公共端,稱為“位選端”,由另一個I/O端口控制。實際應(yīng)用時,當顯示位數(shù)少于2位時,可以采用靜態(tài)顯示方式;當顯示位數(shù)較多時,建議采用動態(tài)顯示方式。4.5 LED大屏幕顯示一次能點亮多少行?顯示的原理是
18、怎樣的?答:LED大屏幕顯示一次能點亮 1行,采用逐行點亮的方式。顯示原理:先給第1行送高電平(行高電平有效),同時給8列送該行顯示碼(列低電平有效);然后 給第2行送高電平,同時給 8列送顯示碼,最后給第 8行送高電平,同時給 8列顯示碼。每行點亮延 時時間為約1 ms,第8行結(jié)束后再從第1行開始循環(huán)顯示。利用視覺駐留現(xiàn)象,人們看到的就是一個穩(wěn)定 的字符。4.6機械式按鍵組成的鍵盤,應(yīng)如何消除按鍵抖動?答:按鍵的機械抖動可采用硬件電路來消除,也可以采用軟件方法進行去抖。軟件去抖編程思路:在檢測到有鍵按下時,先執(zhí)行10 ms左右的延時程序,然后再重新檢測該鍵是否仍然按下,以確認該鍵按下不是因
19、抖動引起的。同理,在檢測到該鍵釋放時,也采用先延時再判斷的方法消除抖動的影響。4.7獨立式按鍵和矩陣式按鍵分別具有什么特點?適用于什么場合?答:在單片機應(yīng)用系統(tǒng)中,如果系統(tǒng)需要按鍵數(shù)量較少,一般采用獨立式按鍵接口,每個按鍵單獨占用一根I/O端口線,按鍵的工作不會影響其他I/O端口線的狀態(tài),獨立式按鍵的電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O端口線,因此,在按鍵較多時,I/O端口線浪費較大,不宜采用。為了節(jié)約單片機硬件接口資源,當系統(tǒng)需要按鍵數(shù)量較多時,一般采用矩陣鍵盤接口方式。由線和4根列線組成,例如:P0.0P0.3控制行線,且行線通過上拉電阻接到+ 5V電源上,構(gòu)成了一個4
20、根行P2.0P2.3控制列線,按鍵位于行、列線的交叉點上,4X4 (16個按鍵)的矩陣式鍵盤。5.1單項選擇題(1)C(10) A(2) A( 3) D ( 4) A(11) C (12) C(13) C(5)A(14)D(6) B ( 7) A(8) A ( 9)5.2填空題(1)TO、T1、方式寄存器TMOD和控制寄存器TCON(2)GATE=0(3)(5)(6)(4 )設(shè)置定時器的工作方式控制定時器的啟動、停止、標識定時器的溢出和中斷情況 中斷標志寄存器0x50TCON、串行口控制寄存器SCON、中斷允許控制寄存器IE和中斷優(yōu)先級控制寄存器IP(7)寄存器IP中斷標志寄存器TCON和串行
21、口控制寄存器SCON、中斷允許控制寄存器IE和中斷優(yōu)先級控制(8)電平觸發(fā)方式(9)軟件方法、硬件方法、硬軟結(jié)合(10) 05.3問答題(1)機器周期1計數(shù)的初值就是計數(shù)值。計算初值時,增1計數(shù)的初值需要用最大計數(shù)值(模值)減去計數(shù)值;減(4)當定時/計數(shù)器在工作方式1下,晶振頻率為 6 MHz,請計算最短定時時間和最長定時時間各 是多少?答:工作方式1的計數(shù)模值是 65536,機器周期2us,所以最短定時時間為2us,最長定時時間為: 2us*65536=130ms。(5)51單片機定時/計數(shù)器四種工作方式的特點有哪些?如何進行選擇和設(shè)定?答:工作方式0是13位定時計數(shù)器,工作方式 1是16
22、位定時計數(shù)器,工作方式 2是初值自動重載的8位定時計數(shù)器,工作方式 3下只有T0可以設(shè)置為工作方式 3,T1設(shè)置為工作方式3后不工作。 可根據(jù)應(yīng)用場合和定時時間來確定工作方式,在TMOD寄存器中設(shè)定。(6)什么叫中斷?中斷有什么特點?答:中斷是指通過硬件來改變 CPU的運行方向。計算機在執(zhí)行程序的過程中,外部設(shè)備向CPU發(fā)出中斷請求信號,要求CPU暫時中斷當前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再繼 續(xù)執(zhí)行原來被中斷的程序。這種程序在執(zhí)行過程中由于外界的原因而被中間打斷的情況稱為“中斷”。中斷特點:同步工作、實時處理、異常處理等。(7)51單片機有哪幾個中斷源?如何設(shè)定它
23、們的優(yōu)先級?答:中斷源有5個,分別為外部中斷 0請求INT0、外部中斷1請求INtT、T0溢出中斷請求TF0、T1溢出 中斷請求TF1和串行口中斷請求 RI或TI。51單片機有兩個中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。每個中斷源都可以通過設(shè)置中斷優(yōu)先級寄存器IP確定為高優(yōu)先級中斷或低優(yōu)先級中斷,實現(xiàn)二級嵌套。同一優(yōu)先級別的中斷源可能不止一個,因此,也需要進行優(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ā)方
24、式和下降沿觸發(fā)方式。由TCON中的IT位設(shè)定,例如:當IT1 = 0時,外部中斷1控制為電平觸發(fā)方式;當IT1 = 1時,外部中斷1控制為邊沿(下降沿)觸 發(fā)方式。(9)中斷函數(shù)的定義形式是怎樣的?答:C51編譯器支持在C源程序中直接以函數(shù)形式編寫中斷服務(wù)程序。中斷函數(shù)的定義形式如下:void 函數(shù)名()interru ptn其中n為中斷類型號,C51編譯器允許031個中斷,n的取值范圍為031。5.4 操作題(1 )設(shè)計時間間隔為1s的流水燈控制程序。 參考程序如下:/功能:間隔顯示時間為1秒的流水燈程序#include "REG51.H"/包含頭文件REG51.H定義了
25、 MCS-5單片機的特殊功能寄存器/函數(shù)名:delayls函數(shù)功能:用T1工作在方式1下的1秒延時函數(shù),采用查詢方式實現(xiàn) 形式參數(shù):無返回值:無void delay1s()unsigned char i;for(i=0;i<0x14;i+)/TH1=0x3c;設(shè)置20次循環(huán)次數(shù)/設(shè)置定時器初值為3CB0HTL1=0xb0;TR1=1;/啟動T1while(!TF1);/TF1=0;查詢計數(shù)是否溢出,即定時 50ms時間到,TF1=1/50ms定時時間到,將T1溢出標志位TF1清零void main()/主函數(shù)unsigned char i,w;TMOD=0x10;/設(shè)置T1為工作方式1w
26、hile(1)w=0x01;/顯示碼初值為01Hfor(i=0;iv8;i+)P1=w;/ww<<=1;/取反后送P1 口,點亮相應(yīng)LED丁 點亮燈的位置移動delay1s();/調(diào)用1秒延時函數(shù)(2)用單片機控制時間間隔為1 s。個LED發(fā)光二極管,要求 8個發(fā)光二極管按照 BCD碼格式循環(huán)顯示 0059,提示:45,其BCD碼形BCD (Binary Coded Decimal )碼是用二進制數(shù)形式表示十進制數(shù),例如十進制數(shù) 式為0x45。BCD碼只是一種表示形式,與其數(shù)值沒有關(guān)系。BCD碼用4位二進制數(shù)表示一位十進制數(shù),這4位二進制數(shù)的權(quán)為8421,所以BCD碼又稱為8421
27、碼。用4位二進制數(shù)表示一個十進制數(shù),例如十進制數(shù)56、87和143的BCD碼表示形式如下:0101 0110(56)1000 0111(87)0001 0100 0011(143)答:參考程序如下:/功能:采用BCD碼格式顯示的059簡易秒表程序#include <reg51.h> void main()void delay1s() /1秒延時函數(shù),參見任務(wù)7程序ex4_1.cunsigned char i, t;TMOD=0x10;/置T1為工作方式1while(1)for(i=0;iv60;i+)t=(i/10)vv4)|(i%10);/將i轉(zhuǎn)換為BCD碼P1=t;/計數(shù)值取反
28、后送P1 口顯示delay1s();/調(diào)用1秒延時函數(shù)(3)可控霓虹燈設(shè)計。系統(tǒng)包括 的顯示方式。要求正常情況下燈同時亮滅一次,時間間隔為8個發(fā)光二極管,連接在 P3.2引腳的一個按鍵,通過按鍵改變霓虹燈8個霓虹燈依次順序點亮,循環(huán)顯示,時間間隔為1 S。按鍵按下后8個霓虹0.5S。(按鍵動作采用外部中斷 0實現(xiàn))。答:參考程序如下:/功能:可控信號燈程序#include <reg51.h>函數(shù)名:delay0_5s函數(shù)功能:用T0的方式1編制0.5秒延時程序,假定系統(tǒng)采用 12MHz晶振,定時器1、工作方式1定時50ms,再循環(huán)10次即可定時到0.5秒/形式參數(shù):無返回值:無vo
29、id delay0_5s()unsigned char i;for(i=0;i<0x0a;i+)TH0=0x3c;TL0=0xb0;/設(shè)置10次循環(huán)次數(shù)/設(shè)置定時器初值TR0=1;/啟動T0while(!TF0);/查詢計數(shù)是否溢出,即定時 50ms時間到,TF0=0TF0=0;/ 50ms定時時間到,將定時器溢出標志位TF0清零/函數(shù)名:delay_t函數(shù)功能:實現(xiàn)0.5秒128秒延時/形式參數(shù):unsigned char t;延時時間為0.5秒X t/返回值:無void delay_t(unsigned char t)unsigned char i;for(i=0;i<t;i+
30、)delay0_5s();/函數(shù)名:int 0/函數(shù)功能:外部中斷 0中斷函數(shù),當CPJ響應(yīng)外部中斷0的中斷請求時,自動執(zhí)行該 函數(shù),實現(xiàn)八個信號燈閃爍/形式參數(shù):無返回值:無void int_0() interru pt 0 /外部中斷0的中斷號為0P1=0x00;/熄滅八個信號燈delay0_5s();/調(diào)用0.5秒延時函數(shù)P1=0xff;/點亮八個信號燈delay0_5s();/調(diào)用0.5秒延時函數(shù)void main()/主函數(shù)unsigned char i,w;EA=1;/打開中斷總允許位EX0=1;/打開外部中斷0允許位IT0=1;TMOD=0x01;/設(shè)置外部中斷為邊沿(下降沿)觸
31、發(fā)方式 設(shè)置T0為工作方式1while(1)w=0x01;/顯示碼初值為01Hfor(i=0;i<8;i+)P1=w;/ w取反后送P1 口,點亮相應(yīng)LED丁w<<=1;/點亮燈的位置移動delay_t(2);/調(diào)用延時函數(shù)delay_t(),實際參數(shù)為2,延時1秒6.1單項選擇題(1)A(9)C(2) B(3)D(10) A (11)(4)CC ( 12)(5)B(6) C ( 7)D( 13)A6.2問答題B (8)C(1)答:什么是串行異步通信?有哪幾種幀格式?在異步通信中,數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一 幀數(shù)據(jù)是低位在前,高
32、位在后,通過傳輸線由接收端一幀一幀地接收。發(fā)送端和接收端分別使用各自獨立 的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘彼此獨立,互不同步。在串行通信中,兩相鄰字符幀之間可以沒有空閑位,也可以有若干空閑位,這由用戶來決定。(2)定時器T1做串行口波特率發(fā)生器時,為什么采用工作方式2?答:實際上,當定時器T1做波特率發(fā)生器使用時,通常是工作在定時器的模式2下,即作為一個自動重裝載的8位定時器,TL1做計數(shù)用,自動重裝載的值在 TH1內(nèi)。7.3 編程題(1 )利用串行口設(shè)計 4位靜態(tài)LED顯示,畫出電路圖并編寫程序,要求4位LED每隔1 s交替顯示“ 1234 ”和“ 5678”。參考電路在教材第 20
33、7頁圖6.16的基礎(chǔ)之上再添加兩片 74LS164和兩個數(shù)碼管即可。參考程序如下:#include "reg51.h" /包含頭文件reg51.hunsigned char da=0xF9,0xA4,0xB0,0x99; /,定義51單片機的專用寄存器定義14的共陽極字型顯示碼unsigned char da1=0x92,0x82,0x0F8,0x80; /定義58的共陽極字型void delay1s()unsigned char i;for(i=0;iv0x20;i+)/設(shè)置20次循環(huán)次數(shù)/設(shè)置定時器初值TH0=0x3c;TL0=0xb0;TR0=1;/啟動T0while
34、(!TF0);/TF0=0;查詢計數(shù)是否溢出,即定時 50ms時間到,TF0=0/ 50ms定時時間到,將定時器溢出標志位TF0清零main()unsigned char i;/P 1.0置1,允許串行移位P1=0xff;SC0N=0x00;/設(shè)串行口方式0TMOD=0x01;/設(shè)置T0為工作方式1while(1)for (i=0;i<4;i+)SBUF=dai;TI=0;/送顯示數(shù)據(jù)1234while(!TI);/等待發(fā)送完畢delay1s();for (i=0;i<4;i+)SBUF=da1i;/送顯示數(shù)據(jù)5678TI=0;while(!TI);/等待發(fā)送完畢7.2填空題1 s
35、發(fā)送一次“ A”字符,乙機接收到以后,(2)編程實現(xiàn)甲乙兩個單片機進行點對點通信,甲機每隔 在LCD上能夠顯示出來。參考電路圖略。參考程序如下:甲機發(fā)送程序:void Stop( void);/停止函數(shù)/功能:甲機發(fā)送數(shù)據(jù)程序,采用查詢方式實現(xiàn)包含頭文件reg51.h,定義51單片機的專用寄存器/主函數(shù)#include vreg51.h>/void main()unsigned char i;TMOD=0x20;/定時器T1工作于方式2TL1=0xf4;/波特率為2400bpsTH1=0xf4;TR1=1;while(1)SCON=0x40;/定義串行口工作于方式1SBUF=0x41;/
36、while(TI=0);/發(fā)送A查詢等待發(fā)送是否完成TI=0;/發(fā)送完成,TI由軟件清0delay1s(); /1秒延時函數(shù)參見7.3(1)題乙機接收程序略。(3)編寫一個實用的串行通信測試軟件,其功能為:將PC機鍵盤的輸入數(shù)據(jù)發(fā)送給單片機,單片機收到PC機發(fā)來的數(shù)據(jù)后,回送同一數(shù)據(jù)給PC機,并在屏幕上顯示出來。只要屏幕上顯示的字符與所鍵入的字符相同,說明二者之間的通信正常。通信協(xié)議:第1字節(jié),最高位(MSB )為1,為第1字節(jié)標志;第2字節(jié),MSB為0,為非第1字節(jié)標志,依次類推,最后1字節(jié)為前幾字節(jié)后7位的異或校驗和。單片機串行口工作在方式 1,晶振為11.0592 MHz,波特率為480
37、0 bps。通信程序略。習題 77.1 單項選擇題(1)D( 2)A( 3)C ( 4)D( 5)A(1)(2)模擬,數(shù)字,數(shù)字,模擬 分辨率、建立時間7.3問答題(1)答:判斷A/D轉(zhuǎn)換是否結(jié)束,一般可采用幾種方式?每種方式有何特點?查詢方式,CPU通過查詢轉(zhuǎn)換結(jié)束標志位確認轉(zhuǎn)換結(jié)束后, 再執(zhí)行后面的操作,占用 中斷方式,轉(zhuǎn)換結(jié)束后向 CPU申請中斷,CPU在中斷服務(wù)函數(shù)中讀取轉(zhuǎn)換值,不占用間;延時方式,如果知道 A/D轉(zhuǎn)換時間,可以在轉(zhuǎn)換開始后直接延時超過該時間的時間,占用 時間。CPU時間;CPU時CPU7.4應(yīng)用題(1 )設(shè)計一個鋸齒波發(fā)生器系統(tǒng)。提示:程序ex7_3.c中修改數(shù)組si
38、n據(jù)即可。統(tǒng)。(2)EEPROM芯片AT24C02采用的也是I2C總線接口,請設(shè)計 51單片機擴展EEPROM的軟硬件系提示:請查閱 AT24C02資料,參考電路(AT24C01)/功能:EEPRO讀寫程序,從AT24C01的4個連續(xù)存儲單元中讀出4個字節(jié)的數(shù)據(jù),然后將4 個新的數(shù)值寫入AT24C01的對應(yīng)4個存儲單元中,再重新讀出。/#include <reg51.h>#include <intrins.h>/*/_nop_()函數(shù)所在的頭文件位定義及預(yù)定義 */#define AddWr 0xa0/器件地址選擇及寫數(shù)據(jù)地址 OxaO#define AddRd 0xa
39、1/器件地址選擇及讀數(shù)據(jù)地址0xa1sbit SDA= P 3人4;/sbit SCL= P 3人3;/串行數(shù)據(jù)輸入/輸出位定義 串行時鐘位定義bit ack_bit;/應(yīng)答標志/*void mDelay(unsigned char ms);函數(shù)聲明 */延時函數(shù)聲明void Start(void);/開始函數(shù)void Ack(void);/應(yīng)答函數(shù)void NoAck(void);/反向應(yīng)答函數(shù)void Shout(unsigned char Data);/串行輸出數(shù)據(jù)函數(shù)unsigned char Shin(void);/串行輸入數(shù)據(jù)函數(shù)void WrByte(unsigned char
40、Data,unsigned char Address,unsigned char Num); /寫字節(jié)函數(shù)void RdRadom(unsigned char Data,unsigned char Address,unsigned char Num); /隨機地址讀函數(shù)/*主函*/void main()unsigned char R1data4= 0,0,0,0;/初始化讀數(shù)據(jù)數(shù)組1為全0unsigned char R2data4= 0,0,0,0;/初始化讀數(shù)據(jù)數(shù)組2為全0unsigned char Wdata4=1,2,3,4;/初始化寫數(shù)據(jù)數(shù)組RdRadom(R1data,4,4);/讀
41、AT24C0中的4個字節(jié)數(shù)據(jù)到讀數(shù)據(jù)數(shù)組1WrByte(Wdata,4,4);/將初始化后的數(shù)值寫入AT24C01mDelay(20);RdRadom(R2data,4,4);/重新讀出寫入的數(shù)據(jù)到讀數(shù)據(jù)數(shù)組2/*寫字節(jié) */函數(shù)名:WrByte函數(shù)功能:向AT24C*器件的指定地址按字節(jié)連續(xù)寫入數(shù)據(jù)/形式參數(shù):待寫入的數(shù)據(jù) Data,起始地址Address,待寫入的字節(jié)數(shù)Num/返回值:返回為0表示操作成功,否則操作有誤void WrByte(unsigned char Data,unsigned char Address,unsigned char Num)unsigned char i;
42、unsigned char *P Data;P Data=Data;for(i=0;i<Num;i+)/連續(xù)寫入Nun個字節(jié)數(shù)據(jù)Start();Shout(AddWr);/發(fā)送啟動信號/發(fā)送寫操作器件地址AddW,0xa0Ack();/接收ACI應(yīng)答Shout(Address+i);/發(fā)送地址Ack();/接收ACI應(yīng)答Shout(*( PData+i);/發(fā)送待寫入的數(shù)據(jù)Ack();/接收ACI應(yīng)答Stop();/發(fā)送停止信號mDelay(20);/ 等待內(nèi)定時寫入周期結(jié)束/*隨機地址讀 */ 函數(shù)名:RdRadom/函數(shù)功能:從AT24C*器件的指定地址按字節(jié)讀入數(shù)據(jù)/形式參數(shù):起始
43、地址 Address,待讀入的字節(jié)數(shù)Num/返回值:讀出的字節(jié)放入 data,如果操作成功返回為0,否則操作有誤 void RdRadom(unsigned char Data,unsigned char Address,unsigned char Num)unsigned char i;unsigned char *P Data;P Data=Data;for(i=O;ivNum;i+)Start();/開始Shout(AddWr);/發(fā)送寫操作器件地址AAck();shout(Address+i);/發(fā)送字節(jié)地址Ack();Start();/開始shout(AddRd);/發(fā)送讀操作器件地
44、址AddRdAck();*(P Data+i)=shin();/調(diào)用讀數(shù)據(jù)函數(shù)SCL=0;NoAck();/反向應(yīng)答Stop();/停止/*開始函*/函數(shù)名:Start/函數(shù)功能:發(fā)送STAR狀態(tài),定義為當形式參數(shù):無SC為高時SDA從高到低/返回值:返回時SCL, SDA為氐SCL=1;_nop_();_nop_();_nop_();_nop_();/升高SCL/保持數(shù)據(jù)建立延遲及周期延遲SDA=0;/降低SDA_nop_();_nop_();_nop_();_nop_();SCL=0;/保持SDA為低,保持時間hold delay/降低SCL/*停止函*/函數(shù)名:Sto P函數(shù)功能:發(fā)送S
45、TOP狀態(tài),定義為當SCL為高時SDA從低變高/形式參數(shù):無void Start(void)SDA=1;/ 升高 SDA/返回值:返回時SCL,SDA為高 void Stop( void)/保持SCI為低及數(shù)據(jù)穩(wěn)定/保持建立延遲/*串行輸出數(shù)據(jù) */函數(shù)名:Shout/函數(shù)功能:串行發(fā)送一個字節(jié)(包括地址和數(shù)據(jù)) 形式參數(shù):待發(fā)送的字節(jié) Data,調(diào)用前SCL 返回值:無給AT24C*器件,高位在前SDA為低,返回時SCL低。void Shout(unsigned char Data)unsigned char BitCounter=8;/設(shè)置位計數(shù)器unsigned char temp;/中
46、間變量控制dotemp=Data;SCL=0;_nop_();_nop_();_nop_();_nop_();/時鐘為低電平保持SCL為低if(te mp&0x80)=0x80) SDA=1;/輸出一位,如果最高位是1,則輸出1到SDAelse SDA=0;/SCL=1;如果最高位是0,則輸出0到SDA時鐘為高電平/temp=Datavv1;/左移一位(咼位在前)SDA=O;_nop_();_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();SDA=1;_nop_();_nop_();_nop_();_nop_();Data=te mp;BitCounter-;while(BitCounter);/傳送下一位SCL=0;/*串行輸入數(shù)據(jù)*/函數(shù)名:Shin/函數(shù)功能:從AT24C*串行讀入一個字節(jié)數(shù)據(jù),高位在前 形式參數(shù):調(diào)用前SCL為低/返回值:返回讀入的字節(jié),返回時 SCL為低unsigned char Shin(void)unsigned char temp=0;unsig
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務(wù)企業(yè)咨詢計劃
- 9 這些是大家的(教學(xué)實錄)-部編版道德與法治二年級上冊
- 9 生活離不開規(guī)則 (教學(xué)實錄)2023-2024學(xué)年統(tǒng)編版道德與法治三年級下冊
- 2024年店鋪股份買賣意向書3篇
- 2024年度綠色包裝材料運輸與回收利用合同2篇
- 2024年實驗室裝修工程及環(huán)保設(shè)施配置合同3篇
- 2024年度貨物進出口代理合同及物流服務(wù)條款3篇
- 2024年夏季空調(diào)養(yǎng)護合同3篇
- 2024至2030年中國注膠機行業(yè)投資前景及策略咨詢研究報告
- 2024年某教育機構(gòu)與某企業(yè)關(guān)于員工培訓(xùn)合作的合同
- 2023-2024學(xué)年四川省成都市金牛區(qū)八年級(上)期末數(shù)學(xué)試卷
- 德邦物流-第三方物流服務(wù)
- 混凝土冬季施工保溫保濕措施
- 心電監(jiān)護技術(shù)
- 2024年華潤電力投資有限公司招聘筆試參考題庫含答案解析
- 壟斷行為的定義與判斷準則
- 模具開發(fā)FMEA失效模式分析
- 聶榮臻將軍:中國人民解放軍的奠基人之一
- 材料化學(xué)專業(yè)大學(xué)生職業(yè)生涯規(guī)劃書
- 乳品加工工(中級)理論考試復(fù)習題庫(含答案)
- 《教材循環(huán)利用》課件
評論
0/150
提交評論