最新智能循迹小车变速转弯程序.docx

上传人:b****6 文档编号:6002822 上传时间:2023-01-02 格式:DOCX 页数:7 大小:15.67KB
下载 相关 举报
最新智能循迹小车变速转弯程序.docx_第1页
第1页 / 共7页
最新智能循迹小车变速转弯程序.docx_第2页
第2页 / 共7页
最新智能循迹小车变速转弯程序.docx_第3页
第3页 / 共7页
最新智能循迹小车变速转弯程序.docx_第4页
第4页 / 共7页
最新智能循迹小车变速转弯程序.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

最新智能循迹小车变速转弯程序.docx

《最新智能循迹小车变速转弯程序.docx》由会员分享,可在线阅读,更多相关《最新智能循迹小车变速转弯程序.docx(7页珍藏版)》请在冰豆网上搜索。

最新智能循迹小车变速转弯程序.docx

最新智能循迹小车变速转弯程序

 

智能循迹小车变速转弯程序

#include

#defineucharunsignedchar

#defineuintunsignedint

uchara,i,time_count=0,count=0,Dutycycle0=50,Dutycycle1=50,flag;

ucharstate;

/***定义电机控制位***/

sbitINT11=P0^0;//电机控制位,左电机左,芯片中的总开关

sbitINT22=P0^1;//右电机控制位,高电平有效

sbitINT33=P0^2;//控制左电机,从而控制其中的车轮

sbitINT44=P0^3;

sbitfunpwm0=P1^3;///两个控制PWM的端口

sbitfunpwm1=P1^4;

sbitIO4=P2^0;//ST188输出端口

sbitIO1=P2^1;

sbitIO2=P2^2;

sbitIO3=P2^3;

sbitIO5=P0^7;

sfrCCON=0xD8;//PCA控制寄存器

sbitCCF0=CCON^0;//PCA模块0中断标志

sbitCCF1=CCON^1;//PCA模块0中断标志

sbitCR=CCON^6;//PCA计数器阵列溢出标志位

sbitCF=CCON^7;//PCA计数器阵列运行控制位

sfrCMOD=0xD9;//PCA工作模式寄存器

sfrCL=0xE9;//PCA的16位计数器----低8位

sfrCH=0xF9;//PCA的16位计数器----高8位

sfrCCAPM0=0xDA;//PCA模块0的输出脉冲频率

sfrCCAP0L=0xEA;//PCA捕获、比较寄存器——低位字节

sfrCCAP0H=0xFA;//PCA捕获、比较寄存器——高位字节

sfrCCAPM1=0xDB;//PCA模块1的输出脉冲频率

sfrCCAP1L=0xEB;//同上

sfrCCAP1H=0xFB;//同上

sfrPCAPWM0=0xf2;//PCA模块0的PWM寄存器

sfrPCAPWM1=0xf3;//PCA模块1的PWM寄存器

/*------------------------------------------------

uS延时函数,含有输入参数unsignedchart,无返回值

unsignedchar是定义无符号字符变量,其值的范围是

0~255这里使用晶振12M,精确延时请使用汇编,大致延时

长度如下T=tx2+5uS

------------------------------------------------*/

voidDelayUs2x(unsignedchart)

{

while(--t);

}

/*------------------------------------------------

mS延时函数,含有输入参数unsignedchart,无返回值

unsignedchar是定义无符号字符变量,其值的范围是

0~255这里使用晶振12M,精确延时请使用汇编

------------------------------------------------*/

voidDelayMs(unsignedchart)

{

while(t--)

{

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);

}

}

/****************************速度设定:

通过改变参数a,b来来改变两路pwm的占空比数值越大占空比越小*******************************************/

voidpwm0(unsignedinta)

{

CCAP0L=a;

CCAP0H=a;

}

voidpwm1(unsignedintb)

{

CCAP1L=b;

CCAP1H=b;

}

voidpwm_Init()

{

CL=0;

CH=0;

CMOD=0x00;

CCAP0H=CCAP0L=0x00;

CCAPM0=0x42;

CCAP1H=CCAP1L=0x00;

CCAPM1=0x42;

CR=1;

}

delay(i)

{

intk,j;

for(j=1000;j>0;j--)

for(k=200;k>0;k--)

i--;

}

former()

{

INT11=1;

INT22=0;

INT33=1;

INT44=0;

pwm0(45);

pwm1(40);

DelayMs(1000);

}

turnleft0()

{

pwm0(130);

pwm1(30);

DelayMs(1000);

}

turnright0()

{

pwm0(30);

pwm1(130);

DelayMs(1000);

}

turnleft1()

{

pwm0(0Xff);

pwm1(0);

DelayMs(1000);

}

turnright1()

{

pwm0(0);

pwm1(0Xff);

DelayMs(1000);

}

stop()

{

INT11=1;

INT22=1;

INT33=1;

INT44=1;

}

voidturnleft2()

{

INT11=1;

INT22=0;

INT33=0;

INT44=1;

pwm0(0);

pwm1(30);

}

voidturnright2()

{

INT11=0;

INT22=1;

INT33=1;

INT44=0;

pwm0(30);

pwm1(0);

}

/*************************主函数***********************************/

main()

{while

(1)

{

pwm_Init();

DelayMs(20);

while

(1)

{

if(IO5==1)turnright2();

else

{

INT11=1;

INT22=1;

INT33=1;

INT44=1;

}

/*if(IO3==0&&IO2==0&&IO1==0&&IO4==0)former();

if(IO3==0&&IO2==0&&IO1==0&&IO4==1)turnright1();

if(IO3==0&&IO2==0&&IO1==1&&IO4==0)turnright0();

if(IO3==0&&IO2==0&&IO1==1&&IO4==1)turnleft2();

if(IO3==0&&IO2==1&&IO1==0&&IO4==0)turnleft0();

if(IO3==0&&IO2==1&&IO1==0&&IO4==1)turnright1();

if(IO3==0&&IO2==1&&IO1==1&&IO4==0)former();

if(IO3==0&&IO2==1&&IO1==1&&IO4==1)turnleft2();

if(IO3==1&&IO2==0&&IO1==0&&IO4==0)turnleft1();

if(IO3==1&&IO2==0&&IO1==1&&IO4==0)turnleft0();

if(IO3==1&&IO2==0&&IO1==0&&IO4==1)former();

if(IO3==1&&IO2==0&&IO1==1&&IO4==1)turnright1();

if(IO3==1&&IO2==1&&IO1==0&&IO4==0)turnright2();

if(IO3==1&&IO2==1&&IO1==0&&IO4==1)turnleft1();

if(IO3==1&&IO2==1&&IO1==1&&IO4==0)turnright2();

if(IO3==1&&IO2==1&&IO1==1&&IO4==1)former;*/

}

}}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1