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

📄 global.h

📁 KEIL C上的门禁控制器源代码
💻 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 + -