基于单片机的红外遥控步进电机的设计与实现
2020-02-21
来源:步旅网
第25卷第3期(总第115期) Vo1.25 No.3(SUM No.1 15) 机械管理开发 MECHANICAL MA NAGEMENT AND DEVEL0 2010年6月 Jun.2010 基于单片机的红外遥控步进电机的设计与实现 刘 飞 (太原中北新缘科技中心,山西太原030051) 【摘要】文章介绍了红外遥控器的编码格式及解码方式,详细讲解了运用AT89C51单片机从硬件和软件方面如 何实现红外遥控解码和步进电机的控制。 【关键词】红外遥控;AT89C51单片机;步进电机 【中图分类号】TP368.2;0434.3 【文献标识码】A 【文章编号】1003—773X(2010)03—0180—02 0引 言 上述“0”和“1”组成l6位二进制码经37.9 kHz的载频 红外线遥控是目前使用很广泛的一种通信和遥控 技术。由于红外线遥控装置具有体积小、功耗低、功能 强、成本低等特点,因而,在诸多电子设备中均采用红 外线遥控。采用红外线遥控不仅完全可靠而且能有效 地隔离电气干扰。本文介绍了红外遥控如何在视标投 影仪中控制步进电机的角位移,从而投射出正确的 视标。 1 红外遥控器工作原理” 进行调制,然后,通过红外发射管产生红外线向空问 发射。 用户码和功能码采用脉冲位置调制(PPM)方式编 码,根据脉冲之间的时间间隔来区分码值的“0”或“1”0 以脉宽为0.26 ms,间隔0.79 ms,周期为1.05 ms的组 合表示二进制的“0”,以脉宽为0.26 ms,间隔1.84 ms, 周期为2.1 ms的组合表示二进制的“1”。每位的波形 及定义见图2。 红外遥控发射器专用芯片很多,根据编码格式可 以分成两大类,这里我们以运用比较广泛,解码比较容 易的一类来加以说明,现以士兰微电子股份有限公司 一]厂]厂—一Bi【‘‘0”U二… U LQ 盟一.卜 的SC50462组成发射电路为例说明编码原理,它可以 与日本三菱公司的M50462完全兼容。SC50462包含键 Bit…i’L—J } I l I L—j 盘扫描、合法性检查、指令译码电路、用户编码电路脉 冲调制电路以及输出缓冲电路,它最多支持8×8的按 键矩阵产生16位的指令76条(单键指令64条和双键 指令l2条),有2个用户编码端以脉码调制的方式输 出。振荡电路通过外接1只陶瓷谐振器和2只电容即构 图2“0”“1”二进制每位波形及定义图 成振荡器。使用455 kHz陶瓷谐振器,内部分频电路将 振荡频率fosc进行12分频后,变成频率fc=37.9 kHz, 占空比为1/3的脉冲载波信号。 SC50462所发射的码由8位用户码(CO C7)和8 体化红外线接收器SFH506—38是一种集红外 线接收和放大于一体,不需要任何外接元件,就能完成 从红外线接收到输出与rIYrL电平信号兼容的所有工 作,而体积和普通的塑封三极管大小一样,它适合于各 种红外线遥控和红外线数据传输。 2硬件电路设计及实现 红外接收模块 电机复位信号 位功能码(D0~D7)组成。l6位二进制码组发射顺序 是低位在前,高位在后,其中前8位是用户码,能区分 不同的电器设备,防止不同的机种遥控码互相干扰,后 八位是功能码。如图1所示: 复位信号 AT89C51 步进电机 驱动模块 I 曼 l 卜.I——一l 功能码—l曼 l :巴 l里 l 【里 J l里 J里 l里:I —l——用户码——I I时钟源 l步进电机 图1 16位二进制码组示意图 用户码位c4和C5端子在外部进行设置。C4、C5 的管脚输入信号是反相的,当c4、c5管脚被拉为高电 平时相应的用户编码C4、C5被置为(0 0);当C4、C5管 脚为低电平时C4、c5被置为(1 1);其它的用户编码位 CO~C3及C6、C7是固定的,分别为(1 1 1 0)和(1 0)。 收稿日期:2010—01—25 图3硬件电路框图 如图3所示,硬件电路框图以AT89C51单片机为 核心,配以时钟源和复位电路。其中时钟选11.0592M 目的是为以后扩展串口方便。红外遥控信号经过红外 作者简介:刘飞(1981一),男,江苏徐州人,助理工程师,本科,主要研究方向:智能仪器制造。 18O· 第25卷第3期(总第115期) 刘 飞:基于单片机的红外遥控步进电机的设计与实现 2010年6月 接收模块接收后,解调为遥控信号的编码脉冲由输出 端输出,其波形如图2所示,此信号经过上拉电阻输出 到AT89C51的外部中断INT0输入端。单片机通过运行 程序对红外遥控器SC50462所发出的编码脉冲进行接 收和译码。然后,单片机计算出电机需要行进的角位 移,选择最佳路径行进。在步进电机驱动设计中采用 P0口进行数据传输,采用双四拍工作方式 1。为了防止 失步,在电机启动和停止时,进行均匀加速和减速。 3软件设计及实现【2 时时问为l ms;设外部中断INT0为下降沿中断触发方 式,遥控器无键按下时,红外发射二极管不发出信号, 遥控接收头输出信号“l”。有键按下时,“0”和“l”编码 经遥控头接收后会输出给单片机的INT0端,将会引起 单片机中断。单片机在中断时开启定时器TO开始计 时。定时器每次中断定时时间为1 ms并累加到定时计 数器中,到下一个脉冲到来时,即再次产生中断时,先 将计时值取出。清零计时值后再开始计时,通过判断每 次中断与上一次中断之间的时间间隔。便可知接收到 的是“0”还是“1”。当接收到16位数据时,说明-一帧数 据接收完毕。此时可停止定时器的计时并判断本次接 收是否有效。外部中断INT0程序流程图见图5。 图4主程序流程图 单片机程序主要解决的问题就是如何对接收到的 红外遥控器所发射的信号进行解码以及控制步进电机 的行进,图4给出了主程序流程图。遥控器在按键按下 后,周期性地发出同一种l6位二进制码,周期约为46 ms。 图5外部中断INT0中断程序流程图 组码本身的持续时间随它包含的二进制“0”和“1” 的个数不同而不同,大约在25~34 ms之间。前后两个 4结束语 码的间隔在12~21 ms之间。红外遥控的16位二进制 本文所介绍的基于AT89C5 l单片机为核心的红 串行码是脉宽调制的,脉宽是固定的(0.26 ms),而脉 外遥控步进电机的方法,具有成本低、硬件电路简单、 冲的间隔不同。因此,解码的关键是设法测出脉冲间隔 控制方便等优点。已经成功应用到视标投影仪中,在 时间。为了测量方便,直接测量每一个脉冲的周期,周 使用过程中,反应灵敏,未发现有不稳定现象,产生了 期为为1.05 ms判为“0”,脉冲间隔为2.1 ms判为“1”。 很好的经济效益。 参考文献 考虑到适当的容差,因为不同的遥控器由于晶振参数 【1】余永权,李小青,陈林康.单片机应用系统的功率接口技术 等原因,发射及接收到的时间也会有很小的误差。在程 【M】.北京:北京航空航天大学出版社,1992. 序具体编写的时候,把周期为0.8 1.2 ms判为“0”,把 【2】 张毅坤,陈善久,裘雪红.单片微型计算机原理及应用【M】. 周期为1.9~2-3 ms判为“1”。在单片机设置中,将单片 西安:西安电子科技大学出版社,2000. 机AT89C51内部定时器/计数器T0设为定时方式1,定 Design anl】}Realizing of Stepper Motor Control System Based on Microntroller of Infrared Remote Control LIU Fei (Taiyuan Xinyuan High一 rech.Center,North University of China,Taiyuan 03005 1,China) [Abstract]The paper introduces the format codes and decode of the infrared remote control,it is detailed told of the uses AT89C5 1 single chip microcomputer on the sides of software and hardware realized infrared remote decode and control of stepper motor. 【Key wordsj Infrared remote;AT89C51 single chip microcomputer;Stepper motor 1 81.