内藏T6963C控制器的液晶模块的显示
//============================ LCM12864控制部分 ========================================
code uchar Chinese [][32]={
/*-- 文字: 赵 --*/
/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x04,0x00,0x04,0x10,0x07,0x10,0x1C,0x90,0x04,0x50,0x0F,0x20,0xF4,0x20,
0x07,0x50,0x24,0x88,0x35,0x08,0x4E,0x00,0x81,0xC0,0x00,0x3E,0x00,0x00,0x00,0x00,
/*-- 文字: 俊 --*/
/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x40,0x08,0x40,0x08,0x90,0x11,0x38,0x13,0xC8,0x30,0x20,0x51,0x18,0x92,0x88,
0x14,0xF0,0x11,0x10,0x12,0xA0,0x14,0x60,0x11,0x9E,0x10,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 设 --*/
/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x20,0xE0,0x11,0x20,0x01,0x20,0x01,0x20,0x62,0x38,0xA4,0x00,0x21,0xE0,
0x22,0x20,0x21,0x40,0x28,0x80,0x31,0x40,0x22,0x30,0x0C,0x1E,0x00,0x00,0x00,0x00,
/*-- 文字: 计 --*/
/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x40,0x10,0x40,0x08,0x40,0x00,0x40,0x00,0x40,0x30,0x7C,0xD3,0xC0,0x10,0x40,
0x10,0x40,0x14,0x40,0x18,0x40,0x10,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,
};
/*****************************************************
函 数 名:void LCM_ReadStatus(void)
功 能:读忙状态
说 明:判断LCM的工作状态字;也可以不用此函数,用一段延时程序代替
入口参数:无
返 回 值:无
*****************************************************/
void LCM_ReadStatus(void)
{
do
{
LCM_DATA = 0xFF; // LCM数据口先置1
LCM_CD = 1; // CD=1为指令通道,CD=0为数据通道
LCM_RD = 0; // 计算机对T6963C进行读操作
ACC=LCM_DATA;
LCM_RD = 1;
}while((ACC&0x03)!=0x03); // 低电平忙
}
/*****************************************************
函 数 名:void LCM_AutoWriteStatus(void)
功 能:数据自动写时LCM的状态字
说 明:让数据自动读写时,要判断LCM是否忙
入口参数:无
返 回 值:无
*****************************************************/
void LCM_AutoWriteStatus(void)
{
do
{
LCM_DATA = 0xFF; // LCM数据口先置1
LCM_CD = 1; // CD=1为指令通道,CD=0为数据通道
LCM_RD = 0; // 计算机对T6963C进行读操作
ACC=LCM_DATA;
LCM_RD = 1;
}while((ACC&0x08)!=0x08); // 低电平忙
}
/*****************************************************
函 数 名:void LCM_WriteData(uchar WDLCM)
功 能:向LCM12864中写入数据
说 明:将形参WDLCM中的数据写入LCM中
入口参数:WDLCM
返 回 值:无
*****************************************************/
void LCM_WriteData(uchar WDLCM)
{
LCM_ReadStatus(); // 指令&数据读写状态
LCM_CD = 0; // 通道选择:允许写入数据
LCM_DATA = WDLCM; // 写入数据到LCM
LCM_WR = 0; // WR=0
LCM_WR = 1; // WR=1
}
/*****************************************************
函 数 名:void LCM_WriteCommand(uchar WCLCM)
功 能:向LCM12864中写入无参指令
说 明:向LCM中写入指令
入口参数:WCLCM
返 回 值:无
*****************************************************/
void LCM_WriteCommand(uchar WCLCM)
{
LCM_ReadStatus();
LCM_DATA = WCLCM; // 写入指令到LCM
LCM_CD = 1; // 通道选择:允许写入指令
LCM_WR = 0; // WR=0
LCM_WR = 1; // WR=1
}
/*****************************************************
函 数 名:void LCM_WriteCommand0ne(uchar WDATA,uchar WCLCM)
功 能:向LCM12864中写入单参指令
说 明:向LCM中写入指令
入口参数:WCLCM
返 回 值:无
*****************************************************/
void LCM_WriteCommand0ne(uchar WDATA,uchar WCOM)
{
LCM_ReadStatus();
LCM_WriteData(WDATA);
LCM_ReadStatus();
LCM_WriteCommand(WCOM);
}
/*****************************************************
函 数 名:void LCM_WriteCommandTwo(uchar WD1,uchar WD2,uchar WCOMD)
功 能:向LCM12864中写入双参指令
说 明:向LCM中写入指令
入口参数:WCLCM
返 回 值:无
*****************************************************/
void LCM_WriteCommandTwo(uchar WD1,uchar WD2,uchar WCOMD)
{
LCM_ReadStatus();
LCM_WriteData(WD1);
LCM_ReadStatus();
LCM_WriteData(WD2);
LCM_ReadStatus();
LCM_WriteCommand(WCOMD);
}
/*****************************************************
函 数 名:void LCM_Init()
功 能:初始化LCM12864
说 明:LCM在工作前先要对显示屏初始化,否则模块无法正常工作
入口参数:无
返 回 值:无
*****************************************************/
//LCM初始化
void LCM_Init(void)
{
LCM_WriteCommandTwo(0,0,0x40); // 设置文本显示区首地址
LCM_WriteCommandTwo(0x10,0,0x41); // 设置文本显示区宽度
LCM_WriteCommandTwo(0,0x08,0x42); // 设置图形显示区首地址0x0800
LCM_WriteCommandTwo(0x10,0,0x43); // 设置图形显示区宽度
LCM_WriteCommand(0xA7); // 设置光标形状 8x8方块
LCM_WriteCommand(0x80); // 显示方式设置:文本或图形
LCM_WriteCommand(0x9c); // 显示开关设置:文本开,图形开,光标闪烁关
}
T6963C控制器液晶模 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
