找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1745|回复: 4
收起左侧

单片机pwm程序问题,用仿真和示波器都测不出来正确的波形

[复制链接]
ID:876099 发表于 2021-7-29 23:39 | 显示全部楼层 |阅读模式
各位大佬我想请教一下我程序是哪里有问题,我用仿真和示波器都测不出来正确的波形,求指教

单片机源程序如下:
  1. #include <REGX51.H>
  2. unsigned int condition=80;
  3. //#define pin P1
  4. sbit pin=P1^0;
  5. void main()
  6. {
  7.     TMOD=0x01;
  8.     TL0 = 0xec;                //设置定时初值
  9.         TH0 = 0xFF;
  10.         EA=1;
  11.         ET0=1;               
  12.         TR0 = 1;
  13. }
  14. void Isr01() interrupt 1
  15. {
  16.     static unsigned int cnt;
  17.         TL0 = 0xec;                //设置定时初值
  18.         TH0 = 0xFF;
  19.     cnt++;
  20.     if(cnt>=100)
  21.     {
  22.         cnt=0;
  23.     }
  24.     if(cnt<condition)              
  25.     {
  26.     pin=0;
  27.     }
  28.     else
  29.     {
  30.     pin=1;
  31.     }
  32.         }
复制代码



回复

使用道具 举报

ID:213173 发表于 2021-7-30 06:39 | 显示全部楼层
主函数没有受到while(1);约束跑飞了。
void main()
{
        TMOD=0x01;
        TL0 = 0xec;                //设置定时初值
        TH0 = 0xFF;
        EA=1;
        ET0=1;
        TR0 = 1;
        while(1);
}
回复

使用道具 举报

ID:332444 发表于 2021-7-30 09:04 | 显示全部楼层
回复

使用道具 举报

ID:876099 发表于 2021-7-30 16:34 | 显示全部楼层
wulin 发表于 2021-7-30 06:39
主函数没有受到while(1);约束跑飞了。
void main()
{

能说一下怎么改进吗,还是就把while后面加冒号
回复

使用道具 举报

ID:876099 发表于 2021-7-30 17:47 | 显示全部楼层
wulin 发表于 2021-7-30 06:39
主函数没有受到while(1);约束跑飞了。
void main()
{

好的我调试出来了非常感谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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