單片機課程設計報告:彩燈控制器的設計_第1頁
單片機課程設計報告:彩燈控制器的設計_第2頁
單片機課程設計報告:彩燈控制器的設計_第3頁
已閱讀5頁,還剩22頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.黃河科技學院課程設計任務書工 學院 機械 系機械設計制造及其自動化 專業09 級1班學號朱施澤 指導教師郭曉君題目: 彩燈控制器的設計 課程:單片機課程設計 課程設計時間2012年 12月21日至2012年1月3日共2周課程設計工作內容與基本要求(設計要求、設計任務、工作計劃、所需相關資料)(紙張不夠可加頁)1設計要求利用AT89C51單片機作為微控制器,用16盞以上的LED小燈,實現至少4種彩燈燈光效果(不含全部點亮,全部熄滅);可以用輸入按鈕在幾種燈光效果間切換;可以通過按鈕暫停彩燈效果,使小燈全亮,再次按下相同按鈕后繼續之前的效果。2. 設計任務與要求2.1系統硬件電路設計根據該系統設

2、計的功能要求選擇所用元器件,設計硬件電路。要求用Proteus繪制整個系統電路原理圖。2.2軟件設計根據該系統要求的功能進行軟件設計,繪制整個系統的軟件流程圖;根據流程圖編寫程序并匯編調試通過;列出軟件清單,軟件清單要求逐條加以注釋。2.3 Proteus仿真用Proteus對系統進行仿真并進行軟硬件調試。2.4 編寫設計說明書內容包括任務書、設計方案分析、硬件部分設計、軟件部分設計、調試結果整理分析、設計調試的心得體會等,字數不少于4000字;硬件部分設計要繪制整個系統電路原理圖,對各部分電路設計原理做出說明;軟件設計部分要繪制整個系統及各部分的軟件流程圖,列出程序清單,逐條加以注釋,并在各

3、功能塊前加程序功能注釋。3工作計劃 序號設計內容所用時間1布置任務及調研天3制作與調試天4撰寫設計報告書2天合 計14天4主要參考資料單片機課程設計指導書 皮大能 北京理工大學出版社2010.78051單片機實踐與應用 吳金戎 清華大學出版社2003.8單片機技術基礎教程與實踐 夏路易 電子工業出版社2008.1MCS-51單片機原理接口及應用王質樸 北京理工大學出版社2009.11 基于Proteus的單片機系統設計與仿真實例 蔣輝平 機械工業出版社 2009.7 指導老師簽字: 日 期:. v.目 錄1 系統硬件設計41.1 電路設計41.2 主要元器件介紹51.2.1 AT89c51單片

4、機芯片介紹51.2.2 主要特性52 系統軟件設計72.1 綜述72.2 主程序及流程圖72.2.1 主程序72.3 子程序的編程思路82.3.1延遲子程序流程圖93 系統調試與仿真分析113.1 軟件調試113.1.1 單片機C語言113.1.2 Keil uVision2113.1.3 Proteus123.2 軟件仿真結果及分析133.2.1閃光效果一:單燈向里移動133.2.2閃光效果二:流水左移143.2.3閃光效果三:3燈走馬右移153.2.4閃光效果三:紅色流水內外移動164 致謝175 參考文獻18附錄程序代碼18. v.1 系統硬件設計整個系統以AT-89C51單片機作為主控

5、核心,與發光二極管LED等較少的輔助硬件電路相結合,利用軟件實現對LED彩燈進行控制。本系統具有體積小、硬件少、電路結構簡單及容易操作等優點。1.1 電路設計彩虹燈控制器電路見【圖1】。其主要設計器件有AT89C51,復位電路,時鐘電路,5個按鈕(其中一個為檢測按鈕)。通過軟件設計,使單片機P0和P1作為LED驅動信號輸出口,4個外部按鈕作為按鈕輸入口。圖1 彩虹燈控制器電路圖1.2 主要元器件介紹1.2.1 AT89c51單片機芯片介紹AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Me

6、mory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。1.2.2 主要特性·與MCS-51 兼容 ·4K字節可編程閃爍存儲器 壽命:1000寫/擦循環 數據保留時間:10年·全靜態工作:0Hz-24Hz·三級程序存儲器鎖定·128*

7、8位內部RAM·32可編程I/O線·兩個16位定時器/計數器·5個中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內振蕩器和時鐘電路;1.2.3引腳定義及功能見【圖2】。圖2 AT89C51引腳圖(1) 輸入輸出引腳(P0、P1和P2端口引腳)P0P3是89C51與外界聯系的4個8位雙向并行I/O口。本設計中P0和P1口作為LED驅動信號輸出口,P2口與4個按鈕連接作為按鈕輸入口,控制4中彩虹燈效果。(2) AT89C51單片機的基本結構見【圖3】圖3 AT89C51基本結構2 系統軟件設計2.1 綜述本次的任務是設計一個基于單片

8、機的LED彩燈控制器,需要循環運行四種以上預設的彩燈閃爍方案,這里的各種的方案還有顯示方式都是由單片機內部的程序控制。在這里我將16個發光二極管分別接在P0和P1口,通過程序控制這兩個端口的電平高低,將16個發光二極管的負極接P0和P1口,正極接外部高電平,即P0和P1口的相應端口為低電平時LED就能被點亮。再通過程序循環的讓各個端口以不同的方式點亮來達到各種花樣的效果,并且當中要有一定的延時,延時時間小于人眼視覺暫留時間,否則人眼看上去每個燈都是亮的也就沒有實際效果。設計的LED彩燈系統分為兩部分,即AT89C51主控模塊和發光二極管LED受控模塊。整個系統工作由軟件程序控制運行,同時根據不

9、同的需要,用戶可以在LED彩燈工作時通過主控模塊上的按鈕來實現4種彩燈燈光效果(不含全部點亮,全部熄滅)。模塊功能:該部分主要涉及功能的實現方式,即程序編寫。程序要實現的功能包括讀按鍵,通過對讀入按鍵的值控制LED點亮方式。鍵盤有5個按鍵,其中K1、K2、K3、K4控制LED點亮模式。2.2 主程序及流程圖2.2.1 主程序AT89C51通過編寫程序應完成以下功能:通過P0口和P1控制發光二極管LED的亮與滅,從而實現多種閃爍方案; 用16 盞以上的LED小燈,實現至少4種彩燈燈光效果(不含全部點亮,全部熄滅)。用輸入按鈕在幾種燈光效果間轉換。按照上述要求即可寫出主程序代碼并繪制出主程序流程圖

10、。2.2.2 主程序流程圖 開始 掃描按鍵按鈕一 否 按鈕二是 否按鈕三 效果一 是 否 效果二按鈕四 是 效果三 否 是 效果四2.3 子程序的編程思路雖然大致的流程圖已經繪制完畢,但編程過程中會遇到更加具體的問題,需要編制一些子程序來解決,以下是一些主要子程序的流程圖繪制思路。2.3.1延遲子程序流程圖數碼管的顯示必須有足夠長的時間長到肉眼能夠察覺到,因此在點亮數碼管時要給 開始予其一個適當的延遲。觸發時間i>0· 否 調用 是 計時 j <125 否 是 輸出信號0一個機器周期包括12個時鐘周期。單片機AT89C51工作于12M晶振,它的時鐘周期是1/12(微秒)。

11、它的一個機器周期是12*(1/12)也就是1微秒。一共執行1000次,正好1000微秒,也就是1毫秒。2.3.2按鍵掃描子程序按鍵掃描子程序用來檢測并識別外部輸入按鈕的輸入信號。void KeyScan()if(P2=0xf7) ys1ms(100);if(P2=0xf7)flag=0xf7;if(P2=0xfb)ys1ms(100);if(P2=0xfb)flag=0xfb;if(P2=0xfd)ys1ms(100);if(P2=0xfd)flag=0xfd;if(P2=0xfe)ys1ms(100);if(P2=0xfe)flag=0xfe;其中的狀態標志分別為:0xfe為按鍵1標志 ,0

12、xfd為按鍵2標志 ,0xfb為按鍵3標志,0xf7為按鍵4標。3 系統調試與仿真分析3.1 軟件調試本次所有軟體程序均采用C51語言編寫,程序寫完后要對其編譯,在Proteus軟件里實現硬件電路仿真。下面分別簡單介紹單片機C語言和這兩款軟件。3.1.1 單片機C語言單片機C語言程序設計不同于通用計算機應用程序設計,它必須針對具體的微控制器及外圍電路來完成,為了便于學習單片機應用程序設計和系統開發,很多公司退出了單片機實驗箱、仿真器和開發板等,這些硬件設備可用于驗證單片機程序,開發和調試單片機應用系統。開發8051單片機系統時,使用C語言會使開發周期大為縮短,開發效率大幅提高,程序可讀性好且易

13、于移植,所以使用C語言開發單片機系統已經成為必然趨勢。C語言在單片機系統開發中的優勢: 用C語言編寫的程序可讀性強; 在不了解單片機指令系統而僅熟悉8051單片機存儲結構時就可以開發單片機程序; 寄存器分配和不同存儲器尋址及數據類型等細節可由編譯器管理; 程序可分為多個不同的函數,這使程序設計結構化; 函數庫豐富,數據處理能力強; 程序編寫及調試時間大大縮短,開發效率遠高于匯編語言; C語言具有模塊化編程技術,已編寫好的通用程序模塊很容易植入新程序,這進一步提高了程序開發效率。3.1.2 Keil uVision2C51單片機支持HEX文件,我采用的編譯器是Keil uVision2軟件,該軟

14、件是美國Keil Software 公司開發的,關于8051系列MCU的開發工具,是目前世界上最好的51單片機開發工具之一。軟件本身支持數百種51系列單片機芯片,可以用來編譯C源碼,匯編源程序以及兩者的混合編程代碼,連接重定位目標文件和庫文件,創建HEX文件,調試目標程序等,是一種集成化的文件管理編譯環境。使用步驟如下: 建立一個項目,啟動Keil,單擊“Project菜單/New”選項,從彈出的窗口中選擇要保存的路徑,并輸入項目文件名“彩燈.uv2”,然后保存。這時會彈出一個選擇CPU型號的對話框,根據所使用的單片機來選擇,我用的單片機是AT89C51。 創建程序文件,單擊“File菜單/N

15、ew”選項,輸入C51語言源程序,單擊“File菜單/Save”并輸入程序文件名“彩燈.C”,保存。 程序文件添加到項目中,右鍵點擊“Target 1”前面的“+”,展開里面的內容“Source Group 1”,右鍵單擊“Source Group 1”彈出一個右鍵菜單,單擊“Add File to Groups Source Group 1”,從彈出的窗口中選擇之前保存的文件“彩燈.C”添加到項目中去。 設置當前項目的目標選項,右鍵單擊“Target 1”,從彈出的右鍵菜單中單擊“Option for Target”選項,從彈出的“Options”窗口中選擇“Target”標簽欄,在“Cre

16、ate HEX File”前面打鉤。 運行編譯,右鍵單擊“Target 1”,從彈出的右鍵菜單中單擊“Build target”選項,此時若源程序沒有語法錯誤,Keil就會生成HEX文件,并自動保存在之前設置的路徑里。3.1.3 ProteusProteus是英國Labenter electronics公司開發的電路分析與實物仿真軟件,是目前最好的模擬單片機外圍器件的工具,它可以仿真、分析各種模擬電路與集成電路,軟件提供了大量模擬與數字元器件及外部設備,各種虛擬儀表(如電壓表、電流表、示波器、邏輯分析儀、信號發生器等),特別是它具有對單片機及其外圍電路組成的綜合系統的交互仿真功能。目前,Pro

17、teus仿真系統支持的主流單片機有ARM7(LPC21*)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列等,它支持的第三方軟件開發、編譯和調試環境有Keil uVision2/3、MPLAB等18。Proteus主要由ISIS和ARES兩部分組成,ISIS的主要功能是原理圖設計及電路原理圖的交互仿真,ARES主要用于印制電路板的設計。ISIS提供的Proteus VSM(Virtual System Modelling)實現了混合式的SPICE電路仿真,它將虛擬儀器、高級圖表應用、單片機仿真、第三方程序開發與調試環境有機結合,在搭建硬件模型之前即可在PC上完成

18、原理圖設計、電路分析與仿真及單片機程序實時仿真、測試及驗證。Proteus操作非常簡單,啟動“ISIS.exe”。在設計原理圖時,根據當前電路復雜程度和特定要求,選擇恰當的模塊進行設計,打開模塊式需要單擊“文件/新建設計”(File/New Design)菜單,打開“創建新設計”(Create New Design)對話框,然后選擇相應模塊。 創建空白文件后,先將DSN文件保存到指定位置,接下來就可以開始在圖紙中添加元件了,單擊模式工具上的元件模式(Component Mode)圖標,對象選擇窗口上會出設備(Device),這時單擊“P”按鈕,打開元件選擇窗口,在元件庫選擇硬件電路所需要的元器

19、,合理擺放位置,然后按要求連接好電路圖。3.2 軟件仿真結果及分析完成單片機系統仿真電路圖設計后,即可開始仿真運行單片機綁定的程序文件,雙擊單片機,打開單片機屬性窗口(也可以先在單片機上單擊右鍵,再單擊左鍵,或者選中單片機后按下(Ctrl+E組合鍵),在“Program Files”項中選擇對應的HEX文件。在仿真電路和程序都沒有問題時,直接單擊Proteus主窗口下的“運行”(Play)按鈕,即可仿真運行單片機系統, 在運行過程中如果希望觀察內存、24C0X、溫度寄存器、時鐘芯片等內部數據可在運行時單擊“單步”(Step)或“暫?!保≒ause)按鈕,然后再“調試”(Debug)菜單中打開相

20、應設備。3.2.1閃光效果一:單燈向里移動即按鍵1彩虹燈光效果:上下兩排各8個led二極管自兩端向里依次點亮再返回,單次兩端各亮兩盞,以此循環??梢杂幂斎氚粹o在燈光效果間切換。3.2.2閃光效果二:流水左移即按鍵2彩虹燈光效果:上下兩排各8個led二極管自兩端單向挨個點亮直至全明,點亮后不熄滅,最后回到初始狀態,以此循環。可以用輸入按鈕在燈光效果間切換。3.2.3閃光效果三:3燈走馬右移即按鍵3彩虹燈光效果:上下兩排各8個led二極管自左端點亮右移,上下兩排最多各點亮三盞,以此循環。可以用輸入按鈕在燈光效果間切換。3.2.4閃光效果三:紅色流水內外移動 即按鍵4彩虹燈光效果:上下兩排各8個le

21、d二極管自兩端挨個點亮向內移動,最終全部點亮,出現漸亮效果;接著上下兩排二極管自內側挨個點亮向外移動,最終全部點亮并出現漸暗效果,以此循環??梢杂幂斎氚粹o在燈光效果間切換。4 致謝在這里首先要感謝我的導師郭曉君老師。郭老師平日里工作繁重,日理萬機,但從協調選題,到確定最終任務書,再到最后的程序調試,我無時無刻不感受著郭曉君老師細致而無私的關懷和幫助。本人的課程設計“彩燈控制器的設計”是此次眾多選題中較為棘手的一個,鄙人并不扎實的專業知識更是為之雪上加霜。但是面對如此低級甚至有些重復的問題,郭老師卻誨人不倦,耐心、認真地為我一一解答。郭老師高超的專業素養,嚴謹的治學態度和甘為人師的奉獻精神深深地

22、影響了我,也并將繼續積極地影響我今后的工作和學習生活。郭老師,謝謝您!其次我還想感謝和我一起肩并肩奮斗在此次單片機課程設計第一線的09機電的各位同學們。是你們陪我一起努力,給我鼓勁兒,才使我能在研究生考試后有限的時間里快速地投入,高效地完成,并最終保證了整個設計任務按時按量順利地完成。最后,通過此次課程設計,我對“厚積薄發”有了更深刻的理解做學問是一個過程而不是一個結果,關鍵不是出成績的某一下,而是平日里積累的點點滴滴,分分秒秒。因此,我要感謝大學四年來關心和教育過我的領導們、老師們、同學們,是你們為我指明了做人的方向,夯實了專業的基礎,分享了絢麗而多彩的青春!祝福你們!祝你們身體健康,生活愉

23、快,工作順利,新年吉祥!5 參考文獻1 吳金戎 8051單片機實踐與應用M :清華大學出版社, 2003.8 2 王質樸 MCS-51單片機原理接口及應用M :北京理工大學出版社,2009.113 皮大能 單片機課程設計指導書M :北京理工大學出版社,2010.74 夏路易 單片機技術基礎教程與實踐M :電子工業出版社, 2008.15 蔣輝平 基于Proteus的單片機系統設計與仿真實例M :機械工業出版社, 2009.7附錄 程序代碼*include<reg51.h> /包含單片機寄存器的頭文件*include <intrins.h>unsigned char fl

24、ag=0xff;/狀態標志void ys1ms(unsigned int i);void KeyScan();rzy();rlszy();rsdzmyy();rlsnwyd();rjl(); rja(); zkb(unsigned char d);/*函數功能:主函數*/void main(void)while(1)KeyScan();switch(flag) case 0xfe:rzy();break;/掃描狀態標志,為1時,第1種效果 case 0xfd: rlszy(); break;/掃描狀態標志,為2時,第2種效果 case 0xfb:rsdzmyy(); break;/掃描狀態標志

25、,為3時,第3種效果 case 0xf7:rlsnwyd();break; /掃描狀態標志,為4時,第4種效果 / default:P1=0x00; /* 延時程序*/void ys1ms(unsigned int i) /延時程序,i是形式參數,i為1時 延時約1MSunsigned int j;for(;i>0;i-) /變量i由實際參數傳入一個值,因此i不能賦初值 for(j=0;j<125;j+) /j由0自增到125 所用的時間大約是1MS ; /* 按鍵掃描 狀態標志0xfe按鍵1標志 0xfd按鍵2標志 0xfb按鍵3標志 0xf7按鍵4標志*/void KeySca

26、n()if(P2=0xf7) ys1ms(100);if(P2=0xf7)flag=0xf7;if(P2=0xfb)ys1ms(100);if(P2=0xfb)flag=0xfb;if(P2=0xfd)ys1ms(100);if(P2=0xfd)flag=0xfd;if(P2=0xfe)ys1ms(100);if(P2=0xfe)flag=0xfe; /* 按鍵1效果程序:單燈向里移動*/rzy() P0=0x7e;/01111110 P1=0x7e; ys1ms(90); P0=0xbd;/10111101 P1=0xbd; ys1ms(90); P0=0xdb;/11011011 P1=0

27、xdb; ys1ms(90);P0=0xe7;/11100111 P1=0xe7; ys1ms(90); P0=0xff; P1=0xff; ys1ms(300); P0=0xe7; P1=0xe7; ys1ms(90); P0=0xdb; P1=0xdb; ys1ms(90); P0=0xbd; P1=0xbd; ys1ms(90);P0=0x7e; P1=0x7e; ys1ms(90); P0=0xff; P1=0xff; /*按鍵2效果程序:流水左移函數*/ rlszy()unsigned char a,b,i,led,led1;/聲明無字符整形變量a,i,led,led1led=0xf

28、e; /左移初始值定位led1=0x7f;P0=led; /輸出P1=led1;ys1ms(120); /延時for(i=1;i<8;i+) /設置移動7次a=led<<i;/燈左移i位P0=a; /依次點亮 b=led1>>i; P1=b;ys1ms(150); /*按鍵3效果程序:3燈走馬右移函*/rsdzmyy() P0=0x1f;/00011111 P1=0xff; ys1ms(80); P0=0x8f; P1=0xfe; ys1ms(80); P0=0xc7; P1=0xfc; ys1ms(80); P0=0xe3; P1=0xf8; ys1ms(80); P0=0xf1;

溫馨提示

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

評論

0/150

提交評論