标准的一般都是这个程序
#include <reg52h>
#include <mathh>
#define lcd_data P1
sbit cs1=P2^3;
sbit cs2=P2^4;
sbit di=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
void delay(int t)
{
int i,j,k;
for(i=0;i<t;i++)
{ for(j=0;j<255;j++)
k++;}
}
void write_com_l(unsigned int command)
{
cs1=1;
rw=0;
di=0;
lcd_data=command;
e=1;
e=0;
cs1=0;
}
void write_data_l(unsigned int data0)
{
cs1=1;
rw=0;
di=1;
lcd_data=data0;
e=1;
e=0;
cs1=0;
}
void write_com_r(unsigned int command)
{
cs2=1;
rw=0;
di=0;
lcd_data=command;
e=1;
e=0;
cs2=0;
}
void write_data_r(unsigned int data0)
{
cs2=1;
rw=0;
di=1;
lcd_data=data0;
e=1;
e=0;
cs2=0;
}
void disp0()
{
unsigned int i,j;
for (i=0;i<8;i++)
{write_com_l(0xb8+i);
write_com_r(0xb8+i);
write_com_l(0x40);
write_com_r(0x40);
for (j=0;j<64;j++)
{write_data_l(0xaa);
write_data_r(0xaa);
}
}
}
void disp1()
{
unsigned int i,j;
for (i=0;i<8;i++)
{write_com_l(0xb8+i);
write_com_r(0xb8+i);
write_com_l(0x40);
write_com_r(0x40);
for (j=0;j<64;j++)
{write_data_l(0x55);
write_data_r(0x55);
}
}
}
void disp2()
{
unsigned int i,j;
for (i=0;i<8;i++)
{write_com_l(0xb8+i);
write_com_r(0xb8+i);
write_com_l(0x40);
write_com_r(0x40);
for (j=0;j<64;j++)
{write_data_l(0x0f);
write_data_r(0x0f);
}
}
}
void disp3()
{
unsigned int i,j;
for (i=0;i<8;i++)
{write_com_l(0xb8+i);
write_com_r(0xb8+i);
write_com_l(0x40);
write_com_r(0x40);
for (j=0;j<64;j++)
{write_data_l(0xf0);
write_data_r(0xf0);
}
}
}
void init_lcd() //初始化LCD清屏
{
write_com_l(0x3e);
write_com_r(0x3e);
write_com_l(0x3f);
write_com_r(0x3f);
write_com_l(0xc0);
write_com_r(0xc0);
write_com_l(0xb8);
write_com_r(0xb8);
write_com_l(0x40);
write_com_r(0x40);
for(;1;)
{
disp0();
delay(0x0ff);
disp1();
delay(0x0ff);
disp2();
delay(0x0ff);
disp3();
delay(0x0ff);
}
}
void main()
{
IE=0x81;
init_lcd();
}
void innt0 () interrupt 0
{
do {}while(1);
}
买12864液晶屏时,厂家都会给测试程序的,就是C语言的。根据测试程序,改一下引脚定义就行了,编译一下测试程序,看能不能显示。如果能显示了,就可以自己根据测试程序一点点修改。
如果找不到厂家,就只好在网上找了,但不容易与你的晶屏相符。
实在不会,读一下测试程序,显示汉字的方法都是,用汉字取模软件,先取汉字点阵数据,用这些数据代替测试程序的点阵数据,看是不是能显示自己的取模的汉字了。
因液晶屏显示汉字,取模方式有多种,如果显示乱码,说明取模方式不对,再换一种,直到显示出汉字为止。这样就可以,对测试程序进行修改成自己看得懂,又实用的程序了。
clk=0;clk=1;clk=0;这是一个完整的CLK时钟周期,看图SCLK。
延时并没有实际的意义,主要功能是让电平保持一段时间供识别的,一般微秒级的延时就够了。
同步时钟信号,就是前面讲的clk=0;clk=1;clk=0;这样来实现的,只不过程序中是用的循环,8次循环,正好是可以传输8bit的数据。
以上就是关于求无字库12864液晶显示图像的51单片机程序,C语言版的全部的内容,包括:求无字库12864液晶显示图像的51单片机程序,C语言版的、不带中文字库的12864液晶怎么用C写程序然后通过51单片机控制、51单片机控制12864液晶屏串行通信时序图与程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)