段式液晶模块的驱动
h(HTB_WR_PORT, HTB_WR_PIN);
}
}
/**************************************************************************************
* FunctionName : HTB_SendBitLsb()
* Description : 发送多位[低位在前]
* EntryParameter : None
* ReturnValue : None
**************************************************************************************/
void HTB_SendBitLsb(u8 dat, u8 cnt)
{
for (u8 i=0; i { (dat & 0x01) ? GPIO_WriteHigh(HTB_DT_PORT, HTB_DT_PIN) : GPIO_WriteLow(HTB_DT_PORT, HTB_DT_PIN); dat >>= 1; GPIO_WriteLow(HTB_WR_PORT, HTB_WR_PIN); HTB_DelayUs(3); GPIO_WriteHigh(HTB_WR_PORT, HTB_WR_PIN); } } /************************************************************************************** * FunctionName : HTB_SendCmd() * Description : 发送命令 * EntryParameter : None * ReturnValue : None **************************************************************************************/ void HTB_SendCmd(u8 cmd) { GPIO_WriteLow(HTB_CS_PORT, HTB_CS_PIN); HTB_SendBitMsb(0x80, 3); // 前面3位命令代码 HTB_SendBitMsb(cmd, 9); // 后面10位: a5~a0[RAM地址]+d3~d0[RAM数据] GPIO_WriteHigh(HTB_CS_PORT, HTB_CS_PIN); } /************************************************************************************** * FunctionName : HTBSendNDat() * Description : 发送N数据 * EntryParameter : None * ReturnValue : None **************************************************************************************/ void HTBSendNDat(u8 addr, u8 *pDat, u8 cnt, u8 bitNum) { GPIO_WriteLow(HTB_CS_PORT, HTB_CS_PIN); HTB_SendBitMsb(0xA0, 3); // 前面3位命令代码 HTB_SendBitMsb(addr<2, 6); // a5~a0[RAM地址] for (u8 i=0; i { HTB_SendBitLsb(*pDat++, bitNum); // RAM数据 } GPIO_WriteHigh(HTB_CS_PORT, HTB_CS_PIN); } 上面的函数是通过按位传递的方式把数据发给HT1621,并不复杂,这里就不相信介绍了: typedef enum { HTB_CMD_BIAS = 0x29, // 0B:0010 abXc -ab控制占空比,-c控制偏压 HTB_CMD_SYSEN = 0x01, // HTB_CMD_LCDOFF = 0x02, // HTB_CMD_LCDON = 0x03, // } HTB_CMD;
最后,我们可以看出,在修改了全局变量后,在把更新的数据传递给驱动芯片就可以了,非常简单方便灵活,这个示例让我们充分了解和使用位段进行位控制是非常方便。
段式液晶模块驱 相关文章:
- 基于HT1621B段式液晶模块的驱动应用(11-18)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)