打印

7个数据位 2个停止位 偶校验 在8051mcu下该如何设置

[复制链接]
4693|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cooboo_gong|  楼主 | 2007-6-27 02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mcuatmel| | 2007-6-27 07:59 | 只看该作者

这个好像不能实现

楼上用的是日本的设备?还有一种,叫1.5个停止位,这个在单片机中好像都不能设。

使用特权

评论回复
板凳
wjy1107| | 2007-6-27 08:03 | 只看该作者

TB8做第9位数据位

如果你设置的不是9位模式,它就没什么用咯~
奇偶校验位不占数据位,而是跟在数据位的后面。如果选择不用奇偶校验,就没有这一位了。

使用特权

评论回复
地板
conwh| | 2007-6-27 08:59 | 只看该作者

用口模拟

使用特权

评论回复
5
gyt| | 2007-6-28 06:54 | 只看该作者

恐怕只能按conwh说的做了

使用特权

评论回复
6
IC1008| | 2007-6-28 09:36 | 只看该作者

吧多了那个数据位当作停止位了

使用特权

评论回复
7
cooboo_gong|  楼主 | 2007-6-29 16:56 | 只看该作者

回复主题:7个数据位 2个停止位 偶校验 在8051mcu下该如何设

不是说日本的设备,而是很多包括欧美的工业设备都用这个串口标准比如说数控机床什么的
这种7位2停偶校验国内好像很少有人用
串口调试程序里面可以设置数据位停止位和校验位
但是这是运行在PC机上的,调用API函数应该很容易就搞定
但是在MCU上应该怎么实现呢?
起始位+7个数据位+偶校验(这个可否组成一个字节的数据送至SBUF呢?)+1停止位(此停止位用TB8可以实现吗?)+1停止位
还是说
起始位+7个数据位+1停止位(这个可否组成一个字节的数据送至SBUF呢?)+偶校验(TB8作校验位)+1停止位
这一共就是11位应该工作在串口模式3下对吧?
如果TB8可以做一个停止位的话,那么校验位怎么处理?
拜托大家帮忙想想办法
谢谢了

使用特权

评论回复
8
conwh| | 2007-6-29 17:50 | 只看该作者

人家机床本身就没有考虑你准备使用51做接口的

你如果是搞研究的就继续,你如果是搞应用你就采取其他的方法。

使用特权

评论回复
9
xwj| | 2007-6-29 18:22 | 只看该作者

很简单啊,就如IC1008 所说:

 吧多了那个数据位当作停止位了

使用特权

评论回复
10
gyt| | 2007-6-29 19:01 | 只看该作者

接收时可能会有问题

使用特权

评论回复
11
HotPower| | 2007-6-29 20:20 | 只看该作者

后面还有个真正的停止位挡着,应该问题不大

不放心就看下那个假的停止位是否为"1"即可.

不过原帖为:7个数据位 2个停止位 偶校验

我想:
D0~D6应该为67个数据位.

偶校验用软件数"0"的个数,如果是偶数,则D7置"1",否则D7为"0"
或先将D7设为"1",再在PSW内取出奇偶校验位覆盖D7.

这样就组成一个字节的"数据"(内含偶校验)

后再跟2个真正的停止位即可.

实际上停止位的长短没多大影响,只要大于2个波特位的时间即可.

如果是10个停止位,那么延时即可~~~

使用特权

评论回复
12
mohanwei| | 2007-6-29 20:30 | 只看该作者

8位当7位用就ok了,最后一位让它恒定是1,呵呵

51收数的时候你要知道最后一位不能用;
51发数的时候先把第8位设为1,再送到SBUF。

使用特权

评论回复
13
hq_y| | 2007-6-29 20:37 | 只看该作者

1个、1.5个、2个停止位都差别不大~~~~~~~~~~

除非你是一个数据接着一个数据不停的发;
只要有间隔,实际上1个停止位=n个停止位;

使用特权

评论回复
14
cooboo_gong|  楼主 | 2007-7-2 17:21 | 只看该作者

多谢诸位指教

偶试试
研究好了再应用

使用特权

评论回复
15
xwj| | 2007-7-2 18:31 | 只看该作者

应该设为9位方式,把D7当成奇偶检验位,把D8当成停止位1

再加上原来得停止位,就是“7个数据位 2个停止位 偶校验 ”了

奇偶检验的程序应该会吧?旧不用说了:-)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

125

帖子

0

粉丝