RS232通讯编程提问(C51单片机)

2012年04月15日 09:18    发布者:zxf_love2
我想用51单片机做通讯,RS232协议,比如我制定指令为#(x x x)格式,#(A 8 1)这条指令的意思是:#通讯请求,(为发送开始位,A表示P0口8表示P0口的第7位(P0.7),1表示该位为1,)为结束位  请问下位机的编程该怎样做呢?

网友评论

zxf_love2 2012年04月15日
请求各位高手给予解答啊
zxf_love2 2012年04月15日
我需要做个小实验的 希望各位高手帮我一下啊 感激不尽
lous 2012年04月15日
基础问题,没有人回答你。自己不动脑
zxf_love2 2012年04月15日
:(
zxf_love2 2012年04月15日
关键是 我是自学的  没有基础 期望能得到指点
zxf_love2 2012年04月15日
高手帮帮忙啦 给我一点思路也可以啊  谢谢啦
sherwin 2012年04月15日
俺不写代码N多年了,只能给点提示给你吧:
1、先制定一个完整的命令表。这个很重要,否则后面你会越做越乱的。
2、下位机就是单片机,一般C51片子都会有专门的UART接口的,好好读懂数据手册,通过设置几个寄存器,一般就能完成了。
3、如果不巧没有专用UART接口,则需要自己用软件来模拟。那么建议,一是要用中断IO口来进行接收,用其他IO口来做发送;二是调用内部计时器,来计算时间的长短,设置IO的高低电平(或接收口的高低电平)的时间长短;三则,在固定的时间段内(根据约定的速率来计算),读取接口(或设置接口)的高低电平,高为1,低为0;最后,采用移位算法,将下一位数据调用(或保存),最后构成完整的单个字节或者整条命令。
zxf_love2 2012年04月17日
非常感谢sherwin 给我的宝贵意见 我现在尝试这用switch  case 结合数组 现在做成功了 我就是想看看别人是怎么做的   我想看看别人的高效代码  学习学习!
McuPlayer 2012年04月17日
指令格式为#(x x x)
这个做法可行的,有帧起始和结束标志

另外,尽量一开始就考虑到协议的扩展性
pcbkey 2015年02月07日
支持一下