基于單片機(jī)的LED流水燈控制_第1頁
基于單片機(jī)的LED流水燈控制_第2頁
基于單片機(jī)的LED流水燈控制_第3頁
基于單片機(jī)的LED流水燈控制_第4頁
基于單片機(jī)的LED流水燈控制_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設(shè)計說明書課程名稱:單片機(jī)原理及應(yīng)用設(shè)計題目:基于單片機(jī)的LED流水燈控制院系:信息技術(shù)學(xué)院專業(yè):計算機(jī)科學(xué)與技術(shù)2023年1月10日基于單片機(jī)的LED流水燈控制摘要基于單片機(jī)的LED流水燈的應(yīng)用十分廣泛,由單片機(jī)作為的核心控制器,通過按鍵實現(xiàn)控制功能和數(shù)據(jù)輸入是非常普遍的。通常在所需按鍵數(shù)量不多時,系統(tǒng)常采用獨立式按鍵。這種按鍵的電路配置靈活,軟件結(jié)構(gòu)簡單。由于實際應(yīng)用中,不同系統(tǒng)對按鍵的要求不同,因此,對按鍵程序的設(shè)計要考慮全面,以便更好地完成按鍵所設(shè)定的功能,簡述了該系統(tǒng)中一些重要芯片的根本工作原理,著重論述了硬件線路各個模塊的設(shè)計思想。進(jìn)而熟練掌握相關(guān)專業(yè)根底知識的綜合應(yīng)用,提高學(xué)生的實際動手和設(shè)計能力。本系統(tǒng)是基于AT89C51系列單片機(jī)為核心的LED流水燈設(shè)計,實現(xiàn)8個LED燈變化方向和速度的可調(diào)。關(guān)鍵詞:單片機(jī)獨立式按鍵LED目錄TOC\o"1-3"\h\u15004第一章緒論1206841.設(shè)計背景168221.1設(shè)計目的1170321.2可行性分析及相關(guān)現(xiàn)狀1313641.3意義217369第二章系統(tǒng)設(shè)計3213592系統(tǒng)設(shè)計3255012.1整體設(shè)計3125902.2模塊設(shè)計423902第三章系統(tǒng)實現(xiàn)7114173.1整體仿真電路圖7195123.2各局部模塊原理7274813.2.1單片機(jī)最小系統(tǒng)7251323.2.2外圍電路822142第四章核心代碼1111989第五章調(diào)試141758第六章總結(jié)與致謝1563476.1總結(jié)1575176.2致謝151864第七章附錄16119227.附錄16260547.1源代碼16緒論設(shè)計背景1.1設(shè)計目的通過本次課題設(shè)計,應(yīng)用《單片機(jī)原理及應(yīng)用》等所學(xué)相關(guān)知識及查閱資料完成簡易LED流水燈系統(tǒng)設(shè)計,以到達(dá)理論與實踐更好的結(jié)合、進(jìn)一步提高綜合運用所學(xué)知識和設(shè)計的能力的目的。1.2可行性分析及相關(guān)現(xiàn)狀隨著人們生活水平的提高,基于單片機(jī)的LED流水燈的應(yīng)用越來越廣泛,其中獨立式鍵盤的擴(kuò)展電路,該模塊主要應(yīng)用于儀器儀表、工業(yè)控制器、條形顯示器、控制面板等實時性要求不太高的設(shè)備。所以利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,還可以改良和提高如選用更精密的元器件等,在此次設(shè)計中我們將用到集成電路。集成電路是信息產(chǎn)業(yè)和高新技術(shù)的核心,是推動國民經(jīng)濟(jì)和社會信息化的關(guān)鍵技術(shù)。集成電路的產(chǎn)業(yè)規(guī)模和技術(shù)水平已成為國家綜合國力的一個重要標(biāo)志。我國集成電路產(chǎn)業(yè)已經(jīng)經(jīng)過30多年的開展現(xiàn)已形成了近百家的產(chǎn)業(yè)規(guī)模,其中具備一定設(shè)計規(guī)模的單位有20多家,其中北京華大、大唐、深圳華威和無錫矽科四家設(shè)計公司的銷售額超過了1億元。多家外國著名公司也紛紛在中國建立起集成電路設(shè)計公司。中國開展集成電路的主要目標(biāo)為:到達(dá)大規(guī)模生產(chǎn)150mm和0.8微米的技術(shù)水平;200mm和0.5微米的制造技術(shù)的產(chǎn)業(yè)化;提高集成電路的設(shè)計能力以滿足市場需求;跟蹤0.3-0.4微米和先進(jìn)封裝技術(shù)的研發(fā);開發(fā)200mm的硅片制造技術(shù)并在國內(nèi)開始生產(chǎn)等。未來10年是我國微電子產(chǎn)業(yè)開展的關(guān)鍵時期。重點要推進(jìn)超大規(guī)模集成電路和新技術(shù)的產(chǎn)業(yè)化。綜觀中國集成電路的設(shè)計概況,可以看到從20世紀(jì)80年代末開始,經(jīng)過90年代初的創(chuàng)業(yè)期,現(xiàn)正進(jìn)入它的開展期,21世紀(jì)將是中國設(shè)計業(yè)的成熟期。1.3意義今天,當(dāng)我們進(jìn)入21世紀(jì)的時候,自動化科學(xué)技術(shù)不僅面臨著挑戰(zhàn)、也遇到了前所未有的開展機(jī)遇,而與此同時,在世界范圍內(nèi)掀起了高等科學(xué)工程教育的改革浪潮。這兩方面的因素必將深刻地影響大學(xué)自動化專業(yè)的開展。本次課程設(shè)計就是為了加強(qiáng)學(xué)生動手能力,加強(qiáng)學(xué)生對電子電路技術(shù)的掌握,了解控制工程行業(yè)對當(dāng)今社會的影響。同時培養(yǎng)學(xué)生實踐能力,并通過實踐來不斷的發(fā)現(xiàn)問題和解決問題的途徑和方法,從而提高實踐能力。系統(tǒng)設(shè)計2系統(tǒng)設(shè)計2.1整體設(shè)計本方案主要有硬件局部和程序局部構(gòu)成。硬件局部主要由單片機(jī)最小系統(tǒng)和輸入輸出設(shè)備構(gòu)成。首先搭建單片機(jī)最小系統(tǒng),包括電源電路,手動復(fù)位電路,時鐘電路。時鐘電路才用內(nèi)部時鐘方式,手動復(fù)位電路采用按鍵電平復(fù)位方式。再根據(jù)要求在P2口串接8個發(fā)光二極管作為輸出設(shè)備,分別通過限流電阻接電源,在P3口串接2個獨立按鍵,作為輸入設(shè)備。通過獨立按鍵控制LED燈的閃爍和移動及速率變化。同時在P1口連接一個數(shù)碼管顯示電路,用于自動計時,實現(xiàn)自動改變流水燈的樣式。程序局部設(shè)定T0為定時工作方式,T0每隔一定的時間掃描獨立按鍵,當(dāng)檢測到某個鍵按下時,在主函數(shù)中執(zhí)行相應(yīng)的程序。程序框圖如圖1所示:開始開始設(shè)置定時器工作方式開中斷啟動定時器判斷count1的值,強(qiáng)制轉(zhuǎn)換燈的閃爍樣式判斷count2的值確定速率數(shù)碼管計時10s之后,自動改變樣式圖12.2模塊設(shè)計各局部模塊圖如下:單片機(jī)時鐘電路及自動復(fù)位電路:外圍輸入電路:外圍輸出二極管顯示電路:外圍輸出數(shù)碼管顯示電路:系統(tǒng)實現(xiàn)3.1整體仿真電路圖如圖2所示:圖23.2各局部模塊原理各模塊原理介紹如下:3.2.1單片機(jī)最小系統(tǒng)首先搭建單片機(jī)最小系統(tǒng),包括電源電路,手動復(fù)位電路,時鐘電路。時鐘電路才用內(nèi)部時鐘方式,手動復(fù)位電路采用按鍵電平復(fù)位方式。時鐘電路用于產(chǎn)生AT89C51單片機(jī)工作時所必需的時鐘信號。AT89C51單片機(jī)的內(nèi)部電路在時鐘信號的控制下,嚴(yán)格地按時序執(zhí)行指令進(jìn)行工作。復(fù)位是單片機(jī)的初始化操作,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài),通過復(fù)位按鍵可使單片機(jī)重新啟動。如圖3所示:圖33.2.2外圍電路外圍電路主要有輸入設(shè)備和輸出設(shè)備。輸入設(shè)備主要由2個獨立按鍵構(gòu)成,如圖4所示。輸出設(shè)備由8個二極管構(gòu)成,如圖5所示,及七段數(shù)碼管顯示電路,如圖6所示。其中s1鍵控制8個二極管的把戲顯示,s2控制8個二極管點亮的速率。數(shù)碼管用于計時10s,10s之后自動轉(zhuǎn)換二極管顯示樣式,如果10s之內(nèi)有s1按鍵按下,那么強(qiáng)制執(zhí)行s1按鍵的內(nèi)容。其中二極管的保護(hù)電阻的取值范圍為220-880歐姆之間。圖4圖5s1鍵按一下,二極管從上往下單向點亮,哪個送入的是0,就點亮哪個燈,然后依次使0右移,實現(xiàn)依次點亮;按兩下,二極管雙向移動點亮;按三下,二極管4個交替閃爍;按四下,二極管8個交替閃爍;按五下,8個二極管依次點亮,依次熄滅;從而實現(xiàn)二極管的把戲顯示;s2鍵按下,通過延時程序,可以改變二極管點亮的速率。圖6數(shù)碼管顯示電路,通過往p1.0~p1.6寫入0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90會顯示數(shù)字0~9,自動計時10s;如果10s之內(nèi)沒有按鍵按下,那么10s之后,二極管自動改變顯示樣式,如果10s之內(nèi)有按鍵按下,那么強(qiáng)制執(zhí)行按鍵內(nèi)容。第四章核心代碼本設(shè)計主要的模塊就是輸出設(shè)備中的8個二極管及七段數(shù)碼管顯示電路,分別如上圖的5、6所示。其中控制8個二極管把戲點亮的程序如下,重點以把戲1為說明:if(count1==1)//把戲1:燈單向向下移模塊子程序{if(count2==1) {rate=rate1;}//如果s2鍵按一下,執(zhí)行速率1if(count2==2) {rate=rate2;}//如果s2鍵按兩下,執(zhí)行速率2P2=0xfe;//給p2端口送入初值,這時D1點亮 delay(rate);temp=P2;for(i=0;i<8;i++)//通過延時及循環(huán),依次點亮D2~D8 {if(count1==1){temp=_crol_(temp,1); P2=temp; if(count2==1)//并隨時判斷是否有s2鍵按下 {rate=rate1;}if(count2==2) {rate=rate2;} delay(rate); if(i==7)i=0;} }}七段數(shù)碼管顯示電路的程序如下:unsignedcharcodetable2[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定義數(shù)碼管0-9數(shù)字顯示的表voiddisplay(unsignedcharj){P1=table2[j/10];//通過片選使兩位數(shù)碼管分別顯示數(shù)字,但是延時時間小,可以實現(xiàn)兩位數(shù)碼管同時顯示S3=1;delay(10);S3=0; P1=table2[j%10];S4=1;delay(10);S4=0;}中斷效勞程序如下:voidtimer0()interrupt1{TH0=(65536-50000)/256;//T0重新裝初值TL0=(65536-50000)%256;count++;display(table2index);if(table2index==0&&count==1)//如果數(shù)碼管顯示數(shù)字0時改變流水燈的樣式count1++;if(count1==6)count1=1;//如果五個把戲顯示完了之后,再按下按鍵S1或數(shù)碼管計數(shù)到10時,再重新從把戲1顯示if(count==20)//累加計數(shù)器的次數(shù),如果到20次的話數(shù)碼管數(shù)字通過查表自動加1顯示{count=0;table2index=table2index+1;if(table2index==11)table2index=0;}if(S1==0)//檢測是否是S1按下{delay(5);//軟件延時消抖 if(S1==0)//再次檢測S1是否確實按下 {table2index=0;count1++;//如果s1確實按下,那么執(zhí)行s1內(nèi)容 while(!S1);//如果s1沒有按下,繼續(xù)執(zhí)行原來的把戲顯示if(count1==6)count1=1;}}if(S2==0)//檢測是否是S2按下{delay(5);//軟件延時消抖if(S2==0)//再次檢測S2是否確實按下{count2++; while(!S2);//如果s2沒有按下,那么繼續(xù)執(zhí)行原來的速率if(count2==3)count2=1;}}}第五章調(diào)試仿真的過程中出現(xiàn)的主要問題是,按s2鍵二極管點亮速率不會改變,本來只要寫入延時程序,就應(yīng)該會改變速率,但是仿真之后,速率并不會改變。后來經(jīng)過各方面的查資料及研究后才知道,必須在調(diào)用延時程序前判斷s2鍵是否被按下,并且按下的次數(shù)。否那么的話,就算s2鍵被按下,也只是執(zhí)行原本寫入的速率,并不會根據(jù)s2鍵的按下改變速率。第六章總結(jié)與致謝6.1總結(jié)經(jīng)過一段時間的努力,我們小組順利的完成了這次單片機(jī)課程設(shè)計。這是一個磨練意志的過程。從課題的選擇開始,硬件和軟件系統(tǒng)的設(shè)計、到最后的設(shè)計成功,這其中經(jīng)歷了很多困難。但是更重要的是在這個過程中我得到了很大的鍛煉。通過AT89C51單片機(jī)等一些器件的設(shè)計讓我學(xué)習(xí)和掌握了單片機(jī)技術(shù)的根底知識和技術(shù)要點,也使以前學(xué)的很多知識都得到了運用。通過本次課程設(shè)計,我不僅學(xué)到了關(guān)于單片機(jī)技術(shù)方面的許多專業(yè)知識,同時也讓我感覺到很多方面的知識的重要性。其實如何有效和快速的找到資料也是課程設(shè)計給我的啟發(fā)。與他人交流思想是取得成功的關(guān)鍵,在交流中不僅強(qiáng)化了自己原有的知識體系,也擴(kuò)展了自己的思維。課程設(shè)計是一個通過思考、發(fā)問、自己解惑并動手、提高的過程。我會在以后的學(xué)習(xí)中不斷學(xué)習(xí),積累經(jīng)驗,完善自己。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的。只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際動手能力和獨立思考的能力。6.2致謝在這里我感謝那些曾給我授過課的每一位老師,是你們教會我專業(yè)知識。特別感謝教我們單片機(jī)原理及應(yīng)用的某某老師,是他給我們詳細(xì)講解了單片機(jī)的結(jié)構(gòu)、工作原理,以及各個引腳功能,還有程序的編寫方法等。這些都是我們這次課程設(shè)計的根底,沒有某老師的講解,我們要想完成這次課程設(shè)計,是不可能的。我還要感謝我們小組的成員,通過大家的齊心協(xié)力,我們克服了重重阻力終于成功的完成了此次任務(wù)。非常感謝!第七章附錄7.附錄7.1源代碼//目的:實現(xiàn)基于單片機(jī)的LED流水燈控制//語言:C;//變量:S1:P3.4口S2:P3.5口S3:P3.6口S4:P3.7口table1[]:流水燈樣式控制table2[]:數(shù)碼管-9數(shù)字//變量:temp:臨時變量i:臨時變量table2index:存儲table2的下標(biāo)//變量:count:累加計數(shù)器次數(shù)count1:累加單擊第一個按鍵次數(shù)count2:累加單擊第二個按鍵次數(shù)//變量:rate:速度變量rate1:速度變量rate2:速度變量#include<reg51.h>#include<intrins.h>sbitS1=P3^4;sbitS2=P3^5;sbitS3=P3^6;sbitS4=P3^7;unsignedcharcodetable1[9]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//流水燈樣式控制unsignedcharcodetable2[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管-9數(shù)字unsignedchartemp,i,table2index=0;unsignedcharcount1=0,count2=0,count=0;unsignedcharrate=100,rate1=100,rate2=500;//*********************************************************************************//Begin延遲voiddelay(unsignedcharz){unsignedintx,y;for(x=z;x>0;x--)for(y=100;y>0;y--);}//End延遲//*********************************************************************************//Begin數(shù)碼管數(shù)字顯示voiddisplay(unsignedcharj){P1=table2[j/10];S3=1;delay(10);S3=0;P1=table2[j%10];S4=1;delay(10);S4=0;}//End數(shù)碼管數(shù)字顯示//*********************************************************************************voidmain(){P1=0xff;TMOD=0x01;//設(shè)置定時器T0為工作方式TH0=(65536-50000)/256;//定時器賦初值TL0=(65536-50000)%256;EA=1;//開總中斷ET0=1;//開啟定時器T0中斷TR0=1;//啟動定時器T0while(1){//***************************************************************************************//Begin流水燈樣式控制//Begin把戲if(count1==1)//把戲:燈單向向下移模塊子程序{if(count2==1) { rate=rate1; }if(count2==2) { rate=rate2; }P2=0xfe; delay(rate);temp=P2;for(i=0;i<8;i++) {if(count1==1){ temp=_crol_(temp,1); P2=temp;if(count2==1) { rate=rate1; }if(count2==2) { rate=rate2; } delay(rate);if(i==7)i=0; } }}//End把戲//*************************************************************************************//Begin把戲if(count1==2)//把戲:燈雙向移模塊子程序{P2=0x7f;if(count2==1) { rate=rate1; }if(count2==2) { rate=rate2; }delay(rate);temp=P2;for(i=0;i<7;i++){if(count1==2){ temp=_cror_(temp,1); P2=temp;if(count2==1) { rate=rate1; }if(count2==2) { rate=rate2; } delay(rate);}}for(i=0;i<7;i++) {if(count1==2) { temp=_crol_(temp,1); P2=temp;if(count2==1) rate=rate1;if(count2==2) rate=rate2; delay(rate); } }}//End把戲//*************************************************************************************//Begin把戲if(count1==3)//把戲:個交替閃爍模塊子程序 { P2=0xf0;if(count2==1) rate=rate1;if(count2==2) rate=rate2; delay(rate); P2=0x0f;if(count2==1) rate=rate1;if(count2==2) rate=rate2; delay(rate); }if(count1==4)//把戲:八個燈交替閃爍模塊子程序{P2=0xff;if(count2==1) rate=rate1;if(count2==2) rate=rate2;delay(rate);if(count1==4) { P2=~P2;if(count2==1) rate=rate1;if(count2==2) rate=rate2; delay(rate);}}if(count1==5)//把戲:八個燈依次全亮,依次滅模塊子程序{for(i=0;i<9;i++)//8個燈依次從上往下全亮 {if(count1==5) { P2=table1[i];if(count2==1) rate=rate1;if(count2==2) rate=rate2; delay(rate); } } for(i=8;i>0;i--)////8個燈依次從下往上全滅 {if(count1==5) { P2=table1[i];if(count2==1)

溫馨提示

  • 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

提交評論