找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9983|回复: 13
收起左侧

小妹刚学单片机,控制直流电机的正反转和加减速,但是仿真电机转速特慢是什么问题啊

  [复制链接]
ID:71234 发表于 2014-12-27 20:53 | 显示全部楼层 |阅读模式
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar m;
sbit k1=P2^0;
sbit k2=P2^1;        
sbit k3=P2^2;  
sbit k4=P2^3;
sbit k5=P2^4;
sbit pwm1=P1^4;
void init() ;               
void delay(int x)
{
      uint i,j;
      for(i=0;i<=x;i++)
      for(j=1;j<=110;j++);
}

main()
{   
   TMOD=0X01;
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   TR0=1;
   ET0=1;
   EX0=1;EX1=1;
   IT0=1;IT1=1;
   EA=1;
   while(1)
   {      
       if(k1==0)
        {
           delay(10);
           if(k1==0)
           {  
            P1=0x01;
           }
           while(!k1);
        }

        if(k2==0)
        {
           delay(10);
           if(k2==0)
           {
             P1=0x02;
           }
           while(!k2);
        }
        if(k3==0)
        {
           delay(10);
           if(k3==0)
           {
            P1=0X00;
            pwm1=0;
           }
        while(!k3);
        }
        if(k4==0)
        {
           delay(10);
           if(k4==0)
           {  
             m++;
           }
           while(!k4);
        }
        if(k5==0)
        {
            delay(10);
            if(k5==0)
             {  
              m--;
             }
             while(!k5);
        }
                if(m>3)m=3;
                if(m<1)m=1;   
     }
}
void init()
{
   IE=0X82;
   TMOD=0X01;               
   TH0=(65636-50000)/256;   
   TL0=(65636-50000)%256;
   TR0=1;
   P1=0X00;  
   P2=0Xff;  
   m=2;
}
void timer0(void) interrupt 1
{     
      static uchar c=0;
      TH0=(65636-50000)/256;   
      TL0=(65636-50000)%256;
      c++;
          if(c==3)
          {
          c=0;
          }
          if(c<m)
          {
          pwm1=0xff;
          }
          else pwm1=0x00;                       
}

QQ截图20141227204749.png
回复

使用道具 举报

ID:71234 发表于 2014-12-27 20:54 | 显示全部楼层
求大神。
回复

使用道具 举报

ID:67992 发表于 2014-12-27 22:15 | 显示全部楼层
把仿真文件放上来,方便大家调试。
回复

使用道具 举报

ID:70512 发表于 2014-12-27 22:42 | 显示全部楼层
你程序中用到了外部中断0和1,(EX0=1;EX1=1;IT0=1;IT1=1;)硬件上的P3^2和P3^3口没接。用到外部中断0和1,要设置中断优选级和对应中断函数。
   
  
回复

使用道具 举报

ID:71234 发表于 2014-12-28 09:09 | 显示全部楼层
这是我的文件

电机转动.rar

65.02 KB, 下载次数: 134

回复

使用道具 举报

ID:71234 发表于 2014-12-28 09:09 | 显示全部楼层
dgahz 发表于 2014-12-27 22:15
把仿真文件放上来,方便大家调试。

已上传。
回复

使用道具 举报

ID:71234 发表于 2014-12-28 09:12 | 显示全部楼层
大哥小弟 发表于 2014-12-27 22:42
你程序中用到了外部中断0和1,(EX0=1;EX1=1;IT0=1;IT1=1;)硬件上的P3^2和P3^3口没接。用到外部中断0和1, ...

不怎么明白。
回复

使用道具 举报

ID:67992 发表于 2014-12-28 12:18 | 显示全部楼层
做了小小改动: 电机转动.rar (70.65 KB, 下载次数: 247)

评分

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

查看全部评分

回复

使用道具 举报

ID:77360 发表于 2015-4-18 16:44 | 显示全部楼层
请问那五个控制信号,就是下面两个圆圈,上面一个框框的元器件叫什么?急
回复

使用道具 举报

ID:74784 发表于 2015-7-12 09:42 | 显示全部楼层
11111111111 发表于 2015-4-18 16:44
请问那五个控制信号,就是下面两个圆圈,上面一个框框的元器件叫什么?急

那是按钮开关~~~~~~~~~~~~~晕糊糊

评分

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

查看全部评分

回复

使用道具 举报

ID:195441 发表于 2017-5-4 10:04 | 显示全部楼层
没有lcd显示吗
回复

使用道具 举报

ID:238776 发表于 2017-10-12 10:22 | 显示全部楼层
感觉仿真不出来
回复

使用道具 举报

ID:82765 发表于 2017-10-12 12:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

ID:251085 发表于 2017-11-19 15:36 | 显示全部楼层
程序好不好使呢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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