節(jié)日彩燈控制器設(shè)計_第1頁
節(jié)日彩燈控制器設(shè)計_第2頁
節(jié)日彩燈控制器設(shè)計_第3頁
節(jié)日彩燈控制器設(shè)計_第4頁
節(jié)日彩燈控制器設(shè)計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2013級單片機接口設(shè)計課程設(shè)計石家莊鐵道大學四方學院集中實踐報告書課題名稱節(jié)日彩燈控制器設(shè)計姓 名吳春慧學 號20137762系、 部電氣工程系專業(yè)班級方1353-2指導教師牛曉燕2016 年 7 月 6 日 一、設(shè)計任務及要求:設(shè)計任務:設(shè)計一個節(jié)日彩燈控制器,通過按鈕控制彩燈的各種變化。設(shè)計要求:1.設(shè)計4個按鍵S0、S1、S2、S3, S0開始按此鍵則燈開始流動(由上而下); S1停止,按此鍵則停止流動,所有燈為暗;S2上,按此鍵則燈由上向下流動; S3下,按此鍵則燈由下向上流動。2.由按鍵控制功能的流水燈,其中的LED采取共陽極接法,通過依次向連接LED的I/O口送出低電平,可實現(xiàn)題

2、目要求的功能。3.要求做出實物。二、指導教師評語: 三、成績 指導教師簽名: 年 月 日 目 錄第1章設(shè)計目的1第2章設(shè)計要求1第3章硬件電路設(shè)計13.1系統(tǒng)結(jié)構(gòu)框圖13.2STC89C52單片機23.3總電路圖3第4章軟件設(shè)計44.1主程序設(shè)計44.2LED燈子程序設(shè)計64.2延時子程序設(shè)計64.3源程序7第5章結(jié)論9參考文獻10第1章設(shè)計目的1、掌握單片機實際系統(tǒng)的開發(fā)步驟。2、熟悉節(jié)日彩燈控制器的工作原理。3、加深對單片機匯編語言的認識和理解,并會編程。第2章設(shè)計要求1、設(shè)計4個按鍵S0、S1、S2、S3, S0開始按此鍵則燈開始流動(由上而下); S1停止,按此鍵則停止流動,所有燈為暗

3、;S2上,按此鍵則燈由上向下流動; S3下,按此鍵則燈由下向上流動。2、由按鍵控制功能的流水燈,其中的LED采取共陽極接法,通過依次向連接LED的I/O口送出低電平,可實現(xiàn)題目要求的功能。3、要求做出實物。第3章硬件電路設(shè)計3.1系統(tǒng)結(jié)構(gòu)框圖 節(jié)日彩燈控制系統(tǒng)主要由單片機、LED顯示器、開關(guān)及電源組成。其結(jié)構(gòu)框圖如圖3-1所示。八個LED燈顯示器開關(guān)單片機最小系統(tǒng)5V電源圖3-1 系統(tǒng)結(jié)構(gòu)框圖3.2STC89C52單片機89C52本質(zhì)是一種低耗高性能的微控制器。它的主要特性是擁有8K字節(jié)的程序存儲空間;512字節(jié)的數(shù)據(jù)存儲空間;內(nèi)帶4K字節(jié)的EEPROM存儲空間和可直接使用串行口下載。此外,它

4、還是增強型的80C51單片機,有6時鐘/機器周期和12時鐘/機器周期可以任意選擇,同時它的指令代碼完全兼容傳統(tǒng)80C51單片機。89C52共有四個八位的并行雙向口,即有32根輸入輸出口線。各口的每一位均由鎖存器、輸出驅(qū)動器和輸入緩沖器組成。STC89C52芯片有40個引腳,引腳圖如圖3-2所示,各引腳功能介紹如下:圖3-2 STC89C52引腳圖VCC(40引腳):電源電壓。VSS(20引腳):接地。P1端口(P1.0P1.7,18引腳):P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動4個TTL負載。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P

5、1口作輸入口使用時,因為有內(nèi)部上拉電阻,那些被外部拉低的引腳會輸出一個電流。P1口特點是輸出鎖存器,輸出時沒有條件。輸入緩沖,輸入時有條件,即需要先將該口設(shè)為輸入狀態(tài),先輸出1。此外,P1.0和P1.1是多功能的。P1.0還可以作為定時器/計數(shù)器2的外部輸入端T2。P1.1還可以作為定時器/計數(shù)器2的外部控制端T2EX。P3端口(P3.0P3.7,1017引腳):P3是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動4個TTL負載。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流

6、。P3口除作為一般I/O口外,還有其他一些復用功能如下:P3.0-RXD,串行輸入口。P3.1-TXD,串行輸出口。P3.2-INT0,外部中斷0的請求。P3.3-INT1,外部中斷1的請求。P3.4-T0,定時器/計數(shù)器0外部計數(shù)脈沖。P3.5-T1,定時器/計數(shù)器,1外部計數(shù)脈沖。P3.6-WR,外部數(shù)據(jù)存儲器寫選通。P3.7-RD,外部數(shù)據(jù)存儲器讀選通。RST(9引腳):復位輸入。當輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機單片機的復位初始化操作。ALE(30引腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。XTAL1(19引腳)):振蕩器反

7、相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。3.3總電路圖在總電路圖中,復位電路與晶振電路是單片機最小系統(tǒng)中包括的電路,復位連在AT89C52的9引腳,而晶振電路的兩條接線分別與18、19引腳相連。對于本次設(shè)計,還需要將8個LED燈接入電阻中,并且分別與8個限流電阻相連保護發(fā)光二極管,與單片機的P1口相連。4個按鍵S0、S1、S2、S3分別連單片機的P3.4、P3.5、P3.3和P3.1由這四個按鍵來控制燈的啟動、停止、由上而下、由下而上。由按鍵控制功能的LED工作的方式,其中的LED采取共陽極接法,通過依次向連接LED的I/O口送出低電平,可實現(xiàn)題目

8、要求的功能。節(jié)日彩燈控制器的總電路圖如圖3-5所示。圖3-3 總電路圖第4章軟件設(shè)計4.1主程序設(shè)計節(jié)日彩燈控制器設(shè)計的功能是:當在沒有任何按鍵按下時,8個LED燈均呈現(xiàn)滅燈的狀態(tài),并一直在等待按鍵的按下。當按下開始鍵S0鍵后,8個LED燈自上而下循環(huán)流動,檢測有沒有按下停止鍵即S1,若按下停止鍵S1則立即停止流動,否則檢測是否按下按鍵S2或者按鍵S3,若都沒有按下則燈繼續(xù)保持原先的狀態(tài)流動。當按鍵S3被按下,燈自下而上流動,同樣也要檢測是否按下停止鍵S1,按下則停止,否則燈將繼續(xù)自下而上流動。同理,當按鍵S2被按下時,燈自上而下流動,如果按下停止鍵S1,按下則停止,否則燈將繼續(xù)自上而下流動。

9、當既按下S2又按下S3時,燈將先自上而下流動,后自下而上流動。通過四個鍵S1、S2、S3、S4的控制,實現(xiàn)彩燈的亮、滅和彩燈的流動顯示,以及在不同情況下的彩燈的流動變換。這是整個節(jié)日彩燈的完整控制與流動過程。節(jié)日彩燈控制器的主程序流程圖如圖4-1所示YYYNYN開始鍵1接下?N調(diào)用san子程序鍵2接下?燈滅鍵3接下?調(diào)用san子程序鍵4接下?調(diào)用wu子程序圖4-1 主程序流程圖4.2LED燈子程序設(shè)計在本設(shè)計中的LED燈的流動有兩個方向,分別為自上而下和自下而上,無論是哪種方式,其LED燈的子程序都是一樣的過程。首先賦初值,取表中的數(shù),將數(shù)值給P1口,然后判斷LED燈是否循環(huán)完了8次。如果循環(huán)

10、完8次則對應LED燈亮,并延時輸出。如果沒有循環(huán)完8次,將返回原處重新開始。因而得到流程圖為圖4-2所示。返回初始化8次是否循環(huán)完?給P1賦值對應燈亮延時開始圖4-2 LED燈子程序流程圖4.2延時子程序設(shè)計對于LED燈循環(huán)顯示程序來說,由于單片機運行速度非???,以至于當燈亮時人眼看不見,不方便檢測與監(jiān)控,因此在程序中需要添加延時子程序。同時延時子程序還可以有效的防止抖動。延時子程序運用了兩個for循環(huán)嵌套,外循環(huán)執(zhí)行一次,內(nèi)循環(huán)執(zhí)行z次,因此延時時間為100z。延時子程序的流程圖如圖4-3所示。給y賦初值為zy>0?y自減一x自減一結(jié)束開始定義無符號整型數(shù)x、y給x賦初值為100x&g

11、t;0?圖4-3 子程序流程圖4.3源程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid san();void wu();void delay(uint);sbit key2=P35;/關(guān)閉彩燈的開關(guān)sbit key1=P34;/啟動彩燈的開關(guān)sbit key3=P33;/控制彩燈右移的開關(guān)sbit key4=P31;/控制彩燈左移的開關(guān)uchar temp;/定義一個無符號字符型數(shù)據(jù)變量uchar temp1;/定義一個無符號字符型數(shù)據(jù)變量uchar temp2;/定義一個無符號字

12、符型數(shù)據(jù)變量uint a;int c;void main()/主程序 while(1)/判斷哪個開關(guān)被按下 if(key1=0) san(); if(key2=0) P1=0xff; if(key3=0) san(); if(key4=0) wu(); void san() uchar table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/定義一個數(shù)組for(a=0;a<8;a+) temp=tablea;/將數(shù)組賦值給變量tempP1=temp; delay(300);/延時 void delay(uint z)/延時程序 uint x,y; f

13、or(x=100;x>0;x-) for(y=z;y>0;y-); void wu() uchar table1=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/定義一個數(shù)組for(c=7;c>-1;c-) temp1=table1c;/將數(shù)組賦值給變量temp1 P1=temp1; delay(300);/延時 第5章結(jié)論在本次課程設(shè)計中,我們用的是Multisim軟件畫圖,然后經(jīng)過不斷地仿真、調(diào)試成功。最后根據(jù)本設(shè)計做出實物并與計算機相連,完成整個設(shè)計。本設(shè)計做的是實物,我主要負責軟件部分,但是我也參與了硬件部分,利用我們編好的程序成功寫入到了單片機當中,然后實現(xiàn)了LED燈的從上往下,從下往上,以及反復往返流動。本次設(shè)計主要運用C語言對單片機進行編程控制。只需要節(jié)日彩燈的程序分為三部分即可:主程序、LED燈的程序,延時程序。主程序要根據(jù)題目要求畫出主程序框圖,依據(jù)主電路圖及主流程圖編程。LED燈的程序分兩個流動方向,設(shè)置不同的初值及移動的方向就可以獲得。而延時程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論