📄 lcd.h
字号:
//#include <iom48v.h>
//#include <macros.h>
//#include <lcd.h>
#define uchar unsigned char
#define unint unsigned int
#define SYSEN 0x01
#define LCDON 0x03
#define BIAS3 0x29
#define cs_set PORTB |= BIT(1)//asm ("sbi 0x05,4") //portb1
#define cs_clr PORTB &= ~BIT(1)//asm ("cbi 0x05,4")
#define clk_set PORTD |= BIT(0)//asm ("sbi 0x05,3") //pd0
#define clk_clr PORTD &= ~BIT(0)//asm ("cbi 0x05,3")
#define dat_set PORTD |= BIT(1) //pd1
#define dat_clr PORTD &= ~BIT(1)
//7位液晶正向显示
//uchar lcdshow[11] = {0x77,0x30,0x6b,0x79,0x3c,0x5d,0x5f,0x70,0x7f,0x7d,0x00};
//7位液晶反响显示
//uchar lcdshow[11] = {0x77,0x06,0x6b,0x4f,0x1e,0x5d,0x7d,0x07,0x7f,0x5f,0x00};
//11位液晶正向显示
uchar lcdshow[11] = {0xfb,0xb0,0xed,0xfc,0xb6,0xde,0xdf,0xf2,0x7f,0xfe,0x00};
void delay()
{
NOP();
NOP();
NOP();
NOP();
NOP();
}
void send(uchar sdata,uchar n)
{
uchar temp;
for(;n>0;n--)
{
temp = sdata & 0x80;
if(temp)
dat_set;
else
dat_clr;
clk_clr;
delay();
clk_set;
delay();
sdata = sdata << 1;
}
}
void init_lcd()
{
cs_clr; //片选信号为低,选通液晶
send(0x80,3);
send(SYSEN,9);
send(LCDON,9);
send(BIAS3,9);
cs_set; //片选信号为高
clk_set; //片选时钟为高
}
void lcd_display(uchar lcdshow[],uchar *p,uchar m)
{
uchar showdata;
cs_clr;
send(0xA0,9);
for(;m>0;m--)
{
showdata = lcdshow[*p];
send(showdata,8);
p++;
}
cs_set; //片选信号为高
clk_set; //片选时钟为高
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -