📄 text1.c
字号:
#include "main.h"
#include <reg52.h>
#define LCD_Data P0
sbit LCD_RS =P1^2;
sbit LCD_E =P1^0;
sbit LCD_WR =P1^1;
void WriteLCD(unsigned char StartAddressY,unsigned char StartAddressX,unsigned char *tab,unsigned char biaozhi);
extern unsigned char code picture[]={
0x00,0x8C,0x10,0x10,0x20,0x20,0x19,0x04,0x12,0x02,0xC0,0x02,0x11,0x00,0x00,0x00,
0x00,0x40,0x18,0x20,0x5C,0x62,0x22,0x5C,0x40,0x24,0x10,0x90,0x21,0x02,0x04,0x04,
0x00,0x00,0x00,0x00,0x02,0x10,0x00,0x00,0x00,0x00,0x40,0x18,0x20,0x5C,0x62,0x22,
0x5C,0x40,0x24,0x10,0x90,0x21,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x08,0xD4,0x32,0x12,0x8A,0x89,0x09,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
0x08,0x08,0x08,0x10,0xF0,0x18,0x08,0x08,0x10,0x20,0x20,0xC0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x30,0x40,0xB8,0xC4,0x44,0xB9,0x80,0x48,0x20,0x20,0x4B,
0x0C,0xF8,0x09,0x08,0x08,0x88,0x78,0x00,0x00,0x00,0x20,0x28,0xA8,0xA8,0xA8,0xF8,
0xA8,0xA8,0xA8,0x28,0x20,0x00,0x00,0x08,0x08,0x08,0x08,0xC8,0x48,0x28,0x18,0x08,
0x00,0x00,0x00,0xE0,0xF0,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xC0,0x3C,0x83,0x80,0x80,0x99,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,
0x00,0x02,0x0C,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x02,0x02,0x0E,0xF1,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x00,
0x20,0x00,0x00,0xA1,0xA0,0x90,0x90,0x8B,0x84,0x8A,0x91,0x90,0xA0,0xA0,0x00,0xA0,
0x28,0x2F,0x2A,0x2A,0x3F,0x2A,0xAA,0x2F,0xA8,0x20,0x00,0x00,0x80,0x80,0xA0,0x20,
0xBF,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x9B,0x9B,0x80,0x80,0x80,0x80,0x80,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x87,0x08,0x16,0x10,0x2C,0x21,0x21,
0x22,0x9C,0x80,0x80,0x80,0x80,0x00,0x01,0x08,0x08,0x08,0x08,0x00,0x07,0x04,0x06,
0x00,0x80,0x60,0x1E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x20,0x85,0x41,0x41,0x02,0x00,0x20,0x00,0x20,0x2E,0xAA,0xEA,0xBF,0x2A,0xAF,0x6A,
0x2A,0x2E,0x20,0x00,0xE0,0x1B,0x80,0x7E,0xEA,0xAA,0xEA,0x3F,0xC2,0x23,0x9A,0x00,
0x00,0xFF,0x24,0xFF,0x00,0xFF,0x08,0x0F,0x08,0x08,0x8F,0x00,0x00,0x00,0x00,0x00,
0x00,0xFC,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x10,0x88,0x45,
0x27,0x12,0x02,0x20,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x43,0x00,0x00,0x00,0x08,
0x08,0x08,0x08,0x0C,0x0A,0x09,0x10,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x24,0x03,0x00,0x02,0x00,0x78,0x80,0x00,0x20,0x02,0x82,0x42,
0x42,0x42,0x81,0x01,0x01,0x02,0x02,0x00,0x40,0x01,0x02,0x01,0x00,0x01,0xC0,0x22,
0x21,0x20,0x41,0x83,0x00,0x03,0x00,0x02,0x23,0x00,0x03,0x02,0x02,0x02,0x02,0xC3,
0x20,0x20,0x20,0x40,0x82,0x02,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x38,0x47,
0xF0,0x04,0x03,0x02,0x02,0x04,0x05,0x05,0x06,0x02,0x0A,0x0A,0x0A,0x0A,0x04,0x04,
0x14,0x14,0x14,0x14,0x1B,0x20,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x10,0x09,0x04,0x24,0x08,0x00,
0x11,0x01,0x00,0x03,0x04,0x04,0x02,0x00,0x01,0x0A,0x02,0x02,0x04,0x00,0x00,0x00,
0x08,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x20,0x05,0x01,0x01,0x02,0x00,0x20,0x00,
0x00,0x08,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x20,0x05,0x01,0x01,0x02,0x00,0x20,
0x00,0x00,0x00,0x00,0x1F,0x38,0x30,0x28,0x30,0x20,0x10,0x00,0x20,0x0C,0x10,0x30,
0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x01,0x02,0x04,0x18,
0x24,0x14,0x24,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
unsigned char LCDBusyWait() //等待LCD就绪
{
unsigned char Status;
LCD_RS=0;
LCD_WR=1;
LCD_Data=0xFF;
LCD_E=1;
Status=LCD_Data;
LCD_E=0;
while(Status & 0x80)
{
LCD_E=1;
Status=LCD_Data;
LCD_E=0;
}
LCD_WR=0;
return Status;
}
void WriteLCD_Data(unsigned char Data) //向LCD写入一个字节的数据
{
LCDBusyWait();
LCD_RS=1;
LCD_Data=Data;
LCD_E=1;
LCD_E=0;
}
void WriteLCD_Command(unsigned char Command) //向LCD写入一个字节的命令
{
LCDBusyWait();
LCD_RS=0;
LCD_Data=Command;
LCD_E=1;
LCD_E=0;
}
void WriteLCD(unsigned char StartAddressY,unsigned char StartAddressX,unsigned char *tab,unsigned char biaozhi)
{ unsigned char a;
unsigned char b;
for(a=0;a<32;a++)
{
if( biaozhi==0)
{
WriteLCD_Command(StartAddressY);
StartAddressY+=1;
WriteLCD_Command(StartAddressX);
for(b=0;b<16;b++)
{
WriteLCD_Data(*(tab++));
}
}
else
{
WriteLCD_Command(StartAddressY);
StartAddressY+=1;
WriteLCD_Command(StartAddressX);
for(b=0;b<16;b++)
{
WriteLCD_Data(*(tab++));
}
}
}
}
void DISPInitial()
{
unsigned int i;
unsigned char j;
WriteLCD_Command(0x30); //功能设置---8BIT控制界面,基本指令集
WriteLCD_Command(0x0C); //显示打开,光标关,反白显示关
WriteLCD_Command(0x01); //清除屏幕显示,将DDRAM的地址计数器归零
WriteLCD_Command(0x32); //功能设置 绘图显示ON
for(i=0;i<10;i++)
for(j=0;j<4;j++); //延时两秒
WriteLCD_Command(0x36); //功能设置 绘图显示ON
for(i=0;i<10;i++)
for(j=0;j<4;j++); //延时两秒
}
void DisplayLCD()
{
WriteLCD_Command(0x0C); //关闭游标的闪烁
WriteLCD(0x80,0x80,picture,0);
WriteLCD(0x80,0x88,picture,1);
}
void main(void)
{
void WriteLCD(unsigned char StartAddressY,unsigned char StartAddressX,unsigned char *tab,unsigned char biaozhi);
DISPInitial();
while(1)
{
DisplayLCD();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -