51單片機的七彩LED燈漸變調(diào)光調(diào)色程序_第1頁
51單片機的七彩LED燈漸變調(diào)光調(diào)色程序_第2頁
51單片機的七彩LED燈漸變調(diào)光調(diào)色程序_第3頁
51單片機的七彩LED燈漸變調(diào)光調(diào)色程序_第4頁
51單片機的七彩LED燈漸變調(diào)光調(diào)色程序_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、51單片機的七彩LED丁漸變調(diào)光調(diào)色程序/Main.c/Copyright(C)2013ShenyangJYXD./WENBORUI/Toolchain:KEILFull'c'/#pragmaCDOEDBSB/Compilationdirectives#include;#include;#defineucharunsignedchar#defineuintunsignedintuintPeriod;/Period刷新周期uintPWM;uintPulse;/脈沖個數(shù)ucharSpeed;/速度變量ucharcount;uintexcount;bitGra;/漸變/跳變總控制位b

2、itGra7;/七彩漸亮漸滅控制位bitGra3;/紅綠藍漸亮漸滅控制位bitBP;/亮到暗,暗到亮轉(zhuǎn)換位bitLEDdelay;/LED定時到標志位sbitkeyl=P3A1;/花樣組合鍵1sbitkey2=P3A0;/花樣組合鍵2sbitkey3=P3A5;/速度組合鍵1sbitkey4=P3A4;/速度組合鍵2ucharIed112=0x10,0x030,0x20,0x60,0x40,0x50,0x70,0x50,0x40,0x60,0x20,0x30;/紅、黃、綠、青、藍、粉、白、粉、藍、青、綠、黃ucharled224=0x10,0x00,0x30,0x00,0x20,0x00,0x

3、60,0x00,0x40,0x00,0x50,0x00,0x70,0x00,0x50,0x00,0x40,0x00,0x60,0x00,0x20,0x00,0x30,0x00;ucharled33=0x10,0x20,0x40;/紅、綠、藍ucharledcount,ledcount1;*/以下定義函數(shù)/1毫秒延時函數(shù)delayms();花樣及速度掃描函數(shù)keyscan();/*/*voiddelayms(unsignedintms)unsignedchari;while(ms-)(for(i=0;i;跳變無滅燈過程voidPattern2();/花樣2函數(shù)>跳變有滅燈過程voidPat

4、tern34();voidkeyscan()(if(key4=1)&&(key3=1)Speed=20;Period=25;/預設4種速度200Msif(key4=0)&&(key3=1)Speed=50;Period=50;/500MSif(key4=1)&&(key3=0)Speed=100;Period=100;/1Sif(key4=0)&&(key3=0)Speed=150;Period=200;/1.5Sif(key2=1)&&(key1=1)ledcountl=0;Pattern1();/預設4種花樣i

5、f(key2=0)&&(key1=1)ledcount1=0;Pattern2();if(key2=1)&&(key1=0)ledcount=0;Gra3=1;Pattern34();if(key2=0)&&(key1=0)ledcount=0;Gra7=1;Pattern34();voidvalue()if(Speed=20)PWM=Pulse*8;if(Speed=50)PWM=Pulse*4;/脈沖個數(shù)if(Speed=100)PWM=Pulse*2;if(Speed=150)PWM=Pulse;voidReset(void)unsigne

6、dcharcoderst=0xe4,0xc0,0xe0,0xc0,0xe0,0x32;(*(void(*)(void)(rst)();voidmain()_nop_();_nop_();_nop_();P1=0;TMOD=0x11;/11.0592M晶振的10ms定時初值(100分之一秒)TH0=0x0db;TL0=0x0ff;TH1=0x0ff;/0.05ms(20000分之一秒)TL1=0x0D1;EA=1;/開啟總中斷允許ET0=1;/允許T0定時器中斷ET1=1;/允許T1定時器中斷TR0=1;/開啟T0定時器EX0=1;/開外部中斷0IT0=1;/下降沿觸發(fā)while(1)(keys

7、can();)*/Pattern1()花樣函數(shù)1跳變無滅燈過程/*voidPattern1()(/keyscan();Gra=0;/跳變位=0if(LEDdelay)(LEDdelay=0;P1=led1ledcount;ledcount+;if(ledcount>11)(ledcount=0;*跳變有滅燈過/Pattern2()花樣函數(shù)2程/*voidPattern2()(/keyscan();Gra=0;if(LEDdelay)(LEDdelay=0;P1=led2ledcount;ledcount+;if(ledcount>23)(ledcount=0;*/Pattern3(

8、)花樣函數(shù)33彩漸變/*/*voidPattern3()(keyscan();if(Speed=20)Period=25;if(Speed=50)Period=50;if(Speed=100)Period=100;if(Speed=150)Period=200;Gra=1;Gra3=1;*/*彩漸變/Pattern4()花樣函數(shù)47/*voidPattern34()Gra=1;/漸變位=1/*/定時器0中斷服務程序*/voidtime0(void)interrupt1(TR1=0;TF0=0;TH0=0xdb;/重新寫入初值TL0=0xff;if(!Gra)/執(zhí)行跳變程序(count+;if(

9、count>Speed)(LEDdelay=1;count=0;if(Gra)TR1=1;/開啟TR1;if(!BP)/(if(Gra7)(P1=led1ledcount1;/10ms至L亮相應的LED)if(Gra3)(P1=led3ledcount1;/10ms至L亮相應的LEDPulse+;value();if(Pulse>=Period)(Pulse=Period;BP=1;/一個周期完成轉(zhuǎn)換模式)if(BP)(if(Gra7)P1=led1ledcount1;/10ms至L亮相應的LED)if(Gra3)(P1=led3ledcount1;/10ms至L亮相應的LED)value();Pulse-;/脈沖個數(shù)if(Pulse=0)Pulse=0;BP=0;/一個周期完成轉(zhuǎn)換模式ledcount1+;if(Gra7)(if(ledcount1>11)(ledcount1=0;Gra7=0;if(Gra3)(if(ledcount1>2)(ledcountl=0;)Gra3=0;/*/定時器1中斷服務程序/*voidtimer1()interrupt3(PWM-;TH1=0xff;/0.05ms(20000分之一秒)T

溫馨提示

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

評論

0/150

提交評論