?? 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 + -