📄 1.c
字号:
#include <reg51.h>
sbit e=P3^0;
sbit rw=P3^1;
sbit rs=0xb2;
sbit cs2=0xb3;
sbit cs1=0xb4;
sbit busy=0xa7;
unsigned char code nBitmapDot[] = // 数据表
{
0x08,0x08,0x0F,0xF8,0x08,0x0F,0x01,0x41,0x41,0x41,0x4F,0x51,0x61,0x41,0x01,0x00,
0x01,0xC2,0x44,0x28,0x30,0xCE,0x04,0x00,0x02,0x01,0xFE,0x00,0x00,0x00,0x00,0x00
};
/*unsigned char code nBitmapDot1[] = // 数据表
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x04,0x08,0x08,0x08,0x04,0x3B,0x4C,
0x5C,0x3B,0x04,0x05,0x05,0x03,0x70,0x0C,
0x7E,0x00,0x02,0x01,0x00,0x00,0x00,0x00,
0x06,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,
0x05,0x09,0x11,0x2B,0x27,0x0E,0x4E,0x3D,
0x1E,0x1C,0x1C,0x7C,0x3E,0x1F,0x1F,0x1F,
0x0F,0x0F,0x0F,0x07,0x03,0x03,0x02,0x04,
0x00,0x00,0x00,0x00,0x7F,0x5F,0x7F,0x7F,
0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x7F,0x7F,
0x78,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x72,0x8C,0x84,0x84,0x84,
0xE4,0x1F,0x09,0x2B,0x4F,0x17,0xE2,0x82,
0x82,0x8B,0xC4,0xB8,0x81,0x02,0x04,0x19,
0x20,0xC1,0x3C,0x09,0x8F,0x7C,0x73,0xEE,
0xC6,0xC3,0xC3,0xE4,0xFC,0x7F,0x7F,0x3F,
0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x70,0xE0,0x8F,0x3F,0x7F,0xFF,0xFF,
0x3F,0x1F,0x19,0x19,0x27,0xE7,0xFF,0x3B,
0x3F,0xF3,0xF3,0xFF,0xFD,0xFF,0xF7,0x78,
0x1F,0x08,0x00,0x02,0xFC,0xF1,0xC2,0x8E,
0x92,0x92,0x91,0x80,0xC0,0xF0,0xCF,0x00,
0x00,0x11,0x00,0x55,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x03,0xC7,0x2B,0x12,0x11,0x50,0xA0,
0x7C,0x83,0xA2,0x8B,0x87,0xFF,0x1F,0x0F,
0x0F,0x1F,0xEE,0x8B,0x0C,0x09,0x00,0x55,
0x00,0x11,0x00,0x84,0x71,0x0E,0xF8,0xFF,
0x7F,0xFF,0xFF,0xFC,0xFC,0xFC,0xFE,0xF9,
0xFF,0xFC,0x00,0x00,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,
0x02,0x03,0x00,0xC0,0xF0,0xFC,0xFE,0xFE,
0xFF,0xFD,0xFC,0xF8,0xF0,0xF0,0xF0,0xF1,
0xF1,0xF3,0xC7,0xEF,0x9E,0xF8,0xE0,0x00,
0x00,0x00,0x01,0x06,0x01,0xE1,0x20,0x80,
0x00,0x21,0xC1,0x02,0x0C,0x31,0xC0,0x15,
0x00,0x11,0x00,0x55,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x47,0xAB,0xEF,0xDF,0xF6,0x5E,0xEE,0x3E,
0x5E,0xFF,0x4E,0xAE,0xEE,0xEE,0xEE,0xA6,
0xC7,0x57,0x83,0x53,0x00,0x11,0x00,0x55,
0x00,0x11,0x00,0x05,0xF0,0x0D,0x02,0x41,
0x88,0xD4,0x52,0x52,0x4E,0x50,0xC8,0x80,
0x00,0x00,0x00,0x00,0x80,0x60,0x78,0x7F,
0x7F,0x7F,0x7F,0xFF,0xFE,0xFE,0xFE,0xFC,
0xFC,0xFF,0x00,0x00,0x00,0x00,0x80,0x80,
0xC0,0xC0,0xD8,0xC4,0xC4,0xC4,0xC4,0xC4,
0xA4,0xA8,0x30,0x01,0x01,0x02,0x04,0x0E,
0x14,0x62,0x81,0x53,0x02,0x14,0x84,0x9C,
0xA2,0x41,0x41,0x41,0x22,0x1E,0x02,0x52,
0x02,0x11,0x00,0x53,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xF4,0x68,0xBF,0xB6,0xBF,0x5F,0x57,0x46,
0xC6,0x56,0xBF,0x5F,0x66,0x46,0x59,0xB9,
0xA6,0xA6,0x58,0xB4,0x00,0x11,0x00,0x54,
0x00,0x11,0x00,0x44,0x00,0x11,0x00,0x54,
0x80,0x51,0x40,0x24,0x20,0x11,0x10,0x08,
0x08,0x08,0x04,0x05,0x05,0x06,0x02,0x04,
0x84,0xC4,0xA4,0x24,0x24,0x24,0x22,0x22,
0x42,0x83,0x05,0x05,0x06,0x04,0x04,0x0C,
0x08,0x08,0x08,0x18,0x18,0x18,0x28,0x28,
0x48,0x44,0x84,0x02,0x02,0x02,0x01,0x01,
0x01,0x01,0x00,0xC0,0x20,0x20,0x3C,0x23,
0x41,0xC1,0xC1,0xE2,0x1F,0x10,0x10,0x10,
0x18,0xE4,0x03,0x94,0x40,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x10,0xF0,0xEC,0xF6,0xFE,0xFE,0xFA,
0x02,0xEA,0xDE,0xBE,0x7E,0x7E,0xFE,0xFE,
0x7C,0x70,0x10,0x50,0x00,0x10,0x10,0x10,
0x10,0x10,0x10,0x50,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x50,0x10,0x30,0x30,0x50,
0x50,0x90,0xB0,0x10,0x08,0x08,0x04,0x04,
0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x04,
0x04,0x78,0x84,0x02,0x02,0x02,0x02,0x02,
0x02,0x02,0x02,0x02,0x02,0x04,0x04,0x04,
0x08,0x10,0x30,0x10,0x10,0x10,0x10,0x10,
0x10,0x10,0x90,0x90,0x90,0x50,0x50,0xB0,
0x10,0x10,0x10,0x10,0x90,0x70,0x10,0x10,
0x10,0x10,0x10,0x90,0x50,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}; */
void pulse()
{
e=1;
e=0;
}
void busy_check(char right)
{
P2=0xff;
if (right==1)
{
P3=0x13;
while(!busy);
}
if (right==0)
{
P3=0x0b;
while(!busy);
}
}
void cmd_w(char cmd,char right)
{
busy_check(right);
if (right==1)
{
P3=0x10;
}
if (right==0)
{
P3=0x08;
P3=0x08;
}
P2=cmd;
pulse();
}
void data_w(char dat,char right)
{
busy_check(right);
if (right==1)
{
P3=0x14;
}
if (right==0)
{
P3=0x0c;
}
P2=dat;
pulse();
}
void lcd_init()
{
unsigned int i;
cmd_w(0x3e+1,0);//显示开关
cmd_w(0xc0+0,0);//修改显示起始行
cmd_w(0xb8+0,0);//修改页地址
cmd_w(0x40+0,0);//修改列地址
cmd_w(0x3e+1,1);
cmd_w(0xc0+0,1);
cmd_w(0xb8+0,1);
cmd_w(0x40+0,1);
for(i=0;i<256;i++)
{
data_w(0x00,0);
}
cmd_w(0xb8+4,0);
cmd_w(0x40+8,0);
for(i=0;i<256;i++)
{
data_w(0x00,0);
}
for(i=0;i<256;i++)
{
data_w(0x00,1);
}
cmd_w(0xb8+4,1);
cmd_w(0x40+8,1);
for(i=0;i<256;i++)
{
data_w(0x00,1);
}
}
char chang(char a)
{
char temp,i;
for(i=0;i<8;i++)
{
temp<<=1;
temp|=(a&0x01);
a>>=1;
}
return(temp);
}
void hanzi_w(char hang,char lie,char zhi[32])
{
unsigned char i;
if(lie<4)
{
cmd_w(0xb8+2*hang,0);
cmd_w(0x40+16*lie,0);
for(i=0;i<32;i+=2)
data_w(chang(zhi[i]),0);
}
else
{
cmd_w(0xb8+2*hang,1);
cmd_w(0x40+16*(lie-4),1);
for(i=0;i<32;i+=2)
data_w(chang(zhi[i]),1);
}
if(lie<4)
{
cmd_w(0xb8+2*hang+1,0);
cmd_w(0x40+16*lie,0);
for(i=1;i<32;i+=2)
data_w(chang(zhi[i]),0);
}
else
{
cmd_w(0xb8+2*hang+1,1);
cmd_w(0x40+16*(lie-4),1);
for(i=1;i<32;i+=2)
data_w(chang(zhi[i]),1);
}
}
void zifu_w(char hang,char lie,char zhi[8])
{
unsigned char i;
if(lie<8)
{
cmd_w(0xb8+hang,0);
cmd_w(0x40+8*lie,0);
for(i=0;i<5;i++)
data_w(chang(zhi[i]),0);
}
else
{
cmd_w(0xb8+hang,1);
cmd_w(0x40+8*(lie-8),1);
for(i=0;i<5;i++)
data_w(chang(zhi[i]),1);
}
}
void bmp_w(char a[])
{
unsigned int i;
cmd_w(0xb8+0,0);//修改页地址
cmd_w(0x40+0,0);//修改列地址
for(i=0;i<64;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+0,1);
cmd_w(0x40+0,1);
for(i=64;i<128;i++)
{
data_w(chang(a[i]),1);
}
cmd_w(0xb8+1,0);
cmd_w(0x40+0,0);
for(i=128;i<192;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+1,1);
cmd_w(0x40+0,1);
for(i=192;i<256;i++)
{
data_w(chang(a[i]),1);
}
cmd_w(0xb8+2,0);
cmd_w(0x40+0,0);
for(i=256;i<320;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+2,1);
cmd_w(0x40+0,1);
for(i=320;i<384;i++)
{
data_w(chang(a[i]),1);
}
cmd_w(0xb8+3,0);//修改页地址
cmd_w(0x40+0,0);//修改列地址
for(i=384;i<448;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+3,1);
cmd_w(0x40+0,1);
for(i=448;i<512;i++)
{
data_w(chang(a[i]),1);
}
cmd_w(0xb8+4,0);
cmd_w(0x40+0,0);
for(i=512;i<576;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+4,1);
cmd_w(0x40+0,1);
for(i=576;i<640;i++)
{
data_w(chang(a[i]),1);
}
cmd_w(0xb8+5,0);
cmd_w(0x40+0,0);
for(i=640;i<704;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+5,1);
cmd_w(0x40+0,1);
for(i=704;i<768;i++)
{
data_w(chang(a[i]),1);
}
cmd_w(0xb8+6,0);
cmd_w(0x40+0,0);
for(i=768;i<832;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+6,1);
cmd_w(0x40+0,1);
for(i=832;i<896;i++)
{
data_w(chang(a[i]),1);
}
cmd_w(0xb8+7,0);
cmd_w(0x40+0,0);
for(i=896;i<960;i++)
{
data_w(chang(a[i]),0);
}
cmd_w(0xb8+7,1);
cmd_w(0x40+0,1);
for(i=960;i<1024;i++)
{
data_w(chang(a[i]),1);
}
}
void delay(unsigned char a)
{
unsigned char i,j;
for(i=0;i<a;i++)
for(j=0;j<200;j++)
;
}
void main()
{
lcd_init();
bmp_w(nBitmapDot);
while(1)
{
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
//bmp_w(nBitmapDot1);
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
delay(200);
bmp_w(nBitmapDot);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -