找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6575|回复: 3
打印 上一主题 下一主题
收起左侧

L298N+AT89C52+BT-04A蓝牙控制遥控小车 Proteus仿真程序

  [复制链接]
跳转到指定楼层
楼主
1.环境的搭建
Proteus8.7版本,还有就是虚拟端口号的搭建,因为Proteus8.7没有蓝牙模块,蓝牙实际上就是一个串口,我们用虚拟串口代替蓝牙模块,Virtual Serial Port Driver Pro.exe虚拟串口的软件,文件夹里有安装步骤也有,在这儿就不多说了,BT-04A默认的波特率是9600bps,而我们用的是4800bps,因为我

用的是12Mhz的晶振,产生9600bps的误差太大不适合用(如果你用的11.0592HMhz的晶振,可以直接用,程序源码里面有怎么设置),用串口下载CH340G,连接上BT-04A,输入AT指令,改变波特率。

2.设计思路
l298n是驱动芯片,还得给电机提供电源,我们可以采用18650电池当电源,l298N的数据手册,文件里有具体说明。

一共四个数据输入,数据输出,如果有兴趣的朋友可以看看L298N的工作原理,我在这儿附上一张图,




3.程序源码
在最后附上所有的资料和所需要的的软件。


4.实验现象
都在文件夹里,如果还想增加其他功能,可以根据自己的需求添加。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)





所有文件都在这儿了


单片机源程序如下:
  1.   /*波特率 4800bps ,晶振用的12Mhz,BT04-A ,默认的是9600bps*/
  2.   /*如果这个程序源码修改为11.0592的晶振,那么proteus里面的compim也要修改为9600bps*/
  3.   #include<reg52.h>
  4.   typedef unsigned char uchar;
  5.   typedef unsigned int uint;

  6.    sbit A_IA=P0^0;
  7.    sbit A_IB=P0^1;  
  8.    sbit B_IA=P0^2;
  9.    sbit B_IB=P0^3;
  10.    sbit JDQ=P2^0;

  11.   void CarForward();  //前进
  12.   void CarBack();          //后退
  13.   void CarLeft();          //向左
  14.   void CarRight();           //向右
  15.   void CarStop();          //停止
  16.   void JDQ1();                  //开灯
  17.   void JDQ2();                  //关灯
  18.   void UsartInit();          //串口初始化
  19.   void delay1ms(uint c);
  20.   uchar receiveData;        //接受的数据
  21.   void main()
  22.   {          JDQ=0;
  23.    UsartInit();
  24.    while (1);
  25.   }
  26.   void UsartInit()
  27.   {
  28.   TMOD |=0x20;                          
  29.   SCON =0x50;                          
  30.   PCON =0x80;                          //4800bps
  31.   TH1=0xf3;                                  //如果你用的是9600bps,初值为TH1=0xFA;TH1=0xFA;
  32.   TL1=0xf3;
  33.   ES=1;                                          
  34.   EA=1;                                          
  35.   TR1=1;                                  
  36.   }
  37. void delay1ms(uint c)          
  38. {
  39. uint a,b;
  40. for(a=c;a>0;a--);
  41. for(b=112;b>0;b--);
  42. }

  43. void CarForward()
  44. {
  45.    A_IA=1;
  46.    A_IB=0;
  47. B_IA=1;
  48.   B_IB=0;
  49.   }
  50. void CarBack()
  51. {
  52.    A_IA=0;
  53.   A_IB=1;
  54.    B_IA=0;
  55.    B_IB=1;
  56.   }
  57.    void CarLeft()
  58. {
  59.    A_IA=0;
  60.    A_IB=0;
  61.    B_IA=0;
  62.    B_IB=1;
  63.   }
  64. void CarRight()
  65. {
  66.    A_IA=0;
  67.   A_IB=1;
  68.    B_IA=0;
  69.    B_IB=0;
  70.   }
  71.    void CarStop()
  72. {
  73.    A_IA=0;
  74.    A_IB=0;
  75.    B_IA=0;
  76.    B_IB=0;
  77.   }
  78.   void JDQ1()
  79.   {
  80. JDQ=1;
  81.   
  82.   }
  83.    void JDQ2()
  84.   {
  85. JDQ=0;
  86.   
  87.   }
  88. void Usart()interrupt 4          
  89. {
  90. receiveData=SBUF;                        //接收数据
  91. RI=0;                                                //关闭计时器
  92. SBUF=receiveData;                         //发送数据
  93. while(!TI);
  94. TI=0;                                                  
  95. if(receiveData=='2')
  96.         CarForward();
  97. else if (receiveData=='8')
  98.             CarBack();
  99. else if(receiveData=='6')
  100.           CarLeft();

  101. else if(receiveData=='4')
  102.            CarRight();
  103. else if(receiveData=='5')
  104.            CarStop();
  105. else if(receiveData=='0')
  106.                 JDQ1();
  107. else if(receiveData=='1')
  108.                 JDQ2();
  109.   delay1ms(10) ;
  110. }
复制代码

有不懂的地方大家可以一起讨论,谢谢大家!

全部资料51hei下载地址:
蓝牙控制小车的仿真程序.zip (13.53 MB, 下载次数: 153)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:938636 发表于 2021-6-21 16:37 | 只看该作者
51黑这个平台太棒啦,楼主分享的资料很不错,学到了很多知识
回复

使用道具 举报

板凳
ID:1058518 发表于 2023-2-12 15:57 | 只看该作者
有个问题,刚开始学51嘛,我看人家仿真都是需要晶振和复位电路的,然后我根据程序连接的小车就运行不了,所以后面我参考您的仿真去掉这两个部分就可以了,请问您知道这是什么原因吗
回复

使用道具 举报

地板
ID:692965 发表于 2023-3-14 19:57 | 只看该作者
CCDZ 发表于 2023-2-12 15:57
有个问题,刚开始学51嘛,我看人家仿真都是需要晶振和复位电路的,然后我根据程序连接的小车就运行不了,所 ...

仿真的时候,单片机会自带晶振电路,双击单片机可以调整晶振频率,还有你搭建的时候,晶振也要注意频率
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表