找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1749|回复: 7
收起左侧

单片机+LCD19264液晶屏并口数据倒接

[复制链接]
ID:977804 发表于 2022-6-26 15:23 | 显示全部楼层 |阅读模式
本帖最后由 3花木城 于 2022-6-27 19:38 编辑

之前有用到一个1602的数据并口倒接,今天焊一个LCD19264屏幕,走线的话,DB0接P07是最方便的走线,于是想到用1602的那个单片机代码,稍微修改了一下,仿真通过了,接下来焊实物。
以后再焊实物的时候,不用纠结DB0一定要接PX.0了,怎么顺怎么接。
数据倒接.png

(反接)仿真 代码 测试用.rar

120.33 KB, 下载次数: 15

回复

使用道具 举报

ID:883242 发表于 2022-6-26 22:38 | 显示全部楼层
这又不是RAM的地址线可以随便接。数据线如果交换顺序,单片机软件也要把数据转换,更麻烦!
回复

使用道具 举报

ID:213173 发表于 2022-6-27 07:21 | 显示全部楼层
LCD数据并口不仅可以倒序接,任意接、不同组IO口接都行。只要软件与其对应即可。
回复

使用道具 举报

ID:44037 发表于 2022-6-27 10:38 | 显示全部楼层
谢谢楼主分享  能分享一下程序吗  谢谢
回复

使用道具 举报

ID:977804 发表于 2022-6-27 19:38 | 显示全部楼层
by64214 发表于 2022-6-27 10:38
谢谢楼主分享  能分享一下程序吗  谢谢

已上传,请查阅
回复

使用道具 举报

ID:61140 发表于 2022-7-3 12:01 | 显示全部楼层
Hephaestus 发表于 2022-6-26 22:38
这又不是RAM的地址线可以随便接。数据线如果交换顺序,单片机软件也要把数据转换,更麻烦!

一个数组搞定了,这种没什么难
回复

使用道具 举报

ID:434018 发表于 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);
回复

使用道具 举报

ID:977804 发表于 2022-7-3 22:18 来自手机 | 显示全部楼层
frank_tw 发表于 2022-7-3 13:26
你可以作为参考,可以任意,只要下方对应定义
//MCU : STM32F0
//X=Portt 0=Pin number

还可以这样任意io组合,长见识了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表