chunyang,你去哪了?

2019-03-24 20:40发布

LCD1602液晶的数据传输问题?碰到一个弱弱的问题:DB0~DB7是LCD1602液晶的数据传输口, 通常我们写数据都是这种形式:PORTA=dat;就是说PA0~PA7用来传输数据到DB0~DB7; 但是如果PA0因为需要ADC转换使用而只能PA1~PA7这7个口对接DB1~DB7,还有一个口我用PB0对接DB0,此时先前的表示写法: PORTA=dat;的写法那应该如何表示呢?求解…… 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
zqjqq88
1楼-- · 2019-03-27 02:51
你要想要读取IO的值吧;下面是一种比较常用的位操作方法,先好好看看寄存器的定义,区别PORT和PIN的区别。

#define BIT(x)                        (1 << (x))
#define GET_PORT(x, bit)                (PORT ## x)
#define GET_PIN( x, bit)                (PIN ## x)

#define PORT_OUT0(portx_bit)        ( GET_PORT(portx_bit) &= ~BIT(GET_BIT(portx_bit)) )
#define PORT_OUT1(portx_bit)        ( GET_PORT(portx_bit) |=  BIT(GET_BIT(portx_bit)) )
#define PORT_IN(portx_bit)              ( GET_PIN(portx_bit) & BIT(GET_BIT(portx_bit)) )

一周热门 更多>