📄 subroutine.h
字号:
#ifndef __SUBROUTINE_H_
#define __SUBROUTINE_H_
//===========================常量定义================================
#define NUM_KEYS 16
// 0x01
// ------------
// | |
// | |
// 0x20 | | 0x02
// | 0x04 |
// ------------
// | |
// | |
// 0x40 | | 0x10
// | 0x08 | O 0x80
// ------------
const char digit[10] =
{
0x7b, /* "0" */ // 0x01+0x02+0x10+0x08+0x40+0x20
0x12, /* "1" */ // 0x02+0x10
0x4F, /* "2" */ // 0x01+0x02+0x04+0x40+0x08
0x1F, /* "3" */ // 0x01+0x02+0x04+0x10+0x08
0x36, /* "4" */ // 0x20+0x04+0x02+0x10
0x3D, /* "5" */ // 0x01+0x20+0x04+0x10+0x08
0x7D, /* "6" */ // 0x01+0x20+0x40+0x08+0x10+0x04
0x13, /* "7" */ // 0x01+0x02+0x10
0x7F, /* "8" */ // 0x01+0x02+0x04+0x08+0x10+0x20+0x40
0x3F /* "9" */ // 0x01+0x02+0x10+0x08+0x20+0x04
};
//===================================================================
//===========================变量声明================================
unsigned int timer_count;
unsigned int cnt_time;
unsigned int sum;
unsigned int total;
unsigned char tx_bit;
unsigned char reg_tx;
signed int reg_key_value;
signed int reg_last_position=0;
unsigned char cnt_key_down;
signed int reg_key_value_avg;
//===================================================================
//==========================数据结构定义=============================
typedef struct
{
unsigned char port; //端口号
unsigned char port_bit; //端口位好
}key_config_data_t;
typedef struct
{
int base_capacitance; //存储按键的基本电容量
int filtered; //存储滤波后的增益电容量
int adapt; //存储慢速适应变化值
int adapter_flag; //存储变化量标记,调试用
}key_data_t;
const key_config_data_t key_config[NUM_KEYS]=
{
{1,BIT4},//{1,BIT5},
{1,BIT6},//{1,BIT4},
{2,BIT0},//{1,BIT3},
{2,BIT2},//{1,BIT2},
{1,BIT2},//{1,BIT6},
{1,BIT0},//{1,BIT7},
{1,BIT5},//{2,BIT2},
{1,BIT7},//{2,BIT3},
{2,BIT3},//{2,BIT5},
{2,BIT1},//{2,BIT4},
{2,BIT4},//{1,BIT1},
{2,BIT6},//{1,BIT0},
{1,BIT1},//{2,BIT0},
{1,BIT3},//{2,BIT1},
{2,BIT5},//{2,BIT6},
{2,BIT7},//{2,BIT7},
};
key_data_t key[NUM_KEYS];
//===================================================================
//==========================子函数声明===============================
//__interrupt void Port1_ISR(void);
//__interrupt void Port2_ISR(void);
void Init_Mcu(void);
void Init_Key(key_data_t *key,const key_config_data_t *key_config);
void Delay(unsigned int time);
unsigned int Measure_Key_Capacitance(unsigned int keyno);
void Scan_Key(void);
int Key_Position(void);
void Lcd_Display(int reg_key_value);
void Uart_Tx(int reg_key_value);
//===================================================================
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -