当前位置:首页 > 单片机 > 单片机
[导读]1 //******************************2 // 51单片机模拟呼吸灯3 // 2012.9.234 // 5 // p0.0接一个LED灯,状态0为亮6 //******************************789 #include10 #define N 2 //亮暗的速率11 #define T

1 //******************************

2 // 51单片机模拟呼吸灯

3 // 2012.9.23

4 //

5 // p0.0接一个LED灯,状态0为亮

6 //******************************

7

8

9 #include

10 #define N 2 //亮暗的速率

11 #define T 800 //PWM的周期

12

13

14 //sbit led0=P0^0;

15 //======================

16 void pwm(int x)

17 {

18 while(x--);

19 }

20 //======================

21

22 void flash1(void){

23 int t = 0;

24 char f = 0;

25 int count = 5;//5次,每个函数执行的次数

26 while(1){

27 P0 = 0x00;

28 pwm(t); //Toff,亮的时间

29 //led0=1;

30 P0 = 0xff;

31 pwm(T-t+100);//Ton,暗的时间

32 if(!f) t+=N+1;//亮速率较快,模拟呼吸

33 else t-=N;//暗速率较慢

34 if(t>T) {f=1;t=T;}//超过最大值时,返回最大值,标志为暗

35 if(t<0) {f=0;t=0;}//超过最小值时,返回最小值,标志为亮

36 // count--;

37 }

38 }

39

40 void main()

41 {

42

43 while(1)

44 {

45 flash1();

46

47 }

48 }


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭