📄 lcd_12864.h
字号:
#ifndef _LCD_12864_H__
#define _LCD_12864_H__
#include <avr\io.h>
//LCD命令字(ST7920)
//RE=0:基本指令
#define LCD_CLS 0x01 //清除显示
#define LCD_HOME 0x02 //地址归位
#define LCD_POINT 0x04 //进入点设定
#define b_I_D 0x02 //移动方向
#define b_S 0x01 //显示移位
#define LCD_VISIBLE 0x08 //显示状态开/关
#define b_D 0x04 //1:整体显示ON;0:整体显示OFF
#define b_C 0x02 //1:游标ON;0:游标OFF
#define b_B 0x01 //1:游标位置反白允许;0:游标位置不反白
#define LCD_SHIFT 0x10 //游标或显示移位控制
#define b_S_C 0x80 //1:画面平移;0:光标平移
#define b_R_L 0x40 //1:右移;0:左移
#define LCD_FUNCTION 0x20 //功能设定
#define b_DL 0x10 //1:8位数据;0:4位数据
#define b_RE 0x04 //1:扩充指令操作;0:基本指令操作
#define LCD_CGRAM 0x40 //设定CGRAM地址
#define LCD_DDRAM 0x80 //设定DDRAM地址(显示地址)
//第一行:80H-87H
//第二行:90H-97H
//RE=1:扩充指令
#define LCD_STBY 0x01 //侍命模式
#define LCD_ROLL 0x02 //卷动地址开关开启
#define b_SR 0x01 //1:允许输入垂直卷动地址;0:允许输入IRAM和CGRAM地址
#define LCD_INVERSE 0x04 //反白选择
#define b_R1 0x02 //选择2行中的任一行作反白显示,并可决定反白与否。
#define b_R2 0x01 //初始值R1R0=00,第一次设定为反白显示,再次设定变回正常
#define LCD_SLEEP 0x08 //睡眠模式
#define b_SL 0x04 //0:进入睡眠模式;1:脱离睡眠模式
#define LCD_EFUNCTION 0x20 //扩充功能设定
#define b_CL 0x10 //1:8位数据;0:4位数据
#define b_RE 0x04 //1:扩充指令操作;0:基本指令操作
#define b_G 0x02 //1:绘图开关ON;0:绘图开关OFF
#define LCD_DRAW 0x80 //设定绘图RAM
//先设定垂直(列)地址AC5AC4…AC0
//再设定水平(行)地址AC3AC2AC1AC0
//将以上16位地址连续写入即可
/*********LCD读写指令***********/
#define LCD_WR_CMD 0xF8 //写指令
#define LCD_WR_DAT 0xFA //写数据
#define LCD_RD_STA 0xFC //读状态
#define LCD_RD_DAT 0xFE //读数据
/*********枚举类型**********/
//LCD忙
enum LDCifBusy {
LCD_OK = 0,
LCD_BUSY = 1
};
//图片显示的开关
enum DisplayOnOff {
Off = 0,
On
};
//自定义字型选择
enum Char_sel {
Char_1 = 0x00,
Char_2 = 0x02,
Char_3 = 0x04,
Char_4 = 0x06
};
/********************公共函数********************/
//初始化LCD
void Init_LCD12864(void);
//LCD清屏
void LCD_clear(void);
//设置字符显示坐标
void LCD_set_XY(unsigned char posx, unsigned char posy);
//在指定坐标输出字符串
void LCD_puts(unsigned char posx, unsigned char posy, char *s);
//输出一个半角字符
//void LCD_put_char(unsigned char c);
//输出十六进制数
//void LCD_put_hex(unsigned char num);
//void LCD_puts_P(unsigned char posx, unsigned char posy, const char *s);
/************图片操作函数*************/
//选择显示图片
void LCD_Pic_Sel(unsigned char index);
//图片显示开关
void LCD_Pic_Show(enum DisplayOnOff onoff);
/********自定义字型操作函数***********/
//在指定坐标显示自定义字型
void LCD_Char_Show(unsigned char posx, unsigned char posy, enum Char_sel index);
/*******************内部函数*******************/
//往LCD写一个字节数据
void LCD12864_write_byte(unsigned char cmd, unsigned char Data);
//调入整张图片
void Lcd_GDrw(const char *ptr);
//调入自定义字型数据
void LCD_Char_Gen(const char *ptr, unsigned char num);
//void LCD_write_chinese_string(unsigned char X, unsigned char Y,
// unsigned char ch_with,unsigned char num,
// unsigned char line,unsigned char row);
//void LCD_move_chinese_string(unsigned char X, unsigned char Y, unsigned char T);
//void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,const unsigned char *map,
// unsigned char Pix_x,unsigned char Pix_y);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -