|
感觉这个难度系数对于我这个初学者来说有点大,求大神们指导!- #include "reg52.h"
- sbit pwm0=P2^0;
- unsigned char tim=0,zkb=1,flag=0; //tim用来记录定时次数
- void Timer1_ini() //定时器1初始化函数
- {
- EA=1; //开总中断
- ET1=1; //开定时器1中断
- TMOD=0x20; //定时器1工作在方式2
- TR1=1; //启动定时器1
- TH1=255-50; //定时50us高8位初值
- TL1=255-50; //定时50us低8位初值
- }
- void INT_Timer1() interrupt 3 //定时器1中断入口,定时器1中断服务
- {
-
- tim++; //定时器1中断次数,每进入中断一次,次数加1
- if(tim>=200) //pwm周期=250*定时时间
- {
- tim=0;
-
- if(flag==0) {zkb++; if(zkb>=150) flag=1;} //改变占空比 得到呼吸灯效果
- else {zkb--;if(zkb<1) flag=0;} //改变占空比 得到呼吸灯效果
- }
-
- if(tim<zkb) //zkb为占空比
- {
- pwm0=0;
- }
- else
- {
- pwm0=1;
- }
-
- }
- void main()
- {
- Timer1_ini();
- while(1);
- }
复制代码
|
-
-
呼吸灯.rar
11.63 KB, 下载次数: 15, 下载积分: 黑币 -5
评分
-
查看全部评分
|