📄 ym_160128.txt
字号:
temp =*P;
LCD_YM_160128A_WriteMode1(temp, DataWAddrI); // 左半部 地址加一
temp =*(P+1);
LCD_YM_160128A_WriteMode1(temp, DataWAddrI); // 右半部 地址加一
StartAddr = StartAddr + 0x14; // 换到下一行
data1 = StartAddr&0x00ff;
data2 = StartAddr>>8;
P += 2;
}
}
//*******************************************
//函数名称:void display_LCD_YM_160128A_0808number_float(uchar page,uchar y,float Num,uchar length)
//函数功能:显示小数(8*8点阵)
//形式参数:
//行参说明:
//返回参数:
//使用说明: 在文本区显示,length为想要显示的小数位数 0~4位,能显示位数与uint len 数据类型有关,所以只能最多4位
//*******************************************
void display_LCD_YM_160128A_0808number_float(uchar page,uchar y,float Num,uchar length)
{
uchar count,temp[10],Flag = 1,lent,data1,data2;
uint len=1,ucdata ;
ulong Num_ch ;
ucdata = (page*0x14+y);
data1 = ucdata & 0x00ff;
data2 = (ucdata >>=8);
lent = length;
for(;length>0;length--) //使用一个lent变量保存一下,因为后来length的值改变了
{
len *= 10;
}
Num *= len;
Num_ch = (ulong)Num; //强制类型转换为长整型
for(count=10;count;) //将Num的高(低)位放在数组temp的低(高)位中
{
if((count-1)==9-lent) //判断一个位置放零
{
temp[count-1]=0x0E;
count--;
}
temp[--count]=Num_ch%10;
temp[count]+=0x10; //加上该数字在自定义ASCII码表中的偏移量16
Num_ch/=10;
}
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for(count=0;count<10;count++)
{
LCD_YM_160128A_AutoWriteData(0x00); //在显示数据前把这几个位置清零
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for(count=0;count<10;count++)
{
if (temp[count] != 0x10||Flag==0||temp[count+1]==0x0E)
{
LCD_YM_160128A_AutoWriteData(temp[count]);
Flag=0;
}
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
}
//*******************************************
//函数名称:void display_LCD_YM_160128A_picture(uchar *P)
//函数功能:显示整屏的图片(160*128点阵)
//形式参数:
//行参说明:
//返回参数:
//使用说明: 在图形区显示
//*******************************************
void display_LCD_YM_160128A_picture(uchar *P)
{
uint m;
LCD_YM_160128A_WriteMode2(0x00,0x10,AddrSet); // 设置指针地址0000H
LCD_YM_160128A_WriteCommand(DataAutoWrite); // 设置自动写状态
for( m=0; m<2560; m++)
{
LCD_YM_160128A_AutoWriteData(*P);
P++;
}
LCD_YM_160128A_WriteCommand(ExitAutoRW); // 自动写结束
}
//*******************************************
//函数名称:void display_LCD_YM_160128A_pixel(uchar x,uchar y,uchar Flag)
//函数功能:在液晶显示器上面画一个像素点
//形式参数:uchar x,uchar y,uchar Flag
//行参说明:
//返回参数:
//使用说明: 在图形区显示
//*******************************************
void display_LCD_YM_160128A_pixel(uchar x,uchar y,uchar Flag)
{
uchar x_place,temp,ucode1=0x01,ucode2;
uchar data1,data2;
uint StartAddr;
if(x%8)
{ x_place = x/8; }
else
{ x_place = x/8-1;}
StartAddr = (128-y)*0x14 + x_place + 0x1000; //定位起始行
data1 = StartAddr&0x00ff;
data2 = StartAddr>>8;
temp = 8-(x%8);
if(temp ==8)
{
ucode1=0x01;
}
else
{
while (temp)
{ //移动像素
ucode1 = ucode1*2;
temp--;
}
}
LCD_YM_160128A_WriteMode2( data1,data2,AddrSet );
LCD_YM_160128A_WriteCommand(DataRAddrNV);
ucode2 = LCD_YM_160128A_ReadData();
if(Flag == 0)
{
ucode1 = ucode1|ucode2;
}
else
{
ucode1 = (~ucode1)&ucode2;
}
LCD_YM_160128A_WriteMode2( data1,data2,AddrSet);
LCD_YM_160128A_WriteMode1(ucode1, DataWAddrNV);
}
void LCD_YM_160128A_Init(void)
{
LCD_YM_160128A_RESET = 1;
LCD_YM_160128A_RESET = 0; //复位
LCD_YM_160128A_RESET = 1;
LCD_YM_160128A_WriteMode2(0x00,0x00,TextHomeAddr); // 文本首地址
LCD_YM_160128A_WriteMode2(0x14,0x00,TextArea); // 文本宽度设置,即一行显示所占字节数,20个字节
LCD_YM_160128A_WriteMode2(0x00,0x10,GraHomeAddr); // 图形首地址
LCD_YM_160128A_WriteMode2(0x14,0x00,GraArea); // 设置图形宽度,即一行显示所占字节数,20个字节
LCD_YM_160128A_WriteMode2(0x00,0x00,OffsetReg); // CGRAM偏移地址设置
//
LCD_YM_160128A_WriteCommand(0xa0); // 光标形状设置
LCD_YM_160128A_WriteCommand(ExorMode); // 显示方式设置,逻辑"异或"合成
LCD_YM_160128A_WriteCommand(0x9f); // 显示开关,图形开,文本开,光标开并闪烁
Cursor_X = 0x00;
Cursor_Y = 0x00;
LCD_YM_160128A_CursorPosSet(Cursor_X,Cursor_Y); //光标的位置设定
}
uchar code disp1[]=
{
0x10,0x00,0x10,0x00,0x20,0x04,0x25,0xFE,0x44,0x20,0xF8,0x20,0x08,0x20,0x10,0x20,
0x20,0x20,0xFC,0x20,0x40,0x20,0x00,0x20,0x1C,0x20,0xE0,0x24,0x47,0xFE,0x00,0x00,/*"红",0*/
0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,
0x1F,0xF0,0x00,0x20,0x10,0x30,0x08,0x20,0x04,0x40,0xFF,0xFE,0x00,0x00,0x00,0x00,/*"豆",1*/
0x00,0x80,0x10,0xC0,0x10,0x80,0x10,0x88,0x1F,0xFC,0x20,0x80,0x20,0x80,0x40,0x88,
0x9F,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x84,0x7F,0xFE,0x00,0x00,/*"生",2*/
0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x00,0x3F,0xFC,0x24,0x24,0x22,0x44,
0x2F,0xF4,0x21,0x04,0x3F,0xFC,0x21,0x04,0x21,0x04,0x21,0x14,0x21,0x08,0x00,0x00,/*"南",3*/
0x00,0x00,0x7F,0xFC,0x40,0x04,0x5F,0xF4,0x41,0x04,0x41,0x04,0x41,0x04,0x4F,0xE4,
0x41,0x44,0x41,0x24,0x41,0x24,0x5F,0xF4,0x40,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,/*"国",4*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",5*/
0x01,0x00,0x01,0x00,0x3F,0xFC,0x01,0x00,0x1F,0xF8,0x02,0x00,0xFF,0xFE,0x04,0x20,
0x08,0x18,0x3F,0xEE,0xC8,0x24,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F,0xE0,0x00,0x00,/*"春",6*/
0x01,0x00,0x01,0x00,0x3F,0xFC,0x01,0x00,0x09,0x30,0x05,0x20,0x03,0x40,0x7F,0xFE,
0x01,0x80,0x03,0x40,0x05,0x20,0x09,0x18,0x31,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00,/*"来",7*/
0x02,0x00,0x22,0x40,0x22,0x30,0x22,0x10,0x7F,0xFE,0x24,0x00,0x04,0x00,0x07,0xE0,
0x0C,0x20,0x0A,0x20,0x0A,0x20,0x11,0x40,0x20,0x80,0x41,0x60,0x86,0x1C,0x18,0x08,/*"发",8*/
0x00,0x00,0x0F,0xE0,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,
0x08,0x20,0x08,0x20,0x08,0x22,0x10,0x22,0x10,0x22,0x20,0x1E,0x40,0x00,0x00,0x00,/*"几",9*/
0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x10,0x20,0x39,0xFC,0x34,0x88,
0x54,0x88,0x50,0x50,0x90,0x50,0x10,0x20,0x10,0x70,0x11,0x88,0x16,0x0E,0x10,0x04,/*"枝",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00,/*"。",11*/
0x3F,0xFE,0x21,0x00,0x27,0xF8,0x24,0x08,0x27,0xF8,0x24,0x08,0x27,0xF8,0x20,0x40,
0x22,0x48,0x2C,0xC4,0x20,0x40,0x4A,0x84,0x4A,0x42,0x9A,0x12,0x01,0xF0,0x00,0x00,/*"愿",12*/
0x00,0x00,0x3F,0xF8,0x02,0x08,0x02,0x08,0xFF,0xFE,0x04,0x08,0x04,0x08,0x3F,0xF8,
0x04,0x08,0x08,0x00,0x1F,0xF8,0x18,0x08,0x28,0x08,0x48,0x08,0x8F,0xF8,0x08,0x08,/*"君",13*/
0x01,0x00,0x01,0xF8,0x02,0x08,0x04,0x10,0x0B,0x20,0x10,0xC0,0x03,0x00,0x0C,0x80,
0x71,0xFE,0x02,0x04,0x0D,0x08,0x30,0x90,0x00,0x60,0x01,0x80,0x0E,0x00,0x70,0x00,/*"多",14*/
0x00,0x00,0x01,0xF8,0x7E,0x00,0x00,0x10,0x11,0x10,0x08,0xA0,0x01,0x00,0x7F,0xFE,
0x01,0x80,0x03,0x40,0x05,0x20,0x09,0x18,0x31,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00,/*"采",15*/
0x21,0x00,0x21,0x3E,0x27,0xC8,0xF9,0x10,0x21,0x3E,0x27,0xA2,0x30,0x2A,0x20,0x2A,
0x67,0xAA,0xA4,0xAA,0x24,0xAA,0x24,0xAA,0x27,0x88,0x24,0x94,0xA0,0x22,0x40,0x42,/*"撷",16*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",17*/
0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x24,0x46,0x27,0x58,0x24,0x60,0x24,0x40,
0x24,0x40,0x24,0x40,0x24,0x40,0x27,0x42,0x38,0x42,0xE0,0x42,0x00,0x3E,0x00,0x00,/*"此",18*/
0x10,0x80,0x10,0x80,0x50,0x80,0x51,0xFC,0x7D,0x54,0x52,0x54,0x94,0x94,0x14,0x94,
0x19,0x24,0x32,0x24,0xD4,0x44,0x10,0x84,0x11,0x04,0x12,0x04,0x14,0x28,0x00,0x10,/*"物",19*/
0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x22,0x00,
0x3E,0xFC,0x22,0x88,0x3E,0x50,0x23,0x20,0x3E,0x50,0xE2,0x8E,0x03,0x04,0x02,0x00,/*"最",20*/
0x10,0x00,0x10,0xFC,0x10,0x84,0x10,0x84,0xFE,0x84,0x18,0xFC,0x34,0x84,0x32,0x84,
0x52,0x84,0x50,0xFC,0x90,0x84,0x10,0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x10,0x84,/*"相",21*/
0x00,0x00,0x1F,0xF8,0x11,0x08,0x11,0x08,0x1F,0xF8,0x11,0x08,0x11,0x08,0x1F,0xF8,
0x00,0x00,0x01,0x00,0x08,0x88,0x48,0x84,0x48,0x16,0xC8,0x12,0x07,0xF0,0x00,0x00,/*"思",22*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00/*"。",23*/
};
void delay(uchar a,uchar b)
{
uchar ii,jj;
for(ii=0;ii<a;ii++)
for(jj=0;jj<b;jj++);
}
void main() //简单测试程序
{
uint n,i,temp,k,c,j=0;
// uchar *a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// uchar b='a';
LCD_YM_160128A_Init();
LCD_YM_160128A_ClearRAM(8200);
// display_LCD_YM_160128A_0808number_float(0,0,1.1234,4);
// display_LCD_YM_160128A_0808RAMdata(0,0,b);
//display_LCD_YM_160128A_0808number_long(0,36,987654);
// display_LCD_YM_160128A_1616chinese(0,0,disp);
// display_LCD_YM_160128A_0808number(0,0,255);
//display_LCD_YM_160128A_0808data(1,1,b);
//display_LCD_YM_160128A_0808number(0,0,220);
// Set_LCD_YM_160128A_CGRAM(a);
// display_LCD_YM_160128A_0808data(0,0,b);
// display_LCD_YM_160128A_CGROM_0808string(0,0,a);
LCD_YM_160128A_WriteMode2(0,0x10,AddrSet);
// display_LCD_YM_160128A_0808data(0,0,b);
// Set_LCD_YM_160128A_CGRAM()
// LCD_YM_160128A_CursorPosSet(6,1);
// LCD_YM_160128A_WriteMode2(20,20,AddrSet);
// LCD_YM_160128A_WriteCommand(0xf8);
// display_LCD_YM_160128A_1616chineselong(20,0,disp,3,0);
// display_LCD_YM_160128A_picture(line);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -