南昌航空大学 学士学位论文
图4.3红外编码格式
4.2 发射部分软件设计
发射程序由按键扫描程序,编码发送程序和主函数构成。在主程序开始后就开始对程序进行初始化,然后就调用按键的扫描程序,假如检测到按键按下然后就完成对应的编码发送操作(如图4.4)。
开始 初始化 调用扫描按键程序 是否按下按键 NO YES 执行红外编码程序发送编码
图4.4发射部分主程序
在发送的过程中首先发送9ms高电平+4.5ms低电平的引导码。当发送完成时便开始发送客户码1和客户码2.。最后发送操作码和操作反码(红外编码以及发送程序流程图如图4.5所示)最后还发送一个9ms高电平和4.5ms的低电平,
16
南昌航空大学 学士学位论文
然后将标志位置于初始状态,为下一次的发射做好准备。在发送前调用定时器0.通过定时器0来产生38KHZ的信号[10]。当检测到红外发送的标志位为1,然后就发送38KHZ的方波信号作为作为载波信号。在发射编码信号的时候编码经过38K的载波信号调制而后发射出去。在其中通过设置定时器0工作在2的方式下。也就是设定TMOD=0x02,然后再来设定TH0=0xFF; TL0=0xE6。这样我们就可以通过计算得到一次计时为13us,在检测到红外发射标志位为1的时候就对载波信号取反。就是13us的高电平和13us的低电平,于是就可以求到载波信号的频率为38.5KHZ大约为38KHZ的载波信号,于是编码信号就通过载波信号的调制后发射出去。
17
南昌航空大学 学士学位论文
开始 发送9MS高电平信号 开始 开定时器 等待引导码发送完毕 延时等待0.565MS高电平信号发送完毕 发送4.5MS低电平信号 等待结果码发送完毕 NO 是否发送完毕 YES 发送客户码1 发送客户码2 发送1.695MS低电平信号 发送操作码 NO 是否发送8位 发送操作反码 YES 结束 发送重复码 8位红外编码软件流程
发送完毕 发送红外编码软件流程
图4.5红外编码流程图
18
南昌航空大学 学士学位论文
4.3 接收部分的软件设计
4.3.1 主程序设计
接收部分的软件主要有两部分构成解码部分和操作执行部分。操作执行部分的软件有LCD1602显示部分和继电器控制部分。在进入主程序进行定时器和中断的初始化,然后就准备来接收引导码[11]。假如已经成功的接收到引导码那就进入红外解码。当完成了红外解码就开始进入操作执行的部分通过控制继电器来完成对汽车的控制。同时利用LCD1602来进行显示控制的状态。主程序的软件流程图如图4.3.1所示。
开始 初始化 是否接收完引导码 NO YES 接受客户码,操作码,操作反码 是否完整接收客户码,操作码操作反码 NO YES 驱动电路执行和显示
图4.6红外接收主程序流程图
19
南昌航空大学 学士学位论文
4.3.2 红外解码程序设计
红外指令编码由引导码,客户码1,客户码2,操作码和操作反码构成。所以在接收的时候也是按照这个顺序。定时器和中断初始化完成后解码程序就等着引导码的出现,通过延时来判断是否为是否为引导码。等待9ms的引导码的结束。再来等待4.5ms的结果码。假如完成则进入高电平等待。假如高电平的时间超过0.565ms则储存1否则保存0.然后再来判断接收的位数。假如接收完了8位则可以进入接收操作码和操作反码。最后来判断操作码和操作反码是否相匹配,假如相匹配红外线则接收完成,红外线接收流程如图4.7所示。在其中利用定时器来计时。通过定时器来判断信号的时间的长度从而来判断传来的信号是0还是1。
20