使用keil,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编写程序
程序源代码如下:
#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,虚拟串口,完成蓝牙通信相关推荐
- stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用
stm32中cubmx+keil+proteus+虚拟串口+串口助手的使用 stm32cubmx keil proteus 一个简单的实例 虚拟串口+串口调试 项目设计需要,以下为微控制器模块要用到的 ...
- 虚拟串口与串口服务器,串口服务器USR-DR302与虚拟串口进行一对一通信
一.实物接线 串口服务器DR302网线直连电脑,串口线直连电脑 二.串口服务器302测试说明 本测试是模块默认设置连接电脑测试通信 三.串口服务器302测试目的 测试模块与虚拟串口间的数据透传 四.要 ...
- c# 蓝牙虚拟串口_蓝牙模块——基础知识介绍
1. 数据透传 蓝牙模块可以通过串口(SPI.IIC)和MCU控制设备进行数据传输. 蓝牙模块可以做为主机和从机.主机就是能够搜索别的蓝牙模块并主动建立连接,从机则不能主动建立连接,只能等别人连接自己 ...
- 力控 串口服务器 虚拟串口,M4系列串口服务器与力控组态软件通信实例
软件需求:力控组态软件 力控 ForceControl V7.0 . 优势:无需虚拟串口软件即可通信, 2:串口设备采用MODBUS协议的温湿度变送器.MODBUS RTU 产品采用温湿度传感器读取温 ...
- 串口通信及串口转蓝牙相关知识
之前没有接触过硬件相关的工作, 因此对硬件的知识一知半解. 最近由于项目需要, 用到了串口通信以及串口跟蓝牙之间通信相关的东西.记录下来, 希望对新手有所帮助. 如有疏漏之处, 欢迎指正. 1 串口通 ...
- linux虚拟串口创建,linux虚拟串口编程
环境: unbuntu14 虚拟机,已设置可联网 目的1:在linux环境下读写虚拟串口(2虚拟串口连接) 步骤: 一,创建虚拟串口 1.安装虚拟软件 apt-get install socat 2. ...
- php蓝牙串口,打印机蓝牙模块(串口)使用说明及参考电路
打印机蓝牙模块(串口)使用说明及参考电路 打印机蓝牙模块(串口),是专门针对热敏打印机.POS打印机等产品开发的蓝牙模块,可方便地实现上位机PC.PDA.手机与打印机的无线连接,形成透明串口,支持硬件 ...
- 电脑怎样连接虚拟串口服务器,PC机通过蓝牙虚拟串口进行通信
假如你有两台蓝牙设备,如两能计算机并都蓝牙适配器,或PC机与多功能终端(手机,虚拟仪器等等) 假如你安装了蓝牙的服务程序, 如IVT的程序或它程序, 它有串口服务功能. 并且开起了串口服务. 那我们就 ...
- 基于Windows的蓝牙虚拟串口通信
一.枚举本地蓝牙设备 /******************************************************************************\ 枚举本地所有蓝牙 ...
最新文章
- python数字组合算法_面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?...
- memset函数源码实现
- private用法 java_关于android开发中如何正确使用Private Services安全用法及代码示例...
- 【测试面试题】偶数和奇数
- 通过 IDE/Maven 部署 Serverless 应用实践
- 【Python CheckiO 题解】Striped Words
- 奥的斯电梯tt服务器使用表_奥的斯电梯服务器TT使用说明1
- 6-5-2:STL之stack和queue——双端队列deque
- 学习日报 day03 实体与标识符 变量与数据类型
- C++学习之路: 智能指针入门
- python 3.5.2页面_笔者操作win10系统搭建Python 3.5.2开发环境的详细方案
- mfc 如何将cstring转byte_如何将PDF转成JPG?PDF转图片的技巧
- HP推出UFT新版本UFT12 5以及LeanFT
- 拓端tecdat|r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
- linux 查看 java 进程内存占用情况
- 抖音小店保证金被扣除怎么办?抖音小店货款什么时候结算?
- 最新如何将b站视频下载到电脑上不用插件
- python模拟实现打印输出进销管理系统中的每月销售明细
- Pascal voc 数据集xml格式解析
- python经典教程_零基础 Python爬虫经典实战教程
热门文章
- 华为FreeBuds pro评测
- onlyoffice开发java_如何集成Alfresco与ONLYOFFICE在线编辑器在Ubuntu 14.04
- java中fido_使用YOCTO fido分支创建的工具链问题
- 计算机网络实验毕业论文,计算机网络实验五.doc
- 宝德服务器文档,宝德服务器RAID操作手册EX16650用户手册
- 关于习而学的软件工程教育
- [搞定一面] 快速搞定一面~技术面
- realsense相机内参如何获得+python pipeline+如何通过python script获取realsense相机内参(windows下可用)
- Canal组件简介与vivo账号实践
- css3兼容各版本浏览器前缀—— -webkit-、 -moz-、 -ms-、 -o-