📄 global.h
字号:
#ifndef __GLOBAL_H__
#define __GLOBAL_H__
#include "reg54.h"
#include <intrins.h>
#include <stdio.h>
#include <string.h>
#include <absacc.h>
#include <stdarg.h>
#include <stdlib.h>
typedef unsigned char uchar; // 8bit
typedef unsigned int uint; // 16bit
typedef unsigned long ulong; // 32bit
#define DISABLE EA=0 // 中断关闭
#define ENABLE EA=1 // 中断开启
#define COMDISABLE ES=0 // 禁止串口中断
#define COMENABLE ES=1 // 开启串口中断
#define ERROR 0 // 错误
#define OK 1 // 成功
#define FALSE 0 // 假
#define TRUE 1 // 真
///////////////////////////////////////////////////////////////////////////////
// Uart.c
// 上位机串行通行常量定义
#define BUFSIZE 800 // SPI通信缓冲区的大小
#define RCVBUFSIZE 60 // 小数据量串口接收数据缓冲区大小
#define TRANSBUFSIZE 45 // 小数据量串口接收数据缓冲区大小
#define STATE_SOH 1 // SOH
#define STATE_SRC_ADDR 2
#define STATE_DST_ADDR 3
#define STATE_MSG_NUM 4
#define STATE_STX 5
#define STATE_MSG_STRING 6
#define STATE_CHECKSUM 7
#define STATE_EOT 8 // EOT
#define MAX_COMMAND_LENGTH 540 // 最大命令体长度
#define COMMAND_PTR 7 // 命令体索引
#define MAX_REALREC_SIZE 21 // 最大实时记录大小
#define RTL 0xF0 // 实时数据
///////////////////////////////////////////////////////////////////////////////
// Mss_spi.c
// SPI通信常量定义
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ACK 0x06
#define NAK 0x15
///////////////////////////////////////////////////////////////////////////////
// Util.c
// 菜单处理常量定义
// 主菜单
#define Menu_top 0x00
#define Menu_system 0x10 // 系统管理
#define Menu_user 0x11 // 用户管理
#define Menu_para 0x12 // 参数管理
// 系统管理
#define set_cur_time 0x20 // 设置系统时间
#define set_match 0x21 // 设置比对模式
#define set_level 0x22 // 设置安全等级
#define erase_data 0x23 // 清空数据库
// 用户管理
#define user_enroll 0x30 // 注册用户
#define user_delete 0x31 // 删除用户
#define enter_control 0x32 // 出入管理
#define manager_reg 0x33 // 注册管理员
#define user_reg 0x34 // 注册指纹用户
#define code_reg 0x35 // 注册密码用户
// 参数管理
#define set_wie 0x41 // 韦根设置
#define set_addr 0x42 // 地址设置
#define set_lock 0x43 // 锁控设置
#define set_alarm 0x44 // 报警参数
// 报警参数管理
#define enroll_tele 0x50 // 注册电话号码
#define delete_tele 0x51 // 清除电话号码
#define tele_on_off 0x52 // 电话报警布控/撤控
///////////////////////////////////////////////////////////////////////////////
// Glcd.c
// LCD寄存器地址、命令常量定义
#define X_ADRESS 0xB8 // 第一页地址
#define Y_ADRESS 0x40 // Y地址
#define START_LINE 0xC0 // 0行地址
#define DISPLAY_ON 0x3F // 开启显示
#define DISPLAY_OFF 0x3E // 关闭显示
#define RIGHT 1 // 右半屏
#define LEFT 0 // 左半屏
#define BUSY 0x80 // 忙标志
///////////////////////////////////////////////////////////////////////////////
// Dataflash.c
// STC片内FLASH读写常量定义
#define READ_AP_and_Data_Memory_Command 0x01 // 字节读应用程序区和数据存储区
#define PROGRAM_AP_and_Data_Memory_Command 0x02 // 字节编程应用程序区和数据存储区
#define SECTOR_ERASE_AP_and_Data_Memory_Command 0x03 // 扇区擦除应用程序区和数据存储区
#define WAIT_TIME 0x01 // 等待时间
///////////////////////////////////////////////////////////////////////////////
// Wiegand.c
// 韦根通信常量定义
#define IBIT(x,n) ((x>>n)&0x01)
#define Wie0 0x01
#define Wie26 0x02
#define Wie34 0x03
///////////////////////////////////////////////////////////////////////////////
// Clock.c
// 时钟常量定义
#define _Nop() _nop_();_nop_();
#define Some_NOP _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
///////////////////////////////////////////////////////////////////////////////
// STC89L58D+寄存器定义
sfr WDT_CONTR=0xe1; // 看门狗
sfr ISP_DATA=0xe2; // DATAFLASH
sfr ISP_ADDRH=0xe3; //
sfr ISP_ADDRL=0xe4; //
sfr ISP_CMD=0xe5; //
sfr ISP_TRIG=0xe6; //
sfr ISP_CONTR=0xe7; // DATAFLASH
///////////////////////////////////////////////////////////////////////////////
// 管角位定义
// SPI通信控制管角定义
sbit MSS_INT=P1^1; // 指纹复位中断
sbit MSS=P4^0; // 指纹摸块选通
sbit MSS_PWR_ON=P1^2; // 指纹模块电源控制
sbit MOSI=P4^1; // 指纹模块数据输入端
sbit MISO=P4^2; // 指纹模块数据输出端
sbit SCK=P4^3; // 指纹模块时钟脚
// 键盘控制定义
sbit KC1=P1^7; // 键盘行
sbit KC2=P1^6; // 键盘行
sbit KEY_CS=P2^5; // 键盘片选
sbit speaker=P1^3; // 蜂鸣器控制
sbit backlt=P1^4; // LCD背光控制脚
sbit Tamper=P1^5; // 防拆开关
sbit Dir=P1^0; // 485通信方向控制
// 时钟芯片I2C总线端口定义
sbit SDA=P2^6; // 模拟I2C数据位
sbit SCL=P2^7; // 模拟I2C时钟位
// 韦根端口定义
sbit DATA1=P3^2; // DATA1
sbit DATA0=P3^3; // DATA0
// LCD控制端口定义
sbit RS=P2^0; // 读
sbit RW=P2^1; // 写
sbit CS1=P2^2; // 片选
sbit CS2=P2^3; // 片选
sbit E=P2^4; // 使能
///////////////////////////////////////////////////////////////////////////////
// 函数功能定义
// Main.c
// 局部函数
void kbscan(); // 键盘扫描
void key_judge(); // 键值判断
void key_proc(); // 按键处理
void Rstwdt(); // 看门狗
void DispLogo(); // LOGO
void finger_work1tog(); // 1:G指纹正常操作
void finger_work1ton(); // 1:N指纹正常操作
void finger_work1to1(); // 1:1指纹正常操作
void password_normal_work(); // 密码工作
void manager_work(); // 管理工作
void ParaInit(); // 系统参数初始化
// Mss_spi.c
// 功能函数
void TURN_ON(); // 指纹模块上电
bit Enroll(); // 注册用户
bit Verify(); // 1:1匹配
bit Identify(); // 1:N匹配
bit GroupIdentify(); // 1:G匹配
bit Cal_sensor(); // 校正传感器
bit Set_class(); // 设置安全等级
bit Delete_one(); // 删除用户
bit One_enter(); // 设置用户出入
int Get_manager_num(); // 获取管理用户数目
bit Set_record(); // 保存日志记录
bit Erase_user(); // 擦除用户存储区
bit Send_spi(); // 直接转发SPI数据
char Hex_ascii(uchar h); // 将16进制数据转换为ASC码
void Wait10ms(); // 延时10ms
void OneSecond(); // 延时1s
uchar Asc_hex(char alpha); // 将ASC码转换为16进制数据
// Clock.c
// 功能函数
void read_time(); // 读系统当前时间
void set_time(); // 设置系统时间
// Glcd.c
// 功能函数
void GLCD_LcdInit(); // LCD初始化
void GLCD_ClearScreen (); // 清屏幕
void GLCD_Locate (uchar, uchar); // 定位显示位置
void dprintf(char *fmt,uchar uLen); // 显示定长字符串
void LcdPutDigit(uchar u8Char); // 显示大字体
// Dataflash.c
// 功能函数
void Read_Para(); // 读系统参数
void Write_Para(); // 写系统参数
// Util.c
// 功能函数
void disptime(); // 显示时间
bit input_id_proc(); // 输入用户编号
bit pass_proc(); // 密码用户输入比对
void Menu_process(); // 菜单处理
uint asctoint(char *str); // 字符串转换为整数
void erase_proc(); // 清空数据库
// Uart.c
// 功能函数
void host_proc(); // 上位机通信处理
void Baud_Init(); // 设置波特率
// Wiegand.c
// 功能函数
void W_init(); // 韦根通信初始化
void white_bill_reg(); // 白名单注册
void white_bill_del(); // 白名单注销
void normal_send(); // 自定义格式韦根通信
void lock_22(); // 双锁双动
void lock_21(); // 双锁单动
void lock_2inter(); // 双锁联动
void send26(); // 标准26位韦根通信
void send34(); // 标准34位韦根通信
void getdevstate(); // 获取门禁控制器实时状态信息
void Wiegand_recv(); // 接收韦根数据
void tamper_alarm(); // 防拆报警布防
void tamper_alarm_off(); // 防拆报警撤防
void addr_reg(); // 注册终端地址
void erase_bill(); // 清空所有白名单
void tele_alarm(); // 电话报警布防
void tele_alarm_off(); // 电话报警撤防
void reg_tele(); // 登记报警电话
void erase_tele(); // 清除电话报警号码
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -