标题:
基于单片机+L298智能小车设计,含Proteus仿真和源程序
[打印本页]
作者:
sxx1
时间:
2018-11-16 22:04
标题:
基于单片机+L298智能小车设计,含Proteus仿真和源程序
说明 小车运动通过独立按键控制,通过按键调节不同车轮的速度,从而实现左转或右转,L298驱动电机
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
捕获.PNG
(81.57 KB, 下载次数: 86)
下载附件
仿真图
2018-11-16 21:58 上传
#include <reg51.h>
#define uchar unsigned char
sbit IN1 = P2^0;
sbit IN2 = P2^1;
sbit IN3 = P2^2;
sbit IN4 = P2^3;
sbit ENA = P2^4;
sbit ENB = P2^5;
sbit LeftUp = P1^0;
sbit LeftDown = P1^1;
sbit RightUp = P1^2;
sbit RightDown = P1^3;
//**×óóòÂÖ×óËù¶èμ÷½ú±äá¿
uchar numL,numR;
//***********************
void init_time()
{
TMOD=0X01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA=1;
ET0=1;
TR0=1;
}
void time0() interrupt 1 using 1
{
static uchar num;
num++;
if(num==numR) ENB=~ENB;
if(num==numL) ENA=~ENA;
if(num==100){ENA=~ENA;ENB=~ENB;num=0;}
TH0=(65536-500)/256;
TL0=(65536-500)%256;
}
void main()
{
numL=70;numR=20;
ENA=ENB=1;
IN1=IN3=1;IN2=IN4=0;
init_time();
while(1)
{
if(!LeftUp) { while(!LeftUp); numL+=5;
if(numL>100)numL=0;}
if(!LeftDown) { while(!LeftDown); numL-=5;
if(numL>100)numL=0;}
if(!RightUp) { while(!RightUp); numR+=5;
if(numR>100)numR=0;}
if(!RightDown){ while(!RightDown);numR-=5;
if(numR>100)numR=0;}
}
}
全部资料51hei下载地址:
控制小车的运动.zip
(124.18 KB, 下载次数: 218)
2018-11-16 21:59 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
51hei_lion
时间:
2020-11-5 11:04
这个资源非常好,准备下载认真学习一下
作者:
54cyt
时间:
2021-6-30 23:53
楼主能解释下这段吗void main() { numL=70;numR=20; ENA=ENB=1; IN1=IN3=1;IN2=IN4=0;
作者:
54cyt
时间:
2021-6-30 23:53
楼主能解释下这段吗void main()
{
numL=70;numR=20;
ENA=ENB=1;
IN1=IN3=1;IN2=IN4=0;
作者:
ycs89554171
时间:
2021-10-14 14:20
准备下载认真学习一下
作者:
陌上花开啊
时间:
2022-3-26 15:52
请问楼主能解释一下程序各个含义吗?初学者不太懂
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1