⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 液晶屏的单片机demo程序
💻 C
字号:
#include<reg51.h>

sbit cs1=P3^0;
sbit cs2=P3^1;
sbit rst=P3^2;
sbit rw=P3^3;
sbit di=P3^4;
sbit e=P3^5;
unsigned char x,y,kkk;
unsigned char *p[];
void lw(unsigned char ,unsigned char ,unsigned char );
unsigned char code xie[32]={
0x40,0x42,0xCC,0x04,0x00,0xFC,0x56,0x55,0xFC,0x50,0x90,0x10,0xFF,0x10,0x10,0x00,
0x00,0x00,0x3F,0x50,0x29,0x11,0x4D,0x83,0x7F,0x00,0x41,0x80,0x7F,0x00,0x00,0x00};
unsigned char code nin[32]={
0x80,0x40,0x30,0xFC,0x03,0x90,0x68,0x06,0x04,0xF4,0x04,0x24,0x44,0x8C,0x04,0x00,
0x00,0x20,0x38,0x03,0x38,0x40,0x40,0x49,0x52,0x41,0x40,0x70,0x00,0x09,0x30,0x00};
unsigned char code hao[32]={
0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,0x82,0x82,0xF2,0x8A,0x86,0x82,0x80,0x00,
0x80,0x43,0x22,0x14,0x0C,0x73,0x20,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00};
unsigned char code gantanhao[16]={
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00};

unsigned char code pin[32]={
0x20,0x3C,0x20,0x20,0xBF,0x24,0x24,0x00,0xF2,0x1A,0xD6,0x12,0x12,0xF2,0x02,0x00,
0x44,0x43,0x20,0x10,0x0B,0x04,0x43,0x40,0x27,0x18,0x07,0x08,0x10,0x27,0x60,0x00};
unsigned char code lv[32]={
0x00,0x0C,0x14,0xA4,0x04,0x64,0x35,0xAE,0x64,0x24,0x14,0xA4,0x14,0x04,0x04,0x00,
0x08,0x0A,0x09,0x08,0x08,0x0A,0x0B,0xFE,0x0A,0x0B,0x0C,0x08,0x09,0x0A,0x08,0x00};
unsigned char code dian[32]={
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00};
unsigned char code ya[32]={
0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00};
unsigned char code liu[32]={
0x10,0x60,0x01,0x86,0x60,0x04,0x44,0x64,0x55,0x4E,0x44,0x64,0xC4,0x04,0x04,0x00,
0x04,0x04,0xFC,0x03,0x40,0x30,0x0F,0x00,0x00,0x7F,0x00,0x3F,0x40,0x40,0x70,0x00};
unsigned char code rong[32]={
0x10,0x0C,0x44,0x24,0x34,0x9C,0x45,0x36,0x44,0x8C,0x14,0x74,0x24,0x0C,0x04,0x00,
0x04,0x04,0x02,0x02,0xFD,0x44,0x44,0x44,0x44,0x44,0xFD,0x01,0x02,0x06,0x02,0x00};
unsigned char code H[16]={
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20};
unsigned char code z[16]={
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00};
unsigned char code V[16]={
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00};
unsigned char code F[16]={
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00};
unsigned char code A[16]={
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};
unsigned char code u[16]={
0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20};
unsigned char code m[16]={
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F};
unsigned char code num0[16]={
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
unsigned char code num1[16]={
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
unsigned char code num2[16]={
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
unsigned char code num3[16]={
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
unsigned char code num4[16]={
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
unsigned char code num5[16]={
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
unsigned char code num6[16]={
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
unsigned char code num7[16]={
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
unsigned char code num8[16]={
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
unsigned char code num9[16]={
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
unsigned char code dot[16]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
unsigned char code colon[16]={
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};
void delay(int num)
{
	while(num--) ;
}
void write_chinese(x,y,width,array)
unsigned char x;  /* horizontal  x==[0,127] */
unsigned char y;  /* vertical    y==[0,7]   */
unsigned char width;
unsigned char array[];
{
	unsigned char j,dd;
       	for(j=0;j<width*2;j++)
	{
		dd=array[j];
		if(j<width) lw(x+j,y,dd);
		else     lw(x+j-width,y+1,dd);
	}
}
unsigned char read_status(void)
{
   unsigned char status;
   di=0;rw=0;e=0;rw=1;e=1;delay(2);e=0;e=1;
   status = P1;
   return(status);
}
void clear_screen(void)
{
        unsigned char x,y;
        for (y=0;y<8;y++)
        {
		for (x=0;x<128;x++)
                lw(x,y,0x00);
	}
}
void fillbyte(unsigned char byte)
{
        unsigned char x,y;
        for (y=0;y<8;y++)
        {
		for (x=0;x<128;x++)
                lw(x,y,byte);
	}
}
void fill(void)
{
        unsigned char x,y;
        for (y=0;y<8;y++)
        {
		for (x=0;x<128;x=x+2)
                {lw(x,y,0xaa);lw(x+1,y,0x55);}
	}
}
void lcd_init(void)
{
	
        rst=0; delay(3);   rst=1;/*  Reset  */
        di=0;
/* Initial CS1 module */
        cs1=1;cs2=0;
        e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
        e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
/* Initial CS2 module */
        cs2=1;cs1=0;
        e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
        e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
/* Clear screen  */
        clear_screen();
        fillbyte(0xff);
 
}



void lw(unsigned char x,unsigned char y,unsigned char dd)
{
		if (x<64)
		{
			cs1=1;cs2=0;
			di=rw=0;cs1=1;cs2=0;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
			di=rw=0;cs1=1;cs2=0;P1=0x40|x;e=1;delay(0);e=0;delay(0);
			di=1;rw=0;cs1=1;cs2=0;P1=dd;e=1;delay(0);e=0;delay(0);
			cs1=cs2=1;

		}
		else
		{
			cs1=0;cs2=1;x=x-64;
			di=rw=0;cs1=0;cs2=1;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
			di=rw=0;cs1=0;cs2=1;P1=0x40|x;e=1;delay(0);e=0;delay(0);
			di=1;rw=0;cs1=0;cs2=1;P1=dd;e=1;delay(0);e=0;delay(0);
			cs1=cs2=1;
		}
		P1=0xff;
}



void main()
{
	unsigned char i,dd;
loop:	lcd_init();
        delay(30000);
        clear_screen();
        fill();
        delay(30000);
        
        write_chinese(0x20,3,0x10,nin);
        write_chinese(0x30,3,0x10,hao);
        write_chinese(0x40,3,0x08,gantanhao);
        write_chinese(0x48,3,0x08,gantanhao);
        delay(50000);
        clear_screen();
        write_chinese(0x20,3,0x10,nin);
        write_chinese(0x30,3,0x10,hao);
        write_chinese(0x40,3,0x08,gantanhao);
        write_chinese(0x48,3,0x08,gantanhao);
        delay(50000);
        clear_screen();
        write_chinese(0x10,0,0x10,pin);
        write_chinese(0x20,0,0x10,lv);
        write_chinese(0x30,0,0x08,colon);
        write_chinese(0x38,0,0x08,num1);
        write_chinese(0x40,0,0x08,num8);
        write_chinese(0x48,0,0x08,num0);
        write_chinese(0x50,0,0x08,H);
        write_chinese(0x58,0,0x08,z);
        
	write_chinese(0x10,2,0x10,dian);
        write_chinese(0x20,2,0x10,ya);
        write_chinese(0x30,2,0x08,colon);
        write_chinese(0x38,2,0x08,num2);
        write_chinese(0x40,2,0x08,num0);
        write_chinese(0x48,2,0x08,dot);
        write_chinese(0x50,2,0x08,num8);
        write_chinese(0x58,2,0x08,V);
        
        write_chinese(0x10,4,0x10,dian);
        write_chinese(0x20,4,0x10,liu);
        write_chinese(0x30,4,0x08,colon);
        write_chinese(0x38,4,0x08,num6);
        write_chinese(0x40,4,0x08,num5);
        write_chinese(0x48,4,0x08,dot);
        write_chinese(0x50,4,0x08,num7);
        write_chinese(0x58,4,0x08,m);
        write_chinese(0x60,4,0x08,A);
                
        write_chinese(0x10,6,0x10,dian);
        write_chinese(0x20,6,0x10,rong);
        write_chinese(0x30,6,0x08,colon);
        write_chinese(0x38,6,0x08,num4);
        write_chinese(0x40,6,0x08,num9);
        write_chinese(0x48,6,0x08,dot);
        write_chinese(0x50,6,0x08,num3);
        write_chinese(0x58,6,0x08,u);
        write_chinese(0x60,6,0x08,F);
        delay(50000);
        delay(50000);
        delay(50000);
        delay(50000);
        clear_screen();
        write_chinese(0x20,3,0x10,xie);
        write_chinese(0x30,3,0x10,xie);
        write_chinese(0x40,3,0x08,gantanhao);
        write_chinese(0x48,3,0x08,gantanhao);
        delay(50000);
        delay(50000);
        delay(50000);
        delay(50000);
        fill();
	goto loop;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -