📄 clcd4.h
字号:
// 函版陛瘤.. clcd 4厚飘 力绢 hehevnt@naver.com 08斥 12岿12老 荐沥
/*************************************************************************************
PORTA / 4厚飘 力绢
PA0 : RS
PA1 : R/W
PA2 : EN
PA4 : D4
PA5 : D5
PA6 : D6
PA7 : D7
促弗 器飘俊辑 荤侩窍绊 酵阑 版快 皋葛厘俊辑 #define 甫 秦寸 器飘肺 函版秦临巴
#include <compat/deprecated.h> 绰 sbi() cbi() 窃荐啊 甸绢 乐绰 庆歹
AVR Studio 4.14 滚怜俊辑 沥惑 累悼 犬牢
弥利拳 可记 -O0 栏肺 嘎苗临 巴 促弗 可记俊辑 悼累 救窃
LCD_init() ==> 檬扁拳 窃荐
void LCD_char(unsigned char data) 目辑困摹俊 茄巩磊 静绰 窃荐
void LCD_str(unsigned char cmd, unsigned char *string)
cmd绰 巩磊凯 贸澜 困摹 1凯 霉锅掳 0x80 滴锅掳 0x81
2凯 霉锅掳 0xC0 滴锅掳 0xC1
COMMAND(0x01) ==> Clear display
COMMAND(0x02) ==> Return home
... 扁鸥 促弗 疙飞篮 单捞磐 矫飘 曼炼
**************************************************************************************/
#ifndef DELAY_H__
#define DELAY_H__
#endif
#include <compat/deprecated.h>
#define CLCD_PORT PORTC // 秦寸 器飘俊 嘎霸 函版且 巴
#define CLCD_DDR DDRC // B器飘 荤侩矫 -> PORTB,DDRB,PINB
#define CLCD_PIN PINC
void COMMAND(unsigned char cmd)
{
delay_us(200);
delay_us(200);
delay_us(200);
CLCD_PORT = (cmd & 0xF0); // RW=0, RS=0
sbi(CLCD_PORT,2); // EN = 1
asm ("nop");
cbi(CLCD_PORT,2); // EN = 0
CLCD_PORT = (cmd & 0x0f)<<4 ; // RW=0, RS=0
sbi(CLCD_PORT,2); // EN = 1
asm ("nop");
cbi(CLCD_PORT,2); // EN = 0
delay_us(200);
delay_us(200);
delay_us(200);
}
// LCD肺 1巩磊 傈价
void LCD_char(unsigned char data)
{
CLCD_PORT = (data & 0xF0); // RW=0
sbi(CLCD_PORT,0); // RS = 1
sbi(CLCD_PORT,2); // EN = 1
asm ("nop");
cbi(CLCD_PORT,2); // EN = 0
CLCD_PORT = (data & 0x0f)<<4 ; // RW=0
sbi(CLCD_PORT,0); // RS = 1
sbi(CLCD_PORT,2); // EN = 1
asm ("nop");
cbi(CLCD_PORT,2); // EN = 0
delay_us(50);
}
void LCD_str(unsigned char cmd, unsigned char *string)
{
COMMAND(cmd);
while(*string !='\0')
{
LCD_char(*string);
string++;
}
}
// LCD檬扁 汲沥
void LCD_init(void)
{
delay_ms(30); // 老沥 矫埃 瘤楷
CLCD_DDR = 0xff; // PC0-PC7 免仿
cbi(CLCD_PORT,2); // EN = 0 // 器飘 檬扁 汲沥, E=0
CLCD_PORT = 0x30; // RW=0, RS=0
sbi(CLCD_PORT,2); // EN = 1
asm ("nop");
cbi(CLCD_PORT,2); // EN = 0
delay_ms(5);
CLCD_PORT = 0x30; // RW=0, RS=0
sbi(CLCD_PORT,2); // EN = 1
asm ("nop");
cbi(CLCD_PORT,2); // EN = 0
delay_ms(1);
CLCD_PORT = 0x30; // RW=0, RS=0
sbi(CLCD_PORT,2); // EN = 1
asm ("nop");
cbi(CLCD_PORT,2); // EN = 0
delay_ms(1);
COMMAND(0x28); // 4厚飘 葛靛
COMMAND(0x08); // 叼胶敲饭捞 坷橇
COMMAND(0x01); // 叼胶敲饭捞 努府绢
COMMAND(0x06); // 浚飘府 葛靛 悸
COMMAND(0x0f); // 叼胶敲饭捞 柯
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -