0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机和编程软件VB实现智能红外逻辑分析仪的设计

电子设计 来源:电子设计工程 作者:牛余朋,成曙,蔡 2020-06-02 07:51 次阅读

引言

红外通信技术是一种点对点的数据传输协议,是传统设备之间连接线缆的替代技术,是目前国际上普通采用的一种近程无线传输技术,常用于智能小区控制系统和电话教学交互式远程控制系统中,但是目前的家电(如空调、录像机、VCD机等)有各种不同的品牌和型号,其红外遥控编码及发送格式不尽相同。为了能够用一台通用控制器对多种不同型号的家电进行控制,本文利用功能强大的单片机编程软件VB设计了一种基于计算机串口的通用型智能红外逻辑分析仪,它可对各种电器的红外遥控器所发射的控制信号进行识别、存贮和再现。还可通过红外硬件接口识别出红外信号并送入单片机处理,然后利用VB开发的虚拟软件在电脑屏幕上实时显示采集到的红外信号波形,便于设计人员对各种调制方式的红外信号进行“可视化”的分析与研究。

1、硬件设计

1.1 串行通信的基本原理

串行端口本质上是计算机的CPU和外部串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据被转换为串行的侠。而在接收数据时,串行的位则被转换为字节数据。在Windows环境下,串行端口是Windows系统资源的一部分。如果要使用串口进行通信,应用程序必须在使用前向操作系统提出使用串口资源的申请(创建并打开串口),然后进行相应的串口参数配置,双方的串口才可进行通信,通信完毕后,还必须释放系统资源(关闭串口)。串口通信程序的流程如图1所示。

基于单片机和编程软件VB实现智能红外逻辑分析仪的设计

1.2 89C51的串行口

89C51内有一个全双工的串行口,它有4种工作方式:方式0,串行接口为移位寄存器I/O方式;方式1,串行接口被控制为8位的异步通信接口,实际上,此时传送一帧住处应为10位,其中1位为起始位,8位为数据位,1位为停止位,在该方式中,波特率可变;方式2和方式3被定义为9位的异步通信接口,此时传送一帧信息为11位,其中1位起始位,8位数据位,1位可编程数据位,1位停止位,工作方式的选择由芯片内的特殊功能寄存器SCON(串行口控制寄存器)来设备。

1.3 接口电路

为了能使单片机与PC进行通信,必须使其遵循相同的通信协议。由于89C51的串行口输入/输出为TTL逻辑电平,高电平为3.8V左右,低电平为0.3V左右,因而这种以TTL电平传送数据的方式的抗干扰性较差。而计算机内部的RS-232C串行口用12V和-12V电平方式,这种方式中,信号0和信号1的电平差别增大,从而增强了抗干扰性。但是,为了解决这种电平不一致的矛盾,必须采用一个RS-232C电平转换器,文中采用的MAX232自身带有电源电压变换器,可把+5V电压变换成RS-232输出电平所需的10V电压,因而采用这种方式进行串行通信具有较好的性能和低廉的价格。如果通信距离较远,还可以通过增加MAX485转换器来连接MAX232以满足要求。其硬件接口电路原理如图2所示。

基于单片机和编程软件VB实现智能红外逻辑分析仪的设计

2、软件设计

2.1 红外遥控编码及传送格式

红外通信的基本原理是在发送端将基带二进制信号调制为一系列的脉冲串信号,然后通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉冲调制(PPM)两种方式。本系统采用的是脉时调制方法。在调制脉冲宽度编码方式下,“0”是由时间间隔为T的一串38.5kHz载波脉冲后加时间间隔壁为T0的无载波脉冲的空闲状态来表示;而“1”是由时间间隔壁为T的一串38.5kHz载波脉冲后加时间间隔为T1的无载波脉冲的空闲状态来表示,其中T1大于T0。

为了提高抗干扰能力和通讯可靠性,多数红外遥控发射器在发送二进制编码前要插入各种引导码,以便接收器识别。为了区分不同类型的遥控器,还需要发送地址码和校验码,另外不同遥控器所发送的码长也不相同。一般的传送格式如图3所示。

基于单片机和编程软件VB实现智能红外逻辑分析仪的设计

2.2 单片机的软件编程

单片机(下位机)部分的编程主要是完成单片机和计算机之间的串行通讯。该软件主要由串口初始化子函数、单片机内部定时器T0中断子函数、红外信号发送子函数等3大模块组成。其具体程序如下:

#include》at89x52.h)

#define byte unsigned char

#define WAR_0 P1_1 //定义接收引脚

#define LED_RECEIVE P1_0 //定义指示灯引脚

//晶振 22.1184MHz

//波特率=((xtal/12/t1_over_rate)/32)*2^pcon

byte bdata buffer=0;

sbit way0=buffer^0;

byte i=0;

bit start=0;

void send char(unsigned char word)//串口发送子函数

{

TI=0;

SBUF=word;

While(TI==0);

TI=0;

}

void t0_service(viod) interrupt 1 using 1//T0中断子函数

{

way0=WAY_0;

I++;

If(I=8)

{

TI=0;

SBUF=buffer;

I=0;

}

buffer=buffer1;

}

void main(void) //主函数

{

SCON=0x40; //设置串口模式

TMOD=0x22; //设置定时器模式

TH1=0xff; //定时器加载初值

TH1=0xff;

PCON=0x80; //57600bps *2 22.1184M

115200bps

TR1=1; //开定时器

TH0=0xdb; //定时器0加载初值

TL0=0xfd;

EA=1;

WAY_0=1;

ET0=1; //以上是串行初始化

While(1) //主循环

{

if(! WAY_0)

{

TR0=1; //开定时器T0中断

LED_RECEIVE=0;//LED指示灯点亮

}

}

}

2.3 上位机软件设计

上位机(计算机)软件的作用是实时采集由计算机串口接收的信号(即单片机发送的信号),同时通过VB软件编程来实现被采集红外信号的实时显示,以便于分析。

一般的IBM PC兼容型微机均提供有1至2个25针或9针的RS-232C标准串行口,简称COM1和COM2。在某些应用中,还可通过插装通信卡来获得额外的RS-232C标准串行口。利用这些串行口,微机便可以与其他数字设备(包括计算机)进行一般的数据通信。

利用Visual Basic提供的MSComm控件可以简单便携地通过应用程序实现串行通信,也可以创建功能完备、具有事件驱动功能的高级通信工具。与DOS环境下用汇编C语言等编制的串行通信程序及Windows环境下用Visual C编制的串行通信程序相比,在使用Visual Basic的MSComm控件实现串行通信时,程序员只需关心MSComm控件对Windows通信驱动程序的API函数的接口即可,换句话说,只需要设置和监视MSComm控件的属性和事件即可。

利用VB实现串行通信主要有两种方法:一是调用Windows API通信函数;二是使用VB的通信控件(MSComm)。本文采用第二种方法,即利用通信控件再加一个定时器控件(Timer)来实现简单地串行通信。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6039

    文章

    44579

    浏览量

    636406
  • 控制器
    +关注

    关注

    112

    文章

    16397

    浏览量

    178517
  • 计算机
    +关注

    关注

    19

    文章

    7519

    浏览量

    88195
收藏 人收藏

    评论

    相关推荐

    巧用逻辑分析仪 助力单片机开发

    `单片机开发工程师和电子爱好者,每天都要和各种各样的数字电路打交道。在制作调试电路时除了使用万用表、示波器等工具,逻辑分析仪也是必不可少的。 逻辑
    发表于 03-22 13:35

    基于单片机的简易逻辑分析仪资料

    基于单片机的简易逻辑分析仪资料
    发表于 08-20 11:53

    如何做一个简易逻辑分析仪逻辑分析仪

    本人最近想做一个简易逻辑分析仪,是基于51单片机的,由于刚学单片机不久,对单片机学的不深!有没有那为大神做过,给份资料!我先谢谢了!
    发表于 08-10 19:11

    逻辑分析仪

    有人会做基于单片机逻辑分析仪吗???急!急!!急!!!
    发表于 04-04 22:29

    请问逻辑分析仪学习单片机用处大吗?

    用在学习单片机上,用处大吗?现在只是学初级的8位,网上的逻辑分析仪有几十块的和几百块的,区别只是采样频率吗?如果有用,几十块的用在8位机上应该行吧,
    发表于 08-25 10:34

    基于计算机串口的通用型智能红外逻辑分析仪

    红外逻辑分析仪,它可对各种电器的红外遥控器所发射的控制信号进行识别、存贮和再现。还可通过红外硬件接口识别出
    发表于 12-30 07:28

    基于MSP430单片机的近红外水分分析仪设计

    基于MSP430 单片机设计了一种近红外水分分析仪,采用了很好的模型建立方法,提高了测量的准确性和可靠性,同时由于MSP430 单片机片上外围部件集成度高和低功耗的特性,使得系
    发表于 01-20 14:37 58次下载

    逻辑分析仪软件zlglogic 4.92

    逻辑分析仪软件zlglogic 4.92
    发表于 07-19 15:54 54次下载

    逻辑分析仪软件zlglogic 4.92

    逻辑分析仪软件zlglogic 4.92 安装程序
    发表于 11-15 14:47 197次下载

    基于计算机串口的红外虚拟逻辑分析仪

    基于计算机串口的红外虚拟逻辑分析仪 采用用途广泛的红外线通信技术设计了一款基于计算机串口的红外逻辑
    发表于 09-27 16:04 938次阅读
    基于计算机串口的<b class='flag-5'>红外</b>虚拟<b class='flag-5'>逻辑</b><b class='flag-5'>分析仪</b>

    片上逻辑分析仪的使用

    电子专业单片机相关知识学习教材资料——片上逻辑分析仪的使用
    发表于 09-01 17:24 0次下载

    基于STM32单片机的CAN总线分析仪的设计

    基于STM32单片机的CAN总线分析仪的设计
    发表于 01-24 16:54 41次下载

    kingst虚拟逻辑分析仪使用详解

    测信号通过比较器进行判定,高于参考电压者为逻辑1,低于参考电压者为逻辑0,在1与0之间形成数字波形。在针对单片机、ARM、FPGA、DSP等数字系统的测量测试时,相比于示波器,逻辑
    发表于 11-17 15:54 52次下载

    基于单片机的简易逻辑分析仪设计

    文末下载完整资料1.1 系统概述   因在本节中,我们将对简易逻辑分析仪的应用进行分析。给出它的特点,能实现的功能以及系统的简单操作1.1.1 系统的特点   
    发表于 11-24 15:36 21次下载
    基于<b class='flag-5'>单片机</b>的简易<b class='flag-5'>逻辑</b><b class='flag-5'>分析仪</b>设计

    逻辑分析仪如何使用 逻辑分析仪使用教程

    逻辑分析仪如何使用 逻辑分析仪使用教程  逻辑分析仪是一种用来监测和
    的头像 发表于 09-19 16:03 2968次阅读