📄 util.lst
字号:
C51 COMPILER V7.07 UTIL 09/15/2005 12:06:26 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE UTIL
OBJECT MODULE PLACED IN Util.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Util.c LARGE OPTIMIZE(9,SPEED) BROWSE DEFINE(UTIL_DEBUG) DEBUG OBJECTEXTEND
stmt level source
1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 // Hopinfo Copyright.
4 //
5 // www.chinahopeinfo.com.cn
6 //
7 // 2005.04.26
8 //
9 // 审阅:黄平生
10 //
11 // 菜单处理过程
12 //
13 ///////////////////////////////////////////////////////////////////////////////
14
15 #include "Global.h"
16
17 ///////////////////////////////////////////////////////////////////////////////
18 // 内部存储区变量 0~256
19 // 全局变量定义
20 extern struct Para
21 {
22 uchar Wiegand_format; // 1、韦根通信1 个字节,3 种选择,1~4
23 uchar Machine_addr; // 2、终端编号1 个字节,1~254
24 uchar Area_addr; // 3、终端区域编号1 个字节,1~240
25 uchar Secu_class; // 4、安全等级1 个字节,1~10
26 uchar Match_mode; // 5、匹配模式1 个字节,1~2
27 uchar Lock_para; // 6、锁控参数1 个字节,1~3
28 uchar Baudrate; // 7、串口速率1 个字节,1~6
29 };
30
31 extern union Para_u
32 {
33 uchar para_dat[7];
34 struct Para Actual_para;
35 }Para_ee; // 控制器参数
36
37 extern data uchar Menu_state; // 菜单当前状态
38 extern data uchar key; // 键盘值
39 extern data uchar cur_time[15]; // 系统当前时间显示存储区 XXXX年XX月XX日XX时XX分XX秒星期X
40 extern data uchar pulse; // 蜂鸣次数
41
42 extern data char User_id[6]; // 用户编号0~65534
43
44 extern bdata bit reverse; // LCD底色显示控制
45 extern bdata bit tele_alarm_on; // 布控/撤控标志
46
47 extern data uchar disp_buf[12]; // 显示临时变量
48
49 extern idata uchar areaaddr; // 分组地址
50 extern idata uchar laddr; // 地址低字节ASC码
51 extern idata uchar haddr; // 地址高字节ASC码
52 extern idata uchar decaddr; // 设备地址
53 extern idata uchar baudrate; // 波特率
54
55 extern idata char matchmode; // 匹配模式
C51 COMPILER V7.07 UTIL 09/15/2005 12:06:26 PAGE 2
56 extern idata char lockmode; // 锁控方式
57 extern idata char wieformat; // 韦根格式
58 extern idata char Security_level; // 安全等级0~4
59 extern idata char ManageClass; // 管理分类'M'管理用户'G'普通用户
60 extern idata char AppClass; // 应用分类'F'指纹用户'P'密码用户
61 extern idata char Password[7]; // 密码
62 extern idata char Start_user_id[6]; // 开始用户编号
63 extern idata char End_user_id[6]; // 终止用户编号
64 extern idata char Start_time[5]; // 开始时间
65 extern idata char End_time[5]; // 终止时间
66
67 extern xdata char tele_code[12]; // 报警电话号码
68
69 ///////////////////////////////////////////////////////////////////////////////
70 // 程序存储区变量 0~32K
71 code char
72 week[7][2]= // 星期显示
73 {"日","一","二","三","四","五","六"};
74
75 // 局部功能函数
76 void Set_cur_time_proc(); // 设置系统时间
77 void set_wie_proc(); // 设置韦根
78 void set_addr_proc(); // 设置地址
79 void set_level_proc(); // 设置安全等级
80 void set_match_proc(); // 设置比对模式
81 void set_lock_proc(); // 设置锁控模式
82
83 void erase_proc(); // 清数据库
84 void sysstate_proc(); // 显示系统状态
85
86 void manage_reg_proc(); // 注册管理员
87 void fp_reg_proc(); // 注册用户
88 void code_reg_proc(); // 密码注册
89
90 void delete_proc(); // 删除用户
91 void enter_proc(); // 设置用户进入条件
92
93 void tele_reg(); // 注册报警电话
94 void tele_del(); // 清除报警电话
95
96 bit input_party_proc(); // 输入分组编号
97 bit set_enter_time_proc(); // 出入时间
98 bit code_proc(); // 密码用户注册输入处理
99 bit id_proc(char *id); // 用户编号合法性检查
100 bit id_cmp(char *str1, char *str2); // 比较字符串
101 void id_add(char *id); // 按数据增加字符串
102
103 ///////////////////////////////////////////////////////////////////////////////
104 // 菜单处理程序
105 ///////////////////////////////////////////////////////////////////////////////
106 void Menu_process()
107 {
108 1 idata uchar i;
109 1
110 1 do
111 1 {
112 2 switch(Menu_state)
113 2 {
114 3 //1、系统管理
115 3 case Menu_system:
116 3 switch(key)
117 3 {
C51 COMPILER V7.07 UTIL 09/15/2005 12:06:26 PAGE 3
118 4 case 'U':
119 4 Menu_state=Menu_para; // 参数管理
120 4 break;
121 4 case 'D':
122 4 Menu_state=Menu_user; // 用户管理
123 4 break;
124 4 case 'F':
125 4 Menu_state=set_cur_time; // 进入系统管理
126 4 break;
127 4 case 'C':
128 4 Menu_state=Menu_top;
129 4 break;
130 4 default:break;
131 4 }
132 3 break;
133 3 //2、用户管理
134 3 case Menu_user:
135 3 switch(key)
136 3 {
137 4 case 'U':
138 4 Menu_state=Menu_system; // 系统管理
139 4 break;
140 4 case 'D':
141 4 Menu_state=Menu_para; // 参数管理
142 4 break;
143 4 case 'F':
144 4 Menu_state=user_enroll; // 用户管理
145 4 break;
146 4 case 'C':
147 4 Menu_state=Menu_top;
148 4 break;
149 4 default:break;
150 4 }
151 3 break;
152 3 //3、参数管理
153 3 case Menu_para:
154 3 switch(key)
155 3 {
156 4 case 'U':
157 4 Menu_state=Menu_user; // 用户管理
158 4 break;
159 4 case 'D':
160 4 Menu_state=Menu_system; // 系统管理
161 4 break;
162 4 case 'F':
163 4 Menu_state=set_wie; // 参数管理
164 4 break;
165 4 case 'C':
166 4 Menu_state=Menu_top;
167 4 break;
168 4 default:break;
169 4 }
170 3 break;
171 3 //系统管理
172 3 //1、设置系统时间
173 3 case set_cur_time:
174 3 switch(key)
175 3 {
176 4 case 'U':
177 4 Menu_state=erase_data; // 清空数据库
178 4 break;
179 4 case 'D':
C51 COMPILER V7.07 UTIL 09/15/2005 12:06:26 PAGE 4
180 4 Menu_state=set_match; // 比对模式
181 4 break;
182 4 case 'F':
183 4 Set_cur_time_proc(); // 设置系统时间
184 4 break;
185 4 case 'C':
186 4 Menu_state=Menu_system; // 返回系统管理菜单
187 4 break;
188 4 default:break;
189 4 }
190 3 break;
191 3 //2、设置匹配方式
192 3 case set_match:
193 3 switch(key)
194 3 {
195 4 case 'U':
196 4 Menu_state=set_cur_time; // 设置系统时间
197 4 break;
198 4 case 'D':
199 4 Menu_state=set_level; // 设置安全等级
200 4 break;
201 4 case 'F':
202 4 set_match_proc(); // 匹配模式处理
203 4 break;
204 4 case 'C':
205 4 Menu_state=Menu_system; // 返回系统管理菜单
206 4 break;
207 4 default:break;
208 4 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -