📄 lcd.h
字号:
#ifndef __lcd_h
#define __lcd_h
#define req asm("sbi 0x03,6")
#define cl_req asm("cbi 0x03,6")
#define dat asm("sbi 0x18,0")
#define cl_dat asm("cbi 0x18,0")
#define cl_reset asm("cbi 0x15,3")
#define set_reset asm("sbi 0x15,3")
#define LCD 0x9000
void delay (unsigned int t)
{
unsigned char i;
for (i=1;i<t;i++);
}
void lcd_w(unsigned char data)
{
unsigned char *p=(unsigned char *)(LCD);
while((PINE&0x80)!=0x00)
;
dat;
*p=data;
cl_dat;
;;
req;
;;
while((PINE&0x80)==0x00)
;
cl_req;
}
void lcd_init (void)
{
MCUCR=MCUCR|0x80;
DDRB|=0x01;
PORTB&=0xfe;
DDRE=0x40;
PORTE=0xff;
cl_reset;
delay(10);
set_reset;
delay(10);
cl_req;
delay(10);
}
void lcd_clear (void)
{
lcd_w(0xf4);
}
void lcd_putsc (unsigned char x,unsigned char y,unsigned char *ch)
{
x+=2;
while (*ch!=0)
{
lcd_w(0xf0);
lcd_w(x);
lcd_w(y);
lcd_w(*ch-0xa0);
ch++;
lcd_w(*ch-0xa0);
ch++;
if (x>=0x09)
{
x=2;
y+=1;
}
else
x++;
}
}
void lcd_putse (unsigned char x,unsigned char y,unsigned char *ch)
{
x+=4;
while (*ch!=0)
{
lcd_w(0xf1);
lcd_w(x);
lcd_w(y);
lcd_w(*ch);
ch++;
if (x>=19)
{
x=4;
y+=8;
}
else
x++;
}
}
void lcd_putss (unsigned char x,unsigned char y,unsigned char ch)
{
x+=4;
lcd_w(0xf1);
lcd_w(x);
lcd_w(y);
lcd_w(ch);
}
void lcd_putssb (unsigned char x,unsigned char y,unsigned char ch)
{
x+=4;
lcd_w(0xf9);
lcd_w(x);
lcd_w(y);
lcd_w(ch);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -