初学单片机液晶显示12864的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 23:56:47
#include<reg52.h>
sbit E=P2^0;使能 E
sbit DI= P2^2;指令和数据选择
sbit RW= P2^1;读写的选择
void delay(unsigned char z);

void init();初始化程序
void write_com(char cha);写程序
void write_data(char dat);写数据
void main()
{
init();
while(1)
{
write_data('1');要显示的数字
}
}

void init ()
{
write_com(0x3f);开启液晶
write_com(0xc0);显示起始行
write_com(0x40);好像是第一列 ;
}

void write_com(unsigned char cha)
{
delay(10);等待 液晶不忙时
DI=0;指令
RW=0;写

P1=0x00;
P1=cha;
E=1;E的下降沿传输P1口数据
delay(5);
E=0;
}
void write_data(unsigned char dat)
{delay(10);
DI=1;写数据
RW=0;

P1=0x00;
P1=dat;
E=1;
delay(5);E下降沿传输数据;
E=0;
}

void delay(unsigned char z)
{unsigned char i,j;
for(i=0;i<z;i++)
for(j=0;j<110;j++);
}
自学了下液晶显示 可是程序不对
查了很久的资

没接触过52~
但还是看一下程序~~
1.单片机端口引脚没见定义有(不知道是不是52的都不用定义),比如它的方向,初始值~~
2.液晶屏驱动程序的时序好像和延时有关的~
并且还要看液晶屏的型号(像上次我就驱动了一块,它要分左右两半分开驱动的~~~痛苦~~)

还有一个是,液晶显示时是ACSII码,要加0x30的~

查一下液晶主控芯片的读写时序
关键是write_com,write_data两个子函数,你看是否和资料上的时序对应

我这儿有现成的,你要的话,发给你。