動態 1602液晶

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]="Hello everyone!";
uchar code table1[]="welcome to here!";
sbit lcdrs=P1^5;
//sbit lcdrw=P1^6;
sbit lcden=P1^7;
sbit wela=P1^1;
sbit dula=P1^0;
//sbit led1=P1^2;
//sbit dian=P1^3;
//sbit rst=P3^4;

uchar num;
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=150;y>0;y--);
}
void write_com(uchar com)
{
  lcdrs=0;
 P0=com;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}
void write_data(uchar date)
{
 lcdrs=1;
 P0=date;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}
void init()
{
 dula=0;
 wela=0;
 lcden=0;
 write_com(0x38);
 write_com(0x0c);
 write_com(0x06);
 write_com(0x01);
}
void mian()
 {
  init();
  write_com(0x80+0x10);
  for(num=0;num<15;num++)
  {
   write_data(table[num]);
   delay(5);
  }
  write_com(0x80+0x50);
  for(num=0;num<16;num++)
  {
   write_data(table1[num]);
   delay(5);
  }
  for(num=0;num<16;num++)
  {
   write_com(0x18);
   delay(200);
  }
  while(1);
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章