⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 st7920driver.h

📁 st7920,串口,lcd st7920,串口,lcd
💻 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 + -