#include <STC12C5A60S2.H>
#include <string.h>
#define DB P0
//sbit LCD1602_DB=P0; //ÒÔºóǧÍò²»ÒªÕâôÓã¬Ö±½Ó0,·ñÔò»áµ¼ÖÂÎÞ·¨µÃ³ö½á¹û
sbit LCD1602_RS=P2^0;
sbit LCD1602_RW=P2^1;
sbit LCD1602_E=P1^2;
void delay() //СÑÓʱ
{
int i=2000;
while(i--);
}
void delay1() //³¤ÑÓʱ
{
int i=2000,j=10;
while(j--)
while(i--);
}
void ready() //ÅжÏLCD1602ÊÇ·ñ´¦ÓÚ¡°Ã¦¡°µÄ״̬
{
unsigned int sta;
DB = 0XFF;
LCD1602_RS = 0;
LCD1602_RW = 1;
do
{
LCD1602_E = 1;
sta=P0; //¶ÁÈ¡DBµÄ״̬
LCD1602_E=0;
}while(sta&0x80); //0x80Ϊ10000000£»Óð´Î»ÓëÅжÏ×îºóһλÊÇ·ñΪ0£¬0µÄʱºòÌø³öÑ­»·
}
void cmd(unsigned char ticmd) //дָÁî
{
ready();
DB=ticmd;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_E=1;
LCD1602_E=0;
delay();
}
void write(unsigned char charer) //дÊý¾Ý
{
ready();
LCD1602_RS=1;
LCD1602_RW=0;
DB=charer;
LCD1602_E=1;
LCD1602_E=0;
delay();
}
void start1602() //³õʼ»¯1602
{
cmd(0x38);
cmd(0x0c);
cmd(0x06);
cmd(0x01);
}
void main()
{
//unsigned char cn[]={0x00,0x00,0x00,0x00,0x1E,0x1C,0x18,0x1F}; //´¬Í·
//unsigned char bn[]={0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x1F}; //´¬Î²
//unsigned char an[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F}; //´¬Í·3£¬Ë®Ãæ
unsigned char code dn[5][8]={
{0x00,0x00,0x00,0x00,0x1F,0x1E,0x1C,0x1F},
{0x00,0x00,0x00,0x00,0x1F,0x1F,0x1E,0x1F},
{0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F},
{0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x1F},
{0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x1F}
};/*´¬Í·1*//*´¬Í·2*//*´¬Í·3*//*´¬Í·4*/ /*´¬Í·5ºÍ´¬Î²Ò»Ñù*/
unsigned char code en[5][8]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F},/*´¬Î²3ºÍË®ÃæÒ»Ñù*/
{0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x1F},/*´¬Í·¹ý½ç*/
{0x00,0x00,0x00,0x00,0x18,0x10,0x00,0x1F},/*´¬Í·¹ý½ç1*/
{0x00,0x00,0x00,0x00,0x1C,0x18,0x10,0x1F},/*´¬Í·¹ý½ç2*/
{0x00,0x00,0x00,0x00,0x1E,0x1C,0x18,0x1F},/*ºÍ´¬Í·Ò»Ñù*/
};
unsigned char code fn[5][8]={
{0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x1F},/*´¬Î²1*/
{0x00,0x00,0x00,0x00,0x01,0x09,0x05,0x1F},/*´¬Î²2*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F},/*´¬Î²3ºÍË®ÃæÒ»Ñù*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F},/*´¬Î²3ºÍË®ÃæÒ»Ñù*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F}/*´¬Î²3ºÍË®ÃæÒ»Ñù*/
};
unsigned int fen=0,num,num1=0,num2=0,num3=0;
unsigned char *a="(^*^)",*b="(-_-)";
int i=50000;
start1602();
delay();
do{
cmd(0x40);
for(num=0;num<8;num++) //Ë®Ãæ
{
write(fn[2][num]);
}
cmd(0x48);
for(num=0;num<8;num++) //´¬Î²
{
write(dn[4][num]);
}
cmd(0x50);
for(num=0;num<8;num++) //´¬Í·
{
write(en[3][num]);
}
fen++;
cmd(0x01); //ÒÉÎÊ
cmd(0x02); //ÒÉÎÊ
cmd(0x80);
for(num=0;num<=15;num++)
{
write(0);
}
cmd(0xc0+fen);
while(*b!='\0')
{
while(i--);
write(*b++);
}
cmd(0x81+fen);
write(2); //Õý³£
cmd(0x80+fen);
write(1);
for(i=0;i<5;i++)
{
cmd(0x58);
for(num=0;num<8;num++) //3
{
write(fn[num1][num]);
}
cmd(0x60);
for(num=0;num<8;num++) //4
{
write(dn[num2][num]);
}
cmd(0x68);
for(num=0;num<8;num++) //5
{
write(en[num3][num]);
}
cmd(0x80+fen);
write(3);
cmd(0x81+fen);
write(4);
cmd(0x82+fen);
write(5);
num1++;
num2++;
num3++;
delay1();
}
num1=0;
num2=0;
num3=0;
b=b-5; //×Ö·û´®Ö¸Õ븴λ
a=a-5; //×Ö·û´®Ö¸Õ븴λ
if(fen==16)
fen=0;
}while(1);
}
|