📄 keyprocess.lst
字号:
C51 COMPILER V7.01 KEYPROCESS 04/29/2006 16:28:39 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE KEYPROCESS
OBJECT MODULE PLACED IN keyprocess.OBJ
COMPILER INVOKED BY: F:\Keil\C51\BIN\C51.EXE keyprocess.c DEBUG OBJECTEXTEND
stmt level source
1
2 #include"reg52.h"
3 #include"main.h"
4
5
6 bit fgkey=0;
7 bit fgkey_on=0;
8 bit IRI_Flag=0;
9 bit Aux_Flag=0;
10 bit Lock_Flag=0;
11 bit Protocol=0;
12 bit DisableKey=0;
13 bit PreSet=0;
14 bit BautSet=0;
15 bit SoundFlag=0;
16
17
18
19
20 unsigned char data keybuffer;
21 unsigned char scankeycounter;
22
23 unsigned char data KeyTemp;
24 unsigned char data j;
25
26 Uchar KeyCounter=0;
27 Uchar MonAddress=1;
28 Uchar CamAddress=1;
29 Uchar DisplayTemp[4];
30 Uchar AuxNumb;
31 extern Uchar NumbProtocol;
32 Uint LockBuffer=1234;
33 Uchar IRINumb;
34 Uchar KeyValue;
35 Uchar TimeValue;
36
37
38 //extern unsigned int TimeCounter;
39 extern Uchar SoundCounter;
40 extern unsigned char data keydata;
41 extern bit BUFlag;
42 extern bit TimerFlag;
43 extern void keyscan(void);
44 extern void delay1ms(unsigned char count);
45 extern void ePutstr(Uchar x,Uchar y, Uchar *ptr);
46 extern void DispOneChar(Uchar x,Uchar y,Uchar Wdata);
47 extern void Ptz(Uchar i);
48 extern void LcdWriteCommand( Uchar CMD,Uchar AttribC );
49 extern void LocateXY( char posx,char posy);
50 extern void LcdReset( void );
51 extern void x24c02_write(unsigned char address,unsigned char info);
52 void keyprocess(void);
53
54 /*--------------------------------------------------------------------------------------------
55 数字键处理程序
C51 COMPILER V7.01 KEYPROCESS 04/29/2006 16:28:39 PAGE 2
56 --------------------------------------------------------------------------------------------*/
57
58 void NumbProcess(Uchar Numb)
59 {
60 1 Uchar i;
61 1 Uchar Temp;
62 1 if(KeyCounter<=3)
63 1 {
64 2 Temp=18-KeyCounter;
65 2
66 2 if(!Lock_Flag)
67 2 DispOneChar(Temp,2,'*');
68 2
69 2 KeyCounter++;
70 2 for(i=3;i>=1;i--)
71 2 DisplayTemp[i]=DisplayTemp[i-1];
72 2 DisplayTemp[0]=Numb;
73 2 }
74 1
75 1 else
76 1 {
77 2 for(i=0;i<4;i++)
78 2 {
79 3 KeyCounter=1;
80 3 DisplayTemp[i]=0;
81 3 }
82 2 DisplayTemp[0]=Numb;
83 2
84 2 if(!Lock_Flag)
85 2 DispOneChar(18,2,'*');
86 2 }
87 1
88 1 if(Lock_Flag)
89 1 {
90 2 for(i=0;i<4;i++)
91 2 {
92 3 Temp=DisplayTemp[i]+48; //转换成ASCII 码
93 3 DispOneChar(18-i,2,Temp);
94 3 }
95 2 }
96 1
97 1
98 1 }
99
100 /*----------------------------------------------------------------------------------------------
101 数字键暂存区清零
102 ----------------------------------------------------------------------------------------------*/
103 void DispTempClear(void)
104 {
105 1 Uchar i;
106 1 KeyCounter=0;
107 1 for(i=0;i<4;i++)
108 1 {
109 2 KeyCounter=0;
110 2 DisplayTemp[i]=0;
111 2 }
112 1 ePutstr(14,2,"[0000]");
113 1 }
114
115 /*----------------------------------------------------------------------------------------------
116 选择界面显示
117 ----------------------------------------------------------------------------------------------*/
C51 COMPILER V7.01 KEYPROCESS 04/29/2006 16:28:39 PAGE 3
118 void DispProtocol(void)
119 {
120 1
121 1 LcdWriteCommand( 0x01, 1); // 显示清屏
122 1 ePutstr(0,0,"Selecting Protocol");
123 1 ePutstr(0,1,"1:PELCO_D");
124 1 ePutstr(11,1,"2:PELCO_P");
125 1 ePutstr(0,2,"3:YAAN");
126 1 ePutstr(11,2,"4:PD_2400");
127 1 ePutstr(0,3,"Select:");
128 1 LcdWriteCommand( 0x0f, 1);
129 1 LocateXY(7,3);
130 1
131 1
132 1 }
133
134 /*----------------------------------------------------------------------------------------------
135 通讯协议选择
136 ----------------------------------------------------------------------------------------------*/
137 void SetProtocol(void)
138 {
139 1 while(Protocol)
140 1 keyprocess();
141 1 DisableKey=0;
142 1 LcdReset();
143 1 MonAddress=1;
144 1 CamAddress=1;
145 1 ePutstr(0,3,"MON[0001]"); // 上面一行显示一个预定字符
146 1 ePutstr(11,3,"CAM[0001]");
147 1 ePutstr(11,2,"ENT[0000]");
148 1 }
149
150 void SetBaut(void)
151 {
152 1 LcdWriteCommand( 0x01, 1); // 显示清屏
153 1 ePutstr(0,0,"Selecting Baut");
154 1 ePutstr(0,1,"1:9600");
155 1 ePutstr(11,1,"2:4800");
156 1 ePutstr(0,2,"3:2400");
157 1 ePutstr(11,2,"4:1200");
158 1 ePutstr(0,3,"Select:");
159 1 LcdWriteCommand( 0x0f, 1);
160 1 LocateXY(7,3);
161 1 while(BautSet)
162 1 keyprocess();
163 1 DisableKey=0;
164 1 LcdReset();
165 1 MonAddress=1;
166 1 CamAddress=1;
167 1 ePutstr(0,3,"MON[0001]"); // 上面一行显示一个预定字符
168 1 ePutstr(11,3,"CAM[0001]");
169 1 ePutstr(11,2,"ENT[0000]");
170 1 }
171 /*-----------------------------------------------------------------------------------------------
172 键盘处理程序
173 -----------------------------------------------------------------------------------------------*/
174 void keyprocess(void)
175 {
176 1 Uint Temp;
177 1 keyscan();
178 1
179 1 if(SoundFlag)
C51 COMPILER V7.01 KEYPROCESS 04/29/2006 16:28:39 PAGE 4
180 1 {
181 2 EA=1;
182 2 ET0=1;
183 2 TR0=1;
184 2 }
185 1 /*--------------------------------------------------------------------------------------------*/
186 1 if(keybuffer != keydata)
187 1 {
188 2 keybuffer = keydata;
189 2 scankeycounter = 20;
190 2 }
191 1 /*---------------------------------------------------------------*/
192 1 else if(scankeycounter!=0)
193 1 {
194 2 scankeycounter--;
195 2 delay1ms(1);
196 2 }
197 1
198 1
199 1 /*--------------------------------------------------------------*/
200 1 else if (keybuffer!=no_key)
201 1 {
202 2 if(DisableKey)
203 2 {
204 3 if(keybuffer>K_4 & keybuffer!=K_lock)
205 3 fgkey_on=1;
206 3 }
207 2
208 2 if(!fgkey_on)
209 2 {
210 3 fgkey_on=1;
211 3 if(BUFlag)
212 3 {
213 4 SoundFlag=1;
214 4 SoundCounter=2;
215 4 EA=1;
216 4 ET0=1;
217 4 TR0=1;
218 4 BU=1;
219 4 }
220 3 switch (keybuffer)
221 3 {
222 4
223 4 case K_0:
224 4 if(Protocol || BautSet)
225 4 ;
226 4 else
227 4 NumbProcess(0);
228 4
229 4
230 4
231 4
232 4 break;
233 4 case K_1:
234 4
235 4 if(Protocol || BautSet)
236 4 {
237 5 DispOneChar(7,3,'1');
238 5 LocateXY(7,3);
239 5 if(Protocol)
240 5 {
241 6 NumbProtocol=1;
C51 COMPILER V7.01 KEYPROCESS 04/29/2006 16:28:39 PAGE 5
242 6 x24c02_write(0x00,0x01);
243 6 }
244 5 else
245 5 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -