标题: 单片机怎样将一个01矩阵按顺序输出成脉冲的形式呢? [打印本页]

作者: 爱吃橘的橙    时间: 2022-10-16 15:20
标题: 单片机怎样将一个01矩阵按顺序输出成脉冲的形式呢?
比如说一个01矩阵          0 0 1 0 1
1 1 1 0 1
0 1 0 0 0
0 0 0 0 1
0 1 0 1 0
该怎样将它按顺序输出脉冲呢?


作者: 188610329    时间: 2022-10-16 16:23
如果,双方有 异步时钟的话, 可以直接按  01  设置高低电平发送。 当然,你要自行定义  长度规范。

如果,双方无 异步时钟的话,有条件可以提供 同步时钟线,然后按 01设置高低电平发送。当然,要自行定义长度规范。

如果,双方既无 异步时钟,又没有多余的IO提供同步时钟线,可以用时钟带载方式 传输,比如 低电平时间是高电平时间的2倍以上,代表0, 高电平是低电平时间的2倍以上,代表1,  当然还要定义一下, 比如低电平时间是 高电平时间 4倍以上,代表开始传输, 反过来高电平时间是低电平时间的 4倍以上 代表传输结束。 等等,这些都是可以自行定义的。
作者: 爱吃橘的橙    时间: 2022-10-17 10:25
188610329 发表于 2022-10-16 16:23
如果,双方有 异步时钟的话, 可以直接按  01  设置高低电平发送。 当然,你要自行定义  长度规范。

如 ...

按您说的话要一个一个的设置,那如果矩阵的元素非常多呢,该怎么办?
作者: yzwzfyz    时间: 2022-10-17 15:10
假定你是发送方,我是受方。于是我与你拱手写了一个协议,规定你从P1.1发数据给我:
1、数据每间隔1秒发送一位。
2、发送任何数据前,先发8个10,8个1,一个0【1010101010101010111111110】
3、然后再发你想发的位数,用8位表示,你要发20位,就是【00010100】
4、最后发数据。【1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0】
这样双方就不会错了。
记住,只要收、发的双方能够互相理解,不会弄错,你怎么收发都可以。
这个保证【收、发的双方能够互相理解,不会弄错】的规则,就叫协议。
串行通讯是需要通讯协议,来保证参与通讯的各方,不会出错的。
这个协议你可以随意编规定。也可以偷懒,要对方写,当然可以用现成的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1