📄 source.h
字号:
#include<reg52.h>
sfr AUXR = 0x8e;
sfr AUXR1 = 0xa2;
sfr P4 = 0xe8;
sfr XICON = 0xc0;
sfr IPH = 0xb7;
sfr WDT_CONTR = 0xe1;
sfr ISP_DATA = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD = 0xe5;
sfr ISP_TRIG = 0xe6;
sfr ISP_CONTR = 0xe7;
sbit E1 = P3^2; /*片选信号1*/
sbit E2 = P3^3; /*片选信号2*/
sbit RW = P3^4; /*读写信号,高电平:读操作; 低电平:写操作*/
sbit A0 = P3^5; /*数据指令标志,高电平:数据操作;低电平:指令操作*/
sbit SBT=P4^0;
#define DATA P1 /*DB[7..0]---P1[7..0] 数据指令总线*/
#define keyport P0
sbit OK_LED = P3^6; /*LED绿灯*/
sbit ERROR_LED = P3^7; /*LED红灯*/
#define uchar unsigned char
#define uint unsigned int
#define QUEUE_SIZE 4 //数组长度
#define MAX_KEY_LEN 8 /*密码数组长度*/
typedef enum
{
STATE1 = 1,/*初始状态*/
STATE2, /*ESC*/
STATE3, /*ESC R,80H 复位*/
STATE4, /*ESC E 81H, ESC[/2 重新输入,打包发送*/
STATE5, /*ESC I,82H, ESC[/1,输入密码,打包发送*/
STATE6, /* ESC[/3,83H,关闭密码键盘*/
STATE7, /*ESC[*/
STATE8, /*ESC M, 输入密码,实时发送*/
STATE9, /*ESC L,重新输入,实时发送*/
STATE10, /*ESC D,输入钱数,打包发送*/
STATE11, /*ESC[/*/
STATE12, /*ESC I,输入密码,加密*/
STATE13, /*ESC E,重新输入密码,加密*/
STATE14, /*ESC G,密文回送*/
STATE15, /*ESC N */
STATE16, /*ESC F */
STATE17, /*ESC K */
STATE18, /*ESC N x,设置密码长度*/
STATE19, /*ESC F x, 取工作密钥长度*/
STATE20 /*ESC K x, 选择主密钥*/
}State;
typedef uchar DataType;
typedef struct
{
uchar front; /*头指针,队非空时指向队头元素*/
char rear; /* 尾指针,队非空时指向队尾元素*/
uchar count; /*计数器,记录队中元素总数*/
DataType data_command[QUEUE_SIZE];
}CirQueue;
struct PIC { /*LCD图片显示数据结构*/
uchar x;
uchar y;
uchar w;
uchar h;
uchar *dat;
};
extern void init(void); /*初始化*/
extern void init_lcd(void); /*lcd初始化*/
extern void mode_switch(void); /*模式选择*/
extern void lcd(uchar order, uchar num);
extern void command_resolve(State state); /*命令解析*/
extern void key_scan(void); /*按键扫描*/
extern void voice(uchar voi); /*语音提示函数*/
extern uchar encrypt_command_analysis(uchar event); /*加密命令分析*/
extern uchar general_command_analysis(uchar event); /*普通命令分析*/
extern uchar key_manage(uchar key, uchar flag); /*按键处理*/
extern void delay( uint s);
extern void send_char(uchar ch);
extern void send_string(uchar *str,uchar strlen);
extern void reset(void);
extern void encrypt(uchar str[],uchar len);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -