📄 disp.c
字号:
#include"reg51.h"
#define lcd_cs1_kz 0x8000
#define lcd_cs2_kz 0x8100
#define lcd_cs1_w 0x8001
#define lcd_cs2_w 0x8101
#define lcd_cs1_r 0x8002
#define lcd_cs1_r 0x8102
unsigned char xdata *lcd_zk_Address = lcd_cs2_w;
void disp();
void disp_rest(); //液晶驱动芯片复位
void disp_clr(); //液晶显示缓冲清零
void disp_data1(unsigned char x,unsigned char y);
void disp_data2(unsigned char x,unsigned char y);
void out_data(unsigned int data_add,unsigned char a);
unsigned char in_data(unsigned int data_add);
/**************************************************************
//显示程序,显示由显示缓冲带来的字符,每次显示一屏
**************************************************************/
void disp()
{
lcd_zk_Address = 0x0023;
disp_data1(0,0);
disp_data2(0,0);
}
void disp_rest()
{
unsigned char a;
out_data(lcd_cs1_kz,0xe2); //LCD1复位
out_data(lcd_cs2_kz,0xe2); //LCD2复位
out_data(lcd_cs1_kz,0xc0); //LCD1设置显示初始行
out_data(lcd_cs2_kz,0xc0); //LCD2设置显示初始行
out_data(lcd_cs1_kz,0xa1); //设置正向序列
out_data(lcd_cs2_kz,0xa1);
out_data(lcd_cs1_kz,0xa4); //进入工作状态
out_data(lcd_cs2_kz,0xa4);
out_data(lcd_cs1_kz,0xa9); //设置占空比为32
out_data(lcd_cs2_kz,0xa9);
out_data(lcd_cs1_kz,0xae); //关闭显示
out_data(lcd_cs2_kz,0xae);
out_data(lcd_cs1_kz,0xaf); //开启显示
out_data(lcd_cs2_kz,0xaf);
a = in_data(lcd_cs1_r); //读状态
disp_clr(); //清除显示缓冲区(清屏)
}
void disp_clr()
{
unsigned char a,b;
for(b=0;b<4;b++)
{
out_data(lcd_cs1_kz,b+0xb8); //页面设置为0页
out_data(lcd_cs2_kz,b+0xb8);
for(a=0;a<61;a++)
{ out_data(lcd_cs1_w,0x00); //显示缓冲清零
out_data(lcd_cs2_w,0x00);
}
}
}
void disp_data1(unsigned char x,unsigned char y)
{
unsigned char a;
out_data(
lcd_cs1_kz,0xb8+y);
out_data(lcd_cs1_kz,x);
for(a=0;a<61;a++)
{ out_data(lcd_cs1_w,*lcd_zk_Address);
lcd_zk_Address = lcd_zk_Address+1;
}
}
void disp_data2(unsigned char x,unsigned char y)
{
unsigned char a;
out_data(lcd_cs2_kz,0xb8+y);
out_data(lcd_cs2_kz,x);
for(a=0;a<61;a++)
{ out_data(lcd_cs2_w,*lcd_zk_Address);
lcd_zk_Address = lcd_zk_Address+1;
}
}
void out_data(unsigned int data_add,unsigned char a)
{
unsigned char xdata *address;
address = data_add;
*address = a;
}
unsigned char in_data(unsigned int data_add)
{
unsigned char xdata *address;
unsigned char a;
address = data_add;
a = *address;
return a;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -