欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機+LCD19264液晶屏并口數據倒接 [打印本頁]

作者: 3花木城    時間: 2022-6-26 15:23
標題: 單片機+LCD19264液晶屏并口數據倒接
本帖最后由 3花木城 于 2022-6-27 19:38 編輯

之前有用到一個1602的數據并口倒接,今天焊一個LCD19264屏幕,走線的話,DB0接P07是最方便的走線,于是想到用1602的那個單片機代碼,稍微修改了一下,仿真通過了,接下來焊實物。
以后再焊實物的時候,不用糾結DB0一定要接PX.0了,怎么順怎么接。

數據倒接.png (79.93 KB, 下載次數: 84)

數據倒接.png

(反接)仿真 代碼 測試用.rar

120.33 KB, 下載次數: 15


作者: Hephaestus    時間: 2022-6-26 22:38
這又不是RAM的地址線可以隨便接。數據線如果交換順序,單片機軟件也要把數據轉換,更麻煩!
作者: wulin    時間: 2022-6-27 07:21
LCD數據并口不僅可以倒序接,任意接、不同組IO口接都行。只要軟件與其對應即可。
作者: by64214    時間: 2022-6-27 10:38
謝謝樓主分享  能分享一下程序嗎  謝謝
作者: 3花木城    時間: 2022-6-27 19:38
by64214 發表于 2022-6-27 10:38
謝謝樓主分享  能分享一下程序嗎  謝謝

已上傳,請查閱

作者: xiaoyuxinke    時間: 2022-7-3 12:01
Hephaestus 發表于 2022-6-26 22:38
這又不是RAM的地址線可以隨便接。數據線如果交換順序,單片機軟件也要把數據轉換,更麻煩!

一個數組搞定了,這種沒什么難

作者: frank_tw    時間: 2022-7-3 13:26
你可以作為參考,可以任意,只要下方對應定義
//MCU : STM32F0
//X=Portt 0=Pin number
#define LCD_D0            X, 0
#define LCD_D1            X, 0
#define LCD_D2            X, 0
#define LCD_D3            X, 0
#define LCD_D4            X, 0
#define LCD_D5            X, 0
#define LCD_D6            X, 0
#define LCD_D7            X, 0

#define LCD_WR            C, 1 //<---PC1 example

#define STM_F0_GPIO_SET_(a, b)      GPIO ## a ->BSRR = 1 << b
#define STM_F0_GPIO_SET(a)          STM_F0_GPIO_SET_(a)

#define STM_F0_GPIO_CLR_(a, b)      GPIO ## a ->BSRR = 1 << (b + 16)
#define STM_F0_GPIO_CLR(a)          STM_F0_GPIO_CLR_(a)



#define LCD_WRITE(data) {;                                   \
  if(data & 0x01) STM_F0_GPIO_SET(LCD_D0); else STM_F0_GPIO_CLR(LCD_D0); \
  if(data & 0x02) STM_F0_GPIO_SET(LCD_D1); else STM_F0_GPIO_CLR(LCD_D1); \
  if(data & 0x04) STM_F0_GPIO_SET(LCD_D2); else STM_F0_GPIO_CLR(LCD_D2); \
  if(data & 0x08) STM_F0_GPIO_SET(LCD_D3); else STM_F0_GPIO_CLR(LCD_D3); \
  if(data & 0x10) STM_F0_GPIO_SET(LCD_D4); else STM_F0_GPIO_CLR(LCD_D4); \
  if(data & 0x20) STM_F0_GPIO_SET(LCD_D5); else STM_F0_GPIO_CLR(LCD_D5); \
  if(data & 0x40) STM_F0_GPIO_SET(LCD_D6); else STM_F0_GPIO_CLR(LCD_D6); \
  if(data & 0x80) STM_F0_GPIO_SET(LCD_D7); else STM_F0_GPIO_CLR(LCD_D7); }
#endif



#define LCD_DATA8BITS_WRITE(data)   { lcd_data8 = data; LCD_WRITE(lcd_data8); STM_F0_GPIO_CLR(LCD_WR); LCD_DELAY; STM_F0_GPIO_CLR(LCD_WR); }

Example:

LCD_DATA8BITS_WRITE(*pOutData);

作者: 3花木城    時間: 2022-7-3 22:18
frank_tw 發表于 2022-7-3 13:26
你可以作為參考,可以任意,只要下方對應定義
//MCU : STM32F0
//X=Portt 0=Pin number

還可以這樣任意io組合,長見識了




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