当前位置:   article > 正文

使用keil,proteus,虚拟串口,完成蓝牙通信_proteus蓝牙模块怎么找

proteus蓝牙模块怎么找

目的:

通过HC-06的蓝牙芯片,AT89C51的51单片机,借助keil,proteus,通过虚拟串口,在电脑上实现蓝牙串口通信,控制LED的开和关。

存在的问题:

单片机和蓝牙不能联动,暂未找出问题的原因

如何让keil和protus联动,参考文章:

使用Proteus和keil实现单片机的第一个程序_stanleyrain的博客-CSDN博客

步骤1 使用proteus绘制电路图

注意:

1. proteus本身并不支持蓝牙仿真,需要下载蓝牙模块,并将模块拷贝到proteus库中

(1)蓝牙模块下载网址:

Download Bluetooth Library for Proteus rar

(2)解压缩

(3)将解压缩的文件,拷贝到proteus库文件夹

步骤2 使用keil编写程序

程序源代码如下:

  1. #include<reg51.h>
  2. #include <stdio.h>
  3. #define uint unsigned int;
  4. #define uchar unsigned char;
  5. sbit LED0 = P1^0;
  6. sbit LED1 = P1^1;
  7. sbit LED2 = P1^2;
  8. sbit LED3 = P1^3;
  9. sbit P2_0 = P2^0;
  10. sbit P2_1 = P2^1;
  11. sbit P2_2 = P2^2;
  12. uchar rev = 0; //bluetooth receive
  13. bit rok = 0; //is the receive ok?
  14. void Com_Init(); //initial serial port
  15. void id_signal(); //judge the received signal and execute the sub-process
  16. void main()
  17. {
  18. P1 = 0x00; //close all lights
  19. P2_0 = 0;
  20. P2_1 = 0;
  21. P2_2 = 0;
  22. Com_Init();
  23. while(1)
  24. {
  25. if(rok)
  26. {
  27. P2_1 = ~P2_1;
  28. id_signal();
  29. }
  30. }
  31. }
  32. void Com_Init()
  33. {
  34. SCON = 0x50; //serial port works on 1, allow receiving
  35. TMOD = 0x20; //Timer works on 2
  36. PCON &= 0x7f; //set SMOD = 0, make sure the correct baud rate
  37. TH1 = 0xFD; //set baud rate is 9600
  38. TL1 = 0xFD;
  39. TR1 = 1; //start baud rate generator
  40. ES = 1; //open serial port interruption
  41. EA = 1; //open general interruption
  42. REN = 1; // allow receive
  43. }
  44. void id_signal()
  45. {
  46. if(rev == 0x30)
  47. P2_2 = !P2_2;
  48. switch(rev)
  49. {
  50. case 0x30: LED0 = ~LED0; break;
  51. case 0x31: LED1 = ~LED1; break;
  52. case 0x32: LED2 = ~LED2; break;
  53. case 0x33: LED3 = ~LED3; break;
  54. default: break;
  55. }
  56. rok = 0;
  57. REN = 1;
  58. }
  59. void Com_Int() interrupt 4
  60. {
  61. ES = 0;
  62. P2_0 = ~P2_0;
  63. if(RI)
  64. {
  65. rev = SBUF;
  66. RI = 0;
  67. rok = 1;
  68. }
  69. ES = 1;
  70. }

 步骤3 安装虚拟串口软件

具体可以参加文章:

工具 | 虚拟串口软件的使用分享_51CTO博客_虚拟串口工具

下载地址:

Virtual Serial Port Driver - create and emulate virtual COM port

安装好后,创建一个虚拟串口对

在设备管理器中,检查虚拟串口存在

步骤4 使用串口助手发生串口信息给Proteus

下载一个串口助手软件,如:友善串口调试助手,下载地址:

友善串口调试助手_串口调试工具最新版官方下载-华军软件园

 安装好软件后,打开软件,进行串口设置,如图所示

在Proteus中,配置蓝牙模块

 注意:串口要配对

运行proteus,测试结果如下:

 

 

问题及其说明

 1. 在proteus上无法仿真串口的控制效果,虚拟串口的工具也换了好几种,问题应该出在电路侧,因为代码已经在keil的仿真器里面调试过,具体的调试方法说明如下:

(1)点击Options for Target,选中Debug选项,勾选Use Simulator

 

 (2)开始Debug

 (3)在命令行处,输入如下命令,图片处高亮位置。其作用是将模拟器的端口绑定到com1口

 

  1. mode com1 9600,0,8,1
  2. assign com1 <sin >sout

(4)使用串口助手,发送命令给模拟器

注意,此时代码停留在断点 if(rev == 0x30)处,表明软件被中断触发,代码可以正常执行。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/474274
推荐阅读
相关标签
  

闽ICP备14008679号