📄 st7920driver.h
字号:
//**********************************************************************
// 液晶控制芯片ST7920驱动头文件
//作者:RYUDO
//时间:2007.3.10
//说明:
// 1.配合源文件使用;
// 2.不明之处请查阅资料.
//硬件举例说明:
//
// RS(CS) ----------------------------- P3^2
// R/W(STD) ----------------------------- P3^1
// E(SCLK) ----------------------------- P3^0
// PSB ----------------------------- P0^1
// RST ----------------------------- P0^0
// DB0 ----------------------------- P1^0
// DB1 ----------------------------- P1^1
// DB2 ----------------------------- P1^2
// DB3 ----------------------------- P1^3
// DB4 ----------------------------- P1^4
// DB5 ----------------------------- P1^5
// DB6 ----------------------------- P1^6
// DB7(BUSY) ----------------------------- P1^7
//
// 具体配置请根据硬件进行更改
//***********************************************************************
#include<reg51.h>
#ifndef _ST7920DRIVER_H
#define _ST7920DRIVER_H
#define uint unsigned int
#define uchar unsigned char
//串行位定义
sbit CS = P0^0; //串
sbit STD = P0^1; //串
sbit SCLK= P0^2; //串
//并行位定义
sbit RS = P0^0; //并
sbit RW = P0^1; //并
sbit E = P0^2; //并
sbit BUSY=P1^7; //并
//控制位定义
sbit PSB = P0^3; //串并选择信号
sbit RST = P0^4; //复位信号
//每行的首地址,基于OCMJ4X8C 12864型液晶
#define LINE_ONE_ADDRESS 0x80
#define LINE_TWO_ADDRESS 0x90
#define LINE_THREE_ADDRESS 0x88
#define LINE_FOUR_ADDRESS 0x98
//基本指令集预定义
#define DATA 1 //数据位
#define COMMAND 0 //命令位
#define CLEAR_SCREEN 0x01 //清屏
#define ADDRESS_RESET 0x02 //地址归零
#define BASIC_FUNCTION 0x30 //基本指令集
#define EXTEND_FUNCTION 0x34 //扩充指令集
//扩展指令集预定义
#define AWAIT_MODE 0x01 //待命模式
#define ROLLADDRESS_ON 0x03 //允许输入垂直卷动地址
#define IRAMADDRESS_ON 0x02 //允许输入IRAM地址
#define SLEEP_MODE 0x08 //进入睡眠模式
#define NO_SLEEP_MODE 0x0c //脱离睡眠模式
#define GRAPH_ON 0x36 //打开绘图模式
#define GRAPH_OFF 0x34 //关闭绘图模式
//函数声明
extern void Serial_Write_LCD( bit b_Data_Command , unsigned char uc_Content);
extern void Serial_Clear_Ram(void);
extern void Serial_DDRAM_Address_Reset(void);
extern void Serial_EnterPoint_Set(uchar ucEnPoSet);
extern void Serial_DisplayState_Set(uchar ucDisStaSet);
extern void Serial_Cursor_Display_Transpose_Control_Set(uchar ucCurDisTraConSet);
extern void Serial_Function_Set(uchar ucFunSet);
extern void Serial_CGRAM_Address_Set(uchar ucCGramAdd);
extern void Serial_DDRAM_Address_Set(uchar ucDDramAdd);
extern void Serial_Standby_Mode(void);
extern void Serial_VerticalRoll_IRAM_Address_Select_Set(bit bSelect);
extern void Serial_AgainstWhite_Set(uchar ucAgWhSet);
extern void Serial_Sleep_Mode(bit bSelect);
extern void Serial_Graph_Mode_Set(bit bSelect);
extern void Serial_VerticalRoll_IRAM_AddressValue_Set(uchar ucAddVal);
extern void Serial_GDRAM_Address_Set(uchar ucGDramAdd);
extern void Serial_Init_LCD(void);
extern void Serial_DisplayOneChineseCharacter_WithAddress(uchar ucAdd,uchar code *p);
extern void Serial_DisplayOneASCIICharacter_WithAddress(uchar ucAdd,uchar ucchar);
extern void Serial_DisplayStrings_WithAddress(uchar ucAdd,uchar code *p);
extern void Serial_UpRollOneLine(uchar ucN);
extern void Serial_ImgDisplay(unsigned char code *img);
extern void Serial_ImgDisplayCharacter(uchar x,uchar y,uchar code *img);
extern void Serial_CreateSelfDefiniteCharacterInCGRAM(uchar ucCGRAMAdd,uchar code *p);
extern void Serial_UseSelfDefiniteCharacterInCGRAM(uchar ucAdd,uchar ucCode);
extern void Serial_IRAMDisplay(uchar ucAdd,uchar code * p);
extern void Parallel_Write_LCD( bit b_Data_Command , unsigned char uc_Content );
extern uchar uc_Parallel_Read_LCD_Data(void);
extern uchar uc_Parallel_Read_LCD_AC(void);
extern void Parallel_Check_Busy(void);
extern void Parallel_Init_LCD(void);
extern void Parallel_Clear_Ram(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -