文档详情

利用红外线实现单片机间的数据通信..doc

发布:2017-01-08约1.4千字共7页下载文档
文本预览下载声明
前言: 在电子线路综合设计中,往往会用到单片机间的通信,常用的通信方式有串行通信,比如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及以上,接收端对应3ms以上高电平 图1 红外调制解调波形图 图2 发送端信号波形 (连续发送2,3,4,5,深色部分为38KHz方波脉冲) 采用单片机定时器T0进行编码调制,红外调制信号经HS0038-A2解调后,通过单片机定时器T1进行计数还原原来数据. 电路原理图 主机电路图 图3 系统主机电路图 从机电路图 图4 系统从机电路图 软件流程图 结语: 本实验通过红外半双工通信实现了单片机之间的相互通信,电路简单,通信可靠,程序具有一定得通用性,读者可在这两个通用模块基础上在较短时间内继续进行灵活开发,实现更多功能,比如多点信号采集,红外控制,红外抄表等。 图7 系统实物图 5 上电复位 发送接收数据请求(可以设置从机号) 等待中断 进入中断处理程序,通过计数器得到数据值 数据送LCD进行显示 上电复位 识别起始位,并与自己地址(从机号)比较 一致否? 等待中断 发送数据 Y N 图5 主机程序流程图 图6 从机程序流程图
显示全部
相似文档