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

📄 key.h

📁 这是一个AVR的单片机程式。能实现对一个中断端口进行计数、显示。有比较全面的按键功能。
💻 H
字号:
#ifdef _KEY_
    #define _KEY
#else
    #define _KEY extern
#endif

#define KEY_NO      0
#define KEY_START   1
#define KEY_PRESS   2
#define KEY_WAIT    3
#define KEY_RELEASE 4

#define KEY_LEN_OIL 8       //设置抽油量数字长度    (含小数点)
#define KEY_LEN_CON 7       //设置油表常数最大长度  (含小数点)

#define Int_LEN_OIL 6       //设置抽油量数字长度    (含小数点)
#define Int_LEN_CON 3       //设置油表常数最大长度  (含小数点)

#define Dot_LEN_OIL 1       //设置抽油量数字长度    (含小数点)
#define Dot_LEN_CON 3       //设置油表常数最大长度  (含小数点)

#define MACHINE_SET_OIL      0x01      //设置抽油数量状态
#define MACHINE_SET_CON      0x02      //设置仪表常数状态
#define MACHINE_DRAW         0x04      //抽油状态
#define MACHINE_STOP         0x08      //停止状态
#define MACHINE_PAUSE        0x10      //暂停状态
#define MACHINE_FINISH       0x20      //抽油完成
#define MACHINE_RESTART      0x40       //暂停后重新开始
#define MACHINE_SET_OIL_OK   0x80       //设置抽油数量完成
#define MACHINE_SET_CON_OK   0x100       //设置仪表常数完成

#define HC575_CLK_HIGH         (PORTC |= 0X80)
#define HC575_CLK_LOW          (PORTC &= ~0X80)

#define ON                  1
#define OFF                 0
#define HIGH                1
#define LOW                 0

#define WORK_LED             0X80        //工作指示灯
#define ERR_LED              0x40       //失效指示灯
#define SPK                  0x20       //蜂鸣器
#define FLASH_RST            0X10       //
#define FLASH_WP             0x08       //
#define FLASH_CS             0x04       //
#define RST_LCD              0x02       //
#define Dog                  0x01       //
/*
#define WORK_LED_ON            (Extern |= 0X80 )       //工作指示灯
#define ERR_ON                  0x40       //失效指示灯
#define SPK_ON                  0x20       //蜂鸣器
#define FLASH_RST_HIGH            0X10       //
#define FLASH_WP_HIGH             0x08       //
#define FLASH_CS_HIGH             0x04       //
#define RST_LCD_HIGH              0x02       //

#define WORK_LED_OFF            (Extern &= ~0X80 )       //工作指示灯
#define ERR_OFF                  0x40       //失效指示灯
#define SPK_OFF                  0x20       //蜂鸣器
#define FLASH_RST_LOW            0X10       //
#define FLASH_WP_LOW             0x08       //
#define FLASH_CS_LOW             0x04       //
#define RST_LCD_LOW              0x02       //
*/
_KEY void Key_Init(void);
_KEY void draw(void);
_KEY void ReadKey(void);
_KEY void key_action();
_KEY void Extern_Driver(unsigned char Port,unsigned char state);
_KEY void Beep(unsigned int Time,unsigned char Times);


_KEY double want_to_draw ;//想要抽酒量;用于存放输入的数量
_KEY double meter ;//仪表常数
_KEY unsigned int len;//字符数组的个数即按数字键的次数
_KEY unsigned int Key;
_KEY unsigned char KeyDown;//键盘按下否
_KEY unsigned char num; //用于记录'仪表常数'键被按的次数,初始化为0
_KEY unsigned char flag;//用于标记是抽酒数量还是仪表常数,0表示是抽酒数量,
                            //1表示是仪表常数。初始化为0
_KEY unsigned char flag1;//用于标记是抽酒还是暂停,0表示抽酒,1表示暂停,2表示暂停后继续抽酒					
_KEY unsigned char array[9];//用于存放仪表常数,要抽酒数量等数据的整数部分
_KEY unsigned char Key_Temp;
_KEY unsigned char key_status;
_KEY unsigned char Key_Len;
_KEY unsigned char Dot_Key_Len;     //小数点后数据长度
_KEY unsigned char Dot_Key_In;      //实际已经输入小数长度
_KEY unsigned char Int_Key_Len;     //整数部分数据长度
_KEY unsigned char Int_Key_In;      //实际已经输入数据长度
_KEY double        Key_In;      //按键输入的数值
_KEY unsigned char Key_Dot;     //输入小数点标志
_KEY double        Dot_Count;   //小数点后输入的个数
_KEY unsigned  int machine_status;  //设备运行状态
_KEY unsigned char Extern;

//beep
_KEY unsigned int  Beep_Time;       //蜂鸣时间长度
_KEY unsigned char Beep_Times;      //蜂鸣次数
_KEY unsigned char Beep_Begin;      //蜂鸣开始标志
_KEY unsigned int  Beep_Time_Count; //蜂鸣时间计数
_KEY unsigned char Beep_Times_Count;//蜂鸣次数计数

⌨️ 快捷键说明

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