手电钻厂家
免费服务热线

Free service

hotline

010-00000000
手电钻厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

8位led呼吸程序代码

发布时间:2020-07-21 18:56:41 阅读: 来源:手电钻厂家

前几天从视频上看到一个水滴掉落的程序,看到自己笔记本上的led呼吸灯,感觉他们的算法要求差不多,于是写下一下程序,我也得瑟一下,算是原创吧。有不正之处或者是有需要优化之处欢迎大家批评指正,相互学习(代码中有138译码器的操作,已注释,kingst的单片机开发板可直接实现)#includereg51.h>#define uchar unsigned char#define N 2 //定义的呼吸的速率#define T 700 //定义PWM的周期sbit ENLED = P1^4;//138译码器sbit ADDR0 = P1^0;//138译码器sbit ADDR1 = P1^1;//138译码器sbit ADDR2 = P1^2;//138译码器sbit ADDR3 = P1^3;//138译码器sbit led0=P0^0;sbit led1=P0^1;sbit led2=P0^2;sbit led3=P0^3;sbit led4=P0^4;sbit led5=P0^5;sbit led6=P0^6;sbit led7=P0^7;void pwm(int x){while(x--);//延时函数}void main(){int t=0,i=0;char f=0;ENLED = 0;ADDR3 = 1; 译码器的打开ADDR0 = 0;ADDR1 = 1;ADDR2 = 1; 译码器的操作11111011while(1){if(i=800) {i++;led0=0;pwm(t);//Toff,亮的时间led0=1;pwm(T-t);//Ton,暗的时间if(!f) t+=N+1;//亮速率较快,模拟呼吸else t-=N;//暗速率较慢if(t>T) {f=1;t=T;}//超过最大值时,返回最大值,此时灯灭if(t0) {f=0;t=0;}//超过最小值时,返回最小值,此时灯亮 以后的程序不再注释。}if(i>=800i=1600){ i++;led1=0;pwm(t);led1=1;pwm(T-t);if(!f) t+=N+1;else t-=N;if(t>T){f=1;t=T;}if(t0){f=0;t=0;}}if(i>1600i2400){i++;led2=0;pwm(t);led2=1;pwm(T-t);if(!f) t+=N+1;else t-=N;if(t>T){f=1;t=T;}if(t0){f=0;t=0;}}

南宁磨骨价格

沈阳植发价格

福州热玛吉

相关阅读