目的:

通过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编写程序

程序源代码如下:

#include<reg51.h>
#include <stdio.h>
#define uint unsigned int;
#define uchar unsigned char;sbit LED0 = P1^0;
sbit LED1 = P1^1;
sbit LED2 = P1^2;
sbit LED3 = P1^3;sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;uchar rev = 0;  //bluetooth receive
bit rok = 0;    //is the receive ok?void Com_Init();   //initial serial port
void id_signal();  //judge the received signal and execute the sub-processvoid main()
{P1 = 0x00;  //close all lightsP2_0 = 0;P2_1 = 0;P2_2 = 0;Com_Init();while(1){if(rok){P2_1 = ~P2_1;id_signal();}}
}void Com_Init()
{SCON = 0x50;   //serial port works on 1, allow receivingTMOD = 0x20;   //Timer works on 2PCON &= 0x7f;   //set SMOD = 0, make sure the correct baud rateTH1 = 0xFD;    //set baud rate is 9600TL1 = 0xFD;TR1 = 1;    //start baud rate generatorES = 1;     //open serial port interruptionEA = 1;     //open general interruptionREN = 1;    // allow receive}void id_signal()
{if(rev == 0x30)P2_2 = !P2_2;switch(rev){case 0x30: LED0 = ~LED0; break;case 0x31: LED1 = ~LED1; break;case 0x32: LED2 = ~LED2; break;case 0x33: LED3 = ~LED3; break;default: break;}rok = 0;REN = 1;
}void Com_Int() interrupt 4
{ES = 0;P2_0 = ~P2_0;if(RI){rev = SBUF;RI = 0;rok = 1;}ES = 1;
}

步骤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口

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

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

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

使用keil,proteus,虚拟串口,完成蓝牙通信相关推荐

  1. stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用

    stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用 stm32cubmx keil proteus 一个简单的实例 虚拟串口+串口调试 项目设计需要,以下为微控制器模块要用到的 ...

  2. 虚拟串口与串口服务器,串口服务器USR-DR302与虚拟串口进行一对一通信

    一.实物接线 串口服务器DR302网线直连电脑,串口线直连电脑 二.串口服务器302测试说明 本测试是模块默认设置连接电脑测试通信 三.串口服务器302测试目的 测试模块与虚拟串口间的数据透传 四.要 ...

  3. c# 蓝牙虚拟串口_蓝牙模块——基础知识介绍

    1. 数据透传 蓝牙模块可以通过串口(SPI.IIC)和MCU控制设备进行数据传输. 蓝牙模块可以做为主机和从机.主机就是能够搜索别的蓝牙模块并主动建立连接,从机则不能主动建立连接,只能等别人连接自己 ...

  4. 力控 串口服务器 虚拟串口,M4系列串口服务器与力控组态软件通信实例

    软件需求:力控组态软件 力控 ForceControl V7.0 . 优势:无需虚拟串口软件即可通信, 2:串口设备采用MODBUS协议的温湿度变送器.MODBUS RTU 产品采用温湿度传感器读取温 ...

  5. 串口通信及串口转蓝牙相关知识

    之前没有接触过硬件相关的工作, 因此对硬件的知识一知半解. 最近由于项目需要, 用到了串口通信以及串口跟蓝牙之间通信相关的东西.记录下来, 希望对新手有所帮助. 如有疏漏之处, 欢迎指正. 1 串口通 ...

  6. linux虚拟串口创建,linux虚拟串口编程

    环境: unbuntu14 虚拟机,已设置可联网 目的1:在linux环境下读写虚拟串口(2虚拟串口连接) 步骤: 一,创建虚拟串口 1.安装虚拟软件 apt-get install socat 2. ...

  7. php蓝牙串口,打印机蓝牙模块(串口)使用说明及参考电路

    打印机蓝牙模块(串口)使用说明及参考电路 打印机蓝牙模块(串口),是专门针对热敏打印机.POS打印机等产品开发的蓝牙模块,可方便地实现上位机PC.PDA.手机与打印机的无线连接,形成透明串口,支持硬件 ...

  8. 电脑怎样连接虚拟串口服务器,PC机通过蓝牙虚拟串口进行通信

    假如你有两台蓝牙设备,如两能计算机并都蓝牙适配器,或PC机与多功能终端(手机,虚拟仪器等等) 假如你安装了蓝牙的服务程序, 如IVT的程序或它程序, 它有串口服务功能. 并且开起了串口服务. 那我们就 ...

  9. 基于Windows的蓝牙虚拟串口通信

    一.枚举本地蓝牙设备 /******************************************************************************\ 枚举本地所有蓝牙 ...

最新文章

  1. python数字组合算法_面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?...
  2. memset函数源码实现
  3. private用法 java_关于android开发中如何正确使用Private Services安全用法及代码示例...
  4. 【测试面试题】偶数和奇数
  5. 通过 IDE/Maven 部署 Serverless 应用实践
  6. 【Python CheckiO 题解】Striped Words
  7. 奥的斯电梯tt服务器使用表_奥的斯电梯服务器TT使用说明1
  8. 6-5-2:STL之stack和queue——双端队列deque
  9. 学习日报 day03 实体与标识符 变量与数据类型
  10. C++学习之路: 智能指针入门
  11. python 3.5.2页面_笔者操作win10系统搭建Python 3.5.2开发环境的详细方案
  12. mfc 如何将cstring转byte_如何将PDF转成JPG?PDF转图片的技巧
  13. HP推出UFT新版本UFT12 5以及LeanFT
  14. 拓端tecdat|r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
  15. linux 查看 java 进程内存占用情况
  16. 抖音小店保证金被扣除怎么办?抖音小店货款什么时候结算?
  17. 最新如何将b站视频下载到电脑上不用插件
  18. python模拟实现打印输出进销管理系统中的每月销售明细
  19. Pascal voc 数据集xml格式解析
  20. python经典教程_零基础 Python爬虫经典实战教程

热门文章

  1. 华为FreeBuds pro评测
  2. onlyoffice开发java_如何集成Alfresco与ONLYOFFICE在线编辑器在Ubuntu 14.04
  3. java中fido_使用YOCTO fido分支创建的工具链问题
  4. 计算机网络实验毕业论文,计算机网络实验五.doc
  5. 宝德服务器文档,宝德服务器RAID操作手册EX16650用户手册
  6. 关于习而学的软件工程教育
  7. [搞定一面] 快速搞定一面~技术面
  8. realsense相机内参如何获得+python pipeline+如何通过python script获取realsense相机内参(windows下可用)
  9. Canal组件简介与vivo账号实践
  10. css3兼容各版本浏览器前缀—— -webkit-、 -moz-、 -ms-、 -o-