嵌入式系统中的LCD驱动与网络协议实现
1. LCD驱动
1.1 LCD数据传输
LCD的四个数据位和两条选择线(读写线和寄存器选择线)都位于端口D(以太网地址总线)上。为了方便操作,创建了一个位域结构体并将其映射到该端口,代码如下:
struct {
BYTE data:4;
BYTE regsel:1;
BYTE read:1;
} LCD_PORT;
#BYTE LCD_PORT = 8
#BIT LCD_E = PORTA.5
#define LCD_RD LCD_PORT.read
#define LCD_RS LCD_PORT.regsel
#define LCD_DATA LCD_PORT.data
字节以两个四位半字节的形式传输到LCD。传输完成后,微控制器数据端口恢复为输入状态,以便总线可被其他设备使用。为简化接口,使用了粗略的时间延迟来分隔字节事务。以下是相关函数:
/* Send a command byte to the LCD as two nybbles */
void lcd_byte(BYTE &b)
{
lcd_nybble(b >> 4);
lcd_nybble(b);
DATA_FROM_LCD;
delay_us(40);
}
/* Send a byte to the LCD as two nybbles */
void lcd_nybb
超级会员免费看
订阅专栏 解锁全文
3366

被折叠的 条评论
为什么被折叠?



