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

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)說明書 課程名稱: 單片機(jī)原理及應(yīng)用 設(shè)計(jì)題目: 基于單片機(jī)的LED流水燈控制 院 系: 信息技術(shù)學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 2013年1月10日 基于單片機(jī)的LED流水燈控制摘 要 基于單片機(jī)的LED流水燈的應(yīng)用十分廣泛,由單片機(jī)作為的核心控制器,通過按鍵實(shí)現(xiàn)控制功能和數(shù)據(jù)輸入是非常普遍的。通常在所需按鍵數(shù)量不多時(shí),系統(tǒng)常采用獨(dú)立式按鍵。這種按鍵的電路配置靈活,軟件結(jié)構(gòu)簡單。由于實(shí)際應(yīng)用中,不同系統(tǒng)對按鍵的要求不同,因此,對按鍵程序的設(shè)計(jì)要考慮全面,以便更好地完成按鍵所設(shè)定的功能,簡述了該系統(tǒng)中一些重要芯片的基本工作原理,著重論述了硬件線路各個(gè)模塊的設(shè)計(jì)思想。進(jìn)而熟練掌握相關(guān)專

2、業(yè)基礎(chǔ)知識(shí)的綜合應(yīng)用,提高學(xué)生的實(shí)際動(dòng)手和設(shè)計(jì)能力。 本系統(tǒng)是基于AT89C51系列單片機(jī)為核心的LED流水燈設(shè)計(jì),實(shí)現(xiàn)8個(gè)LED燈變化方向和速度的可調(diào)。 關(guān)鍵詞:單片機(jī) 獨(dú)立式按鍵 LED 目 錄第一章 緒論11. 設(shè)計(jì)背景11.1設(shè)計(jì)目的11.2可行性分析及相關(guān)現(xiàn)狀11.3意義2第二章 系統(tǒng)設(shè)計(jì)32系統(tǒng)設(shè)計(jì)32.1整體設(shè)計(jì)32.2模塊設(shè)計(jì)4第三章 系統(tǒng)實(shí)現(xiàn)73.1整體仿真電路圖73.2各部分模塊原理73.2.1單片機(jī)最小系統(tǒng)73.2.2外圍電路8第四章 核心代碼11第五章 調(diào)試14第六章 總結(jié)與致謝156.1總結(jié)156.2致謝15第七章 附錄167.附錄167.1源代碼16第1章 緒論1.

3、 設(shè)計(jì)背景1.1設(shè)計(jì)目的 通過本次課題設(shè)計(jì),應(yīng)用單片機(jī)原理及應(yīng)用等所學(xué)相關(guān)知識(shí)及查閱資料完成簡易LED流水燈系統(tǒng)設(shè)計(jì),以達(dá)到理論與實(shí)踐更好的結(jié)合、進(jìn)一步提高綜合運(yùn)用所學(xué)知識(shí)和設(shè)計(jì)的能力的目的。1.2可行性分析及相關(guān)現(xiàn)狀 隨著人們生活水平的提高,基于單片機(jī)的LED流水燈的應(yīng)用越來越廣泛,其中獨(dú)立式鍵盤的擴(kuò)展電路,該模塊主要應(yīng)用于儀器儀表、工業(yè)控制器、條形顯示器、控制面板等實(shí)時(shí)性要求不太高的設(shè)備。所以利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,還可以改進(jìn)和提高如選用更精密的元器件等,在此次設(shè)計(jì)中我們將用到集成電路。集成電路是信息產(chǎn)業(yè)和高新技術(shù)的

4、核心,是推動(dòng)國民經(jīng)濟(jì)和社會(huì)信息化的關(guān)鍵技術(shù)。集成電路的產(chǎn)業(yè)規(guī)模和技術(shù)水平已成為國家綜合國力的一個(gè)重要標(biāo)志。 我國集成電路產(chǎn)業(yè)已經(jīng)經(jīng)過30多年的發(fā)展現(xiàn)已形成了近百家的產(chǎn)業(yè)規(guī)模,其中具備一定設(shè)計(jì)規(guī)模的單位有20多家,其中北京華大、大唐、深圳華威和無錫矽科四家設(shè)計(jì)公司的銷售額超過了1億元。多家外國著名公司也紛紛在中國建立起集成電路設(shè)計(jì)公司。中國發(fā)展集成電路的主要目標(biāo)為:達(dá)到大規(guī)模生產(chǎn)150mm和0.8微米的技術(shù)水平;200mm和0.5微米的制造技術(shù)的產(chǎn)業(yè)化;提高集成電路的設(shè)計(jì)能力以滿足市場需求;跟蹤0.30.4微米和先進(jìn)封裝技術(shù)的研發(fā);開發(fā)200mm的硅片制造技術(shù)并在國內(nèi)開始生產(chǎn)等。未來10年是我國

5、微電子產(chǎn)業(yè)發(fā)展的關(guān)鍵時(shí)期。重點(diǎn)要推進(jìn)超大規(guī)模集成電路和新技術(shù)的產(chǎn)業(yè)化。綜觀中國集成電路的設(shè)計(jì)概況,可以看到從20世紀(jì)80年代末開始,經(jīng)過90年代初的創(chuàng)業(yè)期,現(xiàn)正進(jìn)入它的發(fā)展期,21世紀(jì)將是中國設(shè)計(jì)業(yè)的成熟期。1.3意義 今天,當(dāng)我們進(jìn)入21世紀(jì)的時(shí)候,自動(dòng)化科學(xué)技術(shù)不僅面臨著挑戰(zhàn)、也遇到了前所未有的發(fā)展機(jī)遇,而與此同時(shí),在世界范圍內(nèi)掀起了高等科學(xué)工程教育的改革浪潮。這兩方面的因素必將深刻地影響大學(xué)自動(dòng)化專業(yè)的發(fā)展。 本次課程設(shè)計(jì)就是為了加強(qiáng)學(xué)生動(dòng)手能力,加強(qiáng)學(xué)生對電子電路技術(shù)的掌握,了解控制工程行業(yè)對當(dāng)今社會(huì)的影響。同時(shí)培養(yǎng)學(xué)生實(shí)踐能力,并通過實(shí)踐來不斷的發(fā)現(xiàn)問題和解決問題的途徑和方法,從而提

6、高實(shí)踐能力。第2章 系統(tǒng)設(shè)計(jì)2系統(tǒng)設(shè)計(jì)2.1整體設(shè)計(jì)本方案主要有硬件部分和程序部分構(gòu)成。硬件部分主要由單片機(jī)最小系統(tǒng)和輸入輸出設(shè)備構(gòu)成。 首先搭建單片機(jī)最小系統(tǒng),包括電源電路,手動(dòng)復(fù)位電路,時(shí)鐘電路。時(shí)鐘電路才用內(nèi)部時(shí)鐘方式,手動(dòng)復(fù)位電路采用按鍵電平復(fù)位方式。再根據(jù)要求在P2口串接8個(gè)發(fā)光二極管作為輸出設(shè)備,分別通過限流電阻接電源,在P3口串接2個(gè)獨(dú)立按鍵,作為輸入設(shè)備。通過獨(dú)立按鍵控制LED燈的閃爍和移動(dòng)及速率變化。同時(shí)在P1口連接一個(gè)數(shù)碼管顯示電路,用于自動(dòng)計(jì)時(shí),實(shí)現(xiàn)自動(dòng)改變流水燈的樣式。 程序部分設(shè)定T0為定時(shí)工作方式,T0每隔一定的時(shí)間掃描獨(dú)立按鍵,當(dāng)檢測到某個(gè)鍵按下時(shí),在主函數(shù)中執(zhí)行

7、相應(yīng)的程序。程序框圖如圖1所示:開始設(shè)置定時(shí)器工作方式開中斷啟動(dòng)定時(shí)器判斷count1的值,強(qiáng)制轉(zhuǎn)換燈的閃爍樣式判斷count2的值確定速率數(shù)碼管計(jì)時(shí)10s之后,自動(dòng)改變樣式圖12.2模塊設(shè)計(jì)各部分模塊圖如下:單片機(jī)時(shí)鐘電路及自動(dòng)復(fù)位電路:外圍輸入電路:外圍輸出二極管顯示電路:外圍輸出數(shù)碼管顯示電路:第3章 系統(tǒng)實(shí)現(xiàn)3.1整體仿真電路圖如圖2所示:圖23.2各部分模塊原理各模塊原理介紹如下:3.2.1單片機(jī)最小系統(tǒng)首先搭建單片機(jī)最小系統(tǒng),包括電源電路,手動(dòng)復(fù)位電路,時(shí)鐘電路。時(shí)鐘電路才用內(nèi)部時(shí)鐘方式,手動(dòng)復(fù)位電路采用按鍵電平復(fù)位方式。時(shí)鐘電路用于產(chǎn)生AT89C51單片機(jī)工作時(shí)所必需的時(shí)鐘信號(hào)。

8、AT89C51單片機(jī)的內(nèi)部電路在時(shí)鐘信號(hào)的控制下,嚴(yán)格地按時(shí)序執(zhí)行指令進(jìn)行工作。復(fù)位是單片機(jī)的初始化操作,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài),通過復(fù)位按鍵可使單片機(jī)重新啟動(dòng)。如圖3所示:圖33.2.2外圍電路外圍電路主要有輸入設(shè)備和輸出設(shè)備。輸入設(shè)備主要由2個(gè)獨(dú)立按鍵構(gòu)成,如圖4所示。輸出設(shè)備由8個(gè)二極管構(gòu)成,如圖5所示,及七段數(shù)碼管顯示電路,如圖6所示。其中s1鍵控制8個(gè)二極管的花樣顯示,s2控制8個(gè)二極管點(diǎn)亮的速率。數(shù)碼管用于計(jì)時(shí)10s,10s之后自動(dòng)轉(zhuǎn)換二極管顯示樣式,如果10s之內(nèi)有s1按鍵按下,則強(qiáng)制執(zhí)行s1按鍵的內(nèi)容。其中二極管的保護(hù)電阻的

9、取值范圍為220-880歐姆之間。 圖4 圖5s1鍵按一下,二極管從上往下單向點(diǎn)亮,哪個(gè)送入的是0,就點(diǎn)亮哪個(gè)燈,然后依次使0右移,實(shí)現(xiàn)依次點(diǎn)亮;按兩下,二極管雙向移動(dòng)點(diǎn)亮;按三下,二極管4個(gè)交替閃爍;按四下,二極管8個(gè)交替閃爍;按五下,8個(gè)二極管依次點(diǎn)亮,依次熄滅;從而實(shí)現(xiàn)二極管的花樣顯示;s2鍵按下,通過延時(shí)程序,可以改變二極管點(diǎn)亮的速率。 圖6數(shù)碼管顯示電路,通過往p1.0p1.6寫入0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90會(huì)顯示數(shù)字09,自動(dòng)計(jì)時(shí)10s;如果10s之內(nèi)沒有按鍵按下,則10s之后,二極管自動(dòng)改變顯

10、示樣式,如果10s之內(nèi)有按鍵按下,則強(qiáng)制執(zhí)行按鍵內(nèi)容。第四章 核心代碼本設(shè)計(jì)主要的模塊就是輸出設(shè)備中的8個(gè)二極管及七段數(shù)碼管顯示電路,分別如上圖的5、6所示。其中控制8個(gè)二極管花樣點(diǎn)亮的程序如下,重點(diǎn)以花樣1為說明:if(count1=1) /花樣1: 燈單向向下移模塊子程序 if(count2=1) rate=rate1; /如果s2鍵按一下,執(zhí)行速率1 if(count2=2) rate=rate2; /如果s2鍵按兩下,執(zhí)行速率2 P2=0xfe; /給p2端口送入初值,這時(shí)D1點(diǎn)亮delay(rate); temp=P2; for(i=0;i<8;i+) /通過延時(shí)及循環(huán),依次點(diǎn)

11、亮D2D8 if(count1=1) temp=_crol_(temp,1); P2=temp; if(count2=1) /并隨時(shí)判斷是否有s2鍵按下 rate=rate1; if(count2=2) rate=rate2; delay(rate); if(i=7) i=0; 七段數(shù)碼管顯示電路的程序如下:unsigned char code table210=0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90; /定義數(shù)碼管0-9數(shù)字顯示的表 void display(unsigned char j)P1= table2j/

12、10; /通過片選使兩位數(shù)碼管分別顯示數(shù)字,但是延時(shí)時(shí)間小,可以實(shí)現(xiàn)兩位數(shù)碼管同時(shí)顯示 S3 = 1; delay(10); S3 = 0;P1= table2j%10; S4 = 1; delay(10); S4 = 0; 中斷服務(wù)程序如下:void timer0() interrupt 1 TH0=(65536-50000)/256; /T0重新裝初值 TL0=(65536-50000)%256; count+; display(table2index); if(table2index=0 && count=1) /如果數(shù)碼管顯示數(shù)字0時(shí)改變流水燈的樣式 count1+;

13、if(count1=6) count1=1; /如果五個(gè)花樣顯示完了之后,再按下按鍵S1或數(shù)碼管計(jì)數(shù)到10時(shí),再重新從花樣1顯示 if(count=20) /累加計(jì)數(shù)器的次數(shù),如果到20次的話數(shù)碼管數(shù)字通過查表自動(dòng)加1顯示 count=0; table2index=table2index+1; if(table2index=11) table2index=0; if(S1=0) /檢測是否是S1按下 delay(5); /軟件延時(shí)消抖 if(S1=0) /再次檢測S1是否確實(shí)按下 table2index=0; count1+; /如果s1確實(shí)按下,則執(zhí)行s1內(nèi)容 while(!S1); /如果

14、s1沒有按下,繼續(xù)執(zhí)行原來的花樣顯示 if(count1=6) count1=1; if(S2=0) /檢測是否是S2按下 delay(5); /軟件延時(shí)消抖 if(S2=0) /再次檢測S2是否確實(shí)按下 count2+; while(!S2); /如果s2沒有按下,則繼續(xù)執(zhí)行原來的速率 if(count2=3) count2=1;第五章 調(diào)試仿真的過程中出現(xiàn)的主要問題是,按s2鍵二極管點(diǎn)亮速率不會(huì)改變,本來只要寫入延時(shí)程序,就應(yīng)該會(huì)改變速率,但是仿真之后,速率并不會(huì)改變。后來經(jīng)過各方面的查資料及研究后才知道,必須在調(diào)用延時(shí)程序前判斷s2鍵是否被按下,并且按下的次數(shù)。否則的話,就算s2鍵被按下

15、,也只是執(zhí)行原本寫入的速率,并不會(huì)根據(jù)s2鍵的按下改變速率。第六章 總結(jié)與致謝6.1總結(jié) 經(jīng)過一段時(shí)間的努力,我們小組順利的完成了這次單片機(jī)課程設(shè)計(jì)。這是一個(gè)磨練意志的過程。從課題的選擇開始,硬件和軟件系統(tǒng)的設(shè)計(jì)、到最后的設(shè)計(jì)成功,這其中經(jīng)歷了很多困難。 但是更重要的是在這個(gè)過程中我得到了很大的鍛煉。 通過AT89C51單片機(jī)等一些器件的設(shè)計(jì)讓我學(xué)習(xí)和掌握了單片機(jī)技術(shù)的基礎(chǔ)知識(shí)和技術(shù)要點(diǎn),也使以前學(xué)的很多知識(shí)都得到了運(yùn)用。通過本次課程設(shè)計(jì),我不僅學(xué)到了關(guān)于單片機(jī)技術(shù)方面的許多專業(yè)知識(shí), 同時(shí)也讓我感覺到很多方面的知識(shí)的重要性。 其實(shí)如何有效和快速的找到資料也是課程設(shè)計(jì)給我的啟發(fā)。 與他人交流思

16、想是取得成功的關(guān)鍵,在交流中不僅強(qiáng)化了自己原有的知識(shí)體系,也擴(kuò)展了自己的思維。課程設(shè)計(jì)是一個(gè)通過思考、 發(fā)問、自己解惑并動(dòng)手、提高的過程。我會(huì)在以后的學(xué)習(xí)中不斷學(xué)習(xí),積累經(jīng)驗(yàn), 完善自己。 通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的。只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。6.2致謝在這里我感謝那些曾給我授過課的每一位老師,是你們教會(huì)我專業(yè)知識(shí)。 特別感謝教我們單片機(jī)原理及應(yīng)用的某某老師,是他給我們詳細(xì)講解了單片機(jī)的結(jié)構(gòu)、工作原理,以及各個(gè)引腳功能,還有程序的編寫方法等。這些都是我們這次課程設(shè)計(jì)的基

17、礎(chǔ),沒有某老師的講解,我們要想完成這次課程設(shè)計(jì),是不可能的。我還要感謝我們小組的成員,通過大家的齊心協(xié)力,我們克服了重重阻力終于成功的完成了此次任務(wù)。非常感謝!第七章 附錄7.附錄7.1源代碼/目的:實(shí)現(xiàn)基于單片機(jī)的LED流水燈控制/語言:C; /變量: S1:P3.4口 S2:P3.5口 S3:P3.6口 S4:P3.7口 table1:流水燈樣式控制 table2:數(shù)碼管-9數(shù)字/變量:temp:臨時(shí)變量i:臨時(shí)變量table2index:存儲(chǔ)table2的下標(biāo)/變量:count:累加計(jì)數(shù)器次數(shù) count1:累加單擊第一個(gè)按鍵次數(shù)count2:累加單擊第二個(gè)按鍵次數(shù) /變量:rate:速

18、度變量rate1:速度變量rate2:速度變量#include<reg51.h>#include<intrins.h>sbit S1=P34; sbit S2=P35;sbit S3=P36;sbit S4=P37;unsigned char code table19=0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00; /流水燈樣式控制unsigned char code table210=0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90; /數(shù)碼管-9數(shù)字 un

19、signed char temp,i,table2index=0;unsigned char count1=0,count2=0,count=0; unsigned char rate=100 ,rate1=100,rate2=500; /*/Begin-延遲 void delay(unsigned char z) unsigned int x,y; for(x=z;x>0;x-) for(y=100;y>0;y-);/End-延遲/*/Begin-數(shù)碼管數(shù)字顯示void display(unsigned char j) P1= table2j/10; S3 = 1; delay(

20、10); S3 = 0; P1= table2j%10; S4 = 1; delay(10); S4 = 0; /End-數(shù)碼管數(shù)字顯示/*void main() P1=0xff; TMOD=0x01; /設(shè)置定時(shí)器T0為工作方式 TH0=(65536-50000)/256; /定時(shí)器賦初值 TL0=(65536-50000)%256; EA=1; /開總中斷 ET0=1; /開啟定時(shí)器T0中斷 TR0=1; /啟動(dòng)定時(shí)器T0 while(1)/*/Begin-流水燈樣式控制/Begin-花樣 if(count1=1) /花樣:燈單向向下移模塊子程序 if(count2=1) rate=rat

21、e1; 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=rat

22、e2; 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(co

23、unt1=3) /花樣:個(gè)交替閃爍模塊子程序 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) /花樣:八個(gè)燈交替閃爍模塊子程序 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) /花樣:八個(gè)燈依次全亮,依次滅模塊子程序 for(i=0;i<9;i+) /8個(gè)

溫馨提示

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

評論

0/150

提交評論