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


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

    关注

    5997

    文章

    43948

    浏览量

    620553
  • 控制器
    +关注

    关注

    112

    文章

    15154

    浏览量

    170956
  • 计算机
    +关注

    关注

    19

    文章

    6631

    浏览量

    84372
收藏 人收藏

    评论

    相关推荐

    逻辑分析仪测试软件zlglogic 4.1版

    逻辑分析仪测试软件zlglogic 4.1版 软件大小:13.1M [hide]逻辑
    发表于 10-27 09:19

    如何利用VB实现计算机与单片机的串口通信

    如何利用VB实现计算机与单片机的串口通信,本文以自动化药物分析仪这一应用实例介绍串口通信的实现方法。
    发表于 11-03 10:46

    制作红外遥控信号分析仪

    ,若再有信号到来便会自动更新。现把不完全代码献上,有兴趣的朋友就拿去参考吧!无技术 无质保 仅供参考哦、特点:可分析不规则信号、最大捕获信号100个、时间精度为1us,可当逻辑分析仪用哦、上位
    发表于 11-09 07:35

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

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

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

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

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

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

    逻辑分析仪

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

    逻辑分析仪是什么

    虚拟仪器厂商,而基于PC的虚拟逻辑分析仪也是在这时推出,且逐渐成为主流。它们普遍使用USB通信,与传统台式逻辑分析仪相比,具有小巧便携,功
    发表于 08-23 16:31

    逻辑分析仪基础简介

    IF、THEN、ELSE等复杂事件。这类组合触发必然更加灵活,同时对大多数用户来说就不是那样容易掌握了。逻辑分析仪的基本发展趋势是计算机与仪器的不断融合。在PC平台上使用Windows,只要给定正确的
    发表于 08-07 10:27

    逻辑分析仪基础简介

    IF、THEN、ELSE等复杂事件。这类组合触发必然更加灵活,同时对大多数用户来说就不是那样容易掌握了。逻辑分析仪的基本发展趋势是计算机与仪器的不断融合。在PC平台上使用Windows,只要给定正确的
    发表于 08-18 10:06

    为什么要使用逻辑分析仪

    道进行时序和状态的分析。对于单片机UART发出的数据,使用示波器和逻辑分析仪都可以对其进行测量,如图 1.7为示波器测量的结果,可以观测到UART的高低电平时间,但数据是什么就无从而知
    发表于 10-13 09:23

    浅析逻辑分析仪的原理

    逻辑分析仪是常用的电子仪器之一,主要应用于做数字电路测试,FPGA调试,CPU/DSP调试,数字IQ/IF分析,无线通信/雷达接收测试等场合。逻辑
    发表于 06-28 07:51

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

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

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

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

    如何将ADC采样结果显示在KEIL的逻辑分析仪

    keil stm32 ADC采样 逻辑分析仪keil stm32单片机 将 ADC采样结果显示在KEIL的 逻辑分析仪(logic anal
    发表于 01-07 06:52