多功能智能控制器
按指定坐标中写入数据
说 明:X-横坐标,Y-纵坐标,DData为ASCII值
入口参数:X,Y,DData
返 回 值:无
*****************************************************/
//按指定位置显示一个字符
void DisplayOneChar(uchar X, uchar Y, uchar DData)
{
Y &= 0x01;
X &= 0x0F; // 限制X不能大于15,Y不能大于1
if (Y) X |=LINE2_HEAD; // 当要显示第二行时地址码:0xc0
X |= LINE1_HEAD; // 第一行的地址码:0x80
WriteCommandLCM(X, 0); // 这里不检测忙信号,发送地址码
WriteDataLCM(DData);
}
/*在LCD1602中使用此函数,在DIPS082中使用下面的函数
/*****************************************************
函 数 名:void DisplayListChar(uchar x,uchar y,uchar *DData)
功 能:向指定坐标中写入字符串(在LCD1602中使用此函数)
说 明:X-横坐标,Y-纵坐标
入口参数:X,Y,*DData
返 回 值:无
*****************************************************
//按指定位置显示字符串
void DisplayListChar(uchar x,uchar y,uchar *DData)
{
if(y==LINE1) // 判断是否写入第1行
{
if(x { WriteCommandLCM(LINE1_HEAD+x,0); // 写入第1行地址 for(;x { WriteDataLCM(*(DData++)); // 写入数据 } if(*DData!=\0) // 判断数据是否写完 { x=0; // 没写完写入第2行 y=LINE2; } } } if(y==LINE2) // 判断是否写入第2行 { WriteCommandLCM(LINE2_HEAD+x,0); // 写入第2行地址 for(;x { WriteDataLCM(*(DData++)); // 写入数据 } } }*/ /***************************************************** 函 数 名:void DisplayListChar(uchar X, uchar Y, uchar code *DData) 功 能:向指定坐标中写入字符串(在DIPS082中使用此的函数) 说 明:X-横坐标,Y-纵坐标 入口参数:X,Y,*DData 返 回 值:无 *****************************************************/ //按指定位置显示一串字符 ***原来的遇到空格0x20就不显示*** void DisplayListChar(uchar X, uchar Y, uchar code *DData) { uchar ListLength,j; ListLength = strlen(DData); // strlen:读取字符串的长度 Y &= 0x1; X &= 0xF; // 限制X不能大于15,Y不能大于1 if (X <= 0x0F) // X坐标应小于0xF { for(j=0;j { DisplayOneChar(X, Y, DData[j]); // 显示单个字符 X++; // 横坐标加1,纵坐标不变 } } } /***************************************************** 函 数 名:void Mychar() 功 能:自定义字符--CGRAM 说 明:LCM1602字符库中没有温度符号,自定义温度符号 入口参数:无 返 回 值:无 /*****************************************************/ void Mychar(void) { //---------自定义字符代码--00H------闹铃符号------------- WriteCommandLCM(0x40,1); //第1行 WriteDataLCM(0x01);// WriteCommandLCM(0x41,1); //第2行 WriteDataLCM(0x1b);// WriteCommandLCM(0x42,1); //第3行 WriteDataLCM(0x1d);// WriteCommandLCM(0x43,1); //第4行 WriteDataLCM(0x19);// WriteCommandLCM(0x44,1); //第5行 WriteDataLCM(0x1d);// WriteCommandLCM(0x45,1); //第6行 WriteDataLCM(0x1b);// WriteCommandLCM(0x46,1); //第7行 WriteDataLCM(0x01);// WriteCommandLCM(0x47,1); //第8行 WriteDataLCM(0x00);// //---------自定义字符代码--01H-------温度符号------------ WriteCommandLCM(0x48,1); //第1行 WriteDataLCM(0x02);// WriteCommandLCM(0x49,1); //第2行 WriteDataLCM(0x05);// WriteCommandLCM(0x4a,1); //第3行 1------**-- WriteDataLCM(0x05);// 2----**--** WriteCommandLCM(0x4b,1); //第4行 3----**--** WriteDataLCM(0x02);// 4------**-- WriteCommandLCM(0x4c,1); //第5行 5---------- WriteDataLCM(0x00);// 6---------- WriteCommandLCM(0x4d,1); //第6行 7---------- WriteDataLCM(0x00);// 8---------- WriteCommandLCM(0x4e,1); //第7行 WriteDataLCM(0x00);// WriteCommandLCM(0x4f,1); //第8行 WriteDataLCM(0x00);// //---------自定义字符代码--02H-------当前时间------------ WriteCommandLCM(0x50,1); //第1行 WriteDataLCM(0x1f);// WriteCommandLCM(0x51,1); //第2行 WriteDataLCM(0x11);// WriteCommandLCM(0x52,1); //第3行 WriteDataLCM(0x15);// WriteCommandLCM(0x53,1); //第4行 WriteDataLCM(0x11);// WriteCommandLCM(0x54,1); //第5行 WriteDataLCM(0x1b);// WriteCommandLCM(0x55,1); //第6行 WriteDataLCM(0x0a);// WriteCommandLCM(0x56,1); //第7行 WriteDataLC
多功能智能控制 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)