MSP430技术william hill官网
直播中

何阿敏

7年用户 5经验值
擅长:控制/MCU
私信 关注
[问答]

急求51单片机输出pwm波的程序,能从一个I/O口输出就行,之前找了很多都改不对

急求51单片机输出pwm波的程序,能从一个I/O口输出就行,之前找了很多都改不对
已退回2积分

回帖(5)

何建庚

2017-7-15 14:12:26
精度要求高吗?不高的话弄一个定时器,翻转电平,这样不就好了??
举报

liqijian101

2017-7-17 06:19:06
我也觉得是翻转电平  好久不用51  暂时没啥程序
举报

孟生

2017-7-17 07:23:11
IO口输出高电平然后延时,再输出低电平再延时,循环下去就产生自己想要的不同比和占空周期的PWM
举报

孟生

2017-7-17 07:27:17
不同占空比和周期的PWM,笔记本电脑键盘真的不好用,手碰到触摸板打字就会产生顺序颠倒胡言乱语。
举报

小S咯

2017-7-17 09:04:25
我说一个IO模拟PWM把。我用的是新塘的8051
首先定时器初始化
void TIMER_INIT (void)
{
    TIMER0_MODE1_ENABLE;
    clr_T0M;
    u8TH0_Tmp = (65536-1000)/256;
    u8TL0_Tmp = (65536-1000)%256;   

   
    TH0 = u8TH0_Tmp;
    TL0 = u8TL0_Tmp;

    set_ET0;                                    //enable Timer0 interrupt
    set_EA;                                     //enable interrupts
    set_TR0;                                    //Timer0 run
}

定时器中断
void Timer0_ISR (void) interrupt 1  //interrupt address is 0x000B
{
    TH0 = u8TH0_Tmp;
    TL0 = u8TL0_Tmp;   
    timecnt++;
    if(timecnt>=100)
        timecnt=0;
   
    if(dat>timecnt)
        P00=1;
    else
        P00=0
}

主函数改变dat的值就会改变占空比了,0-100。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分