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

2019-07-15 15:49发布

急求51单片机输出pwm波的程序,能从一个I/O口输出就行,之前找了很多都改不对
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
山代王
1楼-- · 2019-07-15 19:40
精度要求高吗?不高的话弄一个定时器,翻转电平,这样不就好了??
liqijian101
2楼-- · 2019-07-16 00:21
我也觉得是翻转电平  好久不用51  暂时没啥程序
3312856
3楼-- · 2019-07-16 00:37
IO口输出高电平然后延时,再输出低电平再延时,循环下去就产生自己想要的不同比和占空周期的PWM
3312856
4楼-- · 2019-07-16 04:03
不同占空比和周期的PWM,笔记本电脑键盘真的不好用,手碰到触摸板打字就会产生顺序颠倒胡言乱语。
小S咯
5楼-- · 2019-07-16 04:45
我说一个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。

一周热门 更多>