12864的液晶竟然显示二次,不知哪里出了问题
时间:10-02
整理:3721RD
点击:
刚开始玩12864液晶,想让显示“老师”二个字,结果显示是显示了,但是却显示了二遍,不知是哪里出了问题,向大侠们请教一下。小弟先谢过了。
//设定显示字符行列地址驱动函数
voidset_xy(ucharx,uchary)//x为行,y为列
{
if(y>=64)//列地址大于等于64时右屏显示
{
LCD_CS2=0;
y=y-64;
}
else//列地址小于64时左屏显示
{
LCD_CS1=0;
}
write_cm(0x40|y);//写列地址
_nop_();
write_cm(0xb8|x);//写行地址
}
voidDisp_hz(ucharR,ucharL,uchar*p)
{
uchari;
for(i=0;i<16;i++)
{
set_xy(2*R,16*L+i);//设定显示位置
Write_data(p);//写入DDRAM(字的上半部分)
set_xy(2*R+1,16*L+i);
Write_data(p[i+16]);//写入DDRAM(字的下半部分)
}
}
voidmain()
{
LCD_Init();
while(1)
{
Disp_hz(0,3,lao);
Disp_hz(0,4,shi);
}
}
//设定显示字符行列地址驱动函数
voidset_xy(ucharx,uchary)//x为行,y为列
{
if(y>=64)//列地址大于等于64时右屏显示
{
LCD_CS2=0;
y=y-64;
}
else//列地址小于64时左屏显示
{
LCD_CS1=0;
}
write_cm(0x40|y);//写列地址
_nop_();
write_cm(0xb8|x);//写行地址
}
voidDisp_hz(ucharR,ucharL,uchar*p)
{
uchari;
for(i=0;i<16;i++)
{
set_xy(2*R,16*L+i);//设定显示位置
Write_data(p);//写入DDRAM(字的上半部分)
set_xy(2*R+1,16*L+i);
Write_data(p[i+16]);//写入DDRAM(字的下半部分)
}
}
voidmain()
{
LCD_Init();
while(1)
{
Disp_hz(0,3,lao);
Disp_hz(0,4,shi);
}
}
小编给的程序全吗?
不全,这是主要的几段