鄭州工程技術學院課程設計 設計題目:LED流水燈設計 學 院:機電與車輛工程學院 專 業:16電氣自動化技術專業班 級普招二班 姓 名:王*&劉* 指導教師:李* 日 期:2017年12月19日
誠信聲明
本論文是我個人在老師指導下,按任務書要求,自己撰寫的論文。該論文凡引用他人的文章或成果之處都在論文中注明,并表示了謝意。除此之外都是自己的工作成果。 若本論文及資料與以上聲明不符,本人承擔一切責任。 本人簽名: 日 期: 2016年12月19日
課程設計任務書 設計題目:LED流水燈設計 摘要:采用DS18B20做溫度傳感器,3位共陽數碼管做顯示,AT89C2051單片機做處理控制,設計一個溫度控制器,要求設計三個按鍵:S1作為設置鍵,按一下S1電路顯示當前的溫度值,再按一下S1進入溫度設定狀態;S2或S3按鍵為調整設置溫度按鍵,按S2按鍵為加溫度,按S3按鍵為減溫度。工作過程是:按一下S1電路顯示當前的溫度值,再按一下S1進入溫度設定狀態,這時可以按S2或S3調整設定溫度值,再次按下S1時返回當前溫度顯示。電路中要求設計一路控制輸出,當當前溫度超出設定溫度時LED1被點亮,同時輸出5V電壓,可驅動5V繼電器。 設計內容及要求: 1. 用protues畫出電路原理圖; 2. 畫出程序流程圖; 3. 用keilc軟件編程 4.聯合仿真結果是否正確; 5. 焊接調試硬件電路,使設計滿足要求。 6焊接調試硬件電路,使設計滿足要求。 7. 整理并認真書寫課程設計報告,不得抄襲別人作品。
指導老師(簽字): 年 月 日
前 言
當今時代是一個新技術層出不窮的時代,在電子領域尤其是自動化智能控制領域,傳統的分立元件或數字邏輯電路構成的控制系統,正以前所未見的速度被單片機智能控制系統所取代。單片機具有體積小、功能強、成本低、應用面廣等優點,可以說,智能控制與自動控制的核心就是單片機。當單片機運用于彩燈裝飾的控制上時,更是為我們的日常生活增添了一份絢麗的光彩。單片機課程設計是單片機教學的主要內容,是培養設計能力的重要實踐內容。(1)通過課程設計鞏固、深化單片機知識。(2)通過課程設計實踐,培養分析解決工程實際問題的能力。(3)掌握一般設計方法和步驟。 本設計采用STC89C52單片機,運用循環移位法實現了32只LED 燈依次點亮,熄滅的“流水”效果。流水燈應用在夜景、舞臺、建筑物、廣告牌等裝飾上都能達到出色的效果。
學生簽名 年月日
摘 要
近年來隨著科技的飛速發展,單片機的應用正在不斷地走向深入,同時帶動傳統控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的, 還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,加以完善。我們周圍有許多廣告牌。通過單片機的控制,我們可以把城市的夜晚裝飾的更漂亮。 通過對單片機的系統學習,對一些廣告燈的設計做了一些必要的改進。同時對自己的改進也做了真實的仿真。達到了預期的目的。但是在改進的過程里也發現了自己的很多的不足。這會在以后的學習生活里不斷提高。逐步完善自己。
關鍵詞:廣告燈、單片機、程序設計(三至八個關鍵詞)
目錄 1 引言 1.1設計任務 1.2設計要求 2 課題綜述 2.1 課題的來源 2.2 面對的問題 3 系統分析 3.1 STC 89C52單片機引腳圖及引腳功能介紹 4系統設計 4.1硬件設計 4.1.1.硬件框圖 4.1.2.硬件詳細設計 4.2 軟件設計 4.3 硬件原理圖 4.4 元件清單 4.5 效果實物圖 4.6代碼編寫 5.心得體會 6.致謝 參考文獻 1 引言單片機課程設計主要是為了讓我們增進對STC89C52單片機電路的感性認識,加深對理論方面的理解。了解軟硬件的有關知識,并掌握軟硬件設計過程、方法及實現,為以后設計和實現應用系統打下良好基礎。另外,通過簡單課題的設計練習,使我們了解必須提交的各項工程文件,達到鞏固、充實和綜合運用所學知識解決實際問題的目的。 1.1設計任務設計一個單片機控制的流水燈系統 1.2設計要求(1)32個LED燈; (2)可實現多種的亮燈(如左循環,右循環,間隔閃,90度交叉閃等)。 2 課題綜述
2.1 課題的來源當今社會,這種由單片機芯片控制各種硬件工作的技術也日益成熟,并普及在交通、化工、機械等各個領域。而流水燈這項技術在生活中的應用更是廣泛,較為貼近生活。而流水燈控制的設計所需要的知識也正好吻合了我們本學期對于單片機這門課程的學習,所以設計流水燈控制的這個課題讓我們對知識的學習和鞏固都有了進一步的加深。 2.2 面對的問題這次課程設計是通過STC89C52位單片機實現。但面對的問題卻是兩方面的:一個是軟件的設計,也就是實現流水燈控制功能的程序編輯;另一個是硬件的設計,需要我們自己連接、焊接電路板。而更為嚴峻的就是設計的最后還要將軟硬件相結合。 3 系統分析
3.1 STC 89C52單片機引腳圖及引腳功能介紹本次設計的目的在于加深STC89C52單片機的理解,首先來簡單認識一下,它的引腳如圖3-1所示: 圖3.1 STC89C52 
STC89C52引腳可以分為四個部分,各個引腳功能如下: 主電源引腳(2根) GND:接地線 XTAL1:片內振蕩電路的輸入端 XTAL2:片內振蕩電路的輸出端 RST/PROG:復位引腳,引腳上出現2個機器周期的高電平將使單片機復位。 ALE/VPP:地址鎖存允許信號 PESN:外部存儲器選通信號 EA/VPP:程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。 STC89C52單片機有4組8位的可編程I/O口,分別為P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。 P0口:8位雙向I/O口線 P1口:8位準雙向I/O口線 P1口:8位雙向I/O口線 P2口:8位準雙向I/O口線 P3口:8位準雙向I/O口線 4系統設計
4.1硬件設計
4.1.1.硬件框圖按照單片機系統擴展與系統配置狀況,單片機應用系統可分為最小系統、最小功耗系統及典型系統等。STC89C52單片機是本次課程設計運用的主要原件。流水燈控制設計是用一個帶有32個發光二極管的單片機最小應用系統,即為由發光二極管、晶振、復位、電源等電路和必要的軟件組成的單個單片機。從原理圖中可以看出,如果要讓接在P1、P2、P3、P0口的LED亮起來,那么只要把P2、P1、P3、P0口的電平變為低電平就可以了;因此,要實現流水燈功能,我們只要將發光二極管LED1~LED32依次點亮、熄滅,32只LED燈便會一亮一暗的做流水燈了。在此我們還應注意一點,由于人眼的視覺暫留效應以及單片機執行每條指令的時間很短,我們在控制二極管亮滅的時候應該延時一段時間,否則我們就看不到“流水”效果了。 4.1.2.硬件詳細設計(1)復位電路部分 當要對晶體重置時,只要對此引腳電平提升至高電平并保持兩個及其周期以上的時間便能完成系統重置的各項動作,使得內部特殊功能寄存器內容均被設成已知狀態。
(2)晶振部分 
4.2 軟件設計 單片機的應用系統由硬件和軟件組成,在硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環點亮的現象,我們還需要編寫程序控制單片機管腳電平的高低變化,來實現發光二極管的一亮一滅。
4.3 硬件原理圖
4.4 元件清單表4-1 元件清單 4.5 效果實物圖(1)背面實物圖
(2)正面實物圖
4.6代碼編寫
5.心得體會由于本次課程設計含括了軟件和硬件知識,所以在完成課程設計的同時也讓我們了解到了我們在軟硬件設計和制作方面的不足。在這次的設計過程中我所擔任的工作是對電路板各元器件的連接和焊接工作,雖然看似簡單,但做起來卻是一個細致的工作,尤其是對于一些引腳的焊接工作,更是要細中再細,因為這些元器件的引腳距離都是比較近的,一旦將不該連接的引腳焊接到了一起,該元器件就會失它原來的工作效果,還很有可能將整個電路短路。對于軟件方面,是由我們小組的崔鵬飛編輯完成的,負責硬件焊接的我在最初看到代碼的時候還是一頭霧水,經過我倆的一起討論,最后還是理解的如何運用循環實現流水燈亮燈的工作原理。并對如何使用程序調用也有了一定的了解。 通過這次課程設計,我知道了團隊的力量,只有互相團結,才能把事情做好,組員分工合作,每個人根據自己的能力范圍負責不同的工作,達到事半功倍的效果。而在這次的設計過程中讓我深深的了解了我在軟件、硬件方面的許多不足之處,對于今后的學習和工作都有了一次很好的借鑒經驗。 6.致謝
首先我要感謝的是機電與車輛工程學院,機電與車輛工程學院能夠給我提供如此好的實踐機會。更要感謝指導老師,在我們的學習過程中他給了很大的幫助,幫助我們理解不懂的地方,使我們最終能夠完成這個課程設計。我還要感謝參考文獻的原作者。在此對給予我幫助的老師表示深深地感謝!同時對給予我幫助的同學表示深深地感謝。我想說的是,在指導老師和同學們的幫助下我學到了很多東西,也發現了自己的很多不足之處,促使我在以后的學習中更加努力的學習。我們回顧這過去時間,我們會發現自己收獲了很多,也成長了很多,懂得了如何去學習以前未曾學過的新思維新方法,懂得了如何去多方位地查找資料,完善和創新一些舊的思維方式,懂得了如何同老師和同學交流和協作,尤其要說的是,王佑湖老師在此過程中對我們悉心的輔導,認真的講解,幫助我們解決問題,循循善誘,使我門受益匪淺。還有同學們的幫助,互相推薦好的資料。相信這次課程設計的體驗將成為今后我們更多更廣學習中的奠基石。課程設計的過程,是學習的過程,也是鍛煉的過程,更是教會我們同學之間相互幫助,共同克服困難的過程,這將是人生中一筆寶貴的財富,使我受用不盡的同時,我一定將之好好珍惜。參考文獻[1]康華光,陳大欽. 電子技術基礎—模擬部分(第五版)[M]. 北京:高等教育出版社,2005 [2]姜志海、趙艷雷、陳松 .單片機的C語言程序設計與應用——基于Proteus仿真(第二版) 電子工業出版社 [3]張毅剛,彭喜元。 單片機原理與應用設計 電子工業出版社
單片機源程序如下:
- #include<reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
- // 逐個點亮0~7
- uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐個點亮7~0
- uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐個滅0~7
- uchar codetable3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};// 逐個滅7~0
- /***********************************************************/
- void delay(uint t); //延時
- void zg(uint t,uchar a);//兩邊逐個亮
- void qs(uint t,uchar a);//全部閃爍
- void zgxh(uint t,uchar a); // 逆時針逐個點亮
- //void zgxh1(uint t,uchar a); // 順時針逐個點亮
- void djs(uint t,uchar a); //對角閃
- void lbzgm(uint t,uchar a);//兩邊逐個滅
- //void sszgm(uint t,uchar a); // 順時針逐個滅
- void nszgm(uint t,uchar a); // 逆時針逐個滅
- void sztl(uint t,uchar a);//順時逐個同步亮
- void nztl(uint t,uchar a);//逆時逐個同步亮
- void sztm(uint t,uchar a);//順時逐個同步滅
- void nztm(uint t,uchar a);//逆時逐個同步滅
- void hwzjl(uint t,uchar a); //橫往中間亮
- void hwzjm(uint t,uchar a); //橫往中間滅
- //void swzjl(uint t,uchar a); //豎往中間亮
- //void swzjm(uint t,uchar a); //豎往中間滅
- void nzdl(uint t,uchar a); //逆時逐段亮
- void nzdgl(uint t,uchar a); //逆時逐段一個點亮
- void jgs(uint t,uchar a); //間隔閃
- /**********************************************************/
- void zg(uint t,uchar a)//兩邊逐個亮
- {
- uchar i,j;
- for(j=0;j<a;j++)
- {
- P0=P1=P2=P3=0xff;
- P0=0x7f;delay(t);
- for(i=0;i<7;i++)
- {
- P0=table1[i+1];
- P2=table1[i];
- delay(t);
- }
- P2=0x00;P1=0xfe;
- delay(t);
- for(i=0;i<7;i++)
- {
- P1=table[i+1];
- P3=table1[i];
- delay(t);
- }
- P3=0x00;delay(t);
- }
- }
- void qs(uint t,uchar a) //全部閃爍
- {
- uchar j;
- for(j=0;j<a;j++)
- {
- P0=P1=P2=P3=0xff;
- delay(t);
- P0=P1=P2=P3=0x00;
- delay(t);
- }
- }
- void zgxh(uint t,uchar a) // 逆時針逐個點亮
- {
- uchar i,j;
- for (j=0;j<a;j++)
- {
- P0=P1=P2=P3=0xff;
- for (i=0;i<8;i++)
- {
- P0=table1[i];
- delay(t);
- }
- for(i=0;i<8;i++)
- {
- P1=table[i];
- delay(t);
- {
- uchar i,j;
- for (j=0;j<a;j++)
- {
- P0=P1=P2=P3=0x00;
- for(i=0;i<8;i++)
- {
- P0=P2=P1=table3[i];
- P3=table2[i];delay(t);
- }
- }
- }
- /*
- void swzjl(uint t,uchar a) //豎往中間亮
- {
- uchar i,j;
- for (j=0;j<a;j++)
- {
- P0=P1=P2=P3=0xff;
- for(i=0;i<8;i++)
- {
- P0=P2=P1=table[i];
- P3=table1[i];delay(t);
- }
- }
- }
- void swzjm(uint t,uchar a) //豎往中間滅
- {
- uchar i,j;
- for (j=0;j<a;j++)
- {
- P0=P1=P2=P3=0x00;
- for(i=0;i<8;i++)
- {
- P0=P2=P1=table2[i];
- P3=table3[i];delay(t);
- }
- }
- }
- */
- void nzdl(uint t,uchar a) //逆時逐段亮
- {
- uchar i,j;
- for (j=0;j<a;j++)
- {
- P0=P1=P2=P3=0xff;
- for(i=0;i<8;i++)
- {
- P0=table1[i];
- delay(t);
- }
- P0=0xff;
- for(i=0;i<8;i++)
- {
- P1=table[i];
- delay(t);
- }
- P1=0xff;
- for(i=0;i<8;i++)
- {
- P3=table[i];
- delay(t);
- }
- P3=0xff;
- for(i=0;i<8;i++)
- {
- P2=table[i];
- delay(t);
- }
- P2=0xff;
- }
- }
- void nzdgl(uint t,uchar a) //逆時逐段一個點亮
- {
- zgxh(100,1);
- nszgm(100,1);
- }
- /*
- for(i=0;i<5;i++)
- {
- zgxh1(100,1);
- sszgm(100,1);
- }
- */
- nzdl(200,3); //逆時逐段亮
- jgs(50,100); //間隔閃
- /*/////////////////////////////////////////////////////
- P0=P1=P2=P3=0xff;
- for (i=0;i<8;i++)
- {
- P0=table1[i];
- delay(200);
- }
- for (i=0;i<8;i++)
- {
- P1=table[i];
- delay(200);
- }
- for(i=0;i<3;i++)
- {
- P0=P1=0x00;delay(200);
- P0=P1=0xff;delay(200);
- }
- for (i=0;i<8;i++)
- {
- P2=table1[i];
- delay(200);
- }
- for (i=0;i<8;i++)
- {
- P3=table1[i];
- delay(200);
- }
- for(i=0;i<3;i++)
- {
- P2=P3=0x00;delay(200);
- P2=P3=0xff;delay(200);
- }
- *///////////////////////////////////////////////////
- nzdgl(50,40);
- //逆時逐段一個點亮
- for(i=0;i<4;i++)
- {
- zg(100,1);qs(100,10);
- lbzgm(100,1);
- }
- // djs(50,100); //對角閃
- for(i=0;i<3;i++)
- {
- zgxh(100,1);
- nszgm(100,1);
- }
- djs(1000,10);
- for(i=0;i<10;i++)
- {
- hwzjl(200,1); //橫往中間亮
- hwzjm(200,1); //橫往中間滅
- }
- djs(300,10); //對角閃
- /*
- for(i=0;i<10;i++)
- {
- swzjl(200,1); //豎往中間亮
- swzjm(200,1); //豎往中間滅
- }
- */
- for(i=0;i<5;i++)
- {
- zgxh(100,1);
- nszgm(100,1);
- }
- djs(100,20); //對角閃
- zg(300,1);
- lbzgm(300,1);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
LED流水燈課程設計.rar
(2.45 MB, 下載次數: 88)
2017-12-28 23:56 上傳
點擊文件名下載附件
|