单片机智能蓝牙小车课程设计_第1页
单片机智能蓝牙小车课程设计_第2页
单片机智能蓝牙小车课程设计_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、片机课程设计系别:学号:电子信息工程 信 10050601班 级 : 信 1 0 0 5 0 6 :徐彬彬引言制作一个基于51单片机的控制的无线控制小车一、 系统设计由51单片机控制直流电机的正反转来控制小车的运动。无线部分用来接收上位机(电脑或者手机)发出的信号,通过信号控制单片机调 用函数程序来控制小车的运行状态。无线部分:用蓝牙从机的TTL接口接收信号反馈给单片机,还可以通过电脑 的无线局域网网卡来控制路由器的 TTL串口来控制单片机的状态。由于蓝牙模 块容易得到且接口方便,电压可以用+5V控制,携带方便,便于在小车上安装。电机驱动:电机驱动需要大电流,较高的电压,考虑到单片机的负载能力

2、,用L298N驱动模块来驱动电机,单片机输出逻辑信号控制L298N模块输出正反向电压,由此控制电机的正反转。小车的运动状态:小车为四轮驱动,一侧的两个电机分为一组。软件设计单片机电路:由pl 口输出逻辑电平驱动L298N电路三、系统的仿真与调试用简单程序仿真测试电路连接情况 汇编程序代码:org OOOOhajmpmai norg OO8Ohmain:mova,#Offhmovp1,a;不转calldelay ;延时loop:mov a,#00ah 正转mov p1,a call delaymova,#Offh;停止mov p1,acall delaymova,#OO5h 反转mov p1,a

3、call delaymov a,#Offh;停止mov p1,acall delay jmp loopdelay: mov r5,#50 ;延时。 d1: mov r6,#40d2: mov r7,#248djnz r7,$djnz r6,d2djnz r5,d1 ret end仿真结果:电机正反转均正常小车程序:用单片机控制小车的四个状态,前进,后退,左转,右转。由四个函数实现,执 行条件为中断。当蓝牙从机接收到数据传输到单片机时,单片机部选择指令,调动while函数,判断指令数据,从而控制小车状态。四、程序设计循环函数,控制小车的状态while(1)switch(Buffer0)case

4、0: Moto_Stop(); break;case 1: Moto_Forward(); break;case 2: Moto_Backward(); break;case 3: Moto_T urn Left(); break; case 4: Moto_T urn Right(); break; default:break;五、总结(心得体会)是否完成六、程序清单#include#include#define uchar unsigned char#define uint unsigned int uchar Buffer4 = 0; / 从串口接收的数据 uint i,j;sbit L

5、eft_Positive=PMO;sbit Left_Negative=P1A1;sbit Right_Positive=P1A2;sbit Right_Negative=P1A3;sbit LeftLight=P2A1;sbit RightLight=P2A2;/* 名称 : Delay_1ms()* 功能 : 延时子程序,延时时间为 1ms * x* 输入 : x ( 延时一毫秒的个数 )* 输出 : 无*/void Delay_1ms(uint i)/1ms 延时uchar x,j;for(j=O;ji;j+) for(x=O;x=148;x+);/* 名称: Com_Int()* 功能

6、: 串口中断子函数* 输入: 无* 输出: 无* void Com_Int(void) interrupt 4 EA = O;if(RI = 1) /当硬件接收到一个数据时,RI会置位ASCII 码。BufferO = SBUF - 48; /这里减去 48是因为从电脑中发送过来的数据是RI = 0;EA = 1; /* 名称 : Com_Init()* 功能 : 串口初始化,晶振 11.0592,波特率 9600,使串口中断* 输入 : 无* 输出 : 无* void Com_Init(void)TMOD = 0x20;PCON = 0x00;SCON = 0x50;TH1 = 0xFd;

7、/ 设置波特率 9600 TL1 = 0xFd;TR1 = 1; /启动定时器 1ES = 1; /开串口中断EA = 1; /开总中断/* 名称 :Moto_Forward()* 功能 : 电机 1、 2 启动,都是前进,整车表现为前进。* 输入 : 无* 输 出 问题*void Moto_Forward() Right_Negative=0;Left_Positive=0;Left_Negative=1;Right_Positive=1;Delay_1ms(100);/* 名称 :Moto_Backward()* 功能 : 电机 1、2 启动,都是后退,整车表现为后退。* 输入 : 无*

8、输出 : 无*/void Moto_Backward()Left_Positive=0; Right_Positive=0;Right_Negative=1;Left_Negative=1;Delay_1ms(100);/* 名称 :Moto_TurnLeft()* 功能 : 电机 1 后退,电机 2 前进,整车表现为左转。* 输入 : 无* 输出 : 无*void Moto_TurnLeft() Left_Negative=0;Right_Positive=0;Right_Negative=1;Left_Positive=1;Delay_1ms(100);/* 名称 :Moto_TurnRi

9、ght()* 功能 : 电机 1 前进,电机 2 后退,整车表现为右转。* 输入 : 无* 输出 : 无*void Moto_TurnRight()Right_Negative=0;Left_Negative=0;Left_Positive=1;Right_Positive=1;Delay_1ms(100); I* 名称* 功能* 输入* 输出Moto_Stop()电机 1 停止,电机 2 停止,整车表现为停止。 无无*void Moto_Stop()Right_Negative=0;Left_Negative=0;Left_Positive=0;Right_Positive=0;Delay_1ms(100);void main()Delay_1ms(100);Com_Init();/ 串口初始化while(1)循环结构,选择函数控制小车的状态switch(Buffer0)case 0: Moto_Stop(); break;case 1: Moto_Forward(); br

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论