1、单单 片片 机机 课课 程程 设设 计计 引言引言 制作一个基于 51 单片机的控制的无线控制小车。 一、一、 系统设计系统设计 由 51 单片机控制直流电机的正反转来控制小车的运动。 无线部分用来接收上位机(电脑或者手机)发出的信号,通过信号控制单片机调 用函数程序来控制小车的运行状态。 无线部分: 用蓝牙从机的 TTL 接口接收信号反馈给单片机, 还可以通过电脑 的无线局域网网卡来控制路由器的 TTL 串口来控制单片机的状态。由于蓝牙模 块容易得到且接口方便,电压可以用+5V 控制,携带方便,便于在小车上安装。 电机驱动:电机驱动需要大电流,较高的电压,考虑到单片机的负载能力, 用 L29
2、8N 驱动模块来驱动电机,单片机输出逻辑信号控制 L298N 模块输出正反 向电压,由此控制电机的正反转。 小车的运动状态:小车为四轮驱动,一侧的两个电机分为一组。 二、二、 软件设计软件设计 单片机电路: 由 p1 口输出逻辑电平驱动 L298N 电路 L298N 驱动电机电路,供给+5V 和+12V 电压 三、三、 系统的仿真与调试系统的仿真与调试 用简单程序仿真测试电路连接情况 汇编程序代码: org 0000h ajmp main org 0080h main: mov a,#0ffh mov p1,a ;不转 call delay ;延时 loop: mov a,#00ah ;正转
3、mov p1,a call delay mov a,#0ffh;停止 mov p1,a call delay mov a,#005h;反转 mov p1,a call delay mov a,#0ffh;停止 mov p1,a call delay jmp loop delay: mov r5,#50 ;延时。 d1: mov r6,#40 d2: mov r7,#248 djnz r7,$ djnz r6,d2 djnz r5,d1 ret end 仿真结果:电机正反转均正常 小车程序: 用单片机控制小车的四个状态,前进,后退,左转,右转。由四个函数实现,执 行条件为中断。当蓝牙从机接收到数
4、据传输到单片机时,单片机内部选择指令, 调动 while 函数,判断指令数据,从而控制小车状态。 四、四、 程序设计程序设计 循环函数,控制小车的状态 while(1) switch(Buffer0) case 0: Moto_Stop(); break; case 1: Moto_Forward(); break; case 2: Moto_Backward(); break; case 3: Moto_TurnLeft(); break; case 4: Moto_TurnRight(); break; default:break; 系统初始化 小车移动 检测外部有 无信号输入 是否调动函数 控制小车移动 开始 传输串口数据 是否还有检测信 号等待下次数据 结束 Y N N Y Y N 五、五、 总结总结(心得体会)(心得体会) 是否完成 六、六、 程序清单程序清单 #include #include #define uchar unsigned char #define uint unsigned int uchar Buffer