📄 ledkey.lst
字号:
180 3 }
181 2 //--------------------
182 2 }
183 1 //---------键盘检测
184 1 key = InIO;
185 1 if(key)
186 1 {
187 2 if(Prvkey == key)
188 2 {
189 3 keycount++;
190 3 if(keycount == 30)
191 3 {
192 4 //AddKey(Prvkey);
193 4 if(KeyPos < 5)
194 4 {
195 5 keybuf[KeyPos++] = Prvkey;
196 5 //Beep(30, 0, 1, 0);
197 5 }//else
198 4 // Beep(20, 20, 3, 0);
199 4 }
200 3 if(keycount > 600)
201 3 {
202 4 keycount = 450;
203 4 //AddKey(Prvkey);
204 4 if(KeyPos < 5)
205 4 {
206 5 keybuf[KeyPos++] = Prvkey;
207 5 //Beep(30, 0, 1, 0);
208 5 }//else
209 4 // Beep(20, 20, 3, 0);
210 4 }
211 3 }
212 2 }else
213 1 {
214 2 keycount = 0;
215 2 }
216 1 Prvkey = key;
217 1 //----------------------
218 1 //Beep-------------------------------
219 1 if(m_BeepDelay <= 0)
220 1 {
221 2 if((m_Times != 0)&&(m_beep == 0))
222 2 {
223 3 if(m_Times%2)
224 3 {
225 4 m_beep = m_CloseDelay;
226 4 BeepIO = 1;
227 4 }else
228 3 {
229 4 m_beep = m_OpenDelay;
230 4 BeepIO = 0;
231 4 }
232 3 if(m_Times > 0)
233 3 {
234 4 m_Times--;
235 4 }else
236 3 {
237 4 if(m_Times == -1)
238 4 {
239 5 m_Times = -2;
240 5 }else
241 4 {
C51 COMPILER V7.00 LEDKEY 07/18/2007 12:16:39 PAGE 5
242 5 m_Times = -1;
243 5 }
244 4 }
245 3 }
246 2
247 2 if(m_beep > 0)
248 2 {
249 3 m_beep--;
250 3 }
251 2 }else
252 1 {
253 2 m_BeepDelay--;
254 2 }
255 1 //----------------------------------
256 1 if(g_LedOn%2)m_uFlash++;
257 1 m_TickCount++;
258 1 }
259
260 uchar xdata m_uPoint1 = 0;
261 uchar xdata m_uPoint2 = 0;
262
263 void SetPoint1(uchar uPoint)
264 {
265 1 m_uPoint1 = uPoint;
266 1 }
267
268 void SetPoint2(uchar uPoint)
269 {
270 1 m_uPoint2 = uPoint;
271 1 }
272
273 void ConvetLed(long lShowLed,uchar *p, uchar ws, uchar uPoint)
274 {
275 1 uchar i = 0;
276 1 bit fs = 0;
277 1 bit fsfirst = 1;
278 1 if(lShowLed < 0)
279 1 {
280 2 fs = 1;
281 2 lShowLed *= -1;
282 2 }
283 1 for(i = 0; i < ws; i++)
284 1 {
285 2 if(lShowLed|| (uPoint >= i&& uPoint < ws))
286 2 {
287 3 p[ws-i-1] = lShowLed%10;
288 3 if(uPoint&&(i == uPoint))
289 3 {
290 4 p[ws-i-1] |= 0x80;
291 4 }
292 3 lShowLed /= 10;
293 3 }else
294 2 {
295 3 if(fs&&fsfirst)
296 3 {
297 4 fsfirst = 0;
298 4 p[ws-i-1] = 27;
299 4 }else
300 3 {
301 4 p[ws-i-1] = 0xFF;
302 4 }
303 3 }
C51 COMPILER V7.00 LEDKEY 07/18/2007 12:16:39 PAGE 6
304 2 }
305 1 }
306
307 void ConvetLed1(long lShowLed)
308 {
309 1 ConvetLed(lShowLed,g_led_buf1,6, m_uPoint1);
310 1 }
311
312 void ConvetLed2(long lShowLed)
313 {
314 1 //ConvetLed(lShowLed,g_led_buf2, 7, m_uPoint2);
315 1 ConvetLed(lShowLed,g_led_buf2+1, 6, m_uPoint2);
316 1 }
317
318 void LedCommand(uchar uStart, uchar ledbuf[], uchar *p, uchar uCount)
319 {
320 1 uchar i;
321 1 for(i = uStart; i < uStart + uCount; i++)
322 1 {
323 2 p[i] = ledbuf[i];
324 2 }
325 1 }
326
327 void LedCommand1(uchar uStart, uchar ledbuf[], uchar uCount)
328 {
329 1 LedCommand( uStart, ledbuf, g_led_buf1, uCount);
330 1 }
331
332 void LedCommand2(uchar uStart, uchar ledbuf[], uchar uCount)
333 {
334 1 LedCommand( uStart, ledbuf, g_led_buf2, uCount);
335 1 }
336 //打开时间,关闭时间,次数,-1等于一直响着
337 void Beep(int OpenDelay,int CloseDelay, char Times, int BeepDelay)
338 {
339 1 m_BeepDelay = BeepDelay;
340 1 m_OpenDelay = OpenDelay;
341 1 m_CloseDelay = CloseDelay;
342 1 if(Times > 0)
343 1 {
344 2 m_Times = Times*2;
345 2 }else if(Times == 0)
346 1 {
347 2 m_Times = 0;
348 2 BeepIO = 1;
349 2 }else
350 1 {
351 2 m_Times = -1;
352 2 }
353 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1331 ----
CONSTANT SIZE = 28 ----
XDATA SIZE = 47 ----
PDATA SIZE = ---- ----
DATA SIZE = 1 44
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -