基于RFID的门禁系统protues仿真问题

2019-07-18 08:46发布

【protues仿真】这个怎么解决???? 基于RFID的门禁系统
捕获.PNG 捕获2.PNG 捕获3.PNG
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
武力戡乱
1楼-- · 2019-07-18 13:00
?????
射频没有!
还有什么问题?
yuxing2345
2楼-- · 2019-07-18 16:54
 精彩回答 2  元偷偷看……
yuxing2345
3楼-- · 2019-07-18 20:50
武力戡乱 发表于 2015-5-11 01:01
?????
射频没有!
还有什么问题?

仿真里面没有射频的元器件,在protues中由键盘输入模拟读卡器数据,通过输入密码与设定密码对比,可实现对通道进出权限的控制(密码输入进门的控制);在异常情况下(非法侵入、门超时未关)可实现自动/手动报警。
yuxing2345
4楼-- · 2019-07-19 02:07
yuxing2345 发表于 2015-5-11 13:38
仿真里面没有射频的元器件,在protues中由键盘输入模拟读卡器数据,通过输入密码与设定密码对比,可实现对通道进出权限的控制(密码输入进门的控制);在异常情况下(非法侵入、门超时未关)可实现自动/手动报警。
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include <math.h>
  4. #include <stdio.h>
  5. void lcd_init();
  6. void lcd_wcmd(unsigned char cmd);    //???????,?????
  7. void delay(unsigned int);            //???????,?????
  8. void lcd_pos(unsigned char pos);
  9. void lcd_wdat(unsigned char dat);
  10. void Password_importation(void);
  11. sbit rst=P2^5;
  12. sbit sclk=P2^6;
  13. sbit io=P2^7;
  14. sbit rs= P2^2;
  15. sbit rw = P2^1;
  16. sbit ep = P2^0;
  17. sbit REL=P2^4;//????, 0???
  18. sbit beep=P2^3;        //??      0???
  19. sbit doorcontact=P3^7;//??   0????
  20. #define uchar unsigned char
  21. #define uint unsigned int
  22. int face,face1,face2,face3,face4,face5,face6;
  23. /******************************?????*********************************/
  24. unsigned char code dis0[] = {"xihuadaxue!"};
  25. unsigned char code dis00[] = {"lvjiawei"};
  26. unsigned char code dis000[] = {"INPUT AGAIN!"};
  27. unsigned char code dis0000[] = {"WARNING!!!"};
  28. unsigned char code dis00000[] = {"CONTINUE........."};
  29. unsigned char code diskeep[] = {"FRENDS"};
  30. unsigned char code distouch[] = {"KEEP TOUCH!"};
  31. unsigned char code dis1[] = {"WELCOME!"};
  32. unsigned char code dis2[] = {"LVJIAWEI   :>"};
  33. unsigned char code dis3[] = {"PLEASE "};
  34. unsigned char code dis4[] = {"INPUT CODE:"};
  35. unsigned char code dis5[] = {"THE CODE :"};
  36. unsigned char code dis6[] = {"________"};
  37. unsigned char code dis7[] = {"THE CODE1 :"};  
  38. unsigned char code dis8[] = {"*     "};
  39. unsigned char code dis9[] = {"THE CODE2:"};
  40. unsigned char code dis10[] = {"**    "};
  41. unsigned char code dis11[] = {"THE CODE3:"};
  42. unsigned char code dis12[] = {"***   "};
  43. unsigned char code dis13[] = {"THE CODE4:"};
  44. unsigned char code dis14[] = {"****  "};
  45. unsigned char code dis15[] = {"THE CODE5:"};
  46. unsigned char code dis16[] = {"***** "};
  47. unsigned char code dis17[] = {"THE CODE6:"};
  48. unsigned char code dis18[] = {"******"};
  49. unsigned char code dis50[] = {" PLEASE WAIT! "};
  50. unsigned char code dis51[] = {" WAIT PLEASE !"};
  51. unsigned char code dis52[] = {"SORRY! "};
  52. unsigned char code dis53[] = {"CODE ERROR!"};
  53. unsigned char code dis54[] = {"  RIGHT CODE"};
  54. unsigned char code dis55[] = {"U ARE WELCOME !"};
  55. unsigned char code dis56[] = {" CODE ERROR"};
  56. unsigned char code dis57[] = {"THREETIMES!!!"};
  57. unsigned char tab_time[];
  58. unsigned char tab_1302[];
  59. unsigned char tab_ymdw[];
  60. unsigned char numface=0;
  61. unsigned char numface1=0;
  62. unsigned char numface2=0;
  63. unsigned char numface3=0;
  64. unsigned char code turepassword[6] ={6,6,6,6,6,6};//????
  65. unsigned char key_data=0;
  66. unsigned char password[]={0,0,0,0,0,0};
  67. unsigned char errortimes=0;
  68. uchar Number=0;
  69. int num;
  70. // ? ? ?:????//

  71.   void delay1ms(int z)          //???1ms   ? delay(1000)?1000???
  72. {
  73.         int x,y;
  74.         for(x=z;x>0;x--)
  75.         {
  76.                 for(y=110;y>0;y--);
  77.         }
  78. }
  79. void opendoor(void)
  80.         {
  81.         delay1ms(10);
  82.         REL=0;  
  83.          }
  84. void closedoor(void)
  85.         {
  86.       delay1ms(10);   
  87.         REL=1;                  
  88.          }
  89. void cancel(void)
  90.         {
  91.         delay1ms(100) ;
  92.        lcd_wcmd(0x01); //??
  93.        face1=0;                   //???????????
  94.        face2=0;                  //  ???????????
  95.        face3=0;                //        ???????????
  96.        face4=0;                //        ???????????
  97.        face5=0;                //        ???????????
  98.        face6=0;                 //         ???????????
  99. }
  100. void keeptouch(void)
  101. {
  102.                  unsigned char i;
  103.                 lcd_init();// ???LCD
  104.                 delay(10);
  105.                 lcd_pos(0x01);//??????
  106.                 i = 0;
  107.         while(diskeep[i] != '')
  108.         {
  109.         lcd_wdat(diskeep[i]);//????
  110.         i++;
  111.         }
  112.         lcd_pos(0x44);// ??????
  113.         i = 0;
  114.         while(distouch[i] != '')
  115.         {
  116.                 lcd_wdat(distouch[i]);// ????
  117.                 i++;
  118.         }
  119.         face=1;         //??0??????
  120.                 while(P1!=0x0f);
  121. }

  122.         void welcome(void)
  123. {
  124.                  unsigned char i;
  125.                 lcd_init();// ???LCD
  126.                 delay(10);
  127.                 lcd_pos(0x01);//??????
  128.                 i = 0;
  129.         while(dis1[i] != '')
  130.         {
  131.         lcd_wdat(dis1[i]);//????
  132.         i++;
  133.         }
  134.         lcd_pos(0x42);// ??????
  135.         i = 0;
  136.         while(dis2[i] != '')
  137.         {
  138.                 lcd_wdat(dis2[i]);// ????
  139.                 i++;
  140.         }
  141.         face=1;         //??0??????
  142.                 while(P1!=0x0f);

  143. }
  144. void loading(void)
  145. {
  146.                  unsigned char i;
  147.                 lcd_init();// ???LCD
  148.                 delay(10);
  149.                 lcd_pos(0x01);//??????
  150.                 i = 0;
  151.         while(dis0[i] != '')
  152.         {
  153.         lcd_wdat(dis0[i]);//????
  154.         i++;
  155.         }
  156.         lcd_pos(0x42);// ??????
  157.         i = 0;
  158.         while(dis00[i] != '')
  159.         {
  160.                 lcd_wdat(dis00[i]);// ????
  161.                 i++;
  162.         }
  163.         face=1;         //??0??????
  164.                 while(P1!=0x0f);
  165.          delay1ms(4000);
  166.          return;
  167. }
  168. void inputagain(void)
  169. {
  170.                  unsigned char i;
  171.                 lcd_init();// ???LCD
  172.                 delay(10);
  173.                 lcd_pos(0x01);//??????
  174.                 i = 0;
  175.         while(dis3[i] != '')
  176.         {
  177.         lcd_wdat(dis3[i]);//????
  178.         i++;
  179.         }
  180.         lcd_pos(0x42);// ??????
  181.         i = 0;
  182.         while(dis000[i] != '')
  183.         {
  184.                 lcd_wdat(dis000[i]);// ????
  185.                 i++;
  186.         }
  187.         face=1;         //??0??????
  188.                 while(P1!=0x0f);
  189.         delay(2000);
  190.          return;
  191.      
  192. }
  193. void error3times(void)
  194. {
  195.                 unsigned char i;
  196.                 lcd_init();// ???LCD
  197.                 delay(10);
  198.                 lcd_pos(0x01);//??????
  199.                 i = 0;
  200.                 while(dis56[i] != '')
  201.         {
  202.         lcd_wdat(dis56[i]);//????
  203.         i++;
  204.         }
  205.                 lcd_pos(0x42);// ??????
  206.                 i = 0;
  207.                 while(dis57[i] != '')
  208.         {
  209.         lcd_wdat(dis57[i]);// ????
  210.         i++;
  211.         }
  212.     delay1ms(500);          //???0.5ms      
  213. }
  214. void password_OK(void)
  215. {
  216.                 unsigned char i;
  217.                 lcd_init();// ???LCD
  218.                 delay(10);
  219.                 lcd_pos(0x01);//??????
  220.                 i = 0;
  221.                 while(dis54[i] != '')
  222.         {
  223.         lcd_wdat(dis54[i]);//????
  224.         i++;
  225.         }
  226.                 lcd_pos(0x42);// ??????
  227.                 i = 0;
  228.                 while(dis55[i] != '')
  229.         {
  230.         lcd_wdat(dis55[i]);// ????
  231.         i++;
  232.         }
  233.    
  234.     delay1ms(1000);          //???1ms  
  235.         loading();
  236.                
  237. }
  238.   void pass_error(void)
  239. {
  240.         unsigned char i;
  241.                 lcd_init();// ???LCD
  242.                 delay(10);
  243.                 lcd_pos(0x01);//??????
  244.                 i = 0;
  245.                 while(dis52[i] != '')
  246.         {
  247.         lcd_wdat(dis52[i]);//????
  248.         i++;
  249.         }
  250.                 lcd_pos(0x42);// ??????
  251.                 i = 0;
  252.                 while(dis53[i] != '')
  253.         {
  254.         lcd_wdat(dis53[i]);// ????
  255.         i++;
  256.         }
  257.    beep=0;
  258.    delay1ms(500);
  259.    beep=1;
  260.         inputagain();
  261.    }
  262. void pass_over(void)
  263. {
  264.                 unsigned char i;
  265.                 lcd_init();// ???LCD
  266.                 delay1ms(10);
  267.                 lcd_pos(0x01);//??????
  268.                 i = 0;
  269.                 while(dis50[i] != '')
  270.         {
  271.         lcd_wdat(dis50[i]);//????

  272.         i++;
  273.         }
  274.                 lcd_pos(0x42);// ??????
  275.                 i = 0;
  276.                 while(dis51[i] != '')
  277.         {
  278.         lcd_wdat(dis51[i]);// ????
  279.         i++;
  280.         }
  281.      delay1ms(2000);          //???2ms

  282. }

  283. void Pass_face6(void)
  284. {
  285.                 unsigned char i;
  286.                 lcd_init();// ???LCD
  287.                 delay(10);
  288.                 lcd_pos(0x01);//??????
  289.                 i = 0;
  290.                 while(dis17[i] != '')
  291.         {
  292.         lcd_wdat(dis17[i]);//????
  293.         i++;
  294.         }
  295.                 lcd_pos(0x42);// ??????
  296.                 i = 0;
  297.                 while(dis18[i] != '')
  298.         {
  299.         lcd_wdat(dis18[i]);// ????
  300.         i++;
  301.         }
  302.                 face6=1;//???6???????
  303.         while(P1!=0x0f);
  304. }
  305. void Pass_face5(void)
  306. {
  307.                 unsigned char i;
  308.                 lcd_init();// ???LCD
  309.                 delay(10);
  310.                 lcd_pos(0x01);//??????
  311.                 i = 0;
  312.                 while(dis15[i] != '')
  313.         {
  314.         lcd_wdat(dis15[i]);//????
  315.         i++;
  316.         }
  317.                 lcd_pos(0x42);// ??????
  318.                 i = 0;
  319.                 while(dis16[i] != '')
  320.         {
  321.         lcd_wdat(dis16[i]);// ????
  322.         i++;
  323.         }
  324.                 face5=1;//???5???????
  325.         while(P1!=0x0f);
  326. }
  327. void Pass_face4(void)
  328. {
  329.                 unsigned char i;
  330.                 lcd_init();// ???LCD
  331.                 delay(10);
  332.                 lcd_pos(0x01);//??????
  333.                 i = 0;
  334.                 while(dis13[i] != '')
  335.         {
  336.         lcd_wdat(dis13[i]);//????
  337.         i++;
  338.         }
  339.                 lcd_pos(0x42);// ??????
  340.                 i = 0;
  341.                 while(dis14[i] != '')
  342.         {
  343.         lcd_wdat(dis14[i]);// ????
  344.         i++;
  345.         }
  346.         face4=1;// ???4???????
  347.         while(P1!=0x0f);
  348. }
  349. void Pass_face3(void)
  350. {
  351.                 unsigned char i;
  352.                 lcd_init();// ???LCD
  353.                 delay(10);
  354.                 lcd_pos(0x01);//??????
  355.                 i = 0;
  356.                 while(dis11[i] != '')
  357.         {
  358.         lcd_wdat(dis11[i]);//????
  359.         i++;
  360.         }
  361.                 lcd_pos(0x42);// ??????
  362.                 i = 0;
  363.                 while(dis12[i] != '')
  364.         {
  365.         lcd_wdat(dis12[i]);// ????
  366.         i++;
  367.         }
  368.         face3=1;//???3???????
  369.         while(P1!=0x0f);
  370. }
  371. void Pass_face2(void)
  372. {
  373.                 unsigned char i;
  374.                 lcd_init();// ???LCD
  375.                 delay(10);
  376.                 lcd_pos(0x01);//??????
  377.                 i = 0;
  378.                 while(dis9[i] != '')
  379.         {
  380.         lcd_wdat(dis9[i]);//????
  381.         i++;
  382.         }
  383.                 lcd_pos(0x42);// ??????
  384.                 i = 0;
  385.                 while(dis10[i] != '')
  386.         {
  387.         lcd_wdat(dis10[i]);// ????
  388.         i++;
  389.         }
  390.         face2=1;//???2???????
  391.         while(P1!=0x0f);
  392. }
  393. void Pass_face1(void)
  394. {
  395.                 unsigned char i;
  396.                 lcd_init();// ???LCD
  397.                 delay(10);
  398.                 lcd_pos(0x01);//??????
  399.                 i = 0;
  400.                 while(dis7[i] != '')
  401.         {
  402.         lcd_wdat(dis7[i]);//????
  403.         i++;
  404.         }
  405.                 lcd_pos(0x42);// ??????
  406.                 i = 0;
  407.                 while(dis8[i] != '')
  408.         {
  409.         lcd_wdat(dis8[i]);// ????

  410.         i++;
  411.         }
  412.         while(P1!=0x0f);
  413.     face1=1;//???1???????
  414. }

  415. void codeinput(void)
  416. {
  417.                 unsigned char i;
  418.                 lcd_init();// ???LCD
  419.                 delay(10);
  420.                 lcd_pos(0x01);//??????
  421.                 i = 0;
  422.         while(dis3[i] != '')
  423.         {
  424.         lcd_wdat(dis3[i]);//????
  425.         i++;
  426.         }
  427.         lcd_pos(0x42);// ??????
  428.         i = 0;
  429.         while(dis4[i] != '')
  430.         {
  431.                 lcd_wdat(dis4[i]);// ????
  432.                 i++;
  433.         }
  434.         face=1;         //??0??????
  435.                 while(P1!=0x0f);
  436. }


  437. uchar keyscan(void)
  438. {
  439.    uchar keycode=0xff;
  440.    uchar keycode1,keycode2;
  441.     P1 =0xf0;
  442.    if(P1 !=0xf0)
  443.    {
  444.       delay(100);
  445.             if(P1 !=0xf0)
  446.         {  
  447.           keycode1=P1;
  448.           P1=0x0f;
  449.           keycode2=P1;
  450.           keycode=keycode2 | keycode1;
  451.   switch(keycode)
  452.            {      case 0xff:keycode=00;break;
  453.                   case 0xee:keycode=0;break;
  454.                   case 0xde:keycode=1;break;
  455.                   case 0xbe:keycode=2;break;
  456.                   case 0x7e:keycode=3;break;
  457.                   case 0xed:keycode=4;break;
  458.                   case 0xdd:keycode=5;break;
  459.                   case 0xbd:keycode=6;break;
  460.                   case 0x7d:keycode=7;break;
  461.                   case 0xeb:keycode=8;break;
  462.                   case 0xdb:keycode=9;break;
  463.                   case 0xbb:keycode=10;break;
  464.                   case 0x7b:keycode=11;break;
  465.                   case 0xe7:keycode=12;break;
  466.                   case 0xd7:keycode=13;break;
  467.                   case 0xb7:keycode=14;break;
  468.                   case 0x77:keycode=15;break;
  469.                   }
  470.                    }
  471.                     }
  472.         return        keycode;                         //????
  473.    }

  474. void warning(void)
  475. {
  476.        while(1)
  477.        {  beep=0;
  478.          delay1ms(500);
  479.              beep=1;
  480.          delay1ms(500);
  481.          beep=0;
  482.        
  483.         }
  484. }
  485.         void warningshow(void)
  486. {
  487.                  unsigned char i;
  488.                 lcd_init();// ???LCD
  489.                 delay(10);
  490.                 lcd_pos(0x01);//??????
  491.                 i = 0;
  492.         while(dis56[i] != '')
  493.         {
  494.         lcd_wdat(dis56[i]);//????
  495.         i++;
  496.         }
  497.         lcd_pos(0x42);// ??????
  498.         i = 0;
  499.         while(dis0000[i] != '')
  500.         {
  501.                 lcd_wdat(dis0000[i]);// ????
  502.                 i++;
  503.         }
  504.         face=1;         //??0??????
  505.                 while(P1!=0x0f);

  506. }
  507.         void warningshow1(void)
  508. {
  509.                  unsigned char i;
  510.                 lcd_init();// ???LCD
  511.                 delay(10);
  512.                 lcd_pos(0x01);//??????
  513.                 i = 0;
  514.         while(dis00000[i] != '')
  515.         {
  516.         lcd_wdat(dis00000[i]);//????
  517.         i++;
  518.         }
  519.         lcd_pos(0x42);// ??????
  520.         i = 0;
  521.         while(dis0000[i] != '')
  522.         {
  523.                 lcd_wdat(dis0000[i]);// ????
  524.                 i++;
  525.         }
  526.         face=1;         //??0??????
  527.         warning();        while(P1!=0x0f);

  528. }
  529. void passwordcomparison(void)         //??????
  530. {
  531.   uchar Number=0;
  532.   while((password[Number]==turepassword[Number])&(Number<6)) // ????
  533.   {
  534.   Number++;                 // ????1
  535.   }
  536.   if(Number>=6)               // ????
  537.    {
  538.    password_OK();            // ????????????
  539.      REL=0;               
  540.    delay1ms(10000);          //10???????     
  541.     REL=1;                         // ?????,0???
  542.    beep=1;                        //????,1????                    
  543.    Number=0;
  544.    }
  545.    else
  546.    {
  547.     pass_error();//??“???????”
  548.         errortimes++;
  549.         if(errortimes==3)
  550.    {         
  551.      error3times();
  552.          REL=1 ;               //?????,1???         
  553.         warning();              //????1?              
  554.         warningshow();
  555.          errortimes=0;
  556.         }            
  557.    }   
  558.   }
  559. //???//
  560. void main(void)
  561. {   
  562.     unsigned char k;

  563.    ds1302_init();
  564.    ds1302(); //?????? ????
  565.         {
  566.         while(1)
  567.      {
  568. if(doorcontact==0&&REL==1)
  569.      {   
  570.         warningshow1();
  571.           }
  572.         else if(face6==1)
  573.         {
  574.                  pass_over(); //6?????????
  575.               passwordcomparison(); //????
  576.               face6=0;
  577.              }
  578.       
  579.          else   
  580. {
  581.              k = keyscan();              
  582.             if((k>=0 && k<=9)&&(face==1))          //????? 1
  583.            {
  584.                   key_data=k;
  585.                   password[0]=key_data;
  586.                   key_data=0;
  587.                    face=2;
  588.               Pass_face1();
  589.                        }
  590. else if((k>=0 && k<=9)&&(face==2)&&(face1==1)) //?????       
  591.       {
  592.                   key_data=k;
  593.                   password[1]=key_data;
  594.                   key_data=0;
  595.                  face1=2;
  596.                  Pass_face2();
  597.                  }
  598. else if((k>=0 && k<=9)&&(face==2)&&(face1==2)&&(face2==1)) //???3?       
  599.                  {
  600.                   key_data=k;
  601.                   password[2]=key_data;
  602.                   key_data=0;
  603.                  face2=2;
  604.                  Pass_face3();
  605.                  }
  606. else if((k>=0 && k<=9)&&(face==2)&&(face1==2)&&(face2==2)&&(face3==1)) //???4?
  607.                  {
  608.                   key_data=k;
  609.                   password[3]=key_data;
  610.                    key_data=0;
  611.                  face3=2;
  612.                  Pass_face4();
  613.                  }
  614. else if((k>0&&k<9)&&(face==2)&&(face1==2)&&(face2==2)&&(face3==2)&&(face4==1)) //???5?
  615.                  {
  616.                   key_data=k;
  617.                   password[4]=key_data;
  618.                    key_data=0;
  619.                  face4=2;
  620.                  Pass_face5();
  621.                                 }
  622. else if((k>=0&&k<=9)&&(face==2)&&(face1==2)&&(face2==2)&&(face3==2)&&(face4==2)&&(face5==1)) //???6?         6
  623.                  {
  624.                   key_data=k;
  625.                   password[5]=key_data;
  626.                    key_data=0;
  627.                  face5=2;
  628.                  Pass_face6();
  629.                  }
  630.         else if(k==15)                 //??????
  631.             {  
  632.           codeinput();           //codeinput????
  633.             
  634.                   }
  635.         else if(k==14)           //????       
  636.             {
  637.                  welcome();      //welcom????
  638.                  }
  639.         else if(k==13)                 //????
  640.             {   
  641.                  welcome();
  642.                  opendoor();     //opendoor????
  643.                          }
  644.          else if(k==12)          //????

  645.             {    keeptouch();
  646.                  closedoor();    //close????
  647.                           }
  648.                else if(k==11)          //????
  649.              {  
  650.                         cancel();          //cancel????                          
  651.                       }
  652.          
  653.                else if(k==10)            //????
  654.          {
  655.                    warningshow1();
  656.                   }
  657.                    }
  658.                      }             
  659.                           }
  660.   }
复制代码
武力戡乱
5楼-- · 2019-07-19 03:41
yuxing2345 发表于 2015-5-11 13:44

一般,门禁系统呗!
武力戡乱
6楼-- · 2019-07-19 09:38
还有这个程序好像没有加载进去!

一周热门 更多>