?? dianzi.lst
字號:
242 1 }
243 /********************************************************* 7219設置
244 *********************************************************/
245
246
247 void Write7129( uchar Add, uchar Data )
248 {
249 1 uint Send;
250 1 uchar i;
251 1 Send = Add*0x100 + Data;
252 1
253 1 LOAD = 1;
254 1 CLK = 0;
255 1 _nop_();
256 1 _nop_();
257 1 LOAD = 0;
258 1
259 1 for( i = 0 ; i < 16 ; i++ )
260 1 {
261 2 CLK = 0;
262 2 DIN = 0;
263 2 if( (Send & 0x8000) != 0 )
264 2 DIN = 1;
265 2 _nop_();
266 2 _nop_();
267 2 _nop_();
268 2 CLK = 1;
269 2 Send = Send << 1 ;
270 2 }
271 1 _nop_();
272 1 LOAD = 1;
273 1 }
274 void Init7219( void )
275 {
276 1 Write7129( 0x0c , 0x01 ); //開啟
277 1 // Write7129( 0x09 , 0x00 ); //譯碼方式 不譯碼
278 1 Write7129( 0x09 , 0xff ); //譯碼方式 B譯碼
279 1 Write7129( 0x0a , 0x08 ); //亮度
280 1 Write7129( 0x0b , 0x07 ); //掃描界限
281 1 }
282 void DelayMs( uchar n )
283 {
284 1 uchar i;
285 1 while( n-- )
286 1 {
287 2 for( i = 0 ; i < 125 ; i++ )
288 2 ;
289 2 }
290 1 }
291 /*******************************************************
292 AD0832驅動
293 ********************************************************/
294
295 uchar adc()
296 {
297 1 uchar i;
298 1 uint rec=0,rec1=0;
299 1 ADCCS=1;
300 1 ADCCLK=0;/*1*/
301 1 // ADCDO=1;
302 1 _nop_();
303 1 _nop_();
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 6
304 1 _nop_();
305 1
306 1 ADCCS=0;
307 1 _nop_();
308 1 _nop_();
309 1 _nop_();
310 1 ADCDO=1;
311 1 _nop_();
312 1 _nop_();
313 1 _nop_();
314 1
315 1 ADCCLK=1;/*1*/
316 1 _nop_();
317 1 _nop_();
318 1 ADCCLK=0;
319 1 _nop_();
320 1 _nop_();
321 1 _nop_();
322 1
323 1 ADCDO=1;
324 1 _nop_();
325 1 _nop_();
326 1 _nop_();
327 1 _nop_();
328 1 ADCCLK=1;/*2*/
329 1 _nop_();
330 1 _nop_();
331 1 ADCCLK=0;
332 1 _nop_();
333 1 _nop_();
334 1 ADCDO=0;
335 1 _nop_();
336 1 _nop_();
337 1 _nop_();
338 1 _nop_();
339 1 ADCCLK=1;/*3*/
340 1 _nop_();
341 1 _nop_();
342 1 ADCCLK=0;
343 1 _nop_();
344 1 _nop_();
345 1
346 1 ADCDO=1;
347 1
348 1 for(i=0;i<8;i++)
349 1 {
350 2 ADCCLK=1;
351 2 _nop_();
352 2 _nop_();
353 2 _nop_();
354 2 _nop_();
355 2 ADCCLK=0;
356 2 _nop_();
357 2 _nop_();
358 2 _nop_();
359 2 _nop_();
360 2 rec<<=1;
361 2 if( ADCDO == 1 )
362 2 rec=rec|0x01;
363 2 }
364 1 ADCDO=1;
365 1 for(i=0;i<8;i++)
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 7
366 1 {
367 2 ADCCLK=0;
368 2 _nop_();
369 2 _nop_();
370 2 _nop_();
371 2 _nop_();
372 2 rec1>>=1;
373 2 if( ADCDO == 1 )
374 2 rec1=rec1|0x80;
375 2 ADCCLK=1;
376 2 _nop_();
377 2 }
378 1 _nop_();
379 1 _nop_();
380 1 ADCCS=1;
381 1
382 1 if( rec1 == rec )
383 1 return rec;
384 1 else
385 1 return 0;
386 1
387 1 }
388 void Data_Process(void)
389 {
390 1 float tt;
391 1 uint dispnmber;
392 1 tt = ((adc()*Vref)/255.0-2)*6;//
393 1 dispnmber =0x0f- tt;
394 1 Write7129( 0x0a , dispnmber );
395 1 DispBuf[6]=dispnmber/10;
396 1 DispBuf[7]=dispnmber%10;
397 1 //desips7219();
398 1 }
399 /*****************************************************
400 1420
401 *****************************************************/
402 void write1420(uchar Add)
403 {
404 1 P0 = Add;
405 1 _nop_();
406 1 _nop_();
407 1 _nop_();
408 1 PLAYL = 0;
409 1 _nop_();
410 1 _nop_();
411 1 _nop_();
412 1 //PLAYL = 1;
413 1 }
414 /*******************************************************
415
416 矩形鍵盤
417 ********************************************************/
418 uchar scan()
419 {
420 1 uchar a,b,c,i;
421 1 P1=0xf0;
422 1 if((P1&0xf0)!=0xf0)
423 1 { delay(2);
424 2 if((P1&0xf0)!=0xf0)
425 2 { c=0xfe;
426 3 a=0;
427 3 while((c&0x10)!=0)
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 8
428 3 { P1=c;
429 4 if((P1&0x10)==0){b=0;break;}
430 4 else
431 4 { if((P1&0x20)==0){b=4;break;}
432 5 else
433 5 { if((P1&0x40)==0){b=8;break;}
434 6 else
435 6 {
436 7 if((P1&0x80)==0){b=12;break;}
437 7 }
438 6 }
439 5 }
440 4 a++;
441 4 c<<=1;
442 4 }
443 3 c=a+b;
444 3 delay(1);
445 3 P1=0xf0;
446 3 while((P1&0xf0)!=0xf0);
447 3 return(c);
448 3 }
449 2 }
450 1 if(yuanma != 20)
451 1 {
452 2 i=yuanma;
453 2 yuanma=20;
454 2 return i;
455 2 }
456 1 else return(20);
457 1 }
458 /**********************************************************
459
460 按鍵功能
461 ***********************************************************/
462 void Keyboard()
463 {
464 1 uchar key10=0;
465 1 static i,Cnt=0,nex = 0;
466 1 static bit PassOk = 0;
467 1 k = scan();
468 1
469 1 switch( k )
470 1 {
471 2 case 0:
472 2 if((PassOk==1)||(key10==1))
473 2 {
474 3 k = 0;
475 3 }
476 2 else
477 2 {
478 3 ProcessPlay();
479 3
480 3 }break;
481 2 case 10: //輸入密碼
482 2 setcode:
483 2 DispBuf[0]= 10;
484 2 DispBuf[1]= 10;
485 2 DispBuf[2]= 10;
486 2 DispBuf[3]= 10;
487 2 DispBuf[4]= 10;
488 2 DispBuf[5]= 10;
489 2 desips7219();
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 9
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -