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

📄 12864.c

📁 自己做的单片机Proteus仿真实例
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit en=P2^0;
sbit rw=P2^1;
sbit rs=P2^2;
sbit cs2=P2^3; 
sbit cs1=P2^4;

/*--  文字:  欢  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code huan[]={0x00,0xA0,0x20,0x10,0xF0,0x00,0x40,0x38,0xA7,0x10,0x50,0x30,0x10,0x00,0x00,0x00,
                   0x10,0x08,0x05,0x02,0x05,0x20,0x10,0x0C,0x03,0x04,0x08,0x10,0x30,0x20,0x20,0x00};

/*--  文字:  迎  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code ying[]={0x40,0x40,0x44,0xC8,0x00,0xF8,0x08,0x84,0x06,0xF0,0x08,0x88,0xF8,0x00,0x00,0x00,
                   0x08,0x08,0x09,0x0E,0x08,0x09,0x09,0x08,0x10,0x17,0x10,0x30,0x30,0x10,0x10,0x00};

/*--  文字:  访  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code fang[]={0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x00,
                   0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00};

/*--  文字:  问  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code wen[]={0x00,0x00,0xF8,0x02,0x04,0xC0,0x44,0x24,0x24,0xE2,0x02,0x02,0xFE,0x00,0x00,0x00,
                  0x00,0x00,0x1F,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x10,0x3F,0x00,0x00,0x00};

/*--  文字:  安  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code an[]={0x00,0x00,0x00,0x70,0x10,0x10,0xD2,0x0A,0x0C,0x88,0xA8,0x98,0x80,0x80,0x80,0x00,
                 0x02,0x02,0x02,0x22,0x22,0x17,0x15,0x09,0x0D,0x13,0x10,0x20,0x00,0x00,0x00,0x00};
 
/*--  文字:  阳  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code yang[]={0x00,0x00,0xFC,0x42,0x9A,0xE6,0x00,0x00,0xF0,0x88,0x88,0x08,0xF8,0x00,0x00,0x00,
                   0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x0F,0x00,0x00,0x00};

/*--  文字:  师  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code shi[]={0x00,0x00,0xF8,0x00,0xFE,0x00,0xE4,0x24,0x24,0xFC,0x24,0x12,0x12,0xF2,0x00,0x00,
                  0x00,0x10,0x09,0x04,0x03,0x00,0x03,0x00,0x00,0x7F,0x00,0x01,0x02,0x01,0x00,0x00};

/*--  文字:  范  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code fan[]={0x00,0x88,0x28,0x48,0x0E,0x18,0xC8,0x44,0x5C,0x27,0xE4,0x04,0x04,0x00,0x00,0x00,
                  0x00,0x30,0x09,0x06,0x00,0x00,0x1F,0x20,0x21,0x22,0x21,0x20,0x20,0x38,0x00,0x00};

/*--  文字:  学  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code xue[]={0x00,0xC0,0x70,0x22,0x24,0xA0,0x52,0x54,0xD0,0x58,0x17,0x10,0x30,0x10,0x00,0x00,
                  0x00,0x04,0x04,0x04,0x04,0x04,0x24,0x43,0x3E,0x02,0x02,0x02,0x02,0x00,0x00,0x00};

/*--  文字:  院  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
uchar code yuan[]={0x00,0xFC,0x44,0xB4,0xCC,0x20,0x18,0x50,0x4A,0xAC,0xA8,0x88,0x18,0x00,0x00,0x00,
                   0x00,0x3F,0x00,0x20,0x10,0x08,0x05,0x03,0x01,0x1F,0x20,0x20,0x20,0x1C,0x00,0x00};
void delay(uint i)
{
    while(--i);
}
void test_busy()
{
    P0=0x00;
	rs=0;
	rw=1;
	en=1;
	while(P0&0x80);
	en=0;
}
void write_com(uchar value)
{
    
    test_busy();
	rs=0;
	rw=0;
	P0=value;
	en=1;
	delay(1);
	en=0;
}
void write_data(uchar value)
{
    
    test_busy();
	rs=1;
	rw=0;
	P0=value;
	en=1;
	delay(1);
	en=0;
}
void set_page(uchar page)
{
    page=0xb8|page;
	write_com(page);
}
void set_line(uchar line)
{
    line=0xc0|line;
	write_com(line);
}
void set_colunm(uchar colunm)
{   
    colunm=0x40|colunm;
	write_com(colunm);
}
void set_on(uchar i)
{
    i=0x3e|i;
    write_com(i);
}
void select_screen(uchar screen)
{
    switch(screen)
	{
	    case 0: cs1=0;cs2=0;break;  //全屏
		case 1: cs1=0;cs2=1;break;	//左半屏
		case 2: cs1=1;cs2=0;break;	//右半屏
		default: break;
	}
}
void clear_screen(uchar screen)
{
    uchar i,j;
	select_screen(screen);
	for(i=0;i<8;i++)
	   {
	       set_page(i);
		   for(j=0;j<64;j++)
		      { 
			      set_colunm(j);
			      write_data(0x00);
			  }
		}

}
void lcd_init()
{
    test_busy();
	select_screen(0);
	set_on(1);
	clear_screen(0);
	set_line(0);
}
void display(uchar screen,uchar page,uchar colunm,uchar *p)
{
    uchar i;
	select_screen(screen);
	set_page(page);
	set_colunm(colunm);
	for(i=0;i<16;i++)
	{
	    write_data(p[i]);
	}
	set_page(page+1);
	set_colunm(colunm);	
	for(i=0;i<16;i++)
	{  
	    write_data(p[i+16]);
	}  
}
void main()
{
    uchar i,j,k,l;
    lcd_init();
	display(1,0,2*16,huan);
	display(1,0,3*16,ying);
	display(2,0,0*16,fang);
	display(2,0,1*16,wen);
	display(1,2,1*16,an);
	display(1,2,2*16,yang);
	display(1,2,3*16,shi);
	display(2,2,0*16,fan);
	display(2,2,1*16,xue);
	display(2,2,2*16,yuan); 
	while(1)		  //上下滚屏
	{
    	for(i=0;i<8;i++)
	    {
	        display(1,0+i,2*16,huan);
	        display(1,0+i,3*16,ying);
	        display(2,0+i,0*16,fang);
	        display(2,0+i,1*16,wen);
            display(1,2+i,1*16,an);
	        display(1,2+i,2*16,yang);
	        display(1,2+i,3*16,shi);
	        display(2,2+i,0*16,fan);
	        display(2,2+i,1*16,xue);
            display(2,2+i,2*16,yuan);

		 	for(j=8;j>0;j--)
			   {
			       for(k=500;k>0;k--)
				      for(l=110;l>0;l--);
			   }

			clear_screen(0);
	    }
	}  
}










































⌨️ 快捷键说明

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