📄 key.h
字号:
#ifdef _KEY_
#define _KEY
#else
#define _KEY extern
#endif
#define KEY_NOTHING 0
#define KEY_START 1
#define KEY_PRESS 2
#define KEY_WAIT 3
#define KEY_RELEASE 4
//below is 7 floor key input
#define FLOOR_1 0
#define FLOOR_2 1
#define FLOOR_3 2
#define FLOOR_4 3
#define FLOOR_5 4
#define FLOOR_6 5
#define FLOOR_7 6
#define FLOOR1 ((PINA & (0x01 << FLOOR_1)) >> FLOOR_1)
#define FLOOR2 ((PINA & (0x01 << FLOOR_2)) >> FLOOR_2)
#define FLOOR3 ((PINA & (0x01 << FLOOR_3)) >> FLOOR_3)
#define FLOOR4 ((PINA & (0x01 << FLOOR_4)) >> FLOOR_4)
#define FLOOR5 ((PINA & (0x01 << FLOOR_5)) >> FLOOR_5)
#define FLOOR6 ((PINA & (0x01 << FLOOR_6)) >> FLOOR_6)
#define FLOOR7 ((PINA & (0x01 << FLOOR_7)) >> FLOOR_7)
//below is 7 near switches input
#define SWITCH_1 0
#define SWITCH_2 1
#define SWITCH_3 2
#define SWITCH_4 3
#define SWITCH_5 4
#define SWITCH_6 5
#define SWITCH_7 6
#define SWITCH1 ((PINB & (0x01 << SWITCH_1)) >> SWITCH_1)
#define SWITCH2 ((PINB & (0x01 << SWITCH_2)) >> SWITCH_2)
#define SWITCH3 ((PINB & (0x01 << SWITCH_3)) >> SWITCH_3)
#define SWITCH4 ((PINB & (0x01 << SWITCH_4)) >> SWITCH_4)
#define SWITCH5 ((PINB & (0x01 << SWITCH_5)) >> SWITCH_5)
#define SWITCH6 ((PINB & (0x01 << SWITCH_6)) >> SWITCH_6)
#define SWITCH7 ((PINB & (0x01 << SWITCH_7)) >> SWITCH_7)
//below is 7 sect led to be display; use 74ls138
//74LS138 1 2 3
// PD5 PD6 PD7
#define A_SECT {PORTD |= 0x20; PORTD &= 0xb7;}
#define B_SECT {PORTD |= 0x40; PORTD &= 0xd7;}
#define C_SECT {PORTD |= 0x20; PORTD &= 0xf7;}
#define D_SECT {PORTD |= 0x20; PORTD &= 0xdf;}
#define E_SECT {PORTD |= 0x20; PORTD &= 0xdf;}
#define F_SECT {PORTD |= 0x20; PORTD &= 0xdf;}
#define G_SECT {PORTD |= 0x20; PORTD &= 0xdf;}
#define DP_SECT {PORTD |= 0x20; PORTD &= 0xdf;}
#define SOS_KEY ((PINC & 0x80) >> 7) //sos key inout PC7 急停
#define ALARM_KEY ((PINC & 0x40) >> 6) //alarm key inout PC6 报警
#define ALARM_OUT_LOW {PORTD &= 0xef;} //alarm output PORTD4
#define ALARM_OUT_HIGH {PORTD |= 0x10;} //alarm output PORTD4
#define ERR_OUT_LOW {PORTA &= 0x7f;} //err statas outout PORTA7
#define ERR_OUT_HIGH {PORTA |= 0x80;} //err statas outout PORTA7
#define MOTOR_RIGHT_ON {PORTD &= 0xfb;} //motor turn right output 正转, PORTD2
#define MOTOR_RIGHT_OFF {PORTD |= 0x04;} //motor turn right stop
#define MOTOR_LEFT_ON {PORTD &= 0xf7;} //motor turn left output 正转, PORTD3
#define MOTOR_LEFT_OFF {PORTD |= 0x08;} //motor turn left stop
#define SPEAK_OFF {PORTC &= 0xFD;} //SPEAK OFF 按键音关闭
#define SPEAK_ON {PORTC |= 0x02;} //SPEAK ON 按键音打开
_KEY void Key_Init(void);
_KEY void key_action(void);
_KEY void Beep(unsigned int Time,unsigned char Times);
_KEY void ReadKey(void);
_KEY void AlarmKeyAction(void);
_KEY void SOSAction(void);
_KEY void FloorSwtichAction(void);
_KEY void FloorKeyAction(void);
_KEY unsigned int machine_status; //设备运行状态
//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;//蜂鸣次数计数
_KEY unsigned char Floor; //当前楼层
_KEY unsigned char FloorSwtich; //接近开关处于第几层
_KEY unsigned char FloorToGo; //楼层按键按下的楼层标志,0位表示第1层。置为1时表示有人要去1层。
_KEY struct
{
unsigned char SOS;
unsigned char SOSBak;
unsigned char SOSStatus;
unsigned char FloorKey;
unsigned char FloorKeyBak;
unsigned char FloorKeyStatus;
unsigned int FloorKeySound;
unsigned char FloorSwtich;
unsigned char FloorSwtichBak;
unsigned char FloorSwtichStatus;
unsigned char AlarmKey;
unsigned char AlarmKeyBak;
unsigned char AlarmKeyStatus;
unsigned int AlarmKeyCounts;
} Key;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -