欢迎来到天天文库
浏览记录
ID:44783229
大小:97.70 KB
页数:15页
时间:2019-10-28
《单片机智能蓝牙小车课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用单片机课程设计系别:电子信息工程班级:信100506学号:信10050601姓名:徐彬彬文档实用引言制作一个基于51单片机的控制的无线控制小车。一、系统设计由51单片机控制直流电机的正反转来控制小车的运动。无线部分用来接收上位机(电脑或者手机)发出的信号,通过信号控制单片机调用函数程序来控制小车的运行状态。无线部分:用蓝牙从机的TTL接口接收信号反馈给单片机,还可以通过电脑的无线局域网网卡来控制路由器的TTL串口来控制单片机的状态。由于蓝牙模块容易得到且接口方便,电压可以用+5V控制,携带方便,便于在小车上安装。电机驱动:电机驱动需要大电流,较高的电压,考虑到单片机的负
2、载能力,用L298N驱动模块来驱动电机,单片机输出逻辑信号控制L298N模块输出正反向电压,由此控制电机的正反转。小车的运动状态:小车为四轮驱动,一侧的两个电机分为一组。二、软件设计单片机电路:文档实用由p1口输出逻辑电平驱动L298N电路L298N驱动电机电路,供给+5V和+12V电压文档实用一、系统的仿真与调试用简单程序仿真测试电路连接情况汇编程序代码:org0000hajmpmainorg0080hmain:mova,#0ffhmovp1,a;不转calldelay;延时loop:mova,#00ah;正转movp1,acalldelaymova,#0ffh;停止mo
3、vp1,acalldelaymova,#005h;反转文档实用movp1,acalldelaymova,#0ffh;停止movp1,acalldelayjmploopdelay:movr5,#50;延时。d1:movr6,#40d2:movr7,#248djnzr7,$djnzr6,d2djnzr5,d1retend仿真结果:电机正反转均正常文档实用小车程序:用单片机控制小车的四个状态,前进,后退,左转,右转。由四个函数实现,执行条件为中断。当蓝牙从机接收到数据传输到单片机时,单片机内部选择指令,调动while函数,判断指令数据,从而控制小车状态。一、程序设计循环函数,控制
4、小车的状态while(1){switch(Buffer[0]){case0:Moto_Stop();break;case1:Moto_Forward();break;case2:Moto_Backward();break;case3:Moto_TurnLeft();break;case4:Moto_TurnRight();break;文档实用default:break;}}系统初始化小车移动检测外部有无信号输入是否调动函数控制小车移动开始传输串口数据是否还有检测信号等待下次数据结束YNNYYN文档实用一、总结(心得体会)是否完成二、程序清单#include
5、#include#defineucharunsignedchar#defineuintunsignedintucharBuffer[4]={0};//从串口接收的数据uinti,j;sbitLeft_Positive=P1^0;sbitLeft_Negative=P1^1;sbitRight_Positive=P1^2;sbitRight_Negative=P1^3;sbitLeftLight=P2^1;sbitRightLight=P2^2;/*********************************************************
6、************名称:Delay_1ms()*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)文档实用*输出:无***********************************************************************/voidDelay_1ms(uinti)//1ms延时{ucharx,j;for(j=0;j
7、om_Int()*功能:串口中断子函数*输入:无*输出:无***********************************************************************/voidCom_Int(void)interrupt4{EA=0;if(RI==1)//当硬件接收到一个数据时,RI会置位{Buffer[0]=SBUF-48;//这里减去48是因为从电脑中发送过来的数据是ASCII码。文档实用RI=0;}EA=1;}/********************************
此文档下载收益归作者所有