单片机,写了一个12864lcd(带字库)的图片显示程序,但是实现不了,求帮助

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
sbit psb=P2^3;//串并方式选着
sbit RST= P2^4;
uint code tab[] =
{
1024个16进制数
};
void delay1ms(uchar x)//延时
{
unsigned char i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void write_cmd(uchar cmd)//写指令
{
rs=0;
rw=0;
en=0;
P0=cmd;
delay1ms(5);
en=1;
delay1ms(5);
en=0;
}
void write_data(uchar dat)//写数据
{
rs=1;
rw=0;
en=0;
P0=dat;
delay1ms(5);
en=1;
delay1ms(5);
en=0;
}
void lcd_int()//lcd初始化
{
RST = 1;
psb = 1;
write_cmd(0x30); /*30---基本指令动作*/
delay1ms(5);
write_cmd(0x01); /*清屏,地址指针指向00H*/
delay1ms(5);
write_cmd(0x06); /*光标的移动方向*/
delay1ms(5);
write_cmd(0x0c);/*显示开及光标设置*/
}
void display_bmp(uchar code *address)
{
uchar i,j;
for(i=0;i<32;i++)
{
write_cmd(0x80+i);
write_cmd(0x80);
for(j=0;j<16;j++)
{
write_data(*address);
address++;
}
}
for(i=0;i<0;i++)
{
write_cmd(0x80+i);
write_cmd(0x88);
for(j=0;j<16;j++)
{
write_data(*address);
address++;
}
}
}
void clrram(void)
{
write_cmd(0x01);
write_cmd(0x34);
write_cmd(0x30);

}
main()
{
lcd_int();
while(1)
{
void clrram();
delay1ms(50);
display_bmp(tab);
delay1ms(5000);
}
}

你要显示的是图片的话,就要用到扩充指令,lcd_init是基本指令,
write_cmd(0x36);
write_cmd(0x3E);
write_cmd(0x01);
还有你display_bmp()程序中下半屏的循环显示码错字了
for(i=0;i<0;i++)应该是
for(i=0;i<32;i++)
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机,写了一个12864lcd(带字库)的图片显示程序,但是实现不了,求帮...
你要显示的是图片的话,就要用到扩充指令,lcd_init是基本指令,write_cmd(0x36);write_cmd(0x3E);write_cmd(0x01);还有你display_bmp()程序中下半屏的循环显示码错字了 for(i=0;i<0;i++)应该是 for(i=0;i<32;i++)

单片机,STC芯片,写了一个12864lcd的文字显示程序,程序下载到芯片了...
void main(){ \/\/led_init();\/\/液晶初始化 ledled_init();\/\/这才是初始化的函数 while(1){ display("你好",1); \/\/液晶屏上显示“你好”2s 钟后,改为显示“好的”delayms(2000);display("好的",1);delayms(2000);} } 试试看吧,其实最好初始化下端口好一点 ...

我买了一块12864液晶为什么写程序进去什么也不显示
中文是双字节,假设你的12864带字库,应该输入十六进制数据我(0xCE,0xD2)爱(0xB0,0xAE)单(0xB5,0xA5)片(0xC6,0xAC)机(0xBB,0xFA)

我的带中文字库的12864无法显示,请各位高手帮帮我看看C程序,我用的...
PORTD = cmd;E = 1;E = 0;} 这一段你改改 先检测液晶忙不忙,再写数据或命令 while(lcd_busy()); \/\/此处检测液晶是否处于忙状态 RS = 0;RW = 0;EN = 0; \/\/先使EN = 0;delay(1);PORTD = com;delay(1);lcd_en = 1;delay(1); \/\/此处适当延迟 lcd_en = 0;你可...

单片机串行控制12864lcd能不能读bf忙状态,我怎么读不了
当然可以读忙状态了,读时,一定要符合时序要求,即控制脚应该为什么状态。二是接忙信号引脚一定要先输出高电平来释放引脚才行的。

led12864带字库显示字模中没有的汉字程序
带字库的LCD模块不需要取字模 只需要向LCD模块写入需要显示的汉字的GB2312代码就可以了,显示位置可用模块手册中的定位指令代码设置 切换到点阵图形模式,并设置好书写规律,在字模相应位置写入对应字模数据就可以了 比如16*16点阵,定义第一组两个8字节数据的起始位置,连续列入两字节,然后定位下一行起始...

我打算用单片机和一块12864屏幕做一个简单的游戏机在屏幕显示的方面要掌...
您提供的代码是一个用于128x64液晶显示屏的C语言程序,该程序实现了液晶的基本控制功能,包括显示字符、图片、滚动等。代码中使用了延时函数来控制时序,这是因为液晶显示模块的工作速度相对较慢,需要通过延时来保证足够的操作时间。程序的主要部分是一个无限循环,循环中包含了各种显示操作,例如上下滚动、...

51单片机LCD12864显示乱码怎么回事
你这液晶屏带不带字库啊?这是显示乱码,要么程序不对,要么取模方式不对。程序中那table是显示图形一或汉字的点阵数据吧?液晶屏的型号不同,显示图形或汉字时,取模的方式有多种,下载一个液晶屏专用的取模软件,试一下几种取模方式,看哪种取模方式取得数据能正常显示。

LCD 12864怎样和单片机连接?
LCD 12864液晶屏工作电压+3.0V~+5.5V,逻辑电平与单片机兼容,能够直接与单片机的I\\O口连接。12864液晶屏的接口方式有并行4位、并行8位、串行2线和串行3线,以适应不同的应用场合。两个以上的 12864LCD跟单片机连接, 只要选通线 接不同的引脚,及对比度分别控制,其它的如数据线、读写线,都可以...

51单片机128*64液晶C程序
目前正在学单片机~~请教一下关于128X64点阵LCD液晶显示的编程和使用~~简单一点吧,就完成一个功能,显示几个字就可以了,随便什么字,给我写个简单的程序我参考学习一下,谢谢了~!!... 目前正在学单片机~~请教一下关于128X64点阵LCD液晶显示的编程和使用~~简单一点吧,就完成一个功能,显示几个字就可以了,随便什么...

相似回答