lcd12864的驱动和显示

  • 格式:doc
  • 大小:34.00 KB
  • 文档页数:4

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit RS =P2^4;

sbit WRD=P2^5;

sbit E= P2^6;

sbit PSB=P2^1;

sbit RES=P2^3;

void TransferData(char data1,bit DI);

void display(void);

void display_grapic(void);

void delayms(unsigned int n);

void DisplayLine(unsigned char line1,unsigned char line2); void DisplayGraphic(unsigned char code *adder);

void delay(unsigned int m);

void lcd_mesg();

void ConfigUART(unsigned int baud) ;

void initinal(void)

{

delay(40);

PSB=1;

delay(1);

RES=0;

delay(1);

RES=1;

delay(10);

TransferData(0x30,0);

delay(100);

TransferData(0x30,0);

delay(37);

TransferData(0x08,0);

delay(100);

TransferData(0x10,0);

delay(100);

TransferData(0x0C,0);

delay(100);

TransferData(0x01,0);

delay(10);

TransferData(0x06,0);

delay(100);

}

void main(void)

{

while(1)

{

initinal();

ConfigUART(600);

lcd_mesg();

delayms(240);

delayms(240);

}

}

void lcd_mesg( )

{

uchar aa;

int b=0;

while( 1 )

{

if(b<8)

{ TransferData(0x80+b,0);

while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}

b++;}

if(b>=8&&b<16)

{ TransferData(0x90+b-8,0); while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}

b++;}

if(b>=16&&b<24)

{ TransferData(0x80+b-8,0); while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}

b++;}

if(b>=24&&b<32)

{ TransferData(0x90+b-16,0); while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}while(!RI);

{RI=0;

aa=SBUF;

TransferData(aa,1);

}

b++;}}

}

void ConfigUART(unsigned int baud)

{SCON=0X50;

TMOD&=0X0F;

TMOD|=0X20;

TH1=256-(12000000/12/32)/baud;

TL1=TH1;

ET1=0;

TR1=1;}

void TransferData(char data1,bit DI)

{

WRD=0;

RS=DI;

delay(1);

P0=data1;

E=1;

delay(1);

E=0;

}

void delayms(unsigned int n)

{

unsigned int i,j;

for(i=0;i

for(j=0;j<2000;j++);

}

void delay(unsigned int m)

{

unsigned int i,j;

for(i=0;i

for(j=0;j<10;j++);

}