作为妹子,当初真的不应该选电子专业。555555
以下程序是输出脉冲是固定频率的,可调节占空比,图中所示为初始50%占空比的波形图以及20%、40%、60%
怎么在这基础上改成:占空比(50%)不变,但频率可调节(初始频率5HZ,可向上调节6、 7 、8HZ,向下调节5、 4 、3HZ。
求指点,万分谢谢
- #include<reg52.h>
- #define uint unsigned int
- sbit pwm=P0^7;
- sbit k1=P2^0;
- sbit k2=P2^1;
- bit bz;//定义一个按键是否松开的标志位
- uchar b;
- uchar m=5;//m为控制占空比的变量,初始占空比50%
- void delay(uint i)
- {
- while(i--);
- }
- void dingshi() interrupt 1//定时中断
- {
- TL0=(65536-1000)%256; //1ms初始化
- TH0=(65536-1000)/256;
- b++;
- if(b==10)
- b=0; //10ms周期定时
- if(b<m)
- pwm=1;
- else
- pwm=0;//高低电平保持时间分配
- }
- void main()
- {
- EA=1;
- ET0=1;
- TMOD=0x01;//定时0工作在方式1,1ms中断1次
- TL0=(65536-1000)%256;
- TH0=(65536-1000)/256;
- TR0=1;//开中断
- while (1)
- {
- if((k1==0)&&(bz==0))
- {
- delay(1110);
- if(k1==0)
- {
- bz=1;
- m++;
- if(m==11)
- m=10;
- }
- }//每按一次占空比自增10%
-
- if((k2==0)&&(bz==0))
- {
- delay(1110);
- if(k2==0)
- {
- bz=1;
- m--;
- if(m==255) if((k1==1)&&(k2==1))
- bz=0;//判断按键是否松开
-
- }
- }
复制代码
|