OK100_LCD1602驱动程序

/***********************************************************
功能:OK100_LCD1602驱动程序
说明:sbit rs=P3^5;
   sbit wr=P3^6;
   sbit lcden=P3^4;
   sbit dula=P2^6;
   sbit wela=P2^7;
时间:2012.12.10
作者:荆轩道
************************************************************/
#include
#define uchar unsigned char
#define uint unsigned int
sbit rs=P3^5;
sbit wr=P3^6;
sbit lcden=P3^4;
sbit dula=P2^6;
sbit wela=P2^7;
uchar table1[]=" OK400C SYSTEM ";
uchar table2[]=" WWW.AOKEMCU.CN";
void delay(uint x)
{
 uint a,b;
 for(a=x;a>0;a--)
  for(b=10;b>0;b--);
}

void delay1(uint x)
{
 uint a,b;
 for(a=x;a>0;a--)
  for(b=100;b>0;b--);
}

void write_com(uchar com)
{
 P0=com;
 rs=0;
 lcden=0;
 delay(10);
 lcden=1;
 delay(10);
 lcden=0;
 
}

void write_date(uchar date)
{
 P0=date;
 rs=1;
 lcden=0;
 delay(10);
 lcden=1;
 delay(10);
 lcden=0;
 
}

void init()
{
 dula=0;
 wela=0;
 wr=0;
 write_com(0x38);
 delay(20);
 write_com(0x0f);
 delay(20);
 write_com(0x06);
 delay(20);
 write_com(0x01);
 delay(20); 

}

void main()
{
 uchar a;
 P0=0;
 P2&=0x1F;
 init();

 write_com(0x80+17);
 delay(20);
 for(a=0;a<16;a++)
 {
 write_date(table1[a]);
 delay(20);  
 }

 write_com(0xc0+17);
 delay(50);
 for(a=0;a<14;a++)
 {
 write_date(table2[a]);
 delay(40);  
 }

 for(a=0;a<16;a++)
 {
  write_com(0x18);
  delay1(200);
 }
 while(1);
}

你可能感兴趣的:(C51学习笔记)