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

📄 wmlcd.h

📁 AVRMEG32编写的一个项目代码,里面包含一般应用的模块.
💻 H
字号:
#ifndef __WMLCD_H__
#define __WMLCD_H__
#include <avr/io.h>
#include "includes.h"
/*
#define LCD_WRCMD1		0x1B00
#define LCD_WRCMD2		0x1C00
#define LCD_WRDISP1		0x3B00
#define LCD_WRDISP2		0x3C00
#define LCD_RDST1		0x5B00
#define LCD_RDST2		0x5C00
#define LCD_RDDISP1		0x7B00
#define LCD_RDDISP2		0x7C00
*/
/*********** 请使用大写字母来定义端口! (A,B,C,D...) ***********/

#define GLCD_DATA		 	B  		/* 液晶数据口 (Data Port)	*/
#define GLCD_CTRL		 	A  		/* 液晶控制口 (Control Port)*/

/*********** 液晶显示器接口引脚定义 ***************/
#define GLCD_RS             1   /* 寄存器选择	: 1=数据寄存器, 0=指令数据寄存器 */
#define GLCD_RW         	2   /* 读写方式选择	: 0=写, 1=读 	*/
#define GLCD_EN		    	3  	/* LCD使能(EN): 1=使能 		*/
#define GLCD_CS1            4  	/* 片选1   		: 1=选中		*/
#define GLCD_CS2            5  	/* 片选2    	: 1=选中		*/
#define GLCD_RST          	6  	/* 复位			: 0=复位 		*/
//#define GLCD_BLED        	7  	/* 背光 		: 1=开 			*/



#define LCD_DISABLE     0x3E    /*display off*/
#define LCD_ENABLE      0x3F    /*display on*/
#define LCD_START_LINE  0xC0    /*display start line设置显示启始行 */
#define LCD_PAGE        0xB8    /*page set*///设置页地址,即行,8行为一页,共8页
#define LCD_COLUMN      0x40    /*column set*///设置Y地址,即列
#define LCD_PAGE_NUM    0x08    /*8 pages*///共8页
#define LCD_COLUMN_NUM  0x40    /*64 columns列 *///半屏共64列,0--63

#ifndef CONCAT1
#define CONCAT1(a, b) CONCAT2(a, b)
#endif

#ifndef CONCAT2
#define CONCAT2(a, b) a ## b    //连接符
#endif

#define GLCD_DATAPORT       	CONCAT1(PORT,GLCD_DATA)//PB口
#define GLCD_DATAPORT_DDR       CONCAT1(DDR,GLCD_DATA)
#define GLCD_DATAPORT_PIN       CONCAT1(PIN,GLCD_DATA)

#define GLCD_CTRLPORT     	    CONCAT1(PORT,GLCD_CTRL)//PA口
#define GLCD_CTRLPORT_DDR      	CONCAT1(DDR,GLCD_CTRL)
#define GLCD_CTRLPORT_PIN     	CONCAT1(PIN,GLCD_CTRL)

#define GLCD_STAT_BUSY          	7
#define GLCD_STAT_ONOFF         	5
#define GLCD_STAT_RESET         	4


/***********常用操作命令和参数定义***************/

#define set_cs1()		 ( sbi(GLCD_CTRLPORT, GLCD_CS1) )//PB口片选1  : 1=选中
#define clr_cs1()		 ( cbi(GLCD_CTRLPORT, GLCD_CS1) )
#define set_cs2()		 ( sbi(GLCD_CTRLPORT, GLCD_CS2) )//片选2   	: 1=选中
#define clr_cs2()		 ( cbi(GLCD_CTRLPORT, GLCD_CS2) )

#define set_en()		 ( sbi(GLCD_CTRLPORT, GLCD_EN) )//LCD使能(EN): 1=使能
#define clr_en()		 ( cbi(GLCD_CTRLPORT, GLCD_EN) )

#define set_rw()		 ( sbi(GLCD_CTRLPORT, GLCD_RW) )//读
#define clr_rw()		 ( cbi(GLCD_CTRLPORT, GLCD_RW) )//写

#define set_rs()		 ( sbi(GLCD_CTRLPORT, GLCD_RS) )//1=数据寄存器,
#define clr_rs()		 ( cbi(GLCD_CTRLPORT, GLCD_RS) )//0=指令数据寄存器

#define set_rst()		 ( sbi(GLCD_CTRLPORT, GLCD_RST) )
#define clr_rst()		 ( cbi(GLCD_CTRLPORT, GLCD_RST) )//复位

/*
#define LINE1		0
#define LINE2		1
#define LINE3		2
#define LINE4		3
#define LINE5		4
#define LINE6		5
#define LINE7		6
#define LINE8		7
*/
//#define ON			1
//#define OFF			0
/*
#define DISPLAY_ON		        0x3f
#define DISPLAY_OFF		        0x3e
#define DISPLAY_SET_Y       	0x40
#define DISPLAY_SET_X       	0xb8
#define DISPLAY_START_LINE	    0xc0
*/
//小延时
void glcd_delay(unsigned int p);
//等待复位完成
void glcd_wait_for_reset(void);
//busy判断、等待
void glcd_wait_for_busy(void);
//写右半屏命令
void Lcd_WriteCmd1(unsigned char ucCmd);
//写右半屏数据
void Lcd_WriteData1(unsigned char ucData);
//写左半屏命令
void Lcd_WriteCmd2(unsigned char ucCmd);
//写左半屏数据
void Lcd_WriteData2(unsigned char ucData);
//清屏,除第一页
void Lcd_Clear(void);
//清屏
void Lcd_ClearAll(void);
//初始化
void Lcd_Init(void);
//坐标定位
void Lcd_SetPos(unsigned char ucHPos,unsigned char ucVPos); //H水平,V垂直
void draw_h16bmp(unsigned char hcol,unsigned char vpos,unsigned char width,unsigned char *bmp);
void disp_8x16_ascii(unsigned char xcol,unsigned char ypos,unsigned char ascii_code,unsigned char mode);
void disp_16x16_mark(unsigned char xcol,unsigned char ypos,unsigned char *bmp,unsigned char mode);
void Lcd_Printf_ram(unsigned char xcol,unsigned char ypos,unsigned char *ptr,unsigned char mode);
void Lcd_Printf(unsigned char xcol,unsigned char ypos,const prog_char ptr[],unsigned char mode);
//初始化界面
void DisplayFace(void);
void drawL_8x8bmp(unsigned char *bmp);
void drawR_8x8bmp(unsigned char *bmp);
void disp_8x8_ascii(unsigned char xcol,unsigned char ypos,unsigned char ascii_code,unsigned char mode);
//void Lcd_8x8Printf(unsigned char xcol,unsigned char ypos,unsigned char *ptr,unsigned char mode);
void Lcd_8x8Printf(unsigned char xcol,unsigned char ypos,const prog_char *ptr,unsigned char mode);
void display_first_face(void);
//void Lcd_Printf_12(unsigned char xcol,unsigned char ypos,unsigned char *ptr,unsigned char mode);
void Lcd_Printf_12(unsigned char xcol,unsigned char ypos,const prog_char *ptr ,unsigned char mode);
//显示符号
//void fuhao(u08 umtp,u08 hang);
void Display_8x8Int_data(unsigned char xcol,unsigned char ypos,unsigned int uiNum,unsigned char ucDigit,unsigned char ucMode);
void drawL_8x8bmp(unsigned char *bmp);
void drawR_8x8bmp(unsigned char *bmp);
void disp_8x8_ascii(unsigned char xcol,unsigned char ypos,unsigned char ascii_code,unsigned char mode);
void Lcd_8x8Printf_ram(unsigned char xcol,unsigned char ypos,unsigned char *ptr,unsigned char mode);
//void disp_8x8A_ascii(unsigned char xcol,unsigned char ypos,unsigned char ascii_code,unsigned char mode);
//void Lcd_8x8APrintf(unsigned char xcol,unsigned char ypos,unsigned char *ptr,unsigned char mode);
//一级菜单
//void display_second_face(void);
void Display_8x16Int(unsigned char xcol,unsigned char ypos,unsigned int uiNum,unsigned char ucDigit,unsigned char ucMode);
void drawL_Line(unsigned char xStart,unsigned char xLen,unsigned char yPos,unsigned char ucChar);
void drawR_Line(unsigned char xStart,unsigned char xLen,unsigned char yPos,unsigned char ucChar);
void Lcd_DispMarkHz_ChildMenu(unsigned char xcol,unsigned char ypos,unsigned char ucMode);
void Lcd_DispMarkHz_Blank(unsigned char xcol,unsigned char ypos,unsigned char ucMode);
unsigned char Display_8x8Int(unsigned char xcol,unsigned char ypos,unsigned int uiNum,unsigned char ucDigit,unsigned char ucMode,unsigned char ucDispLZero,unsigned char ucLZeroReplCh);

#endif

⌨️ 快捷键说明

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