標題: 單片機串口控制74HC595的問題 [打印本頁]

作者: Zzwh    時間: 2023-2-6 10:54
標題: 單片機串口控制74HC595的問題
我想通過串口來控制595,發(fā)送一個data(0x01)控制一個IO后,再發(fā)送一個data(0x02)控制另一個IO,不影響前一個IO的狀態(tài),這個data要和前一個data怎么處理來實現(xiàn)單獨控制某個IO口

作者: munuc_w    時間: 2023-2-6 13:46
置1:0x01|0x02
清零:0x03&0x20 或 0x03&0x01
作者: xianfajushi    時間: 2023-2-6 14:23
在不清零情況下送(0x01)2次,按二進制串的方式控制。
作者: Zzwh    時間: 2023-2-6 15:39
xianfajushi 發(fā)表于 2023-2-6 14:23
在不清零情況下送(0x01)2次,按二進制串的方式控制。

不清零情況下發(fā)兩次0x01,就是第1 IO口發(fā)生了高低電平轉(zhuǎn)換嘛,
作者: wufa1986    時間: 2023-2-6 15:51
把前一個值和第二個值|運算一下再發(fā)送即可,按你的第一次發(fā)0x01,第二次就要0x01|0x02=0x03,再發(fā)就要0x03|xx
作者: coody_sz    時間: 2023-2-6 16:02
程序中用一個字節(jié),8位對應8個輸出,每次操作這個字節(jié)再刷新595即可。
作者: Zzwh    時間: 2023-2-6 16:05
wufa1986 發(fā)表于 2023-2-6 15:51
把前一個值和第二個值|運算一下再發(fā)送即可,按你的第一次發(fā)0x01,第二次就要0x01|0x02=0x03,再發(fā)就要0x03|xx

這個 | 我想的是,那我再發(fā)0x01拉低,0x03|0x01不行呀
作者: wulin    時間: 2023-2-6 17:19
Zzwh 發(fā)表于 2023-2-6 16:05
這個 | 我想的是,那我再發(fā)0x01拉低,0x03|0x01不行呀

        Data|=0x01;//最低位寫1,其它位不變
        Data|=0x02;//第2位寫1,其它位不變
        Data&=0xfe;//最低位寫0,其它位不變
作者: 君工創(chuàng)    時間: 2023-2-6 20:47
第一次輸入0x01,低位輸出1,第二次想輸入0x02,第二位輸出1,但又希望第一次的低位1不變,就要0x01|0x02,再輸入;蛘咧苯虞斎0x03.
作者: lkc8210    時間: 2023-2-6 21:40


作者: XLinliY.Zhang    時間: 2023-2-6 22:59
創(chuàng)建一個uint8_t儲存當前輸出值,通過位操作修改這個變量,最后輸出給595就可以了
作者: xianfajushi    時間: 2023-2-7 08:25
Zzwh 發(fā)表于 2023-2-6 15:39
不清零情況下發(fā)兩次0x01,就是第1 IO口發(fā)生了高低電平轉(zhuǎn)換嘛,

是不是不受影響,這要看電路和代碼配合.


作者: Zzwh    時間: 2023-2-7 08:57
wulin 發(fā)表于 2023-2-6 17:19
Data|=0x01;//最低位寫1,其它位不變
        Data|=0x02;//第2位寫1,其它位不變
        Data&=0xfe;//最低位寫0, ...

好的謝謝
作者: Zzwh    時間: 2023-2-7 08:58
munuc_w 發(fā)表于 2023-2-6 13:46
置1:0x01|0x02
清零:0x03&0x20 或 0x03&0x01

好的謝謝
作者: Zzwh    時間: 2023-2-7 10:47
xianfajushi 發(fā)表于 2023-2-7 08:25
是不是不受影響,這要看電路和代碼配合.

好的我看看




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