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

📄 777.lst

📁 电子密码锁程序和电路用51单片机加上矩阵键盘控制
💻 LST
📖 第 1 页 / 共 3 页
字号:
 720   5      
 721   5                        case 0x0b: 
 722   5      
 723   5                          key=14; 
 724   5      
 725   5                          break; 
 726   5      
 727   5                        case 0x07: 
 728   5      
 729   5                          key=15; 
 730   5      
 731   5                          break; 
 732   5      
 733   5                      } 
 734   4      
 735   4                    temp=P3; 
 736   4      
 737   4                    P1_1=~P1_1; 
C51 COMPILER V8.05a   777                                                                  07/26/2008 17:30:05 PAGE 13  

 738   4      
 739   4                    if((key>=0) && (key<10)) 
 740   4      
 741   4                      { 
 742   5      
 743   5                        if(keycount<6) 
 744   5      
 745   5                          { 
 746   6      
 747   6                            getps[keycount]=key; 
 748   6      
 749   6                            dispbuf[keycount+2]=19; 
 750   6      
 751   6                          } 
 752   5      
 753   5                        keycount++; 
 754   5      
 755   5                        if(keycount==6) 
 756   5      
 757   5                          { 
 758   6      
 759   6                            keycount=6; 
 760   6      
 761   6                          } 
 762   5      
 763   5                          else if(keycount>6) 
 764   5      
 765   5                            { 
 766   6      
 767   6                              keycount=6; 
 768   6      
 769   6                              keyoverflag=1;//key overflow                        
 770   6      
 771   6                            } 
 772   5      
 773   5                      } 
 774   4      
 775   4                      else if(key==12)//delete key 
 776   4      
 777   4                        { 
 778   5      
 779   5                          if(keycount>0) 
 780   5      
 781   5                            { 
 782   6      
 783   6                              keycount--; 
 784   6      
 785   6                              getps[keycount]=0; 
 786   6      
 787   6                              dispbuf[keycount+2]=16; 
 788   6      
 789   6                            } 
 790   5      
 791   5                            else 
 792   5      
 793   5                              { 
 794   6      
 795   6                                keyoverflag=1; 
 796   6      
 797   6                              } 
 798   5      
 799   5                        } 
C51 COMPILER V8.05a   777                                                                  07/26/2008 17:30:05 PAGE 14  

 800   4      
 801   4                        else if(key==15)//enter key 
 802   4      
 803   4                          { 
 804   5      
 805   5                            if(keycount!=pslen) 
 806   5      
 807   5                              { 
 808   6      
 809   6                                errorflag=1; 
 810   6      
 811   6                                rightflag=0; 
 812   6      
 813   6                                second3=0; 
 814   6      
 815   6                              } 
 816   5      
 817   5                              else 
 818   5      
 819   5                                { 
 820   6      
 821   6                                  for(i=0;i<keycount;i++) 
 822   6      
 823   6                                    { 
 824   7      
 825   7                                      if(getps[i]!=ps[i]) 
 826   7      
 827   7                                        { 
 828   8      
 829   8                                          i=keycount; 
 830   8      
 831   8                                          errorflag=1; 
 832   8      
 833   8                                          rightflag=0; 
 834   8      
 835   8                                          second3=0; 
 836   8      
 837   8                                          goto a2; 
 838   8      
 839   8                                        } 
 840   7      
 841   7                                    } 
 842   6      
 843   6                                  errorflag=0; 
 844   6      
 845   6                                  rightflag=1; 
 846   6      
 847   6      a2:                          i=keycount; 
 848   6      
 849   6                                } 
 850   5      
 851   5                          } 
 852   4      
 853   4                    temp=temp & 0x0f;              
 854   4      
 855   4                    while(temp!=0x0f) 
 856   4      
 857   4                      { 
 858   5      
 859   5                        temp=P3; 
 860   5      
 861   5                        temp=temp & 0x0f;              
C51 COMPILER V8.05a   777                                                                  07/26/2008 17:30:05 PAGE 15  

 862   5      
 863   5                      } 
 864   4      
 865   4                    keyoverflag=0;//????????? 
 866   4      
 867   4                  }                          
 868   3      
 869   3              } 
 870   2      
 871   2            
 872   2      
 873   2          } 
 874   1      
 875   1      } 
 876          
 877          void t0(void) interrupt 1 using 0 
 878          
 879          { 
 880   1      
 881   1        TH0=(65536-500)/256; 
 882   1      
 883   1        TL0=(65536-500)%256; 
 884   1      
 885   1        
 886   1      
 887   1        flashcount++; 
 888   1      
 889   1        if(flashcount==8) 
 890   1      
 891   1          { 
 892   2      
 893   2            flashcount=0; 
 894   2      
 895   2            P0=dispcode[dispbuf[dispcount]]; 
 896   2      
 897   2            P2=dispbit[dispcount]; 
 898   2      
 899   2            dispcount++; 
 900   2      
 901   2            if(dispcount==8) 
 902   2      
 903   2              { 
 904   3      
 905   3                dispcount=0; 
 906   3      
 907   3              } 
 908   2      
 909   2          } 
 910   1      
 911   1        
 912   1      
 913   1        if((errorflag==1) && (rightflag==0)) 
 914   1      
 915   1          { 
 916   2      
 917   2            bb++; 
 918   2      
 919   2            if(bb==800) 
 920   2      
 921   2              { 
 922   3      
 923   3                bb=0; 
C51 COMPILER V8.05a   777                                                                  07/26/2008 17:30:05 PAGE 16  

 924   3      
 925   3                alarmflag=~alarmflag; 
 926   3      
 927   3              } 
 928   2      
 929   2            if(alarmflag==1)//sound alarm signal 
 930   2      
 931   2              { 
 932   3      
 933   3                P1_7=~P1_7; 
 934   3      
 935   3              } 
 936   2      
 937   2        
 938   2      
 939   2            aa++; 
 940   2      
 941   2            if(aa==800)//light alarm signal 
 942   2      
 943   2              { 
 944   3      
 945   3                aa=0; 
 946   3      
 947   3                P1_0=~P1_0; 
 948   3      
 949   3              } 
 950   2      
 951   2            second3++; 
 952   2      
 953   2            if(second3==6400) 
 954   2      
 955   2              { 
 956   3      
 957   3                second3=0; 
 958   3      
 959   3                errorflag=0; 
 960   3      
 961   3                rightflag=0; 
 962   3      
 963   3                alarmflag=0; 
 964   3      
 965   3                bb=0; 
 966   3      
 967   3                aa=0; 
 968   3      
 969   3              }      
 970   2      
 971   2          } 
 972   1      
 973   1          else if((errorflag==0) && (rightflag==1)) 
 974   1      
 975   1            { 
 976   2      
 977   2              P1_0=0; 
 978   2      
 979   2              cc++; 
 980   2      
 981   2              if(cc<1000) 
 982   2      
 983   2                { 
 984   3      
 985   3                  okflag=1; 
C51 COMPILER V8.05a   777                                                                  07/26/2008 17:30:05 PAGE 17  

 986   3      
 987   3                } 
 988   2      
 989   2                else if(cc<2000) 
 990   2      
 991   2                  { 
 992   3      
 993   3                    okflag=0; 
 994   3      
 995   3                  } 
 996   2      
 997   2                  else 
 998   2      
 999   2                    { 
1000   3      
1001   3                      errorflag=0; 
1002   3      
1003   3                      rightflag=0; 
1004   3      
1005   3                      P1_7=1; 
1006   3      
1007   3                      cc=0; 
1008   3      
1009   3                      oka=0; 
1010   3      
1011   3                      okb=0; 
1012   3      
1013   3                      okflag=0; 
1014   3      
1015   3                      P1_0=1; 
1016   3      
1017   3                    } 
1018   2      
1019   2              if(okflag==1) 
1020   2      
1021   2                { 
1022   3      
1023   3                  oka++; 
1024   3      
1025   3                  if(oka==2) 
1026   3      
1027   3                    { 
1028   4      
1029   4                      oka=0; 
1030   4      
1031   4                      P1_7=~P1_7; 
1032   4      
1033   4                    } 
1034   3      
1035   3                } 
1036   2      
1037   2                else 
1038   2      
1039   2                  { 
1040   3      
1041   3                    okb++; 
1042   3      
1043   3                    if(okb==3) 
1044   3      
1045   3                      { 
1046   4      
1047   4                        okb=0; 
C51 COMPILER V8.05a   777                                                                  07/26/2008 17:30:05 PAGE 18  

1048   4      
1049   4                        P1_7=~P1_7; 
1050   4      
1051   4                      } 
1052   3      
1053   3                  } 
1054   2      
1055   2            } 
1056   1      
1057   1        
1058   1      
1059   1        if(keyoverflag==1) 
1060   1      
1061   1          { 
1062   2      
1063   2            P1_7=~P1_7; 
1064   2      
1065   2          } 
1066   1      
1067   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1343    ----
   CONSTANT SIZE    =     28    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     35    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      6    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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