»ùÓÚµ¥Æ¬»úµÄIC¿¨ÃŽûϵͳ - ͼÎÄ ÏÂÔØ±¾ÎÄ

¸½Â¼Ò» µç·ͼ

23

¸½Â¼¶þ¡¢³ÌÐòÔ´´úÂë

#include \#include \

#include \sbit JDQ=P1^6; sbit LED=P1^7; uchar flag1=0;

INT8U CardRevBuf[16] = { 0 };

void init_all(void) { EA = 0; init_rc522(); init_lcd(); EA = 1; }

void display_no_id( void ) { DisplayListChar( 0, 0, \ \ DisplayListChar( 0, 1, \ OFF \}

void display_id( INT8U * SrcBuf ) { char DisplayBuf[10]; char *pDisplayChar; INT8U Tmp, i; pDisplayChar = DisplayBuf; for( i = 0; i < 4; i++ ) { Tmp = ( ( *SrcBuf ) >> 4 ) & 0x0F; if( ( Tmp >=0 ) && ( Tmp <= 9 ) ) { *pDisplayChar ++ = '0' + Tmp; } else

24

{ *pDisplayChar ++ = 'A' + Tmp - 10; } Tmp = ( *SrcBuf ) & 0x0F; if( ( Tmp >=0 ) && ( Tmp <= 9 ) ) { *pDisplayChar ++ = '0' + Tmp; } else { *pDisplayChar ++ = 'A' + Tmp - 10; } SrcBuf ++; } *pDisplayChar ++ = '\\0'; DisplayListChar( 3, 1, DisplayBuf ); }

void ctrl( void ) { if( PcdRequest( PICC_REQIDL, &CardRevBuf[0] ) != MI_OK )//ѰÌìÏßÇøÄÚδ½øÈëÐÝÃß״̬µÄ¿¨£¬·µ»Ø¿¨Æ¬ÀàÐÍ 2×Ö½Ú { if( PcdRequest( PICC_REQIDL, &CardRevBuf[0] ) != MI_OK )//ѰÌìÏßÇøÄÚδ½øÈëÐÝÃß״̬µÄ¿¨£¬·µ»Ø¿¨Æ¬ÀàÐÍ 2×Ö½Ú { //display_no_id(); JDQ=0;LED=1;beep=1; CardRevBuf[2]=0; return; } } if( PcdAnticoll( &CardRevBuf[2] ) != MI_OK ) //·À³åײ£¬·µ»Ø¿¨µÄÐòÁкŠ4×Ö½Ú { //display_no_id(); JDQ=0;LED=1;beep=1;CardRevBuf[2]=0; return; } if( PcdSelect( &CardRevBuf[2] ) != MI_OK )//Ñ¡¿¨ ¿¨Æ¬ÐòÁкţ¬4×Ö½Ú {

25

//display_no_id(); JDQ=0;LED=1;beep=1;CardRevBuf[2]=0; return; } }

/********Ä£¿é±äÁ¿¶¨ÒåÇø*******************************************/ char SS,MM,HH,XQ,DA,MO,YE;

uint countt1=0;//¶¨ÒåÃëÖÓ²úÉúµÄ¼ÆÊý±äÁ¿¡£

char counter11=0;//ÓÃÓڼǼK1¼üÑ¡ÔñµÄÊÇÄĸö±»ÉèÖñäÁ¿ uchar key_value=0;//ÓÃÓڼǼ¼üÅÌɨÃè»ñµÃµÄ¼üÖµ

/****************************************************************** - º¯ÊýÃû³Æ£ºtimer0_init() - Á¥ÊôÄ£¿é£ºtime.h - º¯ÊýÊôÐÔ£ºÄÚ²¿

- ²ÎÊý˵Ã÷£ºÎÞ·µ»ØÖµ£¬ÎÞ´øÈë²ÎÊý - ·µ»ØËµÃ÷£ºÎÞ

- ¹¦ÄÜÃèÊö£º¶Ô¶¨Ê±Æ÷T0½øÐгõʼ»¯.

*****************************************************************/ void timer0_init()//¶¨Ê±Æ÷T0µÄ³õʼ»¯³ÌÐò {

TMOD=TMOD|0X01;//0000 0001 T0¹¤×÷ÓÚ·½Ê½1£¬¶¨Ê±Ä£Ê½ TH0=(65536-50000)/256;

TL0=(65536-50000)%6;//¶¨Ê±50MS EA=1;ET0=1;//¿ªÆô×ÜÖжϣ¬ºÍ·ÖÖÐ¶Ï TR0=1;//Æô¶¯¶¨Ê±Æ÷T0 }

/****************************************************************** - º¯ÊýÃû³Æ£ºtimer0() interrupt 1 - Á¥ÊôÄ£¿é£ºtime.h - º¯ÊýÊôÐÔ£ºÄÚ²¿

- ²ÎÊý˵Ã÷£ºÎÞ·µ»ØÖµ£¬ÎÞ´øÈë²ÎÊý - ·µ»ØËµÃ÷£ºÎÞ

- ¹¦ÄÜÃèÊö£ºÖжÏ×Ô¶¯ÏìÓ¦º¯Êý£¬ÎÞÐèµ÷ÓÃ.ÖжϲúÉú³ÉÃë¡¢·Ö¡¢Ê±ÐÅÏ¢ *****************************************************************/ void timer0() interrupt 1 {

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;//Ò»¶¨ÒªÖØÐ¸³³õÖµ countt1++;

if(countt1==20)//Èç¹ûcount=1000±íʾ²úÉúÁË1ÃëÖÓ

26