📄 lcd1.c
字号:
#include <REGSND1.H>
#include "uart.h"
sbit di=P1^4;
sbit e1=P1^5;
sbit e2=P1^6;
sbit rw=P1^7;
unsigned char x,y;
unsigned char *p[];
void delay(int num)
{
while(num--) ;
}
void send_command(unsigned char cmd)
{
e1=e2=0;
di=rw=0;
P2=cmd;
e1=e2=1;
delay(2);
e1=e2=0;
delay(2);
P2=0xff;
e1=e2=1;
}
void lw(unsigned char x,unsigned char y,unsigned char dd) {
if (x<61)
{ e1=e2=1;
di=rw=0;P2=0xb8|y;e1=1;delay(2);e1=0;delay(2);
e1=e2=1;
di=rw=0;P2=0x00|x;e1=1;delay(2);e1=0;delay(2);
e1=e2=1;
di=1;rw=0;P2=dd;e1=1;delay(2);e1=0;delay(2);
e1=e2=1;
}
else
{
x=x-61;e1=e2=1;
di=rw=0;P2=0x00|x;e2=1;delay(2);e2=0;delay(2);
e1=e2=1;
di=rw=0;P2=0xb8|y;e2=1;delay(2);e2=0;delay(2);
e1=e2=1;
di=1;rw=0;P2=dd;e2=1;delay(2);e2=0;delay(2);
e1=e2=1;
}
P2=0xff;
}
void lcd_init(void) {
unsigned char x,y;
printu("LCD_Init\n");
e1=e2=0;
di=rw=0;
send_command(0xae);//关闭液晶显示
send_command(0xc0);//显示起始行
send_command(0xa5);//静态驱动ON/OFF
send_command(0x00);//列地址置0
send_command(0xbb);//页地址置1
send_command(0xa9);//占空比选择1/32
send_command(0xa1);//ADC选择:向右输出
send_command(0xee);//取消读/修改/写方式
for (y=0;y<4;y++)
{
for (x=0;x<122;x++) lw(x,y,0);
}
send_command(0xaf);//打开液晶显示
printu("End of LCD_Init\n");
P2=0;
x=0;di=0;rw=1;
x=P2;
printuf("State:%x\n",x);
while(1);
}
unsigned char a[16]={0xff,0x00,0x00,0xff,0xaa,0xaa,0x55,0x55,
0xaa,0x55,0x55,0xaa,0xff,0xff,0x00,0x00};
unsigned char code yu[32]={0x00,0x00,0x88,0x88,0x4A,0xAC,0xB8,0xAA,0xBC,0xA8,0xB8,0xAC,0x4A,0x88,0x88,0x00,
0x00,0x00,0x00,0x00,0x3A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x3A,0x00,0x00,0x00};
unsigned char code xin[32]={0x00,0x00,0x80,0x60,0xF8,0x06,0x08,0xA8,0xA8,0xAA,0xAC,0xA8,0xA8,0xA8,0x08,0x00,
0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x3E,0x12,0x12,0x12,0x12,0x12,0x3E,0x00,0x00};
unsigned char code dian[32]={0x00,0x00,0xF0,0x90,0x90,0x90,0x90,0xFE,0x90,0x90,0x90,0x90,0xF0,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x1F,0x24,0x24,0x24,0x24,0x27,0x20,0x18,0x00};
unsigned char code zi[32]={0x00,0x00,0x80,0x82,0x82,0x82,0x82,0x82,0xE2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char code you[32]={0x00,0x00,0x04,0x84,0x44,0xF4,0x9C,0x96,0x94,0x94,0x94,0x94,0xF4,0x04,0x04,0x00,
0x00,0x00,0x01,0x00,0x00,0x3F,0x04,0x04,0x04,0x14,0x24,0x24,0x1F,0x00,0x00,0x00};
unsigned char code xian[32]={0x00,0x00,0xFE,0x02,0x22,0x5A,0x86,0x00,0xFE,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,
0x00,0x00,0x3F,0x04,0x08,0x04,0x03,0x00,0x3F,0x12,0x04,0x0A,0x11,0x30,0x10,0x00};
unsigned char code gong[32]={0x00,0x00,0x80,0x80,0x40,0x30,0x0C,0x00,0xC0,0x06,0x18,0x20,0xC0,0x80,0x80,0x00,
0x00,0x00,0x00,0x10,0x18,0x14,0x12,0x11,0x10,0x10,0x14,0x18,0x30,0x00,0x00,0x00};
unsigned char code si[32]={0x00,0x00,0x10,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x12,0x02,0x02,0xFE,0x00,0x00,
0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x08,0x1F,0x00,0x10,0x20,0x1F,0x00,0x00};
unsigned char code d[32]={0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x7E,0x48,0x48,0x48,0x48,0xC8,0x08,0x00,0x00,
0x00,0x00,0x20,0x1B,0x02,0x02,0x0A,0x32,0x02,0x0A,0x32,0x02,0x0B,0x10,0x20,0x00};
unsigned char code zhen[32]={0x00,0x00,0xFE,0x22,0x5A,0x86,0x08,0xC8,0xB8,0x8E,0xE8,0x88,0x88,0x88,0x08,0x00,
0x00,0x00,0x3F,0x02,0x04,0x03,0x04,0x04,0x04,0x04,0x3F,0x04,0x04,0x04,0x04,0x00};
unsigned char code ye[32]={0x00,0x00,0x12,0x24,0x8C,0x00,0x84,0xC4,0x34,0xC4,0xB6,0x24,0x24,0xE4,0x04,0x00,
0x00,0x00,0x02,0x3F,0x00,0x01,0x00,0x3F,0x21,0x12,0x0C,0x05,0x0B,0x30,0x20,0x00};
unsigned char code jin[32]={0x00,0x00,0x00,0x80,0x80,0xBE,0xAA,0xAA,0x2A,0xAA,0xAA,0xBE,0x80,0x80,0x00,0x00,
0x00,0x00,0x00,0x3F,0x24,0x24,0x24,0x3F,0x00,0x3F,0x24,0x24,0x24,0x3F,0x00,0x00};
unsigned char code xi[32]={0x00,0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
0x00,0x00,0x21,0x22,0x26,0x20,0x3F,0x20,0x20,0x20,0x3F,0x20,0x24,0x22,0x23,0x00};
unsigned char code s[32]={0x00,0x00,0x20,0x22,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x22,0x22,0x20,0x00,
0x00,0x00,0x08,0x04,0x02,0x03,0x10,0x20,0x1F,0x00,0x00,0x01,0x02,0x04,0x0C,0x00};
unsigned char code mo[32]={0x00,0x00,0x10,0xD0,0xFE,0x50,0x94,0xF4,0x5E,0x54,0x54,0x54,0x5E,0xF4,0x04,0x00,
0x00,0x00,0x03,0x00,0x3F,0x00,0x24,0x25,0x15,0x0D,0x07,0x0D,0x15,0x25,0x24,0x00};
unsigned char code kuai[32]={0x00,0x00,0x20,0x20,0xFE,0x20,0x20,0x10,0x10,0xFE,0x10,0x10,0x10,0xF0,0x00,0x00,
0x00,0x00,0x08,0x08,0x0F,0x24,0x25,0x11,0x0D,0x03,0x05,0x09,0x11,0x21,0x21,0x00};
unsigned char code zy[32]={0X00,0X00,0X10,0X30,0XD0,0X00,0XD0,0X30,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X10,0X1F,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00};
unsigned char code zu[32]={0X00,0X00,0X10,0XF0,0X10,0X00,0X10,0XF0,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X0F,0X10,0X10,0X10,0X0F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00};
unsigned char code zs[32]={0X00,0X00,0X00,0X60,0X90,0X10,0X10,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X18,0X10,0X11,0X11,0X0E,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00};
unsigned char code zn[32]={0X00,0X00,0X10,0XF0,0X70,0X80,0X10,0XF0,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X10,0X1F,0X10,0X03,0X0C,0X1F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00};
unsigned char code zg[32]={0X00,0X00,0XC0,0X20,0X10,0X10,0X10,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X07,0X08,0X10,0X10,0X12,0X0E,0X02,0X00,0X00,0X00,0X00,0X00,0X00,0X00};
/*unsigned char code bmp1[244]={0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,
0x40,0x02,0x40,0x02,0x80,0x01,0xF0,0x0F,0x80,0x01,0x40,0x02,0x40,0x02,0x00,0x00,
0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00,
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,
0x00,0x00,0x00,0x40,0x00,0x30,0xE0,0x07,0x20,0x12,0x20,0x62,0x20,0x02,0x3F,0x0A,
0x24,0x12,0x24,0x62,0x24,0x02,0xF4,0x0F,0x24,0x10,0x00,0x60,0x00,0x00,0x00,0x00,
0xFE,0xFF,0x02,0x00,0x12,0x02,0x2A,0x04,0xC6,0x03,0x88,0x04,0xC8,0x04,0xB8,0x04,
0x8F,0x04,0xE8,0xFF,0x88,0x04,0x88,0x04,0x88,0x04,0x88,0x04,0x00,0x04,0x00,0x00,
0x00,0x00,0xFE,0xFF,0x42,0x42,0x42,0x42,0x22,0x41,0x1E,0x41,0xAA,0x48,0x4A,0x72,
0xAA,0x54,0x9A,0x40,0x0A,0x41,0x02,0x43,0x02,0x41,0xFE,0xFF,0x00,0x00,0x00,0x00,
0x40,0x80,0x42,0x40,0x42,0x30,0xFE,0x0F,0x42,0x00,0x42,0x00,0xFE,0x7F,0x42,0x00,
0x42,0x84,0x40,0x42,0x10,0x21,0x88,0x10,0xE4,0x08,0x47,0x0E,0x02,0x04,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,
};
unsigned char code bmp2[244]={0x00,
0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,
0x40,0x02,0x40,0x02,0x80,0x01,0xF0,0x0F,0x80,0x01,0x40,0x02,0x40,0x02,0x00,0x00,
0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00,
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x22,0x38,0x1E,0x00,0x02,0x00,0x00,
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0x88,0x03,0x88,0x0C,0x70,0x30,0x00,0x20,
0x00,0x20,0x00,0x3C,0xC0,0x23,0x38,0x02,0xE0,0x02,0x00,0x27,0x00,0x38,0x00,0x20,
0x08,0x20,0xF8,0x3F,0x08,0x21,0x08,0x01,0x08,0x01,0x08,0x01,0xF0,0x00,0x00,0x00,
0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,
0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x00,0x00,0x00,0x00,
0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x10,0x38,0x08,0x00,0x00,
0x00,0x00,0x70,0x38,0x88,0x20,0x08,0x21,0x08,0x21,0x08,0x22,0x38,0x1C,0x00,0x00,0x00,
};*/
void write_chinese(x,y,array)
unsigned char x,y;
unsigned char array[];
{
unsigned char j,dd;
for(j=0;j<32;j++)
{
dd=array[j];
if(j<16) lw(x+j,y,dd);
else lw(x+j-16,y+1,dd);
}
}
/*void write_bmp(x,y,array)
unsigned char x,y;
unsigned char array[];
{
unsigned char i,dd;
for(i=0;i<244;i++)
{
dd=array[i];
if(i%2==0) lw(i/2,y+1,dd);
else lw(i/2+1,y,dd);
}
}*/
void main()
{
unsigned char i;
printu("LCD Test!\n");
// P2=0x00;
// P1=0x55;
// lcd_init();
// while(1);
while(1){
lcd_init();
/*write_bmp(0,0,bmp1);
write_bmp(0,2,bmp2);*/
write_chinese(0,0,yu);
write_chinese(16,0,xin);
write_chinese(31,0,dian);
write_chinese(46,0,zi);
write_chinese(61,0,you);
write_chinese(77,0,xian);
write_chinese(92,0,gong);
write_chinese(107,0,si);
write_chinese(0,2,d);
write_chinese(16,2,zhen);
write_chinese(31,2,ye);
write_chinese(46,2,jin);
write_chinese(61,2,xi);
write_chinese(77,2,s);
write_chinese(92,2,mo);
write_chinese(107,2,kuai);
delay(60000);
for(i=0;i<8;i++){
for(y=0;y<4;y++){
for(x=0;x<122;x++){
if(x%2==0)
lw(x,y,a[2*i]);
else
lw(x,y,a[2*i+1]);
}
}
delay(60000);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -