📄 lcm12864.c
字号:
#include <REG52.H>
sbit p_di=P1^0;
sbit p_rw=P1^1;
sbit p_e=P1^2;
sbit p_csa=P1^3;
sbit p_csb=P1^4;
void delay(unsigned char time)
{
unsigned char i;
for(;time>0;time--)
for(i=0;i<5;i++);
}
void lcd_busy(void)
{
p_di=0;p_rw=1;P0=0xff;
while(1)
{
p_e=1;
if(P0<0x80) break;
p_e=0;
}
p_e=0;
p_rw=0;
}
void set_xy(unsigned char x,unsigned char y)
{
if(x>=64)
{p_csa=0;p_csb=1;}
else
{p_csb=0;
p_csa=1;}
lcd_busy();
p_di=0;
P0=0x40|x;
p_e=1;
p_e=0;
lcd_busy();
p_di=0;
P0=0xb8|y;
p_e=1;
p_e=0;
P0=0xff;
}
void writelcd(unsigned char x,unsigned char y,unsigned char dat)
{
set_xy(x,y);
lcd_busy();
p_di=1;
P0=dat;
p_e=1;
p_e=0;
P0=0xff;
}
void lcd_init(void)
{
unsigned char x,y;
p_e=p_di=0;
p_csa=p_csb=0;
p_csa=1;
lcd_busy();
P0=0x3f;
p_e=1;
p_e=0;
p_csa=0;
p_csb=1;
lcd_busy();
P0=0x3f;
p_e=1;
p_e=0;
p_csb=0;
p_csa=1;
lcd_busy();
p_di=0;
P0=0xc0;
p_e=1;
p_e=0;
p_csa=0;
p_csb=1;
lcd_busy();
p_di=0;
P0=0xc0;
p_e=1;
p_e=0;
p_csb=0;
for (y=0;y<8;y++)
{
for (x=0;x<128;x++) writelcd(x,y,0);
}
}
void main(void)
{
delay(10);
lcd_init();
writelcd(0,0,0xff);
for(;;);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -