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

📄 hx8310tft.h

📁 手机常用的TFT液晶驱动器HX8310驱动程序,该程序为完整的演示程序,其中核心部分作为模块已经在产品中大量应用.
💻 H
字号:
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

//	口	   线		定	 义					//
//----液晶显示器----------------------------------------------------------------------
#define lcm_WR	 IO.PDR7.BIT.B5		//LCM 写使能口线
#define lcm_RD	 IO.PDR7.BIT.B4		//LCM READ使能口线
#define lcm_CE	 IO.PDR6.BIT.B5		//LCM 片选口线
#define lcm_CD	 IO.PDR2.BIT.B2		//LCM 指令/数据选择输入口线--板上临时改为使用TXD1做CD口线
#define lcm_RST	 IO.PDR2.BIT.B0		//LCM 复位口线
#define lcm_IOH	 IO.PDR1.BYTE		//LCM 数据读写口线--高2位
#define lcm_IOM	 IO.PDR3.BYTE		//LCM 数据读写口线--中间8位
#define lcm_IOL	 IO.PDR5.BYTE		//LCM 数据读写口线--低8位
#define lcm_datah_dir	IO.PCR1		//LCM 数据口方向寄存器--高2位
#define lcm_datam_dir	IO.PCR3		//LCM 数据口方向寄存器--中间8位
#define lcm_datal_dir	IO.PCR5		//LCM 数据口方向寄存器--低8位
#define add_ALE			IO.PDR1.BIT.B2		//ALE

//----RAM口线----------------------------------------------------------------------
#define ram_IO	 IO.PDR5.BYTE		//RAM 数据读写口线
#define ram_WR	 IO.PDR7.BIT.B5		//RAM 写使能口线
#define ram_RD	 IO.PDR7.BIT.B4		//RAM READ使能口线
#define ram_CE	 IO.PDR6.BIT.B4		//RAM 片选口线
#define ram_ADDH	 IO.PDR3.BYTE		//RAM 地址口线--高


#define buzzer IO.PDR1.BIT.B5		//蜂鸣器


union
{
uchar BYTE;
struct {
	unsigned S7:1;
	unsigned S6:1;
	unsigned S5:1;
	unsigned S4:1;
	unsigned S3:1;
	unsigned S2:1;
	unsigned S1:1;
	unsigned S0:1;
} bits ;
}GFLG1U;

#define gflg1 GFLG1U.BYTE
#define clock_1s_flg			GFLG1U.bits.S0	//1秒标志,到达1秒,则标志=1
#define clock_20ms_flg			GFLG1U.bits.S1	//20毫秒标志,到达1秒,则标志=1
#define clock_500ms_flg			GFLG1U.bits.S2	//500毫秒标志,到达1秒,则标志=1


union
{
	ulong disp_data;
	struct
	{
		uint H;
		uint L;
	}HL;
	struct
	{
		uchar BH;
		uchar BM;	//	18位数据发送用高字节
		uchar BL;	//	18位数据发送用中字节
		uchar BS;	//	18位数据发送用低字节
	}C;
}RGB_OUTU;
	#define lcm_outu_h		RGB_OUTU.HL.H
	#define lcm_outu_l		RGB_OUTU.HL.L
	#define dataioh			RGB_OUTU.C.BM	//数据口D17 D16 输出
	#define dataiom			RGB_OUTU.C.BL	//数据口D15~D8  输出
	#define dataiol			RGB_OUTU.C.BS	//数据口 D7~D0  输出

	uchar red_data_buf;		//红色数据端口数据缓冲区, 读出的红色数据放这里,准备送数据口
	uchar gre_data_buf;		//绿色数据端口数据缓冲区, 读出的绿色数据放这里,准备送数据口
	uchar blu_data_buf;		//蓝色数据端口数据缓冲区, 读出的蓝色数据放这里,准备送数据口
	uchar ins_16b_h;		//用于向Index寄存器等写入设置指令和数据--16位
	uchar ins_16b_l;		//


union
{
	uchar B;
	struct
	{
		unsigned S:6;
		unsigned H:2;
	}S;
}RGB_DATAU;
	#define rgb_data_chgbi		RED_DATAU.S.S	//从图片数据中读出的数据,写入本联合, 通过本联合把低六位写入RGB_OUTU对应6位中, 方便从IO口输出
	#define rgb_data_chgby		RED_DATAU.B

uchar buzzer_ct;
uchar buz_time_l;
uchar clock_1s_ct;			//1秒时间累计计数
uchar clock_100ms_ct;			//100毫秒时间累计计数
uchar clock_2s_ct;			//5秒时间累计计数
uchar lcdp_com_nu;		//当前屏显示的行数
uchar lcmram_buf[36];		//连续方式 从LCM RAM中读出的数据或要写入LCM RAM中的数据的暂存区
union
{
	uint WORD;
	struct
	{
		uchar BH;
		uchar BL;
	}BYTE;
}LCDRAM_ADDU;
#define lcmram_addh LCDRAM_ADDU.BYTE.BH	//LCD RAM读写地址--高字节
#define lcmram_addl LCDRAM_ADDU.BYTE.BL	//LCD RAM读写地址--低字节
#define lcmram_add  LCDRAM_ADDU.WORD	//LCD RAM读写地址

union
{
	uint WORD;
	struct
	{
		uchar BH;
		uchar BL;
	}BYTE;
}MAIN_LSU;
#define main_lsh MAIN_LSU.BYTE.BH	//主流程用临时--高字节
#define main_lsl MAIN_LSU.BYTE.BL	//主流程用临时--低字节
#define main_ls  MAIN_LSU.WORD	//主流程用临时

volatile uchar disp_pro_flg;	//显示过程标志
uchar disp_dlt_ct;	//显示延迟时间

//--^----^----^----^--特----^--殊--^----定----^--义----^----^----^----^----^--//

#define RESET_WATCHDOG()  WDT.TCSRWD.BYTE=0x40; WDT.TCWD=0x00;

#define CLOSE_WATCHDOG()  WDT.TCSRWD.BYTE=0x10;	WDT.TCSRWD.BYTE=0x10;


#define PORT1	IO.PDR1.BYTE
#define PORT2	IO.PDR2.BYTE
#define PORT3	IO.PDR3.BYTE
#define PORT5	IO.PDR5.BYTE
#define PORT6	IO.PDR6.BYTE
#define PORT7	IO.PDR7.BYTE
#define PORT8	IO.PDR8.BYTE
#define PORTB	IO.PDRB.BYTE

#define portmr1	IO.PMR1.BYTE
#define portmr5	IO.PMR5.BYTE

#define portcr1	IO.PCR1
#define portcr2	IO.PCR2
#define portcr3	IO.PCR3
#define portcr5	IO.PCR5
#define portcr6	IO.PCR6
#define portcr7	IO.PCR7
#define portcr8	IO.PCR8

#define portur1	IO.PUCR1.BYTE
#define portur5	IO.PUCR5.BYTE

#define Ssr_2 SCI3_2.SSR.BYTE
#define Ssr   SCI3.SSR.BYTE

#define TRGPSDB	SCI3.TDR		//对gps通讯发送保持寄存器
#define REGPSDB	SCI3.RDR		//对gps通讯接收数据

#define TRGSMDB  SCI3_2.TDR		//对PC通讯发送保持寄存器
#define REGSMDB	 SCI3_2.RDR		//对PC通讯接收数据

#define buzzeron()	nop()

//#define set_lcd_cd()	add_ALE=1;	lcm_IOL=0x04;	add_ALE=0;	//--板上临时改为使用TXD1做CD口线
//#define clr_lcd_cd()	add_ALE=1;	lcm_IOL=0x00;	add_ALE=0;	//--板上临时改为使用TXD1做CD口线


//	函	数	列	表
//--------------------------------------------------------------------
void tmrv_isrp(void);
void delayms(uchar dlt);
void delayus(uchar dlt);
void ini_ram(void);
void ini_pp(void);
void display(void);
void ini_lcm(void);

void wr_1word_data(void);
void wr_1word_index(void);
void rd_1word_data(void);
void rd_1word_status(void);
void wr_1word_reg_data(void);

void wr_ram_rand(uchar data,uint add);
uchar rd_ram_rand(uint add);
void delays(uchar dlt);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -