基于單片機AT89C51控制的鍵控流水燈課程設(shè)計報告_第1頁
基于單片機AT89C51控制的鍵控流水燈課程設(shè)計報告_第2頁
基于單片機AT89C51控制的鍵控流水燈課程設(shè)計報告_第3頁
基于單片機AT89C51控制的鍵控流水燈課程設(shè)計報告_第4頁
基于單片機AT89C51控制的鍵控流水燈課程設(shè)計報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、寧波技師學(xué)院課 程 設(shè) 計 報 告論文題目 鍵控流水燈 專業(yè)班級 _ 學(xué)生姓名 指導(dǎo)教師 _寧波技師學(xué)院電氣技術(shù)系二零一三 9年21月摘 要:單片機是一種集成電路芯片,采用超大規(guī)模技術(shù),把具有數(shù)據(jù)處理能力的微處理器、隨機存取數(shù)據(jù)存儲器、只讀程序存儲器、輸入輸出電路、可能還包括定時計數(shù)器、串口通信口、顯示驅(qū)動電路,脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器及A/D轉(zhuǎn)換器等電路集成到一塊芯片上,構(gòu)成一個最小而完善的計算機系統(tǒng)。這些電路在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計者事先規(guī)定的任務(wù)。鍵控流水燈設(shè)計通過編寫代碼實現(xiàn)16個LED燈5種流水燈顯示方式。在設(shè)計中主要采用AT89C51這款芯片作為控制主體,用

2、按鈕來切換流水燈的發(fā)光方式來顯示流水燈的發(fā)光模式。系統(tǒng)通過P1口外接16個發(fā)光二極管,P3口接2個按鍵,一個按鍵進(jìn)行方式選擇,數(shù)碼管顯示方式編號;用一個鍵來控制流水燈流動的速度。數(shù)碼管接在AT89C51的P0和P2口上,而流水燈的發(fā)光二極管經(jīng)過電阻接在P1口上。設(shè)計中輔以簡單的設(shè)備和必要的電路,設(shè)計了一款流水燈,最終到達(dá)預(yù)期的目的。   目錄概 述11引言22課題綜述21.1課題來源與意義31.2面臨的問題33 系統(tǒng)設(shè)計33594代碼編寫95系統(tǒng)調(diào)試166系統(tǒng)運行結(jié)果與分析167電路個人分工及組員分工16結(jié)  論17參考文獻(xiàn)18附錄1

3、91  引言 單片機控制系統(tǒng)能夠取代以前利用復(fù)雜電子線路或者數(shù)字電路構(gòu)成的控制系統(tǒng),可以軟件控制來實現(xiàn),并能夠?qū)崿F(xiàn)智能化?,F(xiàn)在的單片機的控制范疇無所不在,例如通信產(chǎn)品、家用電器、智能儀器儀表、過程控制和專用控制裝置等等,單片機的應(yīng)用領(lǐng)域越來越廣泛。 2  課題綜述  隨著經(jīng)濟(jì)的開展、科技的突飛猛進(jìn),芯片業(yè)得到了迅速的開展,是單片機技術(shù)在各種民用和工業(yè)控制等領(lǐng)域得到更廣泛的應(yīng)用。單片機憑借其低本錢、高性能的不可代替優(yōu)勢已經(jīng)成為了微電腦 控制的主力軍。學(xué)習(xí)單片機的有效方法是將理論與實踐并重,因此通過對單片機可

4、控流水燈的設(shè)計和研究,鼓勵學(xué)生在熟悉根本原理的前提下,與實際應(yīng)用相聯(lián)系,提出自己的方案,來完善設(shè)計,使得他們更好的掌握單片機的應(yīng)用。  本次課程設(shè)計的要求是對16個LED燈設(shè)計5種流水燈顯示方式,用一個按鍵進(jìn)行方式選擇,并用一個數(shù)碼管顯示方式編號;用一個鍵來控制流水燈流動的速度,并用一個數(shù)碼管顯示方式編號。 所要解決的問題有流水燈顯示方式的設(shè)計,LED燈的驅(qū)動問題,七段顯示數(shù)碼管的驅(qū)動問題以及系統(tǒng)對外界按鈕的相應(yīng)問題。下面將對各個問題展開論述。 3  系統(tǒng)設(shè)計  實現(xiàn)這個課題我們使用AT89C51作為控制主體,使用

5、十六個共陽極發(fā)光二極管作為LED顯示流水燈,兩個七段顯示數(shù)碼管來顯示流水燈顯示方式,外接兩個按鈕,其中用一個按鍵進(jìn)行方式選擇,并用一個數(shù)碼管顯示方式編號;用一個鍵來控制流水燈流動的速度,并用一個數(shù)碼管顯示方式編號。外接一個晶振來提供外接時鐘脈沖。 單片機課程設(shè)計 - 2 - 模塊圖如下: 流程圖如下:芯片AT89C51是核心,P0、P1、P2、P3口均可以作為I/O口使用。兩個數(shù)碼管經(jīng)過電阻接在AT89C51的P0和P2口上,P1口外接16個發(fā)光二極管,P3口接2個按鍵,一個按鍵進(jìn)行方式選擇,數(shù)碼管顯示方式編號;用一個鍵來控制流水燈流動的速度,數(shù)碼管顯示方式編號。

6、 單片機課程設(shè)計 圖3-3主體控制模塊圖 3.2.2按鍵控制模塊、按鍵控制模塊采用獨立式按鍵接口設(shè)計。獨立式按鍵是每一個按鍵占用一根I/O端線。特點:各個按鍵相互獨立,電路配置靈活;按鍵數(shù)量較多時,I/O端線消耗較多,電路復(fù)雜;軟件結(jié)構(gòu)簡單 圖3-4按鈕控制模塊圖 時鐘電路用于產(chǎn)生單片機工作時所需的時鐘信號,在芯片的外部通過18腳、19腳接晶體振蕩器和微調(diào)電容,形成反應(yīng)電路,構(gòu)成一個穩(wěn)定的自激振蕩器。電路中的C1、C2取30Pf左右,二晶體振蕩器的頻率范圍通常是1.2-12MHZ,晶體振蕩器的頻率越高,振蕩頻率越高。 圖3-5時鐘模塊圖  顯示模塊 顯示

7、模塊主體是八段顯示數(shù)碼管。共陽極數(shù)碼管的8個發(fā)光二極管的陽極二極管正端連接在一起。通常,公共陽極接高電平一般接電源,其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端為低電平時,那么該端所連接的字段導(dǎo)通并點亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。圖3-4顯示模塊圖發(fā)光二極管就是LED,是一種由磷化鎵等半導(dǎo)體材料制成的、能直接將電能轉(zhuǎn)換成光能的發(fā)光顯示器件。當(dāng)其內(nèi)部有一定電流通過時,就是發(fā)光。發(fā)光二極管具有功耗低、體積小、可靠性高、壽命長和相應(yīng)快等優(yōu)點。 流水燈模塊采用16個LED發(fā)光二極管,通過代碼的編寫,實現(xiàn)五種流水移動,其中電阻的作用是保護(hù)二極管,向它提供較小的電流,防

8、止二極管因為電流過大而燒毀。 設(shè)計中,發(fā)光二極管是共陽極接法的,我們只需要將其初值不斷的左移就會看到LED輪流的被點亮,也就實現(xiàn)了流水燈的功能。圖3-5流水燈模塊圖圖3-6 鍵控流水燈圖4 代碼編寫  #include<reg51.h> #define smg1 P0#definelsd1P1#define smg2P2unsignedinti=1,u=7,j,n,c,k,h=7,s=1;unsignedchar sj=20; unsignedchar js;code unsignedchara=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xb

9、f,0x7f; code unsignedcharb=0xf9,0xa4,0xb0,0x99,0x92;code unsignedchard=0xf9,0xa4,0xb0,0x99,0x92;bitwnen1=0;bitanj=0;sbitaj1=P30;sbitaj2=P31;voidwnlsd1(void);voidwnlsd2(void);voidwnlsd3(void);voidwnlsd4(void);voidwnlsd5(void);voidsjms1(void);voidsjms2(void);voidsjms3(void);voidsjms4(void);voidsjms5(v

10、oid);voidmsms1(void);voidmsms2(void);voidmsms3(void);void msms4(void);voidmsms5(void);voidzd1(void);voidzd2(void);voidcsh(void);voidsjkz(void);voidddh(void);main()csh();while(1)if(anj)anj=0;sjkz();ddh();if(i=1) if (wnen1) wnen1=0;wnlsd1(); sjms1(); else if(i=2) if(wnen1) wnen1=0; wnlsd2();sjms2();el

11、se if(i=3) if(wnen1) wnen1=0;wnlsd3();sjms3(); else if(i=4) if(wnen1) wnen1=0;wnlsd4();sjms4(); else if(i=5) if(wnen1) wnen1=0;wnlsd5();sjms5();if(s=1) msms1(); else if(s=2) msms2(); else if(s=3) msms3(); else if(s=4) msms4(); elseif(s=5) msms5(); voidcsh(void)TMOD=1;TH0=0x3c;TL0=0xb0;TH1=0xec;TL1=0

12、x78;EA=1;ET0=1;TR0=1;ET1=1;TR1=1;js=sj;voidzd1(void) interrupt 1TH0=0x3c;TL0=0xb0;js=js-4;if(js=0) wnen1=1; js=sj; voidzd2(void) interrupt 3TH1=0xec;TL1=0xb0;anj=1;voidsjkz(void)if(aj1=0)while(!aj1);sj=sj-4;if(sj=0) sj=20;js=sj;s=s+1;if(s>5) s=1; voidddh(void)if(aj2=0)while(!aj2);i=i+1;if(i>5)

13、i=1;voidwnlsd1(void)lsd1=an;n+;if(n>7)n=0;voidwnlsd2(void)lsd1=an;n=n+2;if(n>7)n=0;voidwnlsd3(void) lsd1=au; u=u-2; if(u=-1) u=7; voidwnlsd4(void)lsd1=ac;c=c+4;if(c>7) c=0; voidwnlsd5(void)lsd1=ah;h-;if(h=-1)h=7;voidsjms1(void) smg1=b0;voidsjms2(void) smg1=b1;voidsjms3(void)smg1=b2;voidsjms

14、4(void)smg1=b3;voidsjms5(void)smg1=b4;voidmsms1(void) smg2=d0;voidmsms2(void)smg2=d1;voidmsms3(void)smg2=d2;voidmsms4(void)smg2=d3;voidmsms5(void)smg2=d4;5  系統(tǒng)調(diào)試通過對編寫好的代碼用keil進(jìn)行編譯后,由于對軟件不是很熟悉導(dǎo)致編好的代碼一直找不到目標(biāo),然后請同學(xué)幫助后,很快就編寫成功了6  系統(tǒng)運行結(jié)果與分析通過接線端子口接通提供電源后,再通過穩(wěn)壓電路將12V交流電壓轉(zhuǎn)換成5V直流電壓,數(shù)碼管和l

15、ed燈能正常顯示,數(shù)碼管顯示1,led燈以兩個燈亮的形式開始右移,當(dāng)顯示完畢后,按下第一個鍵,數(shù)碼管顯示2,led燈以兩個燈亮的形式開始跳兩個燈顯示。類似的,能夠顯示5種方式。另外一個鍵控制led的顯示的速度,通電就數(shù)碼管就顯示1,按下第二個鍵,數(shù)碼管顯示2,led燈加速運行,類似的5種速度。由于電路上少加了一組可以控制按下按鈕后數(shù)碼管的顯示數(shù)字亂跳的電路,在制作的時候也沒有想到,還有在畫PCB的時候?qū)?shù)碼管的管腳接錯了,使得打印在PCB板上的數(shù)碼管上的線路接錯了,檢查維修好后,整體就有點不整潔,使整個電路整體觀上顯的缺乏之處。7電路個人分工及組員分工圖負(fù)責(zé)工程 組員原理圖設(shè)計PCB圖制作實物

16、圖制作程序設(shè)計電路板打孔電路板腐蝕結(jié)  論通過這次的課程設(shè)計,讓我學(xué)習(xí)到了很多知識以及認(rèn)識到了很多問題。同時我意識到了一個很重要的問題,那就是課程設(shè)計之前的準(zhǔn)備工作也是很重要的,包括提前預(yù)習(xí)設(shè)計的題目,上網(wǎng)和去圖書館查閱資料。我也清楚的知道了,資料也是那么重要,否那么在一個新穎的題目面前,你將無從下手。通過準(zhǔn)備工作,這樣可以保正在設(shè)計的時候,有了充足的準(zhǔn)備,使得自己不會在真正要開始課程設(shè)計的時候,對著題目發(fā)愣,沒有什么進(jìn)展。因此,我們覺得這個也是對待學(xué)習(xí)的一種好的態(tài)度,以后在學(xué)習(xí)中,也要一直以這種好的態(tài)度對待。 除此之外,讓我發(fā)現(xiàn)這次的鍵控流水燈設(shè)計,對于我們以前

17、的學(xué)習(xí)如數(shù)碼管顯示、led燈等的知識,不僅是一次很好的運用,而且讓我再次花心思去復(fù)習(xí)了以前學(xué)習(xí)的知識點,運用之初相互結(jié)合知識點,使得知識點可以聯(lián)系起來,對我的學(xué)習(xí)有了很大的好處。 在程序設(shè)計的過程中,也遇到了好多的問題,剛開始在代碼調(diào)試的時候,一直會存在錯誤,也有過很失望的時候,在通過老師的幫助后,經(jīng)過很屢次的修改以后,終于把程序代碼改好。但是在代碼燒入芯片中,以及數(shù)碼管的顯示等問題上面,我們還是花費了好多時間,但是還是沒有頭緒。最終還是在老師同學(xué)的幫助下,以及幫我們把代碼進(jìn)行了修改,才得以完成了鍵控流水燈根本功能。 總的來說,這次設(shè)計獲益勝多。因為本次課程設(shè)計是一個團(tuán)隊的合作,所以,不僅使得我們團(tuán)結(jié)合作,學(xué)習(xí)到了知識,還讓我們更加的學(xué)會溝通。不僅培養(yǎng)了實踐能力,還培養(yǎng)了設(shè)計思維,同時也鍛煉了動手實際操作能力,在摸索該如何設(shè)計電路使之實現(xiàn)所需功能的過程中,鍛煉了運用所學(xué)知識的靈活性,加深了對知識的理解及提高了解決問題的能力。在體會到設(shè)計電路的艱辛的同時,更能體會到成功喜悅和快樂。 在這次的設(shè)計中,我學(xué)習(xí)了很多,也享受到了其中的樂趣。從這次課程設(shè)計中我了解到流水燈的設(shè)計還是很好玩的,以前在路上夜景中的流水燈看上去很復(fù)雜,現(xiàn)在自己編程以后,知道了原理,相信在器件的允許下,我們也是可以完成那種效果的參考文獻(xiàn)1?單片機原理及及應(yīng)用?王迎旭編 機械

溫馨提示

  • 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

提交評論