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

📄 pro8279.h

📁 关于8279的键盘的读取及驱动数码显示的例子
💻 H
字号:
#ifdef PRO8279_C
	#define PRO8279_H
#else
	#define PRO8279_H extern
#endif

#include<absacc.h>

/**************************************************************************/
/*********************************内部定义/声明****************************/
/**************************************************************************/

#ifdef PRO8279_C

/**********内部宏定义**************/

#ifndef true
#define true		1
#define false		0
#endif

#ifndef ERROR
#define ERROR	0xff	/*错误标志*/
#endif

/*8279定义*/

#define COMMAND_8279  	XBYTE[0X8001]	/*8279写命令/读状态地址*/
#define DATA_8279  		XBYTE[0X8000]	/*8279写数据地址*/
#define KEY_N1_3		XBYTE[0X4000]	/*N1-N3键值读入地址*/

#define	CLEAR_8279  	0xce		/*8279清除FIFO RAM命令,中断复位命令*/
#define MODE_8279 		0x08		/*8279方式设置设置为双键互锁*/
#define	CLOCK_8279 		0x36		/*8279时钟编程*/
#define	WRITE_8279 		0x90		/*8279写显示RAM命令*/
#define READ_8279		0x40		/*8279FIFO读出命令*/

#define RESET_8279(); 		{COMMAND_8279 = CLEAR_8279;}		/*8279中断复位命令*/

/*参数定义*/

#define DIVISOR			10000		/*除数,表示最大一次显示的位数*/
#define DISPLAYMAX      5			/*8279一次能显示的数据位数,它一次最多能显示5位,这里取最大值*/
#define DISPLAYHIDE		0xff		/*当要一个无效位不显示时赋此值*/
#define DOTVALUE		0x7f		/*数码显示时小数点在一个显示字节中的位置,这里是最高位.*/

/************内部函数声明************/

unsigned char GetLedCode(unsigned char);		/*获取显示代码*/
unsigned char GetLedCodeIndex(unsigned char);	/*获取显示索引*/
bit IsDefineKey(unsigned char value);			/*判断是否为用户定义的键值*/

#endif

/**************************************************************************/
/*********************************外部定义/声明****************************/
/**************************************************************************/

/**********外部宏定义**************/

#define INPUTCHAR4(x,y,z,j)	((((x << 4) + (y & 0x0f)) * 256) + ((z & 0x0f) << 4) + (j & 0x0f))
#define INPUTCHAR3(x,y,z)	(((x << 4) + (y & 0x0f)) * 256 + ((z & 0x0f) << 4))
#define INPUTCHAR2(x,y)		(x * 256 + y)		/*输入用户定义字符*/
#define INPUTCHAR1(x)		(x * 256)			/*输入用户定义字符*/

#define CHAR		1	/*显示字符类型*/
#define COUNT		0	/*[nju(:)5merikEl] 显示数值类型*/

/*键值定义*/

#define	VK_0			0x18		/*0*/
#define	VK_1			0x00		/*1*/
#define	VK_2			0x01		/*2*/
#define	VK_3			0x02		/*3*/
#define	VK_4			0x08		/*4*/
#define	VK_5			0x09		/*5*/
#define	VK_6			0x0a		/*6*/
#define	VK_7			0x10		/*7*/
#define	VK_8			0x11		/*8*/
#define	VK_9			0x12		/*9*/
#define	VK_MODE			0x03		/*模式*/
#define	VK_DISP			0x0b		/*显示*/
#define	VK_START		0x13		/*开始*/
#define	VK_FUN			0x19		/*功能*/
#define	VK_ENTER		0x1a		/*输入*/
#define	VK_MA			0x1b		/*手动/自动*/
#define	VK_UP			0x60		/*向上*/
#define	VK_DOWN			0x50		/*向下*/
#define	VK_ADD			0x30		/*加*/

/*特殊字符定义,只能定义16个*/

#define	VK_A			0x40
#define	VK_B			0x41
#define	VK_C			0x42
#define	VK_D			0x43
#define	VK_E			0x44
#define	VK_F			0x45
#define	VK_H			0x46
#define	VK_L			0x47
#define	VK_P			0x48
#define	VK_U			0x49
#define	VK_MIDDLELINE	0x4a
#define	VK_SPACE		0x4b
#define VK_T			0x4c
#define	VK_I			0x4d
#define	VK_S			0x4e

/**********自定义类型**************/

/*声明一个显示数字/字符个数的枚举变量*/

enum tagEnumCount{ COUNT1 = 1, COUNT2, COUNT3, COUNT4, COUNT5, CHAR1, CHAR2, CHAR3, CHAR4};

/*声明一个显示位置的枚举变量*/

enum tagEnumBegin{ BEGIN1, BEGIN2, BEGIN3, BEGIN4, BEGIN5, BEGIN6, 
				BEGIN7, BEGIN8, BEGIN9, BEGIN10, BEGIN11, BEGIN12 };

/*声明一个显示小数点位置的枚举变量*/

enum tagEnumDot{ DOT4, DOT3, DOT2, DOT1, NODOT };

/**********外部函数声明**************/

#ifndef _PRO8279_H_
#define _PRO8279_H_

/*完成8279模式、分频、清0、及显示RAM消隐*/
PRO8279_H void Initialize8279(void);			/*8279初使化*/

/*功能:数码显示驱动*/
/*类型:*/
/*输入:1、 数码开始显示的位置,enum tagEnumBegin 类型*/
/*		2、数码显示的个数,enum tagEnumCount类型,最大只有5个*/
/* 		3、显示的数,unsigned int类型,当显示的是字符时,最大显示2个,高低字节可分别表示一个本头文件中定义
的字符,先显示高位字符。*/
PRO8279_H void Display(enum tagEnumBegin, enum tagEnumCount, unsigned int);		/*显示函数*/

PRO8279_H void SetDotPosition(enum tagEnumDot);		/*设置8279的小数点显示位置*/
PRO8279_H unsigned char GetKeyValue(void);			/*获取用户输入键值*/
PRO8279_H void SetDisplayType(bit);		/*设置显示类型*/


#endif



⌨️ 快捷键说明

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