找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于单片机的298电机按键正反转并且可以调速

[复制链接]
跳转到指定楼层
楼主
//解释下载可见

#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
sbit IN1=P3^7;
sbit IN2=P3^6;
sbit IN3=P3^1;      //????k3?P3^5
sbit IN4=P3^0;
sbit ENA=P1^7;      //???
sbit ENB=P1^6;      //???
sbit k6=P3^2;      
sbit k5=P3^3;
sbit k4=P3^4;      //????     //??????????ε?????????
sbit k3=P3^5;      //????
uchar pwm_count,count;
void delay(uint z)
{   
uint x,y;
for(x=100;x>0;x--)
     for(y=z;y>0;y--);
}
void Init()
{
count=0;
pwm_count=1;
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
TR0=1;
ET0=1;
EA=1;
}
void keyscan()
{
if(k6==0)       //??????
{
  delay(5);
  if(k6==0)
  {
    IN2=1;
   IN1=0;
  }
  while(!k6);
}
if(k5==0)         //??????
{
  delay(5);
  if(k5==0)
  {
    IN2=0;
   IN1=1;
  }
  while(!k5);
}
if(k4==0)      
{
  delay(5);
  if(k4==0)
  {
   count=0;
    pwm_count++;
   if(pwm_count==41)
   {
    pwm_count=40;        //
   }
   
   
  }
  while(!k4);
}
if(k3==0)      
{
  delay(5);
  if(k3==0)
  {
   count=0;
    pwm_count--;
   if(pwm_count==0)
   {
    pwm_count=1;          //?????
   }   
  }
  while(!k3);
}
}
void main()
{
Init();
while(1)
{
  keyscan();
}
}
void Timer0() interrupt 1
{
TR0=0;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
if(count<pwm_count)
{
  ENA=1;
}
else
{
  ENA=0;
}
count++;
if(count==40)
{
  count=0;
}
TR0=1;  
}


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

使用道具 举报

沙发
ID:1 发表于 2019-7-7 22:42 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

板凳
ID:579416 发表于 2019-7-11 10:51 | 只看该作者

回复

使用道具 举报

地板
ID:579416 发表于 2019-7-11 10:54 | 只看该作者
这是按键模块,IO口如下使用L298N来驱动模块,L298N模块的接线可以按照我这个或者按照你的意愿接。



回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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