標題: 單片機怎樣將一個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  設置高低電平發(fā)送。 當然,你要自行定義  長度規(guī)范。

如果,雙方無 異步時鐘的話,有條件可以提供 同步時鐘線,然后按 01設置高低電平發(fā)送。當然,要自行定義長度規(guī)范。

如果,雙方既無 異步時鐘,又沒有多余的IO提供同步時鐘線,可以用時鐘帶載方式 傳輸,比如 低電平時間是高電平時間的2倍以上,代表0, 高電平是低電平時間的2倍以上,代表1,  當然還要定義一下, 比如低電平時間是 高電平時間 4倍以上,代表開始傳輸, 反過來高電平時間是低電平時間的 4倍以上 代表傳輸結束。 等等,這些都是可以自行定義的。
作者: 愛吃橘的橙    時間: 2022-10-17 10:25
188610329 發(fā)表于 2022-10-16 16:23
如果,雙方有 異步時鐘的話, 可以直接按  01  設置高低電平發(fā)送。 當然,你要自行定義  長度規(guī)范。

如 ...

按您說的話要一個一個的設置,那如果矩陣的元素非常多呢,該怎么辦?
作者: yzwzfyz    時間: 2022-10-17 15:10
假定你是發(fā)送方,我是受方。于是我與你拱手寫了一個協(xié)議,規(guī)定你從P1.1發(fā)數(shù)據(jù)給我:
1、數(shù)據(jù)每間隔1秒發(fā)送一位。
2、發(fā)送任何數(shù)據(jù)前,先發(fā)8個10,8個1,一個0【1010101010101010111111110】
3、然后再發(fā)你想發(fā)的位數(shù),用8位表示,你要發(fā)20位,就是【00010100】
4、最后發(fā)數(shù)據(jù)!1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0】
這樣雙方就不會錯了。
記住,只要收、發(fā)的雙方能夠互相理解,不會弄錯,你怎么收發(fā)都可以。
這個保證【收、發(fā)的雙方能夠互相理解,不會弄錯】的規(guī)則,就叫協(xié)議。
串行通訊是需要通訊協(xié)議,來保證參與通訊的各方,不會出錯的。
這個協(xié)議你可以隨意編規(guī)定。也可以偷懶,要對方寫,當然可以用現(xiàn)成的。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1