找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

一个单片机定时器控制可调频率和占空比的pwm波,仿真出来pwm端口一直处于高电平状态

查看数: 3426 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-9-4 21:57

正文摘要:

程序自己模仿的  可是仿真出来pwm端口一直处于高电平状态 想问问是什么问题 电路原理图如下: 单片机源程序: #include <reg52.h> #define  uchar unsigned char #define  ...

回复

ID:398736 发表于 2018-9-16 19:25
q设置的不对
ID:398692 发表于 2018-9-16 16:38
q变量设置的不对,q变量在定义中设置成了int型,应该设置成float 或 double型。
ID:394504 发表于 2018-9-6 15:29
  int  i=0,q=0.5,f=500;//设置初值占空比0.5 频率0.5khz  //这里q为整型 所以 之后的q 一直为0

                      if(100*q<i<=100)  //这里有 语法错误  应该 是 if (100*q<i && i<=100)
给楼主个建议  按键 消抖 别用延时 用几毫秒查键判断按键是否按下 如果连续多次判定检测为按下则按键确认为按下  
ID:394504 发表于 2018-9-6 15:18
int  i=0,q=0.5,f=500;//设置初值占空比0.5 频率0.5khz  这里 q为整型  所以 q一直为0  
ID:139455 发表于 2018-9-5 19:55
q变量设置的不对,q变量在定义中设置成了int型,应该设置成float 或 double型。改下试试

评分

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

查看全部评分

ID:393736 发表于 2018-9-5 14:14
急啊  有没有人能回答一下
ID:393736 发表于 2018-9-5 09:54
jefelee 发表于 2018-9-5 08:45
pwm=0的部分你好像没有写。。。                                                                        ...

pwm=0我放到中断里面了 在后面。我是一个个定时器控制的频率和占空比
ID:354282 发表于 2018-9-5 08:45
pwm=0的部分你好像没有写。。。                                                                                                     看这个 对照一下#include   <reg51.h>      typedef   unsigned   char   uchar;      sbit   P0_0=P0^0;   sbit   P0_1=P0^1;    sbit   P0_2=P0^2;   sbit   P0_3=P0^3;   sbit   P0_4=P0^4;   sbit   P2_0=P2^0;   sbit   P2_1=P2^1;   sbit   P2_2=P2^2;   sbit   P2_3=P2^3;   sbit   P2_4=P2^4;   sbit   P3_4=P3^4;        uchar   time=0;      uchar   period=30;      uchar   high=10;    uchar   th0=0;   uchar   tl0=1;   bit    dir;           void dealy()   {    uchar i;    for(i=0;i<100;i++);    }        void   timer0()   interrupt   1   using   1      {                TH0=0xfc;     /*¶¨ê±Æ÷3õÖμÖØ×°ÔØ*/                TL0=0x18;                          time++;                          P3_4=~P3_4;         if(dir==1)           {                                                  if(time==high)   /*¸ßμçÆ½3ÖDøê±¼ä½áêø£¬±äμí*/                   P2_0=th0;                 /*¾-1y·′ÏàÆ÷·′Ïà*/                                                                       else   if(time==period)     /*ÖüÆúê±¼äμ½£¬±ä¸ß*/                          {   time=0;                              P2_0=tl0;                /*¾-1y·′ÏàÆ÷·′Ïà*/                                                                                                                              }                                           }                  else          if(time==high)   /*¸ßμçÆ½3ÖDøê±¼ä½áêø£¬±äμí*/                                            P2_1=th0;                 /*¾-1y·′ÏàÆ÷·′Ïà*/                                                                            else   if(time==period)     /*ÖüÆúê±¼äμ½£¬±ä¸ß*/                          {   time=0;                              P2_1=tl0;                /*¾-1y·′ÏàÆ÷·′Ïà*/                                                                          }                      }      void   main()      {                     P0=0x00;                 P2=0x00;          TMOD=0x01;   /*¶¨ê±Æ÷0·½ê½1*/            TH0=0xfc;     /*¶¨ê±Æ÷×°ÔØ3õÖ죬éèÖÃÂö3åDÅoÅμÄÕ¼¿Õ±èÎa1£ˉ5*/            TL0=0x18;                                     ET0=1;   /*¿a¶¨ê±Æ÷0ÖD¶Ï*/            TR0=1;    /*Æô¶ˉ¶¨ê±Æ÷0*/                                      while(1)             {                         if(P0_0==1)                 EA=1;     /*¿aCPUÖD¶Ï*/                           if(P0_1==1)                         EA=0;         /*1ØCPUÖD¶Ï*/                          if(P0_2==1)                         {                         dir=~dir;  /*×aÏò¿ØÖÆ*/                         while(P0_2!=0)                         {};                          }                          if(P0_3==1)                         {                           high++;                          if(high==30)                          high=0;                         while(P0_3!=0)                         {};                          }                  }          }            

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

Powered by 单片机教程网

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