簡(jiǎn)易多彩廣告燈控制設(shè)計(jì)_第1頁(yè)
簡(jiǎn)易多彩廣告燈控制設(shè)計(jì)_第2頁(yè)
簡(jiǎn)易多彩廣告燈控制設(shè)計(jì)_第3頁(yè)
簡(jiǎn)易多彩廣告燈控制設(shè)計(jì)_第4頁(yè)
簡(jiǎn)易多彩廣告燈控制設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、信息與電氣工程學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)(2012 /2013學(xué)年第 二 學(xué)期)課程名稱(chēng) : 單片機(jī)原理及接口技術(shù) 題 目 : 簡(jiǎn)易多彩廣告燈控制設(shè)計(jì) 專(zhuān)業(yè)班級(jí) : 自動(dòng)化10-03 學(xué)生姓名 : 學(xué) 號(hào): 1004103 指導(dǎo)教師 : 苗敬利、楊怡君等 設(shè)計(jì)周數(shù) : 2周 設(shè)計(jì)成績(jī) : 2013年 6 月 26 日目 錄1、 課程設(shè)計(jì)目的1.1原始數(shù)據(jù)及主要任務(wù)21.2技術(shù)要求22、課程設(shè)計(jì)正文2.1 硬件設(shè)計(jì)22.1.1確定硬件電路總體設(shè)計(jì)方案22.1.2單元電路設(shè)計(jì)32.1.2.1時(shí)鐘電路32.1.2.2復(fù)位電路32.1.2.3鍵盤(pán)輸入電路42.1.2.4數(shù)字顯示電路52.1.2.5廣告燈電路5

2、2.1.2.6總電路圖62.1.3 系統(tǒng)調(diào)試72.2 軟件設(shè)計(jì)72.2.1系統(tǒng)分析72.2.2 系統(tǒng)設(shè)計(jì)82.2.2.1 按鍵確認(rèn)程序82.2.2.2 數(shù)碼管顯示程序82.2.2.3延時(shí)程序82.2.2.4.四種廣告燈控制程序82.2.3系統(tǒng)實(shí)施93、 課程設(shè)計(jì)總結(jié)174、 參考文獻(xiàn)181、課程設(shè)計(jì)目的1.1 原始數(shù)據(jù)及主要任務(wù)設(shè)計(jì)并制作出一個(gè)以單片機(jī)為核心的彩燈閃爍控制系統(tǒng):(1)確定總體設(shè)計(jì)方案(2)、設(shè)計(jì)鍵盤(pán)輸入電路(3)、設(shè)計(jì)顯示電路(4)、合理分配地址,編寫(xiě)系統(tǒng)程序(5)、利用protel設(shè)計(jì)硬件電路原理圖和pcb圖(6)、軟硬件聯(lián)機(jī)調(diào)試1.2 技術(shù)要求設(shè)計(jì)一個(gè)以mcs-51單片機(jī)為

3、核心的簡(jiǎn)易多彩廣告燈閃爍控制系統(tǒng),2位數(shù)碼管顯示閃爍控制方案,分別顯示01、02、03、和10號(hào)方案,初始化為00,彩燈滅;2個(gè)控制按鍵,一個(gè)加一數(shù)字鍵,一個(gè)確定鍵,循環(huán)10個(gè)花型的方案。方案01為左循環(huán)亮一秒閃爍;方案02為右循環(huán)亮一秒閃爍;方案03為“100000000、1100000011111111”遞增間隔1秒閃爍;方案10為“01010101,10101010”間隔一秒閃爍;其余方案燈滅。2、 課程設(shè)計(jì)正文2.1硬件設(shè)計(jì)2.1.1確定硬件電路總體設(shè)計(jì)方案根據(jù)設(shè)計(jì)要求,首先確定硬件的主要組成部分,主要包括了單片機(jī)最小系統(tǒng)中的時(shí)鐘電路、復(fù)位電路和本課設(shè)需要的按鍵控制電路、led燈顯示電

4、路、廣告燈方案顯示電路,最后由5v直流電源對(duì)各部分電路提供電源??偟脑O(shè)計(jì)框圖如圖1。at89c51時(shí)鐘電路復(fù)位電路直流5v供電電路按鍵控制電路led燈顯示電路方案顯示電路圖1 硬件設(shè)計(jì)總框圖2.1.2單元電路設(shè)計(jì)2.1.2.1時(shí)鐘電路時(shí)鐘電路提供的時(shí)鐘信號(hào)是單片機(jī)工作時(shí)必須的控制信號(hào),只有正確的提供了時(shí)鐘信號(hào),單片機(jī)才能?chē)?yán)格按照時(shí)序執(zhí)行指令進(jìn)行工作。時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路設(shè)計(jì)有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種事外部時(shí)鐘方式。本課設(shè)采用的是內(nèi)部時(shí)鐘方式。內(nèi)部是中方式的時(shí)鐘電路由一個(gè)6mhz的晶振和兩個(gè)30pf的電容組成,時(shí)鐘電

5、路的電路圖如圖2。圖2 時(shí)鐘電路2.1.2.2復(fù)位電路復(fù)位是單片機(jī)的初始化操作,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài),為擺脫死鎖狀態(tài),也需要復(fù)位按鍵使rst引腳為高電平使單片機(jī)復(fù)位。本課設(shè)采用51單片機(jī)典型手動(dòng)復(fù)位電路,電路由一個(gè)200的電阻、一個(gè)1k的電阻和一個(gè)22uf的極性電容組成。當(dāng)按下復(fù)位鍵后復(fù)位口rst變?yōu)楦唠娖?,?jīng)過(guò)兩個(gè)機(jī)器周期單片機(jī)復(fù)位,單片機(jī)從地址為0000h處重新執(zhí)行程序。復(fù)位電路的電路圖如圖3。圖3 復(fù)位電路 2.1.2.3鍵盤(pán)輸入電路本課設(shè)的鍵盤(pán)輸入電路由一個(gè)加一鍵和一個(gè)確定鍵組成,每個(gè)按鍵都接一個(gè)1k的上拉電阻。加一鍵控制方案類(lèi)型

6、,并通過(guò)顯示電路的顯示,共有10種方案類(lèi)型,其中第01、02、03、10號(hào)方案對(duì)應(yīng)有相應(yīng)的廣告燈顯示方案,其余為廣告燈全滅。確定鍵確定方案讓廣告燈開(kāi)始閃亮。鍵盤(pán)輸入電路如圖4.圖4 鍵盤(pán)輸入電路 2.1.2.4數(shù)字顯示電路數(shù)字顯示電路主要有兩個(gè)共陽(yáng)極數(shù)碼管組成,采用靜態(tài)顯示方案,將共陽(yáng)極數(shù)碼管的段碼由p0、p2口輸出,驅(qū)動(dòng)數(shù)碼管顯示。每條支路加一個(gè)200的限流電阻。顯示電路復(fù)位后顯示00,當(dāng)不斷按下加一鍵是,數(shù)碼管分別顯示01、02、03、04、05、06、07、08、09、10,分別對(duì)應(yīng)十種相應(yīng)的顯示方案。顯示電路電路圖如圖5.圖5 數(shù)字顯示電路 2.1.2.5廣告燈電路廣告燈電路為本課設(shè)主

7、要控制的電路,由八個(gè)發(fā)光二極管組成,每個(gè)發(fā)光二極管接一個(gè)200的限流電阻。廣告燈電路如圖6.當(dāng)確定鍵按下后,廣告燈即開(kāi)始按照數(shù)碼管顯示的數(shù)字顯示不同的閃亮方案,其中方案01為左循環(huán)亮一秒閃爍;方案02為右循環(huán)亮一秒閃爍;方案03為“100000000、1100000011111111”遞增間隔1秒閃爍;方案10為“01010101,10101010”間隔一秒閃爍;其余方案燈滅。圖6 廣告燈電路2.1.2.6總電路圖總電路如圖7.圖7 總電路圖2.1.3 系統(tǒng)調(diào)試首先在proteus中畫(huà)好電路圖,加載程序查看仿真效果。對(duì)不滿(mǎn)足要求的地方,首先檢察設(shè)計(jì)思路是否正確,在設(shè)計(jì)思路正確的前提下針對(duì)錯(cuò)誤的

8、類(lèi)型檢察硬件的選擇和對(duì)應(yīng)軟件的設(shè)計(jì)是否正確,發(fā)現(xiàn)錯(cuò)誤后首先考慮是否可以通過(guò)改變軟件來(lái)實(shí)現(xiàn),軟件不能實(shí)現(xiàn)的再考慮改變硬件電路實(shí)現(xiàn)。本課設(shè)在仿真調(diào)試中遇到的難點(diǎn)主要是對(duì)加一鍵的確定,由于在方案運(yùn)行時(shí)要求加一鍵仍然有效,而每種方案中的延時(shí)程序與按鍵的延時(shí)去抖程序相互交錯(cuò),給確定加一鍵的一次有效按下帶來(lái)了很大的困難,經(jīng)常出現(xiàn)按時(shí)間短了沒(méi)有效果,按時(shí)間長(zhǎng)了又會(huì)確認(rèn)兩次的情況。最后幾經(jīng)修改才打到了要求的效果,當(dāng)上一種方案正在運(yùn)行時(shí),按下加一鍵不要松開(kāi),等廣告燈全滅后再松開(kāi),可使加一鍵每次都成功確認(rèn)一次。在硬件實(shí)物做好后,加載程序調(diào)試,對(duì)與仿真情況不符的電路檢察焊接情況和硬件的好壞。最后對(duì)操作的流暢性進(jìn)行完

9、善,使硬件電路易于操作,不會(huì)出現(xiàn)錯(cuò)誤判斷。在硬件調(diào)試時(shí),本課設(shè)遇到的困難主要是由于查閱資料時(shí)的疏漏我們把數(shù)碼管的c腳和e腳接反了,導(dǎo)致數(shù)字無(wú)法正常輸出。由于硬件電路已經(jīng)完成,要改動(dòng)是比較復(fù)雜的。后來(lái)在研究是發(fā)現(xiàn),所謂的數(shù)碼管段碼其實(shí)是人為規(guī)定的,變動(dòng)硬件中的c腳和e腳與變動(dòng)程序中的c、e兩腳對(duì)應(yīng)的電平是一樣,所以我將書(shū)中的共陽(yáng)極數(shù)碼管段碼“根據(jù)”我們電路進(jìn)行了修改,換了c、e對(duì)應(yīng)的電平。重新編譯加載后,果然顯示正常了,從而避免了對(duì)硬件的修改。2.2軟件設(shè)計(jì)2.2.1系統(tǒng)分析本課設(shè)的程序主要分為按鍵確認(rèn)、延時(shí)、數(shù)碼管顯示和四種廣告燈控制幾部分。按鍵確認(rèn)采用典型的延時(shí)去抖法,是按鍵每次按下都只被有

10、效確認(rèn)一次。延時(shí)程序主要用于去抖和廣告燈閃亮間隔的控制,數(shù)碼管顯示則是給相應(yīng)的p口賦值段碼。四種廣告燈控制用于控制8個(gè)發(fā)光二極管的閃亮順序和個(gè)數(shù)。程序設(shè)計(jì)的總框圖如圖8. 開(kāi)始判斷有無(wú)加一鍵按下調(diào)用顯示方案調(diào)用led顯示方案判斷有無(wú)確定鍵按下圖8 程序設(shè)計(jì)總框圖2.2.2 系統(tǒng)設(shè)計(jì)2.2.2.1 按鍵確認(rèn)程序通過(guò)void key_detect()子函數(shù)采集相應(yīng)的p口的電平判斷按鍵是否按下,程序見(jiàn)系統(tǒng)實(shí)施中的源程序。2.2.2.2 數(shù)碼管顯示程序通過(guò)void display(void)子函數(shù)來(lái)顯示相應(yīng)的方案數(shù),程序見(jiàn)系統(tǒng)實(shí)施中的源程序。2.2.2.3延時(shí)程序通過(guò)void delay(unsign

11、ed int )子函數(shù)來(lái)完成延時(shí)功能,程序見(jiàn)系統(tǒng)實(shí)施中的源程序。2.2.2.4.四種廣告燈控制程序通過(guò)分別調(diào)用void right_loop()、void left_loop()、void other_program()、void ji_ou()四種子函數(shù)來(lái)顯示相應(yīng)的閃爍方案,程序見(jiàn)系統(tǒng)實(shí)施中的源程序。2.2.3系統(tǒng)實(shí)施本課設(shè)所用源程序如下:#include<reg52.h>#include<intrins.h>unsigned char codetable=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsign

12、ed int flag = 0;void key_detect(void);void display(void);void delay(unsigned int );void right_loop();void left_loop();void other_program();void increase();void ji_ou();sbit k1=p00;/加一鍵sbit k2=p01; /確定鍵void main()while(1) key_detect();if(flag=11)flag=0;display(); /*函數(shù)功能:實(shí)現(xiàn)任務(wù)一: 流水燈左循環(huán)亮1秒閃爍*/void left_

13、loop() unsigned char temp;temp=0x7f; while(1)temp=_crol_(temp,1); delay(100); p1=temp;delay(100);p1=0xff;if(k1=0)p1=0xff;/燈全滅delay(20);if(k1=0)p1=0xff;flag+;delay(10);while(!k1); /檢測(cè)是否松開(kāi)按鍵rdelay(20); while(!k1); break; /*函數(shù)功能:實(shí)現(xiàn)任務(wù)二: 流水燈右循環(huán)亮1秒閃爍*/void right_loop()unsigned char temp;temp=0xfe; while(1

14、)temp=_cror_(temp,1);delay(100);p1=temp;delay(100);p1=0xff;if(k1=0)delay(20);if(k1=0)p1=0xff;flag+;delay(10);while(!k1); /檢測(cè)是否松開(kāi)按鍵rdelay(20); while(!k1);break;/*函數(shù)功能:所有燈滅*/void other_program()p1=0xff;delay(10);if(k1=0)delay(10);if(k1=0)p1=0xff;flag+;delay(10);while(!k1); /檢測(cè)是否松開(kāi)按鍵rdelay(20); while(!

15、k1);/*函數(shù)功能:實(shí)現(xiàn)任務(wù)三: 遞增間隔1秒閃爍*/void increase()unsigned int i = 0;unsigned char a=0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00;while(1)if(i>8) i=0;p1=ai;delay(100);p1=0xff;delay(100);i+;if(k1=0)delay(10);if(k1=0)p1=0xff;flag+;delay(10);while(!k1); /檢測(cè)是否松開(kāi)按鍵rdelay(20); while(!k1);break;/*函數(shù)功能:實(shí)現(xiàn)任務(wù)十: 實(shí)

16、現(xiàn)奇偶間隔1秒閃爍*/void ji_ou()unsigned char a=0x55,0xaa;unsigned int i = 0;while(1)if(i>1)i=0;p1=ai;delay(100);p1=0xff;delay(100);i+;if(k1=0)delay(10);if(k1=0)p1=0xff;flag+;delay(10);while(!k1); /檢測(cè)是否松開(kāi)按鍵delay(20); while(!k1);break; /*函數(shù)功能:數(shù)碼管上的顯示*/void display(void) /顯示函數(shù)unsigned int shi,ge; shi=flag/1

17、0;/取十位 ge=flag%10; /取個(gè)位p2=tableshi;/送十位數(shù)delay(1);p3=tablege;/送個(gè)位數(shù)delay(1); /*函數(shù)功能:按鍵檢測(cè)*/void key_detect() if(k1=0)delay(10);if(k1=0) flag+;while(!k1); /檢測(cè)是否松開(kāi)按鍵relse if(k2=0)delay(10);if(k2=0)switch(flag)case 1:left_loop();break;case 2:right_loop();break;case 3:increase();break;case 10:ji_ou();break

18、;default:other_program();while(!k2); /檢測(cè)是否松開(kāi)按鍵r/*函數(shù)功能:延時(shí)入口參數(shù):z*/void delay(unsigned int z)unsigned int x,y;for(x=z;x>0;x-)for(y=619;y>0;y-); 3、課程設(shè)計(jì)總結(jié)經(jīng)過(guò)了兩周的忙碌,課程設(shè)計(jì)圓滿(mǎn)結(jié)束了,我在本次課程設(shè)計(jì)中主要負(fù)責(zé)程序的編寫(xiě)和調(diào)試。剛開(kāi)始看到課設(shè)要求時(shí),感到完全無(wú)法下手,不知道該怎么把平時(shí)所學(xué)的每個(gè)元件的知識(shí)與要求聯(lián)系起來(lái),后來(lái)經(jīng)過(guò)和其他組員商量,決定先畫(huà)出程序流程圖,再?gòu)牧鞒虉D入手逐步找的每個(gè)環(huán)對(duì)應(yīng)的元件。本課設(shè)所用程序?yàn)閏語(yǔ)言,主要

19、利用對(duì)加一按鍵的判斷對(duì)標(biāo)志變量flag進(jìn)行從1到10輪賦值,其中對(duì)按鍵的判斷中用到了典型的延時(shí)去抖程序。利用得到的flag值確定數(shù)碼管的段碼,將段碼直接賦給p口,控制數(shù)碼管的顯示。然后再判斷確定鍵按下后利用switch開(kāi)關(guān)語(yǔ)句對(duì)flag進(jìn)行判斷,調(diào)用對(duì)應(yīng)的廣告燈子程序,控制p口的電平變化,來(lái)實(shí)現(xiàn)廣告流水燈的控制。在程序調(diào)試過(guò)程中,深切體會(huì)到了細(xì)節(jié)決定成敗這句話的正確性,平時(shí)再使用產(chǎn)品時(shí)總覺(jué)得道理很簡(jiǎn)單,覺(jué)得按一下按鍵就是讓某個(gè)電路接通,可真正自己設(shè)計(jì)時(shí)才發(fā)現(xiàn)用程序去確定一次按鍵是要考慮很多因素的,就連斷開(kāi)的一瞬間也得考慮到,利用這個(gè)電平變化來(lái)控制程序走向。每一點(diǎn)疏漏都會(huì)使目標(biāo)無(wú)法完成,幸好有可以利用proteus進(jìn)行仿真,可以最大程度上減少對(duì)硬件的修改。在

溫馨提示

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

評(píng)論

0/150

提交評(píng)論