📄 12864.c
字号:
#include<reg51.h>
#define uchar unsigned char
#define DISPLAY_ON 0x3f
#define DISPALY_OFF 0x3e
#define Col_add 0x40
#define Pag_add 0xb8
#define Start_line 0xc0
#define LCD_BUS P0
sbit DI = P2^2;
sbit E = P2^0;
sbit RW = P2^1;
sbit Mcs= P2^4;
sbit Scs= P2^3;
sbit RST = P2^5;
sbit busy = P0^7;
uchar code da[] = {
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,
0xA0,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
0x00,0x40,0x40,0x20,0x10,0x0C,0x03,0x00,
0x01,0x06,0x08,0x10,0x20,0x60,0x20,0x00};
//0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
//0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,};
uchar code jia[]= {
0x10,0x0C,0x24,0xA4,0xA4,0x64,0xA5,0x26,
0x24,0x24,0x24,0xA4,0x24,0x14,0x0C,0x00,
0x00,0x49,0x49,0x24,0x24,0x52,0x89,0x7F,
0x04,0x0A,0x11,0x11,0x20,0x60,0x20,0x00};
//0x02,0x00,0x01,0x00,0x3F,0xFE,0x40,0x04,0x5F,0xE8,0x01,0x00,0x02,0x00,0x0F,0x20,
// 0x72,0xB0,0x04,0xC0,0x19,0xC0,0x66,0xB0,0x18,0x8E,0x60,0x84,0x05,0x00,0x02,0x00,};
uchar code hao[]= {
0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,
0x82,0x82,0xE2,0x92,0x8A,0xC6,0x80,0x00,
0x40,0x22,0x15,0x08,0x14,0x63,0x00,0x00,
0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00};
//0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,
// 0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,};
/*****延时间子程序*******/
void delay(unsigned int t){
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
return;}
/*******读忙子程序*********/
LCD_Busy(void){
/* DI = 0;
RW = 1;
P0 = 0xff;
while(1){
E = 1;
if(LCD_BUS < 0x80)break;
E = 0;}
E = 0;
*/ return;}
/********写指令子程序*******/
void Write_Com(uchar Cmdcode){
LCD_Busy();
RW = 0; DI = 0;
LCD_BUS = Cmdcode;
E = 1; E = 0;
return;}
/*******写数据子程序*********/
void Write_Data(uchar Datcode)
{
LCD_Busy();
RW = 0; DI = 1;
LCD_BUS = Datcode;
E = 1; E = 0;
return;}
/**********初始化LCD子程序******/
Lcd_init(void)
{
RST = 0;
delay(100);
RST = 1;
delay(100);
Mcs=1;Scs=1;
delay(100);LCD_Busy();
Write_Com(DISPALY_OFF);
Write_Com(DISPLAY_ON);
Write_Com(Pag_add+0);
Write_Com(Col_add+0);
Write_Com(Start_line);
return;
}
/**********清空内存*********/
Clr_scr(void)
{
uchar i,j;
Mcs = 1;
Scs = 1;
Write_Com(Pag_add+0);
Write_Com(Col_add+0);
for(i = 0;i < 8;i++)
{
Write_Com(Pag_add+i);
for(j = 0;j < 64;j++)
Write_Data(0x00);
}
return;
}
/**********显示子程序***************/
DISPLAYXY(uchar pag,uchar col,uchar code *ndata)
{
uchar i,j;
for(i = 0;i < 2;i++)
{
Write_Com(Pag_add + pag + i);
Write_Com(Col_add + col);
for(j=0;j<16;j++)
Write_Data(ndata[i*16+j]);
}
delay(2000);
}
/********显示"大家好"子程序********/
DISPLAY()
{
Mcs=0;Scs=1;
DISPLAYXY(0,0,da);
DISPLAYXY(0,16,jia);
DISPLAYXY(0,32,hao);
delay(10000);
}
main(){
// Clr_scr();
Lcd_init();
DISPLAY();
while(1){
#pragma asm
LCALL DISPLAY
#pragma endasm
Lcd_init();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -