蓝牙串口通信遥控小车Word格式文档下载.docx

上传人:b****5 文档编号:19788797 上传时间:2023-01-10 格式:DOCX 页数:22 大小:2.17MB
下载 相关 举报
蓝牙串口通信遥控小车Word格式文档下载.docx_第1页
第1页 / 共22页
蓝牙串口通信遥控小车Word格式文档下载.docx_第2页
第2页 / 共22页
蓝牙串口通信遥控小车Word格式文档下载.docx_第3页
第3页 / 共22页
蓝牙串口通信遥控小车Word格式文档下载.docx_第4页
第4页 / 共22页
蓝牙串口通信遥控小车Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

蓝牙串口通信遥控小车Word格式文档下载.docx

《蓝牙串口通信遥控小车Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《蓝牙串口通信遥控小车Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

蓝牙串口通信遥控小车Word格式文档下载.docx

•TR2=1;

//启动T2定时器

•while

(1);

//死循环,等待T2定时器的溢出中断

•}

•voidTimer2_Server(void)interrupt5

•staticuintTimer2_Server_Count;

•//定义静态变量,用来计数T2定时器的溢出次数(进入本函数的次数)

•TF2=0;

•//T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的

•Timer2_Server_Count++;

•if(Timer2_Server_Count==16)//T2定时器的预装载值为0x0BDC,溢出16次就是1秒钟。

•{

•Timer2_Server_Count=0;

•P1_7=~P1_7;

//LED11反转显示。

•}

2.本系统软硬件设计

系统主要由单片机产生PWM信号,通过电机驱动轮胎的旋转,对其的转速进行控制,使车子行驶前进。

根据题目要求,我们的设计分硬件、软件两部分。

2.1单元硬件电路设计

2.1.151单片机最小系统的制作方案设计

2.1.2小车51系统+驱动(马达)+电池的接线

2.1.3蓝牙和单片机和马达的接线

附录1主要元器件清单

序号

名称

规格

数量

1

锂电池+配套充电器

186507.4V2200mAh锂电池+锂电充电器

2

L298N直流电机驱动板带5V3A输出

L298N驱动芯片双H桥直流电机驱动芯片

驱动部分峰值电流2A,带5V3A输出

3

ZK-1小车底盘

1个5mm加厚底盘+2个直流减速电机+2个优质橡胶轮胎+万向轮+电机导线+螺丝螺母+铜柱+码盘等

4

51蓝牙串口模块

蓝牙串口模块带电源转换电路支持5V供电

5

2.54mm杜邦线

40P彩色杜邦线双头1P对1P长20CM一排40根

6

瓷片电容

22P插件

7

单排针

40P1根

8

轻触开关

6*6*6

9

电解电容

10uf35V

10

电阻

470欧5色环直插

11

10K5色环直插

12

电路板

PCB覆铜板板或者5x7万用版

13

超声波测距模块

HC-SR04

14

超声波测距模块支架

支架需要配套的螺丝螺母

15

晶振

11.0592M

16

40PIC座

插件DIP40

17

单片机学习板

 

附录2电路原理图及印制电路板图

1.

2.

3.

4.

5.超声波串口模块

1.主程序

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

uintma,mb,mc,PWM=6000;

sbitout1=P1^2;

//motoA1

sbitout2=P1^3;

//motoA2

sbitout3=P1^4;

//motoB1

sbitout4=P1^5;

//motoB2

bitPWMIO;

voiddelay(uintt)//延时程序1

{

ucharj;

while(t--)

{for(j=1;

j>

0;

j--);

}

}

voidinit()

{

TMOD=0x21;

//设置定时器1为工作方式2设置定时器0为工作方式1

TH1=0xfd;

TL1=0xfd;

TH0=(65536-20000)/256;

//20ms定时器T0中断一次

TL0=(65536-20000)%256;

SCON=0x50;

TR1=1;

EA=1;

ES=1;

ET0=1;

TR0=1;

voidyou()//右急弯

out1=1;

out2=0;

out3=0;

out4=1;

delay(100);

voidzuo()//左急弯

out1=0;

//右轮正转

out2=1;

out3=1;

//左轮反转

out4=0;

voidqian()//前进

out3=0;

voidhou()//后退

delay(200);

voidleftup()//左前

out2=1;

//左轮PWMIO输出调慢

out4=PWMIO;

voidrightup()//右前

//右轮PWMIO输出调慢

out2=PWMIO;

//左轮正转

voidleftdown()//左后

//右轮后退

out2=0;

out3=PWMIO;

;

voidrightdown()//右后

out1=PWMIO;

//左轮后退

voidting()//停止

out4=0;

voidmain()

init();

while

(1)

{

if(RI)

RI=0;

ma=SBUF;

}

switch(ma)

case'

a'

:

qian();

break;

//前

b'

hou();

//后退

c'

zuo();

//左急弯

d'

you();

//右急弯

e'

leftup();

//左前

f'

rightup();

//右前

g'

leftdown();

//左后

h'

rightdown();

//右后

s'

ting();

//停

voidTT0()interrupt1

TH0=(65536-(20000-PWM))/256;

//20ms定时器T0中断一次,进行PWM切换实现5ms高电平15ms低电平的PWM脉冲

TL0=(65536-(20000-PWM))%256;

PWM=20000-PWM;

PWMIO=~PWMIO;

voidser()interrupt4

2.子程序

PWMA[3]={10,30,50};

PWMB[3]={10,30,50};

out2=PWMIO1;

out4=PWMIO2;

{PWM1=PWMA[1];

PWM2=PWMA[0];

out2=PWMIO;

void3dang()//右后

i++;

PWM1=PWMA[i];

PMW2=PWMB[i];

if(i==3)

{i=0;

{/*下面程序需要自行另外修改,添加前\后退\左转圈\右转圈\左前弯PWM\右前弯PWM\左自旋\右自旋\PWM换档位\双闪灯+鸣笛\播放音乐\显示运行时间\显示光强\超声波测距并避障等功能*/

x'

3dang();

TH0=(65536-400)/256;

TL0=(65536-400)%256;

t++;

if(t>

=PWM1){PWMIO1=1;

=PWM2){PWMIO2=1;

if(t==50){t=0;

PWMIO1=0;

PWMIO2=0}

3.串口通信的初始化

4.利用PWMIO的变化改变转弯幅度

5.PWMADJ()函数实现PWM值的加

voidPWMADD()

PWM+=1;

if(PWM==4){PWM=1};

•case'

•case‘b’:

•case‘c’:

//左转圈

•case‘d’:

//右转圈

•case‘g’:

//左自旋

•case‘h’:

//右自旋

•2ledbeep();

//双闪灯黄灯+鸣笛

•music();

//播放音乐

•bizhang();

//超声波测距并避障

6.主函数串口接收程序

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

当前位置:首页 > 考试认证 > 司法考试

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

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