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

📄 lcm16864zk.lst

📁 一个基于51单片机的报警系统。包含有电路图
💻 LST
📖 第 1 页 / 共 5 页
字号:
 955   2        }
 956   1      
 957   1      }
 958          
 959          
 960          void EmployeeNum(void)
 961          {
 962   1       uchar k=0,j;
 963   1       uchar CodeN[4]={0,0,0,0};
 964   1       WritCommand(0x01);
 965   1       ShowPart10();                        //员工编号 0
 966   1       ShowPart1();
 967   1       while(k<4)
 968   1           {
 969   2           if(LKEY==0)
 970   2             {
 971   3              Delay_ms(10);
 972   3              if(LKEY==0)
 973   3               {
 974   4                CodeN[k]=j;
 975   4                  while(1)
 976   4                  {
 977   5                  if(LKEY==1) break;
 978   5                  }
 979   4                  break;
 980   4                }
 981   3              }
 982   2           if(MKEY==0)                              //按MKEY数字从0~9循环显示
 983   2                    {
 984   3                       Delay_ms(5);
 985   3                       if(MKEY==0)
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 17  

 986   3                        {
 987   4                          j++;
 988   4                          if(j>9) j=0;
 989   4                          WritData(0xa3);
 990   4                          WritData(0xb0+j);         //显示下个数
 991   4                          WritCommand(0x10);
 992   4                          while(1)
 993   4                          {
 994   5                          if(MKEY==1) break;
 995   5                          }
 996   4                        }
 997   3                      }
 998   2            if(RKEY==0)
 999   2                    {                               //光标移动到下一位 进行选择
1000   3                      Delay_ms(10);          //延时去抖动
1001   3                      if(RKEY==0)
1002   3                      {
1003   4                          CodeN[k]=j;
1004   4                          WritCommand(0x14);
1005   4                          k++;
1006   4                          if(k>=4)
1007   4                          {k=0;WritCommand(0x94);}
1008   4                          WritData(0xa3);
1009   4                          WritData(0xb0);
1010   4                          WritCommand(0x10);
1011   4                          j=0;
1012   4                          while(1)
1013   4                           {
1014   5                            if(RKEY==1) break;
1015   5                           }
1016   4                        }
1017   3                       }
1018   2              ShowTime();
1019   2              WritCommand(0x94+k);
1020   2              Delay_ms(10);
1021   2           }
1022   1         k=(CodeN[0]<<4)+CodeN[1];                 //存入员工编号到相应的位置
1023   1         pdx++;
1024   1         *pdx=k;
1025   1         pdx++;
1026   1         k=(CodeN[2]<<4)+CodeN[3];
1027   1         *pdx=k;
1028   1      }
1029          
1030          void AnlNum(void)         //最少与数
1031          {
1032   1       uchar k=0,j;
1033   1       WritCommand(0x01);
1034   1       ShowPart11();                        //最少与数 0
1035   1       ShowPart1();
1036   1       while(k<2)
1037   1           {
1038   2           if(LKEY==0)
1039   2             {
1040   3              Delay_ms(10);
1041   3              if(LKEY==0)
1042   3               {
1043   4                  pdx++;
1044   4                  *pdx=j;
1045   4                  RobNum=j;
1046   4                  while(1)
1047   4                  {
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 18  

1048   5                  if(LKEY==1) break;
1049   5                  }
1050   4                  break;
1051   4                }
1052   3              }
1053   2           if(MKEY==0)                        //0~9个数字循环显示
1054   2                    {
1055   3                       Delay_ms(5);
1056   3                       if(MKEY==0)
1057   3                        {
1058   4                          j++;
1059   4                          if(j>9) j=0;
1060   4                          WritData(0xa3);
1061   4                          WritData(0xb0+j);         //显示下个数
1062   4                          WritCommand(0x10);
1063   4                          while(1)
1064   4                          {
1065   5                          if(MKEY==1) break;
1066   5                          }
1067   4                        }
1068   3                      }
1069   2            if(RKEY==0)                      //进入下一个位置选择
1070   2                    {
1071   3                      Delay_ms(10);          //延时去抖动
1072   3                      if(RKEY==0)
1073   3                      {
1074   4                           WritCommand(0x96);
1075   4                           WritData(0xa3);
1076   4                           WritData(0xb0);
1077   4                           WritCommand(0x10);
1078   4                        }
1079   3                       }
1080   2              ShowTime();
1081   2              WritCommand(0x95);
1082   2              Delay_ms(10);
1083   2           }
1084   1      
1085   1      }
1086          
1087          void AnlSet(void)          //逻辑关系
1088          {
1089   1        bit i=1;
1090   1       WritCommand(0x01);
1091   1       ShowPart12();                        //逻辑关系: A
1092   1       ShowPart4();
1093   1       while(1)
1094   1           {
1095   2           if(LKEY==0)
1096   2             {
1097   3              Delay_ms(10);
1098   3              if(LKEY==0)                     //1表示是与的关系  0表示不是
1099   3               {                              //1表示是低级     0表示是高级可以直接产生报警
1100   4                  pdx++;
1101   4                  *pdx=i;
1102   4                  while(1)
1103   4                  {
1104   5                  if(LKEY==1) break;
1105   5                  }
1106   4                  break;
1107   4                }
1108   3              }
1109   2      
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 19  

1110   2            if(RKEY==0)                       //A 循环显示 B
1111   2                    {
1112   3                      Delay_ms(10);          //延时去抖动
1113   3                      if(RKEY==0)
1114   3                      {
1115   4                        WritCommand(0x95);
1116   4                        i=~i;
1117   4                        if(i==1)
1118   4                         {
1119   5                          WritCommand(0x95);
1120   5                          WritData(0xa6);WritData(0xa1);
1121   5                          WritCommand(0x10);
1122   5                          }
1123   4                           else
1124   4                             {
1125   5                             WritCommand(0x95);
1126   5                             WritData(0xa6);WritData(0xa2);
1127   5                             WritCommand(0x10);
1128   5                             }
1129   4      
1130   4                        }
1131   3                       }
1132   2              ShowTime();
1133   2              WritCommand(0x95);
1134   2              Delay_ms(10);
1135   2           }
1136   1      }
1137          
1138          void AnlTime(void)        //与等待时间
1139          {
1140   1       uchar j=0,k=0;
1141   1       uchar CodeN[3]={0,0,0};
1142   1       WritCommand(0x01);
1143   1       ShowPart13();                        //与等时间:000S
1144   1       ShowPart1();
1145   1       WritCommand(0x94);
1146   1       while(k<3)
1147   1           {
1148   2           if(LKEY==0)
1149   2             {
1150   3              Delay_ms(10);
1151   3              if(LKEY==0)
1152   3               {
1153   4      
1154   4                  CodeN[k]=j;
1155   4                  while(1)
1156   4                  {
1157   5                  if(LKEY==1) break;
1158   5                  }
1159   4                  break;
1160   4                }
1161   3              }
1162   2                   if(MKEY==0)                //0~9数字循环显示
1163   2                    {
1164   3                       Delay_ms(5);
1165   3                       if(MKEY==0)
1166   3                        {
1167   4                          j++;
1168   4                          if(j>9) j=0;
1169   4                          WritData(0xa3);
1170   4                          WritData(0xb0+j);         //显示下个数
1171   4                          WritCommand(0x10);
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 20  

1172   4                          while(1)
1173   4                          {
1174   5                          if(MKEY==1) break;
1175   5                          }
1176   4                        }
1177   3                      }
1178   2            if(RKEY==0)                      //进入下一个位置选择
1179   2                    {
1180   3                      Delay_ms(10);          //延时去抖动
1181   3                      if(RKEY==0)
1182   3                      {
1183   4                          CodeN[k]=j;
1184   4                          WritCommand(0x14);
1185   4                          k++;
1186   4                          if(k>=3)
1187   4                          {k=0;WritCommand(0x94);}
1188   4                          WritData(0xa3);
1189   4                          WritData(0xb0);
1190   4                          WritCommand(0x10);
1191   4                          j=0;
1192   4                          while(1)
1193   4                           {
1194   5                            if(RKEY==1) break;
1195   5                           }
1196   4      
1197   4                        }
1198   3                       }
1199   2              ShowTime();
1200   2              WritCommand(0x94+k);
1201   2              Delay_ms(10);
1202   2           }
1203   1       k=CodeN[0]*100+CodeN[1]*10+CodeN[2];
1204   1       pdx++;
1205   1       *pdx=k;
1206   1      }
1207          
1208          void RobSet1(void)             //填写  不填  继续
1209          {
1210   1       uchar i;
1211   1       WritCommand(0x0c);
1212   1       ShowPart14();
1213   1       while(1)
1214   1         {
1215   2           if(LKEY==0)                  //填写则把刚输入完的数据写入外部RAM中
1216   2             {
1217   3              Delay_ms(10);
1218   3              if(LKEY==0)
1219   3               {
1220   4                while(1)
1221   4                  {
1222   5                  if(LKEY==1) break;
1223   5                  }
1224   4                  pdx=0x0100;
1225   4                  i=*pdx;
1226   4                  *pdx=i+1;
1227   4                  break;
1228   4                }
1229   3              }                        //不填则放弃刚设定的数据
1230   2              if(MKEY==0)
1231   2             {
1232   3              Delay_ms(10);
1233   3              if(MKEY==0)
C51 COMPILER V7.06   LCM16864ZK                                                            12/21/2006 15:22:27 PAGE 21  

1234   3               {
1235   4      
1236   4               RobSetNext();
1237   4      
1238   4                  while(1)
1239   4                  {
1240   5                  if(LKEY==1) break;
1241   5                  }
1242   4                  break;
1243   4                }
1244   3              }
1245   2            if(RKEY==0)                      //继续输入下一个向量的设定
1246   2                    {
1247   3                      Delay_ms(10);          //延时去抖动
1248   3                      if(RKEY==0)
1249   3                      {
1250   4                   RobSetNext();
1251   4                       }
1252   3                     }
1253   2              ShowTime();
1254   2              Delay_ms(10);
1255   2           }
1256   1       }
1257          
1258          
1259          ////}////////////////////////////////////////////防盗设置
1260          
1261          void StealSet(void)
1262          {
1263   1       uchar j;
1264   1      // uchar CodeN[2];
1265   1       WritCommand(0x01);                     //清零
1266   1       WritCommand(0x0c);
1267   1       WritCommand(0x92);
1268   1       WritData(0xb7);WritData(0xc0);WritData(0xb5);WritData(0xc1);   //防盗设置
1269   1       WritData(0xc9);WritData(0xe8);WritData(0xd6);WritData(0xc3);
1270   1      
1271   1       ShowPart5();         //进入  另选
1272   1       while(1)
1273   1       {
1274   2        if(RKEY==0)
1275   2        {

⌨️ 快捷键说明

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