ÉÂÎ÷Àí¹¤Ñ§Ôº±ÏÒµÉè¼Æ
4.3 ϵͳÈí¼þÄ£¿é»¯Éè¼Æ
±¾ÎĽ«ÏµÍ³´óÖ·ÖΪÈçϼ¸¸öÄ£¿é£ºÖ÷º¯Êý¡¢¿ØÖÆÄ£¿é¡¢¾ØÕó¼üÅÌÄ£¿é¡¢RC522Ä£¿é¡¢·äÃùÆ÷Ä£¿é¡¢LCD12864Ä£¿éµÈ¡£
³õʼ»¯ ÊÇ É¾³ý°´¼ü°´Ï ·ñ ½øÈëÃŽûģʽ ·ñ ·ñ ÊÇ Ä£Ä⿪ÃÅ ·µ»Ø ͼ 4.2 ϵͳÁ÷³Ìͼ
ÏÔʾ·Ç·¨¿¨ ÊÇ ¿ªÊ¼ ×¢²á°´¼ü°´Ï ·ñ ½øÈë×¢²á¿¨Ä£Ê½ Íê³É×¢²á¿¨ ½øÈëɾ³ý¿¨Ä£Ê½ Íê³Éɾ³ý¿¨Ê½ ÊÇ·ñÓÐË¢¿¨ ÊÇ ÊÇ·ñºÏ·¨ 4.3.1 É䯵¿ØÖÆÄ£¿é
£¨1£©MFRC522¸´Î»²Ù×÷
ÔÚÉϵ¥Ö®ºóÒ»¶¨Òª¶ÔMFRC522½øÐи´Î»²Ù×÷£¬MFRC522ÊÇ¸ßµçÆ½¸´Î»ÓÐЧµØ£¬¿ÉÒÔÓÉSTC89C52µÄI/O¿ÚÖ±½Ó¸´Î»£¬Òª×¢ÒâµÄÊÇ£º
<1>±ØÐëÔÚSTC89C51³É¹¦¸´Î»150msÒÔºó£¬ÔÙ¶ÔMFRC522½øÐи´Î»£» <2>¸´Î»¸ßµçƽ³ÖÐø200usÒÔÉÏ£»
<3>Èô¸´Î»³É¹¦£¬MFRC522ÄÚ²¿µÄCommand¼Ä´æÆ÷µÄֵΪ0£¬Èç¹û²»Îª0£¬±ØÐëÖØÐ¸´Î»¡£
£¨2£©³õʼ»¯MFRC522ÄÚ²¿¼Ä´æÆ÷
ÔÚ¸´Î»³É¹¦ºó£¬ÔÙ¶ÔMFRC522µÄÄÚ²¿¼Ä´æÆ÷½øÐгõʼ»¯£¬Ö»ÓÐÕýÈ·³õʼ»¯Ö®ºó£¬MFRC522²ÅÄÜÕý³£¹¤×÷¡£
µÚ 16 Ò³ ¹² 61 Ò³
ÉÂÎ÷Àí¹¤Ñ§Ôº±ÏÒµÉè¼Æ
¿ª»ú¸´Î» ³õʼ»¯MFRC522 ÇëÇó²Ù×÷ ·ñ ÓÐÅöײ£¿ ÓÐ ·´Åöײ²Ù×÷ Ñ¡Ôñ¿¨ ÊÇ Í¨¹ýÑéÖ¤£¿ ·ñ ¿¨µÄÊý¾Ý²Ù×÷
ͼ 4.3 É䯵ģ¿éµÄ¹¤×÷Á÷ͼ
///////////////////////////////////////////////////////////////////// //¹¦ ÄÜ£º¸´Î»RC522
///////////////////////////////////////////////////////////////////// char PcdReset(void) {
SET_RC522RST; delay_ns(10); CLR_RC522RST; delay_ns(10); SET_RC522RST; delay_ns(10);
WriteRawRC(CommandReg,PCD_RESETPHASE); delay_ns(10);
WriteRawRC(ModeReg,0x3D);
WriteRawRC(TReloadRegL,30); WriteRawRC(TReloadRegH,0); WriteRawRC(TModeReg,0x8D);
WriteRawRC(TPrescalerReg,0x3E); WriteRawRC(TxAutoReg,0x40); return MI_OK; }
µÚ 17 Ò³ ¹² 61 Ò³
ÉÂÎ÷Àí¹¤Ñ§Ôº±ÏÒµÉè¼Æ
4.3.2 LCD12864Ä£¿é
ÑÓʱ ÑÓʱ ÉèÖù¤×÷·½Ê½ ÇåÆÁ ÑÓʱ ÑÓʱ ¿ªÊ¼ ½áÊø
¹¦ÄÜÉèÖà ÑÓʱ ¹â±êÉèÖà ÑÓʱ ÑÓʱ ¸´Î» ÏÔʾ¿ª
ͼ 4.4 LCD³õʼ»¯Á÷³Ìͼ
/*******************************************************************/ /* LCD³õʼ»¯É趨 */ /*******************************************************************/ void lcd_init() {
write_cmd(0x36);
delay(5);
write_cmd(0x30);
delay(5);
write_cmd(0x0C);
delay(5);
write_cmd(0x01);
delay(5); }
µÚ 18 Ò³ ¹² 61 Ò³
ÉÂÎ÷Àí¹¤Ñ§Ôº±ÏÒµÉè¼Æ
4.3.3 °´¼ü³ÌÐòÉè¼Æ
ÊäÈëÃÜÂë ÑÓʱ ÊÇ·ñ¼ì²âµ½Êý¾Ý ÊÇ ·ñ ÑéÖ¤ÃÜÂëÊÇ ·ñÕýÈ· LCD ÏÔʾ
ͼ 4.5ÃÜÂëÑéÖ¤Á÷³Ìͼ
if(key_count==8)
{
if( table[0]==KEY_BUF[0] && table[1]==KEY_BUF[1] && table[2]==KEY_BUF[2] && table[3]==KEY_BUF[3] && table[4]==KEY_BUF[4] && table[5]==KEY_BUF[5] && table[6]==KEY_BUF[6] &&
table[7]==KEY_BUF[7] ) //ÃÜÂðÕýÈ· {
bPass=1;
relay_ON(); //µÆ¿ª¹Ø display(2,0,5);
break; }
else //ÃÜÂë´íÎó {
relay_OFF(); beep1() ; bWarn=1;
display(2,0,6); break;
µÚ 19 Ò³ ¹² 61 Ò³