找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8369|回复: 1
打印 上一主题 下一主题
收起左侧

关于PWM脉冲输出的问题,困扰我很久了

[复制链接]
跳转到指定楼层
楼主
ID:66425 发表于 2014-9-20 19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>        // 本程序是要输出脉冲周期为20ms高电平1ms的脉冲用来控制舵机,用两个定时器,每次中断时间都是0。1ms,中断10次就是1ms。
sbit P1_0=P1^0;          //          用两个定时器,每次中断时间都是0。1ms,中断10次就是1ms。         
int n,m,np=0,mp=0;
void init()          //初始化设置
{
   TMOD=0X22;
   EA=1;
   ET0=1;
   ET1=1;
}
main()
{  

   init();
   P1_0=0;
   while(1)
   {
   n=10;m=200-10;                           // n m确定中断的次数
   TH0=156;                                  //定时器方式2的初值设置晶振是12mhz,每0.1ms一个中断TH0=256-100;
   TL0=156;
   TH1=156;
   TH1=156;
   P1_0=1;TR0=1;
   while(np<n){P2=np;}         //等待定时器1的中断,中断10次后就是1ms
   TR0=0;P1_0=0;TR1=1;          
   while(mp<m){P3=mp;}
    TR1=0;
        }
}
void pwm0() interrupt 1
{                                                                 
   np++;   P1_0=1;                   //np用来判别中断了几次,与n比较中断10后就执行下面程序
    TH0=156;
    TL0=156;
}
void pwm1() interrupt 3
{
  mp++;          P1_0=0;
   TH1=156;
   TL1=156;
}
求大神解答已经困扰我很久了

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:444215 发表于 2020-5-30 14:56 | 只看该作者
为啥不用一个定时中断呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表