这些问题推荐你到CSDN去问,那里的专业的人比这里多,回答的比较快
#include <reg52.h> //12M晶振sbit PWM=P1^0 //定义P1^0为输出端口
unsigned int pwm_h=2430,pwm //定义pwm信号中的高电平时间
范围 535< pwm_h <2430
bit fa
void Init_Timer0() //定时器初始化子程序
{
TMOD = 0x01
TH0 = 0x0FF
TL0 = 0x0F6
EA = 1
ET0 = 1
TR0 = 1 //定时器开关打开
}
void main() //主函数
{
Init_Timer0() //定时器初始化
PWM=0
while(1)
{
if(fa)
{
fa=0
pwm_h=20000-pwm_h
}
}
}
void Timer0() interrupt 1 using 1
{
TH0 =(-pwm_h)/256
// (65535-200) /256=0xff
TL0 =(-pwm_h)%256 //0.1ms一个记时器周期
236 % 256 = 236
fa=1
PWM=~PWM
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)