标题: 51单片如何实现输出一个脉宽和脉间都可调的方波?请大侠指点指点 [打印本页]

作者: Tmtz.jack    时间: 2021-7-28 09:26
标题: 51单片如何实现输出一个脉宽和脉间都可调的方波?请大侠指点指点
如题

作者: AUG    时间: 2021-7-28 10:29
定时器作为信号的周期,就假设1ms的定时器吧,如果你将你的信号设置为0-100可调脉宽的话,那么通过定时器计数,计数到了你要的脉宽值就进行变换。
time()//定时器函数
{
   Time_num++;
   if(time_num == 100) time_num = 0;
}
main()  //主函数
{
while(1)
{
  if(time_num ==0)
  {
   OUT = 1;//输出高电平
  }
  if(duty == time_num ) OUT = 0;  // 输出低电平
}
}
差不多就这样个原理吧,里面的变量就全局都行。
作者: wfqxgw    时间: 2021-7-28 12:11
51好多型号都内置PWM吧.仔细看看说明书.容易操作的.
作者: isyido    时间: 2021-7-28 12:29
用PWM最好
作者: lkc8210    时间: 2021-7-28 14:31
void timer0_int (void) interrupt 1
{
        TR0 = 0;
        if(PWM_Swap)
        {
                TL0 = PWM_H_TL;
                TH0 = PWM_H_TH;        }else
        {
                TL0 = PWM_L_TL;
                TH0 = PWM_L_TH;        }
        PWM_Swap = !PWM_Swap;
        P27 = PWM_Swap;
        TR0 = 1;
}


作者: Tmtz.jack    时间: 2021-7-30 17:32
先谢谢各位的指点,我试试,后续继续请教




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1