欢迎来到天天文库
浏览记录
ID:11408312
大小:30.50 KB
页数:3页
时间:2018-07-11
《单片机 c语言 拖尾流水灯》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机拖尾流水灯BY-零下21度de水效果:同时亮5个LED,中间的最亮,旁边两个渐暗。原理:利用占空比调节LED亮度。思路:占空比有两种调节方法,一种是固定脉宽,调节周期,一种是固定周期,调节占空比,该例程用得是前者。观看效果:http://www.56.com/u79/v_NzMyMDg1ODg.html该程序提供给大家参考,抛砖引玉,望大家做出更漂亮的效果。C源码:#include#defineucharunsignedchar#defineuintunsignedint#defineLEDP1/*硬件为P1口输
2、出,大家相应改一下*/uchari=0;ucharPosition=0x01;/**/voidDelay(ucharn){uchari,j,k;for(i=n;i>0;i--)for(j=100;j>0;j--)for(k=100;k>0;k--);}voidT0_INT(void)interrupt1{uchardis_tmp;dis_tmp=Position;TH0=65432/256;/*定时器T0的中断时间就是固定脉宽,大家仔细看一下就会明白了*/TL0=65432%256;if(i<100)i++;elsei=0;LED=~dis_tmp;
3、/*我的硬件设计是低电平点亮LED,就是灌电流~*/if(i%10==0)/*调整周期,旁边第一盏灯的周期为脉宽的10倍*/{dis_tmp
4、=dis_tmp<<1
5、dis_tmp>>1;LED=~dis_tmp;}if(i==0)/*旁边第二盏灯的周期为脉宽的100倍*/{dis_tmp
6、=dis_tmp<<1
7、dis_tmp>>1
8、dis_tmp<<2
9、dis_tmp>>2;LED=~dis_tmp;}}voidmain(void){uchark,g;ET0=1;TMOD=0X01;EA=1;TH0=55532/256;TL0=55532%256
10、;TR0=1;LED0=0;while(1){for(g=20;g>0;g--){for(k=7;k>0;k--){Position<<=1;Delay(g);}for(k=7;k>0;k--){Position>>=1;Delay(g);}}for(g=0;g<20;g++){for(k=7;k>0;k--){Position<<=1;Delay(g);}for(k=7;k>0;k--){Position>>=1;Delay(g);}}}}
此文档下载收益归作者所有