📄 lcd.c
字号:
#include"lcd.h"
unsigned char bdata CS = 0;
unsigned char LCDX=0;
unsigned char LCDY=0;
void BUSY_WAIT(void)
{
while(Read_Condition & 0x80 != 0);
}
void LCD_ON(void)
{
BUSY_WAIT();
Write_comond = ON;
}
void LCD_OFF(void)
{
BUSY_WAIT();
Write_comond = OFF;
}
void LCD_START_LINE(unsigned char line)
{
BUSY_WAIT();
Write_comond = line | START_LINE;
}
void LCD_PAGE(unsigned char page)
{
BUSY_WAIT();
Write_comond = (page & 0x07) | PAGE_ADD;
}
void LCD_X(unsigned char x) //设置列地址(0~63)
{
BUSY_WAIT();
Write_comond = (x & 0x3F) | COL_ADD;
}
void LCD_WRITE_DATA(unsigned char dat)
{
BUSY_WAIT();
Write_data = dat;
}
void CLEAR(void)
{
unsigned char i,j;
for ( j=0; j<8; j++ )
{
LCD_PAGE(j);
LCD_X(0);
for ( i=0; i<64; i++ )
{
LCD_WRITE_DATA(0x00);
}
}
}
void LCD_CLEAR(void)
{
CSA_ON();
CLEAR();
CSA_OFF();
CSB_ON();
CLEAR();
CSB_OFF();
}
void LcdInit(void)
{
CSA_ON(); //设置左右半屏起始行
LCD_START_LINE(0);
CSA_OFF();
CSB_ON();
LCD_START_LINE(0);
CSB_OFF();
LCD_CLEAR();
CSA_ON();
LCD_ON();
CSA_OFF();
CSB_ON();
LCD_ON();
CSB_OFF();
}
void WRITE_HZ_16X16(unsigned char *hz,unsigned char x,unsigned char y)
{
unsigned char i,j;
if(x<64)
{
CSA_ON();
for(i=0;i<2;i++)
{
LCD_PAGE(y+i);
LCD_X(x);
for(j=0;j<16;j++)
{
LCD_WRITE_DATA(*hz++);
}
}
CSA_OFF();
}
else
{
CSB_ON();
for(i=0;i<2;i++)
{
LCD_PAGE(y+i);
LCD_X(x-64);
for(j=0;j<16;j++)
{
LCD_WRITE_DATA(*hz++);
}
}
CSB_OFF();
}
}
void WRITE_ASCII(unsigned Page, unsigned char x, unsigned char *ASCII)
{
unsigned char i,j;
if(x<64)
{
CSA_ON();
for(i=0;i<2;i++)
{
LCD_PAGE(Page+i);
LCD_X(x);
for(j=0;j<8;j++)
{
LCD_WRITE_DATA(*ASCII++);
}
}
CSA_OFF();
}
else
{
CSB_ON();
for(i=0;i<2;i++)
{
LCD_PAGE(Page+i);
LCD_X(x-64);
for(j=0;j<8;j++)
{
LCD_WRITE_DATA(*ASCII++);
}
}
CSB_OFF();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -