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

📄 source.h

📁 该程序文件作为密码小键盘项目的主程序模块
💻 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 + -