⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 验钞机程序.c

📁 一款新型能识别钞票面值的验钞机程序
💻 C
📖 第 1 页 / 共 2 页
字号:
               }
          P2_0=0;P2_1=0;P2_2=1;P2_3=1;                /*电机正转*************************/
          TIME=0;
          while(1)
               {if(TIME>=150)
                  break;
               }
          XS_TYPE=1;                                  /*使显示变为第一种显示方式*********/
          P0_3=1;
          P0_4=1;
/****************************************************************************************/
          initial();                                  /*程序初始化***********************/
          while(1){
               while(1)
                    {ZB=1;WJ=0;                       /*真币标志位置位,钱未进标志位复位**/
	             if(P1_1==0)                      /*如果按下清零按钮则币值清0********/
                       {TIME=0;
                        delay(100);
                        if(P1_1==1)
                          {RMB=0;
                           XS_TYPE=1;
                           break;
                          }
                       }
                     if(P1_4==0)                      /*当有钱进入时就可以检测了*********/
                       {
                        TIME=0;                       /*时间数清零***********************/
                        DFICLD_NUMBER=0;              /*磁信号脉冲数清零*****************/
                        P2_0=0;P2_1=0;P2_2=1;P2_3=1;  /*电机正转*************************/
                        DFICLD_TIMER=0;
                        while(1)
                             {if(DFICLD_TIMER>=20)    /*延时后检测磁信号*****************/
                                 IE=0x86;
                                 
                              if((P1_2==0)&&(P1_3==0))/*当钱到了后端检测点时退出循环*****/
                                {delay(1);
                                 if((P1_2==0)&&(P1_3==0))
                                   {IE=0x87;
                                    break;
                                   }
                                }
                                
                              if(TIME>=200)            /*当设定时间到时退出循环**********/
                                {WJ=1;                 /*钱未进标志位置位****************/
                                 break;
                                }
                             }
                        if(WJ)                         /*如果钱未进去,则初使化**********/
                          {P2_0=1;P2_1=1;P2_2=1;P2_3=1;/*电机停转************************/
                           XS_TYPE=2;                  /*使显示变为第二种显示方式********/
                           while(1)
                                {if(P1_4==1)
                                    break;
                                }
                           initial();
                           break;
                          }
                        while(1)                        /*当钱出LEN检测点时才停止循环****/
                             {if((P1_2==1)&&(P1_3==1))
                                {delay(1);
                                 if((P1_2==1)&&(P1_3==1))
                                   {IE=0x82;
                                    break;
                                   }
                                }
                             }
/****************************************************************************************/                        
                        if(166<=PULSE_NUMBER&&PULSE_NUMBER<=171&&DFICLD_NUMBER>=4) /*测试人民币类型*/
                           rmb_type=1;
                        else if(176<=PULSE_NUMBER&&PULSE_NUMBER<=179&&DFICLD_NUMBER>=4)
                               rmb_type=1;
                        else if(161<=PULSE_NUMBER&&PULSE_NUMBER<=165&&DFICLD_NUMBER>=4)
                                rmb_type=2;
                        else if(171<=PULSE_NUMBER&&PULSE_NUMBER<=174&&DFICLD_NUMBER>=4)
                                rmb_type=2;
                        else if(155<=PULSE_NUMBER&&PULSE_NUMBER<=159&&DFICLD_NUMBER>=2)
                                rmb_type=3;
                        else if(150<=PULSE_NUMBER&&PULSE_NUMBER<=154&&DFICLD_NUMBER>=2)
                               rmb_type=4;
                        else if(145<=PULSE_NUMBER&&PULSE_NUMBER<=149&&DFICLD_NUMBER>=2)
                               rmb_type=5;
                        else rmb_type=0;
                        switch(rmb_type)                 /*根据面额累加,并显示*/
                              {case 1:RMB=RMB+100;ZB++;break;
                               case 2:RMB=RMB+50;ZB++;break;
                               case 3:RMB=RMB+20;ZB++;break;
                               case 4:RMB=RMB+10;ZB++;break;
                               case 5:RMB=RMB+5;ZB++;break;
                       /*如果检测的人民币不在设定的币种范围内就判为假币*/
                               default:P2_0=1;P2_1=1;P2_2=0;P2_3=0; /*电机反转*/
                                       P2_7=0;                      /*报警*/
                                       XS_TYPE=2;                   /*使显示变为第二种显示方式*/
                                       TIME=0;
                                       while(1)
                                            {if(P1_4==0)
                                               {P2_7=1;             /*关报警电路*/
                                                delay(1);
                                                if(P1_4==0)
                                                   break;
                                               }
                                             if(TIME>=200)/*当设定时间到时退出循环*/
                                               {P2_7=1;   /*关报警电路*/
                                                WJ=1;     /*钱未进标志位置位*/
                                                break;
                                               }
                                            }
                                       if(WJ)             /*如果钱还未退回,则初使化*/
                                         {initial();
                                          break;
                                         }
                                       TIME=0;
                                       while(1)
                                            {if(TIME>=100)
                                                break;
                                            }
                                       P2_0=1;P2_1=1;P2_2=1;P2_3=1; /*电机停转*/

                                       break;
                                }
                        if(RMB>=1000)                      /*如果人民币超出显示范围就减一千*/
                          {RMB=RMB-1000;}
                       
/******************************************************************************************/


/****************************************************************************************/
                       if(P1_4==0)                     /*直到钱退出后才能再次检测********/
                          while(1)
                            {if(P1_4==1)
                                break;
                            }
                       if(ZB==2)                       /*如果钱的确是真的就将其安全送出**/
                         {MOTOL_DELAY_TIME=0;
                          XS_TYPE=1;                   /*使显示变为第一种显示方式********/
                          while(1)
                               {if(MOTOL_DELAY_TIME==10)
                                   break;
                               }
                         }
                       initial();                      /*程序初使化**********************/
                       }

                    }
              }
            }
/****************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -