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

📄 display.h

📁 uCOSII在motorala单片机上的移植
💻 H
字号:
/* Display.h */

#ifndef	_DISPLAY_H
#define	_DISPLAY_H

#ifndef	_OS_CPU_H
#include "OS_CPU.h"
#endif

#ifndef	_MC68376_H
#include "mc68376.h"
#endif

#ifdef OS_GLOBALS
	#define OS_EXT
#else	
	#define OS_EXT extern
#endif

// 液晶内部8kRAM的组织和分配;
#define TBASE			0x0000				// 文本区基地址;
#define TCOLUMNS		20					// 液晶显示一行所需的字节数;
#define TROWS		16					// 在文本模式下,液晶所能显示的行数;
#define TSIZE			(TCOLUMNS * TROWS)	// 在文本模式下,液晶显示所有行数时所需内部RAM空间的字节数;

#define GBASE			0x0200			// 图形区基地址;
#define GCOLUMNS		20				// 液晶显示一行所需的字节数;
#define GROWS		128				// 在图形模式下,液晶所能显示的行数;
#define GSIZE			(GCOLS * GROWS)	// 在图形模式下,液晶显示所有行数时所需内部RAM空间的字节数;

#define CGBASE		0x1800			// CG RAM区基地址;
#define CGSIZE		0x0800			// CG RAM区所占字节数;
// 显示样式控制宏;
#define DISPNORMAL	0x00			// 用于字符的显示;
#define DISPREVERSE	0x01
// 液晶控制信号;
#define	NOP()	\
	{\
	 	asm("	NOP");\
	 	asm("	NOP");\
	 }
	 
#define	LCD_CHIPSEL_ENABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x0C00) | 0x0800;\
		while((*TPU_HSRR0 & 0x0C00) != 0x0000);\
	}
#define	LCD_CHIPSEL_DISABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x0C00) | 0x0400;\
		while((*TPU_HSRR0 & 0x0C00) != 0x0000);\
	}
	
#define	LCD_RESET_ENABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x00C0) | 0x0080;\
		while((*TPU_HSRR0 & 0x00C0) != 0x0000);\
	}
#define	LCD_RESET_DISABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x00C0) | 0x0040;\
		while((*TPU_HSRR0 & 0x00C0) != 0x0000);\
	}
		
#define	LCD_DATA_ENABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0xC000) | 0x8000;\
		while((*TPU_HSRR0 & 0xC000) != 0x0000);\
	}
#define	LCD_DATA_DISABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0xC000) | 0x4000;\
		while((*TPU_HSRR0 & 0xC000) != 0x0000);\
	}
	
#define	LCD_READ_ENABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x3000) | 0x2000;\
		while((*TPU_HSRR0 & 0x3000) != 0x0000);\
	}
#define	LCD_READ_DISABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x3000) | 0x1000;\
		while((*TPU_HSRR0 & 0x3000) != 0x0000);\
	}
	
#define	LCD_WRITE_ENABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x0300) | 0x0200;\
		while((*TPU_HSRR0 & 0x0300) != 0x0000);\
	}
#define	LCD_WRITE_DISABLE()	\
	{\
		*TPU_HSRR0 = (*TPU_HSRR0 & ~0x0300) | 0x0100;\
		while((*TPU_HSRR0 & 0x0300) != 0x0000);\
	}

OS_EXT INT8U DisplayBuffer[128][20];	// added on 2004/4/26;

// 液晶模块的函数原型声明;	
void initLCDResource(void);	// 系统每次上电复位时需要调用该函数进行液晶模块的初始化;
INT8U readStatusRegister(void);			// 液晶驱动的核心函数(begin);
INT8U readData(void);
void writeCommand(INT8U cmd);
void writeData(INT8U data);
void setOffsetRegister(INT8U addr);
void setAddressPointer(INT16U addr);
INT8U getData(INT16U addr);
void displayOff(void);
void displayOn(void);					// 液晶驱动的核心函数(end);
INT8U getMaskCode(INT8U start, INT8U end);	// 用于函数print;
INT16U getCharIndex(INT16U charcode);	// 用于函数printString,得到被显示字符字模的索引;
void drawHorizLine(INT8U x, INT8U y, INT8U width, INT8U data);	//画横线函数;
void print(INT8U x, INT8U y, INT8U height, INT8U data);	//drawGraph函数和printString函数的核心函数;
void drawGraph(INT8U x, INT8U y, INT8U width, INT8U height, INT8U *pdata);
void printString(INT8U x, INT8U y, INT8U charwidth, INT8U charheight, 
		INT8U displaymode, INT8U *pstring, BOOLEAN fillbuffer);
void flushBuffer(void);													// added on 2004/4/26;
void PRINT(INT8U x, INT8U y, INT8U height, INT8U data);				// added on 2004/4/26;
#endif

⌨️ 快捷键说明

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