前言:在电子线路综合设计中,往往会用到单片机间的通信,常用的通信方式有串行通信,比如232通信和485通信,这些通信方式技术成熟,传输速率快,在日常生活中得到较多的应用
笔者在此结合实例介绍了另一种单片机间实现通信的方式——红外通信
红外通信的显著优点就是无线连接,可以给作品添几分神奇
如果采用单工通信,还可以有效地节约I/O资源(仅占一个I/O口),但是它也有一定的缺点,比如传输距离近(笔者作品有效距离为6m),传输具有方向性,而且传输速率较慢
为了让读者更好的了解单片机间红外数据的传输,笔者设计了一套能够进行半双工通信的红外温度传输系统,并且附了本人编写的源程序
作品介绍本系统采用红外半双工通信,首先主机通过红外发射二极管发送接收数据请求至从机,从机收到发射请求后进行温度数据发射(采用常用的数字温度传感器DS18B20采集),主机接收到数据后通过常用的液晶OCM12864(不带字库)进行显示,然后重复进行上述过程
为提高系统可靠性,采用单片机定时器(也可以采用专门调制芯片)对码元进行38KHz调制,接收端采用型号为HS0038-A2的红外线信号解调器进行解调
为提高本系统的通用性,使读者能够在本系统基础上更好的进行开发,笔者设计了两个通用模块,即主机解调显示模块和从机调制发射模块,读者只需要改变接入从机的数据(从剩余的29个I/O口输入),即可实现基于红外线的半双工无线通信
需要采集其它数据时,只需修改从机系统第二片单片机上的程序,不会与负责发送的单片机产生时序上的冲突
本系统中接入数据为另一片单片机通过DS18B20采集的温度信号
实现原理本系统中红外数据编码规则参考异步通信格式:起始位:发送3ms的38KHz的脉冲,接收端对应3ms低电平数据位:停发1ms脉冲,然后发2ms的38KHz脉冲,接收端分别对应1ms的高电平,2ms的低电平停止位:停3ms及以上,接收端对