微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于C8051f020吴伟镖动画LCD控制显示

基于C8051f020吴伟镖动画LCD控制显示

时间:11-30 来源:互联网 点击:
#include

#define uchar unsigned char

#define uint unsigned int

void SYSCLK_Init (void);

void PORT_Init (void);

sbit lcdrs=P2^5;

sbit lcden=P2^7;

sbit lcdwr=P2^6;

sbit key1=P2^0;

sbit key2=P2^1;

sbit key3=P2^2;

sbit key4=P2^3;

unsigned long x;

uchar CGCODE[]={0x1f,0x11,0x1f,0x00,0x1f,0x04,0x1f,0x0a, //0

0x01,0x02,0x06,0x0a,0x02,0x02,0x02,0x02, //1

0x04,0x01f,0x04,0x1f,0x04,0x1f,0x05,0x04, //2

0x04,0x04,0x04,0x1f,0x0e,0x15,0x04,0x04, //3

0x00,0x0e,0x00,0x1f,0x0e,0x15,0x0c,0x04, //4

0x08,0x0c,0x0a,0x09,0x19,0x05,0x03,0x01, //球门 5

0x04,0x0a,0x0a,0x04,0x0e,0x04,0x0a,0x00,//人 6

0x00,0x00,0x00,0x00,0x6,0x09,0x09,0x06,//球 7

};

uchar tab[]={0x00,0x01,0x02,0x03,0x04, , , , , };

uchar abc[]={0x32,0x30,0x31,0x31,0x31,0x31,0x38,0x34,0x31,0x32,0x32};

uchar ren[]={0x06, , , , , , , , , , , ,0x05, , };

uchar qiu[]={0x6f, };

uchar zhuhe[]={0x47,0x4f,0x4f,0x44,0x21, };

void delay(void)

{

int a=10000;

while(a!=0)

{

a--;

}

}

void write_com(uchar com)

{

lcdrs=0;

P3=com;

delay();

lcden=1;

delay();

lcden=0;

}

void write_date(uchar dat)

{

lcdrs=1;

P3=dat;

delay();

lcden=1;

delay();

lcden=0;

}

void init()

{

lcdwr=0;

lcden=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

}

void main()

{

uchar data2;

uchar i;

uchar j;

static unsigned char data1;

WDTCN = 0xde;

WDTCN = 0xad;

SYSCLK_Init ();

PORT_Init ();

init();

lcdrs=0;

lcdwr=0;

write_com(0x40);

for(i=0;i<56;i++)

{

write_date(CGCODE[i]);

}

write_com(0x80);

for(i=0;i<9;i++)

{

write_date(tab[i]);

}

write_com(0x80+0x40);

for(i=0;i<12;i++)

{

write_date(abc[i]);

}

while(1)

{

if(key1==0)

{

key1=1;

delay();

if(key1==0)

{

while(key1==0);

write_com(0x01);

}

}

if(key2==0)

{

key2=1;

delay();

if(key2==0)

{

while(key2==0);

for(j=0;j<=1;j++) //移位16x2循环

{

write_com(0x18); //移位

delay();

}

}

}

if(key4==0)

{ write_com(0x01);

key4=1;

delay();

if(key4==0)

{

while(key4==0);

{ write_com(0x80);

for(i=0;i<9;i++)

{

write_date(tab[i]);

}

write_com(0x80+0x40);

for(i=0;i<12;i++)

{

write_date(abc[i]);

}

} }

}

if(key3==0)

{

key3=1;

delay();

if(key3==0)

{

while(key3==0);

write_com(0x01);

write_com(0x80);

for(i=0;i<=16;i++)

{

write_date(ren[i]);

}

for(j=1;j<=9;j++)

{write_com(0x80+0x01+j) ;

for(i=0;i<=1;i++)

{write_date(qiu[i]);

write_com(0x80+0x01+j-1) ;

write_date(0xfe);}

delay();

if(j==9)

{write_com(0x01);

write_com(0x80+0x06);

for(i=0;i<=5;i++)

write_date(zhuhe[i]);

}}

}

}

}

}

void SYSCLK_Init (void)

{

OSCICN = 0x05;

}

void PORT_Init (void)

{

XBR0 = 0x00;

XBR2 = 0x40;

P2MDOUT = 0xe0;

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top