微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 多功能智能控制器

多功能智能控制器

时间:11-18 来源:互联网 点击:

按指定坐标中写入数据

说 明: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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top