关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 一种红外遥控式步进电机控制器的设计与实现

一种红外遥控式步进电机控制器的设计与实现

作者: 时间:2012-12-24 来源:网络 收藏

红外接收电路的输出接单片机的P3.2,该口对应的第二功能是外部中断0(INT0),利用该口的第二功能,一旦红外线信号到来,P3.2被拉低,单片机中止当前的工作转移到接收、处理红外信号。开启中断功能的目的,既减轻了单片机的工作负担,又保证接收到的红外信号的完整性,单片机进入睡眠后,利用外部中断功能完成对单片机的唤醒,其接线图如图3所示。

本文引用地址://m.amcfsurvey.com/article/159589.htm

c.JPG


红外发送电路可选用昂达播放器的器,也可采用电视器。由于系统简单,采用昂达播放器的器。
2.3 时钟电路
时钟电路采用DS1302集成芯片,其主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768 Hz晶振,的启闭时间都保存在DS1302自带的RAM中,不需要单独的EEPROM。
DS1302与CPU的连接仅需要三条线,即SCLK(7)、I/O(6)、RST(5)。

3 系统软件设计
软件系统主要包括主程序、红外中断子程序、A/D转换子程序、显示子程序、时钟控制子程序及程序。下面主要介绍红外线解码程序。
3.1 红外线解码原理
昂达播放器的遥控器产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码同定高8位地址为0BFH,低8位地址为40H;后16位为8位操作码(功能码)及其反码。
遥控器按键按下后,周期性地发出同一种32位二进制码,周期约为108 ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63 ms之间。
当一个键按下超过36 ms,振荡器使芯片激活,将发射一组108 ms的编码脉冲,这108 ms发射代码由一个起始码(9 ms),一个结果码(4.5 ms),低8位地址码(9~18 ms),高8位地址码(9~18 ms),8位数据码(9~18 ms)和这8位数据的反码(9~18 ms)组成。如果键按下超过108 ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9 ms)和结束码(2.5 ms)组成。
其代码宽度的计算方法为:
16位地址码的最短宽度:1.12×16=18 ms
16位地址码的最长宽度:2.24 msX16=36 ms
已知8位数据代码及其8位反代码的宽度和不变:(1.12 ms+2.24 ms)x8=27 ms。所以得32位代码的宽度为(18 ms+27 ms)~(36 ms+27 ms)。
解码的关键是如何识别“0”和“1”,代码格式以接收代码为准,接收代码与发射代码反向。从位的定义我们可以发现“0”、“1”均以0.56 ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56 ms,“1”为1.68 ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56 ms低电平过后,开始延时,0.56 ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,
延时必须比0.56 ms长些,但又不能超过1.12 ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12 ms+0.56 ms)/2=0.84 ms最为可靠,一般取0.84 ms左右均可;根据码的格式,应该等待9 ms的起始码和4.5 ms的结果码完成后才能读码。
3.2 解码程序设计
根据以上分析,采用89C2051单片机实现红外解解码的思路为:有信号产生中断→EA清零→延时小于9 ms (低电平)→等待高电平的到来→延时小于4.5 ms(高电平)→等待下一次高电平的到来→延时0.84 ms左右→读区P3.2脚电平值→再等待下一次高电平的到来→延时0.84 ms左右→读取P3.2脚电平值,依次取得32位代码,前16位为识别码,后18位既为8位数据码和8位数据反码。解码中断服务程序流程图如图4所示。

d.JPG



4 结束语
通过系统调试及运行结果表明,采用作为执行元件,89C2051单片机作为控制器,光敏元件传感器作为检测元件,以输入按钮作为输入信号,以红外遥控装置进行遥控操作,并辅以时钟控制及状态显示的步进电机控制系统,能够方便实现步进电机的、自动及遥控多功能操作,操作更加方便可靠。

红外遥控器相关文章:红外遥控器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭