📄 pro8279.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 + -