找回密码
 立即注册

QQ登录

只需一步,快速开始

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

占空比设置的50%方波出来的不对啊

[复制链接]
楼主
ID:858964 发表于 2021-4-15 16:12 | 显示全部楼层
建议试用用定时器中断方式:

//主函数:
void main(void)
{
   EA=1;                  
   ET0=1;                  
   TMOD=0x01;              //使用定时器T0的模式1
   TH0=(65536-50000)/256;  
   TL0=(65536-50000)%256;
   TR0=1;            
   while(1)  //无限循环等待中断
       ;
}

// T0中断服务函数:
void Time1(void) interrupt 3 using 0 //“interrupt”
  WO =~ WO //输出引脚电平取反
  TH0=(65536-50000)/256;  
  TL0=(65536-50000)%256;
}

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

沙发
ID:858964 发表于 2021-4-15 16:16 | 显示全部楼层
我在上面写的 “ T0中断服务函数” 漏了个花括号,应为:

// T0中断服务函数:
void Time1(void) interrupt 3 using 0 //“interrupt”
{
  WO =~ WO //输出引脚电平取反
  TH0=(65536-50000)/256;  
  TL0=(65536-50000)%256;
}

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:858964 发表于 2021-4-15 23:03 | 显示全部楼层

我在上面的解答,仍有个bug:
void Time1(void) interrupt 3 using 0 //“interrupt”  应改正为:


void Time0void) interrupt 3 using 0 //“interrupt”
{
  WO =~ WO //输出引脚电平取反
  TH0=(65536-50000)/256;  
  TL0=(65536-50000)%256;
}

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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