
请教C语言程序高手!!!!! 10
解码部分实质是一个循环移位运算,当330Hz解调电路输出有效且600Hz解调电路输出为低时,证明接到的声波信号代表数字1,故将进位标志位C置1后,再进行带C的左移运算,使...
解码部分实质是一个循环移位运算,当330Hz解调电路输出有效且600Hz解调电路输出为低时,证明接到的声波信号代表数字1,故将进位标志位C置1后,再进行带C的左移运算,使结果中对应位为1;相反当接到信号代表数字0时,将C清零再进行左移操作。如此经过8次移位运算以后,就得到一个命令代码。
解码完成后,需要判定所接到信号是否为有效命令。如果是,则执行相关命令;不是,则返回进行下一轮有效上升沿判断。
单片机上电复位后,先进行初始化操作,其主要包括各通用IO口输入输出方向的定义,定时器定时时间设定等。初始化完成后,单片机就开始循环检测PD5和PD6管脚上是否出现有效的上升沿。在解调频电路没有接到有效信号时,两输出Freq1和Freq2电平为低,当接到某一频率信号时,对应的解调电路会输出高电平。如果检测到PD5和PD6某一引脚上的电平变高,而另一引脚上保持低电平时,延时20ms左右的一段时间再进行检测,如果结果不变,证明接到有效的上升沿,就可以开始解码了。
图片是主程序流程图
其实是按照流程图完成编程,文字是对解码过程的解释 展开
解码完成后,需要判定所接到信号是否为有效命令。如果是,则执行相关命令;不是,则返回进行下一轮有效上升沿判断。
单片机上电复位后,先进行初始化操作,其主要包括各通用IO口输入输出方向的定义,定时器定时时间设定等。初始化完成后,单片机就开始循环检测PD5和PD6管脚上是否出现有效的上升沿。在解调频电路没有接到有效信号时,两输出Freq1和Freq2电平为低,当接到某一频率信号时,对应的解调电路会输出高电平。如果检测到PD5和PD6某一引脚上的电平变高,而另一引脚上保持低电平时,延时20ms左右的一段时间再进行检测,如果结果不变,证明接到有效的上升沿,就可以开始解码了。
图片是主程序流程图
其实是按照流程图完成编程,文字是对解码过程的解释 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询