2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)</p><p>  設(shè)計(jì)(論文)題目:__彩燈循環(huán)控制系統(tǒng) </p><p>  專(zhuān) 業(yè):____ </p><p>  班 級(jí):_____ _ _</p><p>  學(xué) 號(hào):___ _____ ____</p

2、><p>  姓 名:_ _ __</p><p>  指導(dǎo)教師: _ _</p><p><b>  目錄</b></p><p><b>  摘要1</b></p><p><b>  第1章

3、緒論2</b></p><p>  1.1 單片機(jī)的簡(jiǎn)介2</p><p>  1.2 單片機(jī)的應(yīng)用領(lǐng)域2</p><p>  1.3 單片機(jī)的發(fā)展趨勢(shì)2</p><p>  第2章 彩燈硬件電路框架設(shè)計(jì)3</p><p>  2.1 彩燈功能描述3</p><p>  

4、2.2 硬件電路設(shè)計(jì)框架3</p><p>  2.3 系統(tǒng)硬件單元電路設(shè)計(jì)及論證4</p><p>  2.3.1 晶振電路4</p><p>  2.3.2 復(fù)位電路4</p><p>  2.3.3 錯(cuò)誤報(bào)警電路4</p><p>  2.3.4 開(kāi)關(guān)電路5</p><p> 

5、 2.3.5 發(fā)光電路5</p><p>  第3章 彩燈系統(tǒng)軟件設(shè)計(jì)6</p><p>  3.1 程序設(shè)計(jì)框圖6</p><p>  3.2 子程序設(shè)計(jì)和功能介紹6</p><p>  3.2.1 延時(shí)程序6</p><p>  3.2.2 初始化函數(shù)7</p><p>  3.

6、2.3 彩燈循環(huán)方式控制程序8</p><p>  3.2.4 中斷服務(wù)程序10</p><p>  第4章 系統(tǒng)調(diào)試13</p><p>  4.1 軟件調(diào)試13</p><p>  4.2 硬件調(diào)試13</p><p>  第5章 畢業(yè)設(shè)計(jì)總結(jié)15</p><p><b&g

7、t;  參考文獻(xiàn)16</b></p><p>  附錄1 彩燈電路總圖及元器件清單17</p><p>  附錄2 彩燈整體程序18</p><p><b>  摘要</b></p><p>  單片機(jī)是一種集成電路芯片,采用超大規(guī)模技術(shù)把具有數(shù)據(jù)處理能力(如算術(shù)運(yùn)算,邏輯運(yùn)算、數(shù)據(jù)傳送、中斷處理)的微

8、處理器(CPU)。隨著單片機(jī)技術(shù)的飛速發(fā)展,各種單片機(jī)蜂擁而至,單片機(jī)技術(shù)已成為一個(gè)國(guó)家現(xiàn)代化科技水平的重要標(biāo)志。單片機(jī)可單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。單片機(jī)控制系統(tǒng)能夠取代以前利用復(fù)雜電子線路或數(shù)字電路構(gòu)成的控制系統(tǒng),可以軟件控制來(lái)實(shí)現(xiàn),并能夠?qū)崿F(xiàn)智能化?,F(xiàn)在單片機(jī)控制范疇無(wú)所不在,例如通信產(chǎn)品、家用電器、智能儀器儀表、過(guò)程控制和專(zhuān)用控制裝置等等,單片機(jī)的應(yīng)用領(lǐng)域越來(lái)越廣泛。本畢業(yè)設(shè)計(jì)的課題是“彩

9、燈循環(huán)控制系統(tǒng)的設(shè)計(jì)”。主要考核我們對(duì)單片機(jī)技術(shù),編程能力等方面的情況。觀察獨(dú)立分析、設(shè)計(jì)單片機(jī)的能力,以及實(shí)際編程技能。</p><p>  關(guān)鍵字: 單片機(jī);彩燈;循環(huán);控制</p><p><b>  第1章 緒論</b></p><p>  1.1 單片機(jī)的簡(jiǎn)介</p><p>  單片機(jī)是單片微型計(jì)算機(jī)的簡(jiǎn)

10、稱(chēng),也就是把微處理器(CPU),隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),只讀程序存儲(chǔ)器(ROM),輸入輸出電路(I/O口),還包括定時(shí)計(jì)數(shù)器,串行通信口(SCI),顯示驅(qū)動(dòng)電路(LCD或LED驅(qū)動(dòng)電路),脈寬調(diào)制電路(PWM),A/D轉(zhuǎn)換器等電路集成到一塊單塊芯片上,構(gòu)成一個(gè)最小然而完善的計(jì)算機(jī)系統(tǒng)。這些電路能在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者事先規(guī)定的任務(wù)。</p><p>  由此來(lái)看,單片機(jī)是可單獨(dú)地完成

11、現(xiàn)代工業(yè)控制所要求的智能化控制系統(tǒng),這是單片機(jī)最大的特征。</p><p>  1.2 單片機(jī)的應(yīng)用領(lǐng)域</p><p>  目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專(zhuān)用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:</p><p>  1.在智能儀器儀表上的應(yīng)用&l

12、t;/p><p>  2.在工業(yè)控制中的應(yīng)用</p><p>  3.在家用電器中的應(yīng)用</p><p>  4.在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用</p><p>  5.單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用</p><p>  1.3 單片機(jī)的發(fā)展趨勢(shì)</p><p>  現(xiàn)在可以說(shuō)單片機(jī)是百花齊放,百家爭(zhēng)

13、鳴的時(shí)期,世界上各大芯片制造公司都推出了自己的單片機(jī),從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供廣闊的天地。縱觀單片機(jī)的發(fā)展過(guò)程,可以預(yù)示單片機(jī)的發(fā)展趨勢(shì),大致有:</p><p>  1.低功耗CMOS化</p><p><b>  2.微型單片化</b></p>&

14、lt;p>  3.主流與多品種共存</p><p>  第2章 彩燈硬件電路框架設(shè)計(jì)</p><p>  2.1 彩燈功能描述</p><p>  本次畢業(yè)設(shè)計(jì)主要完成功能有:</p><p>  (1)當(dāng)按下開(kāi)關(guān)KEY1時(shí),彩燈依次一個(gè)一個(gè)點(diǎn)亮。</p><p>  (2)當(dāng)按下開(kāi)關(guān)KEY2時(shí),彩燈每?jī)蓚€(gè)間隔點(diǎn)

15、亮。</p><p>  (3)當(dāng)按下開(kāi)關(guān)KEY3時(shí),彩燈燈全部閃爍。</p><p>  (4)當(dāng)按下開(kāi)關(guān)(順序)時(shí),以上3種點(diǎn)亮方式依次執(zhí)行一次。</p><p>  (5)當(dāng)按下暫停開(kāi)關(guān)時(shí),保持彩燈當(dāng)前狀態(tài),松開(kāi)開(kāi)關(guān)時(shí),繼續(xù)運(yùn)行。</p><p>  (6)當(dāng)按下中斷開(kāi)關(guān)時(shí),說(shuō)明彩燈系統(tǒng)出錯(cuò)了,所有紅燈亮,喇叭報(bào)警。(通過(guò)中斷假設(shè)出故障

16、)</p><p>  (7)當(dāng)按下復(fù)位開(kāi)關(guān)時(shí),彩燈系統(tǒng)恢復(fù)到最初狀態(tài)。</p><p>  2.2 硬件電路設(shè)計(jì)框架</p><p>  根據(jù)設(shè)計(jì)要求,彩燈硬件電路框圖設(shè)計(jì)如圖2-1所示:</p><p>  圖2-1 彩燈設(shè)計(jì)框圖</p><p>  從框圖中可以看出本次畢業(yè)設(shè)計(jì)單元電路包括了由32只不同顏色組成的

17、發(fā)光電路、12MHz晶振組成的晶振電路、復(fù)位電路、錯(cuò)誤報(bào)警電路、開(kāi)關(guān)電路。</p><p>  2.3 系統(tǒng)硬件單元電路設(shè)計(jì)及論證</p><p>  2.3.1 晶振電路</p><p>  單片機(jī)工作所需要的時(shí)鐘信號(hào)有兩種產(chǎn)生方式,即內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。圖1是內(nèi)部時(shí)鐘方式,改圖中電容C1和C2取33PF,晶體的振蕩頻率取12MHz,晶體振蕩頻率高,則系統(tǒng)

18、的時(shí)鐘頻率也高,單片機(jī)運(yùn)行速度也就快。其實(shí)際連接如圖2-2所示:</p><p><b>  圖2-2 晶振電路</b></p><p>  2.3.2 復(fù)位電路</p><p>  復(fù)位電路如圖2-3所示。當(dāng)單片機(jī)一上電,立即復(fù)位。電容C和電阻實(shí)現(xiàn)上電自動(dòng)復(fù)位。復(fù)位也是使單片機(jī)推出低功耗工作方式而進(jìn)入正常狀態(tài)的一種操作。</p>

19、<p><b>  圖2-3 復(fù)位電路</b></p><p>  2.3.3 錯(cuò)誤報(bào)警電路</p><p>  錯(cuò)誤報(bào)警電路(如圖2-4)的設(shè)計(jì)僅僅由一個(gè)發(fā)聲裝置構(gòu)成,其主要的作用是當(dāng)系統(tǒng)發(fā)出錯(cuò)誤中斷信號(hào)時(shí),向p0.0口提供一個(gè)高電平,報(bào)警電路進(jìn)行錯(cuò)誤報(bào)警。</p><p>  圖2-4 錯(cuò)誤報(bào)警電路</p><

20、;p>  2.3.4 開(kāi)關(guān)電路</p><p>  開(kāi)關(guān)電路(如圖2-5)的設(shè)計(jì)由6個(gè)獨(dú)立的開(kāi)關(guān)按鈕組成,它們分別提供6個(gè)不同的中斷信號(hào),使彩燈完成不同的閃爍效果。 </p><p><b>  圖2-5 開(kāi)關(guān)電路</b></p><p>  2.3.5 發(fā)光電路</p><p>  紅、黃、綠、藍(lán)等

21、色彩的發(fā)光二極管32只,各接一個(gè)限流電阻便設(shè)計(jì)出如圖2-6所示的彩燈發(fā)光電路。</p><p>  圖2-6 部分彩燈連接原理圖</p><p>  第3章 彩燈系統(tǒng)軟件設(shè)計(jì)</p><p>  3.1 程序設(shè)計(jì)框圖</p><p>  本次程序設(shè)計(jì)采用的是C語(yǔ)言程序設(shè)計(jì),其設(shè)計(jì)框圖如圖3-1所示:</p><p> 

22、 圖3-1 程序設(shè)計(jì)框圖</p><p>  3.2 子程序設(shè)計(jì)和功能介紹</p><p>  3.2.1 延時(shí)程序</p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b><

23、;/p><p>  for(x=z;x>0;x--)</p><p>  for(y=120;y>0;y--);</p><p><b>  }</b></p><p>  程序中定義了一個(gè)返回值為空的delay函數(shù),里含一個(gè)形參——無(wú)符號(hào)整型變量z,還定義了無(wú)符號(hào)整型變量x、y,通過(guò)一個(gè)二重for循環(huán),完成多次

24、空操作,從而實(shí)現(xiàn)延時(shí)功能。</p><p>  3.2.2 初始化函數(shù)</p><p>  void init()//定義一個(gè)返回值為空的init函數(shù)</p><p><b>  {</b></p><p>  EA=1;//開(kāi)放所有中斷</p><p>  EX0=1;//允許外部中斷0中斷&

25、lt;/p><p>  IT0=1;//外部中斷0的中斷觸發(fā)方式控制位置1,設(shè)置外部中0為邊沿觸發(fā)方式</p><p>  ET0=1;//允許T0中斷(定時(shí)器/計(jì)數(shù)器T0的輸出中斷允許位)</p><p>  TR0=0;//停止定時(shí)器/計(jì)數(shù)器0</p><p>  TH0=(65536-30000)/256;</p><p

26、>  TL0=(65536-30000)%256;</p><p>  EX1=1;//允許外部中斷1中斷</p><p>  IT1=0;//將外部中斷1的中斷觸發(fā)方式控制位置0,即設(shè)置外部中斷1為電平觸發(fā)方式</p><p>  PX1=1;//將外部中斷1中斷優(yōu)先級(jí)控制位置1</p><p>  ET1=1;//允許T1中斷<

27、;/p><p>  TR1=0;//停止定時(shí)器/計(jì)數(shù)器1</p><p>  TH1=(65536-50000)/256;</p><p>  TL1=(65536-50000)%256;</p><p><b>  P1=0xFF;</b></p><p>  P2=0XFF;//將P1口和P2口置

28、1,在P1口和P2口引腳時(shí),應(yīng)先向鎖存器寫(xiě)"1"</p><p>  temp1=0x7F;</p><p>  temp2=0x7F;</p><p><b>  cnt=8;</b></p><p><b>  aa=0;</b></p><p>&l

29、t;b>  bb=0;</b></p><p>  key_int1=1;</p><p><b>  key1=1;</b></p><p><b>  key2=1;</b></p><p><b>  key3=1;</b></p><

30、;p><b>  key4=1;</b></p><p>  temp_int1=key_int1;</p><p>  temp_key1=key1;</p><p>  temp_key2=key2;</p><p>  temp_key3=key3;</p><p>  temp_ke

31、y4=key4;</p><p><b>  beep=1;</b></p><p><b>  flag=0;</b></p><p>  //分別對(duì)temp1、temp2、cnt、aa、bb、key_int1、key1、key2、key3、key4、temp_int1、temp_key1、temp_key2、temp_

32、key3、temp_key4、beep、flag賦值</p><p><b>  }</b></p><p>  該函數(shù)名為init,該段程序主要是對(duì)中斷優(yōu)先級(jí)、一些中斷控制位、某些變量等進(jìn)行初始化賦值。</p><p>  3.2.3 彩燈循環(huán)方式控制程序</p><p><b>  1.循環(huán)方式1</

33、b></p><p>  void FUN1()</p><p><b>  {</b></p><p>  cnt=8; </p><p>  temp1=0X7F;</p><p>  temp2=0X7F; //對(duì)cnt、temp1、temp2進(jìn)行賦值</p>

34、<p>  while(cnt!=0)//while循環(huán),若cnt不等于0循環(huán)繼續(xù),否則,跳出循環(huán)</p><p><b>  {</b></p><p>  cnt--;//變量cnt自減1</p><p>  temp1=_crol_(temp1,1);</p><p>  delay(500);//調(diào)用延

35、時(shí)子函數(shù)</p><p>  P2=0xFF; //對(duì)p2口置1</p><p>  P1=temp1; //將temp1的值賦給p1口</p><p>  temp2=_crol_(temp2,1); //將temp2右移1位 </p><p>  delay(500);//調(diào)用延時(shí)子函數(shù)</p><p>

36、  P1=0xFF; //對(duì)p1口置1 </p><p>  P2=temp2; //將temp2的值賦給temp2</p><p><b>  }</b></p><p>  P1=0x0ff; </p><p>  P2=0x0ff; //分別對(duì)P1、p2口置1</p&

37、gt;<p><b>  }</b></p><p>  設(shè)計(jì)的此段程序的功能是實(shí)現(xiàn)依次一個(gè)一個(gè)的被點(diǎn)亮。</p><p><b>  2.循環(huán)方式2</b></p><p>  void FUN2()</p><p><b>  {</b></p>

38、<p>  temp1=0xAA;</p><p>  temp2=0xAA; //將二進(jìn)制數(shù)10101010賦給temp1、temp2</p><p>  TR0=1; //啟動(dòng)定時(shí)器/計(jì)數(shù)器0</p><p>  while(TR0==1);//while循環(huán),當(dāng)TR0等于1時(shí),進(jìn)行循環(huán)</p><p><

39、b>  P1=0x0ff;</b></p><p>  P2=0x0ff; //對(duì)p1口和p2口置1</p><p><b>  }</b></p><p>  設(shè)計(jì)此段程序?qū)崿F(xiàn)的功能是每隔兩個(gè)間隔點(diǎn)亮一個(gè)燈。</p><p><b>  3.循環(huán)方式3</b></p&

40、gt;<p>  void FUN3()</p><p><b>  {</b></p><p>  temp1=0x0;</p><p>  temp2=0x0; //將0賦給temp1、temp2,驅(qū)動(dòng)彩燈發(fā)光</p><p>  TR1=1; //啟動(dòng)定時(shí)器/計(jì)數(shù)器1</p>

41、<p>  while(TR1==1); //while循環(huán),若TR1等于1,進(jìn)行循環(huán)</p><p><b>  P1=0x0ff;</b></p><p>  P2=0x0ff; //對(duì)p1口和p2口置1</p><p><b>  }</b></p><p>  設(shè)

42、計(jì)此段程序是為了實(shí)現(xiàn)彩燈的全部閃爍。</p><p>  3.2.4 中斷服務(wù)程序</p><p>  1.外部中斷0服務(wù)程序</p><p>  void _EX0_() interrupt 0</p><p><b>  { </b></p><p>  while(1) //wh

43、ile循環(huán),條件真即為1,便循環(huán)</p><p><b>  {</b></p><p><b>  P1=0x77;</b></p><p>  P2=0xee; //對(duì)p1口和p2口賦值</p><p>  beep=!beep;//對(duì)beep的值進(jìn)行取反</p><p>

44、;  delay(100);//調(diào)用延時(shí)函數(shù)</p><p><b>  }</b></p><p><b>  }</b></p><p>  此段程序定義了一個(gè)返回值為空的_EX0_函數(shù),關(guān)鍵字interrupt后面的0表示終端號(hào),即表示的外部中斷0,中斷向量地址為0003H。</p><p>

45、  2.定時(shí)器0中斷服務(wù)程序</p><p>  void _ET0_() interrupt 1</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256;//將計(jì)算出的值賦給定時(shí)器0的高8位</p><p>  TL0=(65536-50000)%256;//將計(jì)算出的

46、值賦給定時(shí)器0的低8位</p><p>  aa++; //aa的值自加1</p><p>  if(aa!=20)//判斷aa的值是否等于20,若不得,則執(zhí)行循環(huán)</p><p><b>  {</b></p><p><b>  P1=temp1;</b></p><p>

47、;  P2=temp2;//將temp1、temp2的狀態(tài)值賦給temp1、temp2</p><p>  temp1=_cror_(temp1,1);</p><p>  temp2=_cror_(temp2,1);//temp1、temp2右移1位</p><p>  delay(500);//調(diào)用延時(shí)函數(shù)</p><p><b&

48、gt;  }</b></p><p>  else //當(dāng)aa的值等于20時(shí)</p><p><b>  {</b></p><p>  aa=0;//將0賦給aa</p><p>  TR0=0;//停止定時(shí)器/計(jì)數(shù)器0</p><p>  TH0=(65536-50000)/

49、256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  }</b></p><p><b>  }</b></p><p>  此段程序定義了一個(gè)返回值為空的_ET0_函數(shù),關(guān)鍵字interrupt后面的1表示終端號(hào),即表示定時(shí)器0,中斷向量地址是00

50、0B H。</p><p>  3.外部中斷1服務(wù)程序</p><p>  void _EX1_() interrupt 2</p><p><b>  {</b></p><p><b>  PX1=0;</b></p><p>  PX0=1;//設(shè)置外部中斷1、外部中斷

51、0的優(yōu)先級(jí)</p><p>  temp_int1=key_int1;//將key_int1的值賦給temp_int1</p><p>  while(temp_int1==0)//while循環(huán),若temp_int1的值等于0,循環(huán)</p><p><b>  {</b></p><p>  temp_int1=key

52、_int1;//將key_int1的值賦給temp_int1</p><p><b>  }</b></p><p><b>  PX0=0;</b></p><p>  PX1=1;//設(shè)置外部中斷0、外部中斷1的優(yōu)先級(jí)</p><p><b>  }</b></p&g

53、t;<p>  此段程序定義了一個(gè)返回值為空的_EX1_函數(shù),關(guān)鍵字interrupt后面的2表示終端號(hào),即表示外部中斷1,其中斷向量地址為0013H。</p><p>  4.定時(shí)器1中斷服務(wù)程序</p><p>  void _ET1_() interrupt 3</p><p><b>  {</b></p>

54、<p>  TH1=(65536-50000)/256;</p><p>  TL1=(65536-50000)%256;</p><p><b>  bb++;</b></p><p>  if(bb!=20)</p><p><b>  {</b></p><p&g

55、t;<b>  P1=temp1;</b></p><p><b>  P2=temp2;</b></p><p>  temp1=~temp1;</p><p>  temp2=~temp2;</p><p>  delay(500);</p><p><b> 

56、 }</b></p><p><b>  else </b></p><p><b>  {</b></p><p><b>  bb=0;</b></p><p><b>  TR1=0;</b></p><p>  

57、TH1=(65536-50000)/256;</p><p>  TL1=(65536-50000)%256;</p><p><b>  }</b></p><p><b>  }</b></p><p>  此段程序定義了一個(gè)返回值為空的_ET1_函數(shù),關(guān)鍵字interrupt后面的3表示終端

58、號(hào),即表示定時(shí)器1,其中斷向量地址為001BH。</p><p><b>  第4章 系統(tǒng)調(diào)試</b></p><p>  單片機(jī)硬件和軟件調(diào)試的工具分別為:protues 和Keil C51調(diào)試軟件。</p><p><b>  4.1 軟件調(diào)試</b></p><p>  單片機(jī)軟件調(diào)試主要是調(diào)

59、試本次課程設(shè)計(jì)的主程序。其調(diào)試過(guò)程如下:</p><p> ?。?)新建一個(gè)工程。單擊Project菜單,在彈出的下拉菜單中選New Project。</p><p> ?。?)然后選擇你要保存的路徑,輸入工程文件的名字,保存。</p><p> ?。?)新建一個(gè)工程后彈出一個(gè)對(duì)話框,根據(jù)你的需要選擇你使用的單片機(jī)型號(hào)。然后點(diǎn)擊確定。</p><

60、p> ?。?)單擊“File”,選擇“New”,新建文件并在其中輸入程序代碼,然后保存為c語(yǔ)言文件。</p><p> ?。?)回到編輯界面后,單擊“Target 1”前面的“+”號(hào),然后在“Source Group 1”單擊右鍵選擇“Add File To Group ‘Source Group 1’”,選中Test.c文件。</p><p> ?。?)單擊“Project”菜單,

61、選中“Built Target”,完成程序的編譯,在工程文件夾中找到*.hex文件即可。</p><p><b>  4.2 硬件調(diào)試</b></p><p>  單片機(jī)硬件調(diào)試是檢測(cè)在設(shè)計(jì)電路時(shí),電路中存在的一些缺陷,故硬件調(diào)試是必不可少的,其步驟大致如下:</p><p> ?。?)打開(kāi)軟件Protues,將設(shè)計(jì)好的單片機(jī)硬件電路打開(kāi)。&l

62、t;/p><p> ?。?)在確定電路已經(jīng)連接完成后,雙擊AT89C51單片機(jī)加入*.hex文件。</p><p>  (3)單擊軟件最左下方的Play按鈕。</p><p>  若無(wú)異常,當(dāng)按下某一按鍵時(shí),能完成以下功能時(shí),則表示設(shè)計(jì)調(diào)試通過(guò)。</p><p> ?。?)當(dāng)按下開(kāi)關(guān)KEY1時(shí),彩燈依次一個(gè)一個(gè)點(diǎn)亮。</p><

63、;p>  (2)當(dāng)按下開(kāi)關(guān)KEY2時(shí),彩燈每?jī)蓚€(gè)間隔點(diǎn)亮。</p><p> ?。?)當(dāng)按下開(kāi)關(guān)KEY3時(shí),彩燈燈全部閃爍。</p><p> ?。?)當(dāng)按下開(kāi)關(guān)(順序)時(shí),以上3種點(diǎn)亮方式依次執(zhí)行一次。</p><p> ?。?)當(dāng)按下暫停開(kāi)關(guān)時(shí),保持彩燈當(dāng)前狀態(tài),松開(kāi)開(kāi)關(guān)時(shí),繼續(xù)運(yùn)行。</p><p> ?。?)當(dāng)按下中斷開(kāi)關(guān)時(shí),說(shuō)

64、明彩燈系統(tǒng)出錯(cuò)了,所有紅燈亮,喇叭報(bào)警。(通過(guò)中斷假設(shè)出故障)</p><p> ?。?)當(dāng)按下復(fù)位開(kāi)關(guān)時(shí),彩燈系統(tǒng)恢復(fù)到最初狀態(tài)。</p><p>  第5章 畢業(yè)設(shè)計(jì)總結(jié)</p><p>  大學(xué)三年就會(huì)在這最后的畢業(yè)設(shè)計(jì)總結(jié)劃上一個(gè)圓滿的句號(hào)。我曾經(jīng)以為時(shí)間是一個(gè)不快不慢的東西,但現(xiàn)在我感到時(shí)間過(guò)的是多么的飛快,三年了,感覺(jué)就在一眨眼之間結(jié)束了我的大學(xué)生涯。最

65、能把理論知識(shí)運(yùn)用到實(shí)踐當(dāng)中的過(guò)程就數(shù)畢業(yè)設(shè)計(jì)了。在整個(gè)畢業(yè)設(shè)計(jì)的過(guò)程中每一步都是自己親自做過(guò)的,遇到的問(wèn)題也非常多,在經(jīng)過(guò)遇到問(wèn)題,思索問(wèn)題到解決問(wèn)題的過(guò)程中,收獲是最多的。以往沒(méi)有注意到的問(wèn)題,都在這一次的畢業(yè)設(shè)計(jì)中得以體現(xiàn),這培養(yǎng)了我的細(xì)心,耐心和專(zhuān)心。我覺(jué)得能夠在這次的畢業(yè)設(shè)計(jì)中學(xué)到很多的東西,以往不注意的細(xì)節(jié),在這一次中是必須讓自己去注意的。也是我這三年來(lái)所學(xué)到知識(shí)的一個(gè)體現(xiàn)。我深深知道,每一次的學(xué)習(xí)實(shí)踐環(huán)節(jié)都是那么的來(lái)之不易,

66、都是通過(guò)老師的深思熟慮后,才給我們定下目標(biāo)。然后讓我們?cè)谥R(shí)的海洋里翱翔,讓我們隨著年齡的增長(zhǎng)不斷的擴(kuò)充自己的知識(shí)領(lǐng)域,也逐漸成熟,逐漸長(zhǎng)大,老師同時(shí)也教導(dǎo)我們逐漸成為一個(gè)能夠?yàn)樯磉叺娜耍瑸榧彝?,為?guó)家做出點(diǎn)點(diǎn)貢獻(xiàn)的人,教導(dǎo)我們學(xué)會(huì)感恩。所以,我在這次的畢業(yè)設(shè)計(jì)中,認(rèn)真對(duì)待每一個(gè)過(guò)程,希望自己的認(rèn)真,自己最后的畢業(yè)設(shè)計(jì)的成果能夠回報(bào)老師這么多年來(lái)的教導(dǎo),這么多年的奉獻(xiàn)。</p><p>  最后,由于理論方面所學(xué)

67、有限,理解又不好,再加之動(dòng)手能力的匱乏,在這次畢業(yè)設(shè)計(jì)中難免會(huì)有錯(cuò)誤,還望老師批評(píng)指正。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]林志琦.單片機(jī)原理接口及應(yīng)用.北京:中國(guó)水利水電出版社,2007</p><p>  [2]胡輝.單片機(jī)原理與應(yīng)用.北京:中國(guó)水利水電出版社,2007</p>&

68、lt;p>  [3]趙文博.單片機(jī)語(yǔ)言C51程序設(shè)計(jì).北京:人民郵電出版社,2005</p><p>  [4]譚浩強(qiáng).c程序設(shè)計(jì).北京:清華大學(xué)出版社,1991</p><p>  附錄1 彩燈電路總圖及元器件清單</p><p><b>  元器件清單:</b></p><p>  AT89C51一個(gè)、

69、按鍵7個(gè)、發(fā)光二極管32只(不同色)、石英晶振器1個(gè)、電容2個(gè)、極性電容1個(gè)、電阻和導(dǎo)線若</p><p>  附錄2 彩燈整體程序</p><p>  #include <reg51.h>//將51單片機(jī)的寄存器包含在頭文件中</p><p>  #include <intrins.h>//將內(nèi)部函數(shù)包含在頭文件中</p>&

70、lt;p>  #define uint unsigned int//宏定義,用uint代替unsigned int(無(wú)符號(hào)整型變量)</p><p>  #define uchar unsigned char//宏定義,用uchar代替unsigned char(無(wú)符號(hào)字符變量)</p><p>  uchar temp_int1;</p><p>  uch

71、ar temp1;</p><p>  uchar temp2;</p><p>  uchar temp_key1;</p><p>  uchar temp_key2;</p><p>  uchar temp_key3;</p><p>  uchar temp_key4;//定義無(wú)符號(hào)字符變量temp_int1

72、、temp1、temp2、temp_key1、temp_key2、temp_key3、temp_key4</p><p><b>  uint cnt;</b></p><p><b>  uint aa;</b></p><p><b>  uint bb;</b></p><p

73、>  uint flag;//定義無(wú)符號(hào)整型變量cnt、aa、bb、flag</p><p>  sbit key1=P0^2;</p><p>  sbit key2=P0^3;</p><p>  sbit key3=P0^4;</p><p>  sbit key4=P0^1;</p><p>  sbit

74、 key_int1=P3^3;</p><p>  sbit beep=P0^0;//用key1、key2、key3、key4、key_int1、beep代替P0^2、P0^3、P0^4、P0^1、P3^3、P0^0</p><p><b>  //延時(shí)函數(shù)</b></p><p>  void delay(uint z)//定義了一個(gè)返回值為

75、空的delay函數(shù),里含一個(gè)形參——無(wú)符號(hào)整型變量z</p><p><b>  {</b></p><p>  uint x,y;//定義了無(wú)符號(hào)整型變量x、y</p><p>  for(x=z;x>0;x--)</p><p>  for(y=120;y>0;y--);//二重for循環(huán),外循環(huán)循環(huán)z(

76、z的值在delay函數(shù)被調(diào)用時(shí)得到)次,內(nèi)循環(huán)循環(huán)120次,其循環(huán)語(yǔ)句均為空操作,從而實(shí)現(xiàn)延時(shí)功能</p><p><b>  }</b></p><p><b>  //初始化函數(shù)</b></p><p>  void init()//定義一個(gè)返回值為空的init函數(shù)</p><p><b&

77、gt;  {</b></p><p>  EA=1;//開(kāi)放所有中斷</p><p>  EX0=1;//允許外部中斷0中斷</p><p>  IT0=1;//外部中斷0的中斷觸發(fā)方式控制位置1,即設(shè)置外部中0為邊沿觸發(fā)方式</p><p>  ET0=1;//允許T0中斷(定時(shí)器/計(jì)數(shù)器T0的輸出中斷允許位)</p&g

78、t;<p>  TR0=0;//停止定時(shí)器/計(jì)數(shù)器0</p><p>  TH0=(65536-30000)/256;</p><p>  TL0=(65536-30000)%256;</p><p>  EX1=1;//允許外部中斷1中斷</p><p>  IT1=0;//將外部中斷1的中斷觸發(fā)方式控制位置0,即設(shè)置外部中斷

79、1為電平觸發(fā)方式</p><p>  PX1=1;//將外部中斷1中斷優(yōu)先級(jí)控制位置1</p><p>  ET1=1;//允許T1中斷</p><p>  TR1=0;//停止定時(shí)器/計(jì)數(shù)器1</p><p>  TH1=(65536-50000)/256;</p><p>  TL1=(65536-50000)%2

80、56;</p><p><b>  P1=0xFF;</b></p><p>  P2=0XFF;//將P1口和P2口置1,因?yàn)樵赑1口和P2口引腳時(shí),應(yīng)先向鎖存器寫(xiě)"1"</p><p>  temp1=0x7F;</p><p>  temp2=0x7F;</p><p>

81、<b>  cnt=8;</b></p><p><b>  aa=0;</b></p><p><b>  bb=0;</b></p><p>  key_int1=1;</p><p><b>  key1=1;</b></p><

82、p><b>  key2=1;</b></p><p><b>  key3=1;</b></p><p><b>  key4=1;</b></p><p>  temp_int1=key_int1;</p><p>  temp_key1=key1;</p>

83、;<p>  temp_key2=key2;</p><p>  temp_key3=key3;</p><p>  temp_key4=key4;</p><p><b>  beep=1;</b></p><p>  flag=0;//分別對(duì)temp1、temp2、cnt、aa、bb、key_int1、

84、key1、key2、key3、key4、temp_int1、temp_key1、temp_key2、temp_key3、temp_key4、beep、flag賦值</p><p><b>  }</b></p><p><b>  //彩燈方式1</b></p><p>  void FUN1()</p>&

85、lt;p><b>  {</b></p><p><b>  cnt=8;</b></p><p>  temp1=0X7F;</p><p>  temp2=0X7F;</p><p>  while(cnt!=0)</p><p><b>  {</

86、b></p><p><b>  cnt--;</b></p><p>  temp1=_crol_(temp1,1);</p><p>  delay(500);</p><p><b>  P2=0xFF;</b></p><p><b>  P1=tem

87、p1;</b></p><p>  temp2=_crol_(temp2,1); </p><p>  delay(500);</p><p>  P1=0xFF; </p><p><b>  P2=temp2;</b></p><p><b>  }</

88、b></p><p><b>  P1=0x0ff;</b></p><p><b>  P2=0x0ff;</b></p><p><b>  }</b></p><p><b>  //彩燈方式2</b></p><p>

89、  void FUN2()</p><p><b>  {</b></p><p>  temp1=0xAA;</p><p>  temp2=0xAA;</p><p><b>  TR0=1;</b></p><p>  while(TR0==1);</p>

90、<p><b>  P1=0x0ff;</b></p><p><b>  P2=0x0ff;</b></p><p><b>  }</b></p><p><b>  //彩燈方式3</b></p><p>  void FUN3()<

91、;/p><p><b>  {</b></p><p>  temp1=0x0;</p><p>  temp2=0x0;</p><p><b>  TR1=1;</b></p><p>  while(TR1==1); </p><p><

92、;b>  P1=0x0ff;</b></p><p><b>  P2=0x0ff;</b></p><p><b>  }</b></p><p><b>  //主函數(shù)</b></p><p>  void main()</p><p&

93、gt;<b>  { </b></p><p><b>  init();</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  temp_key1=key1;</p>

94、<p>  temp_key2=key2;</p><p>  temp_key3=key3;</p><p>  temp_key4=key4;</p><p>  if(temp_key4==0)</p><p><b>  {</b></p><p><b>  del

95、ay(5);</b></p><p>  temp_key4=key4;</p><p>  if(temp_key4==0)//三種彩燈方式依次執(zhí)行</p><p><b>  {</b></p><p><b>  FUN1();</b></p><p>

96、;<b>  FUN2();</b></p><p><b>  FUN3();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(temp_key1==0)</p>&l

97、t;p><b>  {</b></p><p><b>  delay(5);</b></p><p>  temp_key1=key1;</p><p>  if(temp_key1==0)</p><p><b>  {</b></p><p>

98、;  FUN1();//執(zhí)行彩燈方式1</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(temp_key2==0)</p><p><b>  {</b></p><p><b>

99、;  delay(5);</b></p><p>  temp_key2=key2;</p><p>  if(temp_key2==0)</p><p><b>  {</b></p><p>  FUN2();//執(zhí)行彩燈方式2</p><p><b>  }<

100、;/b></p><p><b>  }</b></p><p>  if(temp_key3==0)</p><p><b>  {</b></p><p><b>  delay(5);</b></p><p>  temp_key3=key3

101、;</p><p>  if(temp_key3==0)</p><p><b>  {</b></p><p>  FUN3();//執(zhí)行彩燈方式3</p><p><b>  }</b></p><p><b>  }</b></p>

102、;<p><b>  }</b></p><p><b>  }</b></p><p>  //外部中斷0服務(wù)程序</p><p>  void _EX0_() interrupt 0</p><p><b>  {</b></p><p&

103、gt;<b>  while(1)</b></p><p><b>  {</b></p><p><b>  P1=0x77;</b></p><p><b>  P2=0xee;</b></p><p>  beep=!beep;</p>

104、<p>  delay(100);</p><p><b>  }</b></p><p><b>  }</b></p><p>  //定時(shí)器0中斷服務(wù)程序</p><p>  void _ET0_() interrupt 1</p><p><b>

105、;  {</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256; </p><p><b>  aa++;</b></p><p>  if(aa!=20)</p><p><b>  {&

106、lt;/b></p><p><b>  P1=temp1;</b></p><p><b>  P2=temp2;</b></p><p>  temp1=_cror_(temp1,1);</p><p>  temp2=_cror_(temp2,1);</p><p&g

107、t;  delay(500);</p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p><b>  aa=0;</b></p><p><

108、;b>  TR0=0;</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  }</b></p><p><b>  }</b></p><p>

109、;  //外部中斷1服務(wù)程序</p><p>  void _EX1_() interrupt 2</p><p><b>  {</b></p><p><b>  PX1=0;</b></p><p><b>  PX0=1;</b></p><p>

110、;  temp_int1=key_int1;</p><p>  while(temp_int1==0)</p><p><b>  {</b></p><p>  temp_int1=key_int1;</p><p><b>  }</b></p><p><b

111、>  PX0=0;</b></p><p><b>  PX1=1;</b></p><p><b>  }</b></p><p>  //定時(shí)器1中斷服務(wù)程序</p><p>  void _ET1_() interrupt 3</p><p><

112、b>  {</b></p><p>  TH1=(65536-50000)/256;</p><p>  TL1=(65536-50000)%256;</p><p><b>  bb++;</b></p><p>  if(bb!=20)</p><p><b>  

113、{</b></p><p><b>  P1=temp1;</b></p><p><b>  P2=temp2;</b></p><p>  temp1=~temp1;</p><p>  temp2=~temp2;</p><p>  delay(500);&

114、lt;/p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p><b>  bb=0;</b></p><p><b>  TR1=0;<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論