标题: 基于单片机+L298智能小车设计,含Proteus仿真和源程序 [打印本页]

作者: sxx1    时间: 2018-11-16 22:04
标题: 基于单片机+L298智能小车设计,含Proteus仿真和源程序
说明  小车运动通过独立按键控制,通过按键调节不同车轮的速度,从而实现左转或右转,L298驱动电机

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


#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)



作者: 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