首页 理论教育 系统软件设计-单片机原理及接口技术指南

系统软件设计-单片机原理及接口技术指南

时间:2023-10-22 理论教育 版权反馈
【摘要】:发射信号采用脉冲个数编码,不同的脉冲个数代表不同的编码,最小为6个脉冲,最大为21个脉冲,遥控码数据帧间隔为8ms。图8-24 接收部分的电路原理图8-25 发射8个编码时的输出信号波形2.接收部分工作原理系统上电初始化后,对单片机的p3.3口进行检测,当其为高电平时,系统处于等待状态;当其为低电平时,将启动中断服务程序,实现接收数据帧。

系统软件设计-单片机原理及接口技术指南

本设计的软件分为发射部分和接收部分。

1.发射部分的工作原理

系统上电初始化,然后调用键扫描处理子程序。当无按键按下时,系统处于等待状态;当有按键按下时,系统通过按键检查子程序,检查按键号并转入相应的发射子程序。在发射子程序中,将待发射信号调制成38khz的载波信号,由单片机的14脚输出,经晶体管9013放大后驱动红外发射管st188,发射调制脉冲信号。发射信号采用脉冲个数编码,不同的脉冲个数代表不同的编码,最小为6个脉冲,最大为21个脉冲,遥控码数据帧间隔为8ms。为达到准确控制的目的,将发射脉冲分为连接段、控制段和结束段。连接段为发射信号的前3个脉冲,脉冲宽度分别为4ms、2ms、4ms,脉冲间隔为1ms;结束段为发射信号的最后2个脉冲,脉冲宽度分别为2ms、4ms,脉冲间隔为1ms;中间为控制段,脉冲宽度和脉冲间隔均为1ms。发射8个编码时的输出信号波形如图8-25所示。其中前3个脉冲为连接段。中间3个脉冲为控制段,最后2个脉冲为结束段。

978-7-111-46285-9-Chapter08-66.jpg

图8-24 接收部分的电路原理

978-7-111-46285-9-Chapter08-67.jpg

图8-25 发射8个编码时的输出信号波形

2.接收部分工作原理

系统上电初始化后,对单片机的p3.3口进行检测,当其为高电平时,系统处于等待状态;当其为低电平时,将启动中断服务程序,实现接收数据帧。需要说明的是:数据帧采用中断方式进行接收,单片机在外中断1方式下工作。在接收数据帧时,将对所接收数据的前3位码的码宽进行验证。前3位码的码宽分别为4ms、2ms、4ms,若任意一位的码宽不满足要求,都将作为错误码处理,当系统接收到的高电平脉宽大于5ms时,结束脉冲接收。然后系统会对所接收脉冲的最后两位脉宽进行验证,其值应分别是2ms和4ms,否则将会作为错误码处理,最后系统根据累加器a中的脉冲个数,在单片机p0或p2口的某一对应引脚输出控制信号,同时在p1口输出相应的二进制数据。此时即完成一次数据的接收处理。hrm5700b接收8个编码时的输出信号波形如图8-26所示。

978-7-111-46285-9-Chapter08-68.jpg

图8-26 hrm5700b接收8个编码时的输出信号波形

3.遥控系统的编码及解码

(1)遥控发射编码格式 采用脉宽调制的串行码,以脉宽为0.565ms、间隔为0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔为1.685ms、周期为2.25ms的组合二进制的“1”,其波形如图8-27所示。

978-7-111-46285-9-Chapter08-69.jpg

图8-27 脉宽调制的串行码波形

遥控码的“0”和“1”(注:所有波形为接收端的与发射相反)

上述“0”和“1”组成的32位二进制码经38khz的载频进行二次调制以提高发射频率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图8-28所示。

978-7-111-46285-9-Chapter08-70.jpg

图8-28 遥控信号编码波形

遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,在45~63ms之间,图8-29为遥控连发信号波形。

当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms)、一个结果码(4.5ms)、低8位地址码(9~18ms),高8位地址码(9~18ms)、8位数据码(9~18ms)和这8位数据的反码(9~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。

978-7-111-46285-9-Chapter08-71.jpg

图8-29 遥控连发信号波形

978-7-111-46285-9-Chapter08-72.jpg(www.xing528.com)

图8-30 红外线接收器输出的一帧遥控码波形

(2)数据帧的接收处理 当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据接收时,先对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms,将作为错误码处理;否则认为是起始码,累加器a加1。当间隔位的高电平大于3ms时,结束接收,然后根据累加器a中的脉冲个数,执行相应的输出操作。图8-30为红外线接收器输出的一帧遥控码波形。

4.遥控发射及接收控制程序流程

(1)遥控发射控制流程 图8-31中的左图是遥控发射的主程序,首先初始化程序,然后调用键扫描处理子程序。上右图为扫键过程,首先判断控制键是否按下,若有控制键按下则进行逐行扫描,按照p口值查找键号转至相应的发射程序。

红外信号发射过程:首先装入发射脉冲个数(发射时为3ms脉冲,停发时为1ms脉冲),此时若发射脉冲个数为1则返回主程序,若不为1则发1ms脉冲,然后停发1ms脉冲,这样便结束整个发射过程,如图8-32所示。

978-7-111-46285-9-Chapter08-73.jpg

图8-31 遥控发射程序控制流程

978-7-111-46285-9-Chapter08-74.jpg

图8-32 遥控发射控制流程

在实践中,采用红外线遥控方式时,由于受遥控距离、角度等影响,实用效果不是很好,如采用调频或调幅发射接收码,可提高遥控距离,并且没有角度影响。

(2)遥控接收控制流程 遥控接收控制主流程如图8-33所示。首先初始化,然后按照显示亮度数据设定调光脉冲延时值,看p3.0口的脉冲是否为0,若不为0则调入延时程序,此时p2.7口输出调光脉冲然后返回;若为0则直接返回。

978-7-111-46285-9-Chapter08-75.jpg

图8-33 遥控接收控制主流程

978-7-111-46285-9-Chapter08-76.jpg

图8-34 遥控接收中断流程

中断过程(见图8-34):首先判断低电平脉宽度是否大于2ms,若脉宽不到2ms,中断返回;若低电平大于2ms,则接收并对低电平脉冲计数。接下来看判断高电平脉冲宽度是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序。此时中断返回。

5.程序设计

978-7-111-46285-9-Chapter08-77.jpg

978-7-111-46285-9-Chapter08-78.jpg

978-7-111-46285-9-Chapter08-79.jpg

978-7-111-46285-9-Chapter08-80.jpg

978-7-111-46285-9-Chapter08-81.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈