图13 按键流程图
按键流程图如图13所示。编写程序时首先对P1口赋值高电平,硬件开关接地,“是否有按键按下?”就是用if语句看P1口的8个引脚哪一个为0,因为按键的抖动,此时需要调用延时程序去抖动。然后定义对应的返回值代表相应的键值。
4.3 发送流程图
图14 数据发送流程图
数据发送流程图[12]如图14所示。主要思想是利用单片机的中断功能,产生38KHz的载波。通过对中断个数的计数来完成类似调制的过程,产生不同占空比的方波码元。先对T0进行初始化,然后设置传送八位数据的for循环,在循环体部分完成包括地址码、数据码的生成。用四个for循环语句即可将编码后的8位数据送到发送端。
4.4 主函数流程图
图15 主函数流程图
主函数流程图如图17所示。在主函数中首先进行程序初始化,包括对标志位、输出口、P1口、TMOD、中断允许、变量等赋值。然后就处于扫描状态,一旦有键按下就执行发送子程序,发送子程序中包括了引导码、地址编码以及相应键值的编码。发送完后单片机进入等待状态,直到下一个按键的按下,再重复以上步骤。
5. 系统调试
5.1 硬件调试
首先在Proteus中放置元器件,完成整个的硬件[13]的连接,连接时要与软件中定义的引脚一一对应。注意标号的使用,一般成对出现,防止漏标产生错误。要注意晶振参数的设置。整体仿真图如图16所示。
上一页 [1] [2] [3] [4] [5] [6] [7]