[发明专利]一种实现单片机之间数据通信的新方法无效
申请号: | 201310498715.X | 申请日: | 2013-10-23 |
公开(公告)号: | CN103500156A | 公开(公告)日: | 2014-01-08 |
发明(设计)人: | 魏二有 | 申请(专利权)人: | 鲁东大学 |
主分类号: | G06F13/40 | 分类号: | G06F13/40;G06F15/163 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 264025 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 单片机 之间 数据通信 新方法 | ||
技术领域
本发明涉及单片机数据通信领域,特别是一种实现两个单片机之间相互通信的方法。
背景技术
现有的两个单片机之间通信的方法主要是通过串行口和串行中断来实现,这种通信方式要求两个单片机用特殊的晶振如11.0592MHz,用其它频率的晶振会造成数据传输错误,而且还必须用一个定时器来配合。
发明内容
为了克服上述问题,本发明的目的是提供一种实现两个单片机之间不管使用何种频率的晶振都能正确无误地进行数据传输的通信方法。
所述方法其特征在于包括以下步骤:
1)发送数据单片机将其与接收数据的单片机连接的定时器/计数器输入端Tx作为普通的IO口用,即通过程序让TRx=0;
2)发送数据的单片机通过Tx端向接收数据的单片机的Ty端发送若干个脉冲(x、y可以为0,1,2,以下同),脉冲个数与发送的数字相对应,如发送数字“1”就发送1个脉冲,发送数字“255”就发送255个脉冲,以此类推;
3)接收数据的单片机在不发送数据时让TRy=1,这样能对收到的脉冲个数自动计数;
4)发送数据的单片机在每一字节数据发送完后通过外部中断端口向接收数据的单片机的某个外部中断输入端发出一个负脉冲;
5)接收数据的单片机通过上述外部中断输入端相对应的外部中断服务程序将定时器/计数器TLy中接收到的数据保存起来并清除TLy的值,为接收下一个字节的数据做好准备;
6)如果发送数据的单片机发送完所有的数据就结束,如果没发送完就重复以上步骤;
7)本发明的方法也可以一次传输2字节的数,如果是一次传输2字节的数,只须将定时器/计数器初始化为16位即可。
本发明的有益效果为,不要求两个进行数据通信的单片机采用相同频率的晶振,也不要求采用特别数值的晶振如11.0592MHz,由于发送的数据与传输的脉冲个数相对应,因此减小了程序设计的难度,使得这种通信方式变得更加容易实现。
附图说明
图1为本发明的结构示意图。
图2 为本发明的调快慢方法工作流程图。
具体实施方式
下面将结合附图及实施例对本发明作进一步说明。
参照图1,单片机1与单片机2各用一个IO口的2个位进行握手信号的传输,再用某个定时器/计数器的端口进行串行数据的传输,这些硬件通过一套用C语言编写的程序来通过以下步骤来实现数据通信:
1)假设单片机1是数据发出方,单片机2是数据接收方,单片机1将其与单片机2连接的定时器/计数器输入端Tx当成普通的IO口用,即通过程序让TRx=0;
2)单片机1通过Tx端向单片机2的Ty端发送若干个脉冲,脉冲个数与发送的数字相对应,如发送数字“1”就发送1个脉冲,发送数字“255”就发送255个脉冲,以此类推;
3)单片机2在不发送数据时让TRy=1,这样能对收到的脉冲个数自动计数;
4)单片机1在每一字节数据发送完通过外部中断端口向单片机2的某个外部中断输入端发出一个负脉冲;
5)单片机2通过上述外部中断输入端相对应的外部中断服务程序将定时器/计数器TLy中接收到的数据保存起来并清除TLy的值,为接收下一个字节的数据做好准备;
6)如果单片机1发送完所有的数据就结束,如果没发送完就重复以上步骤。
必须指出,上述实例只是对本发明作出一个非限定性举例说明。但本领域的技术人员会理解,在没有偏离本发明的宗旨和范围下,可以对本发明作出各种修改、替换和变更,这些修改、替换和变更仍属于本发明的保护范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于鲁东大学,未经鲁东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310498715.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种阀口袋灌装包装系统
- 下一篇:膏体灌装中准确定量控制系统及其控制方法