📄 p12_4.c
字号:
#include "REG51.H"
sbit E = P3^0;
sbit RW = P3^1;
sbit RS = P3^2;
sbit CS1 = P3^6;
sbit CS2 = P3^7;
#define LCD P2
void Wait()
{
unsigned char state;
while(1)
{
LCD = 0xff;
RW = 1;
RS = 0;
E = 1;
state = LCD;
E = 0;
LCD = 0xff;
RW = 1;
RS = 0;
E = 1;
state = LCD;
E = 0;
state = state >> 7;
if( state == 0 )
break;
}
}
void Write_Cmd( unsigned char Cmd)
{
Wait();
LCD = Cmd;
RS = 0;
RW = 0;
E = 1;
E = 0;
}
void Write_Data( unsigned char D)
{
Wait();
LCD = D;
RS = 1;
RW = 0;
E = 1;
E = 0;
}
void Clear()
{
char col, page, temp;
for( page = 0; page < 8; page++ )
{
temp = page;
temp = temp | 0xb8;
Write_Cmd(temp);
Write_Cmd(0x40);
for( col = 0; col < 64; col++ )
{
Write_Data(0);
}
}
}
unsigned char Pic1[] = {
0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00 };
unsigned char Pic2[] = {
0x00, 0x00, 0x3C, 0x24, 0x24, 0x3C, 0x00, 0x00 };
unsigned char Pic3[] = {
0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x00 };
unsigned char Pic4[] = {
0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF };
void Display_Pic(unsigned char* Pic)
{
int i, j;
Write_Cmd(0xbc); //设置页号
Write_Cmd(0x57); //设置列号
for( i = 0; i < 8; i ++ )
{
Write_Data(Pic[i]);
}
//延迟一段时间
for( i = 0; i < 0xff; i ++ )
{
for( j = 0; j < 0x20; j ++ )
{
}
}
}
void LCDDisplay()
{
while(1)
{
Display_Pic(Pic1);
Display_Pic(Pic2);
Display_Pic(Pic3);
Display_Pic(Pic4);
}
}
main()
{
CS1 = 0;
CS2 = 0;
Write_Cmd(0x3f);
Clear();
LCDDisplay();
while(1){}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -