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

📄 main.lst

📁 读写ID卡源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 784          {
 785   1              TR0=0;
 786   1              TL0=0x89;                //定时为130uS;  0x89=137   137=256-(x*(11059200/12000000))    x=130
 787   1      //      TL0=0x10;       
 788   1      //      TH0=0xff;
 789   1      //      TL0=0x0f;
 790   1              TF0=0;
 791   1              TR0=1;
 792   1              ET0=1;
 793   1      
 794   1      
 795   1              if(M_FLAG==0)
 796   1              {
 797   2                      if(SHORT_FLAG==0)
 798   2                              M_STA=0;
 799   2                      else
 800   2                              SHORT_FLAG=0;
 801   2              }
 802   1              return;
 803   1      }
 804          /***************************************************************************/
 805          //;;;;;;;;;;read inter data flash(EEPROM)program ;;;;;;;;;;;;;;;;
 806          //;;;;;;;;;;;;;;ext address data is form 0~29696;;;;;;;;;;;;;;;;;;;;
 807          unsigned char read_eeprom(unsigned int addrdata)
 808          {
 809   1                      unsigned int address;
 810   1                      unsigned char data1;
 811   1                      address=0x2000+addrdata;
 812   1                      ISP_ADDRH=(unsigned char)(address>>8);
 813   1                      ISP_ADDRL=(unsigned char)address;
 814   1      //              EA=0;
 815   1                      ISP_CONTR=WAIT_TIME;
 816   1                      ISP_CONTR=0x80;
 817   1                      ISP_CMD=ISP_IAP_BYTE_READ;
 818   1                      ISP_TRIG=0x46;
 819   1                      ISP_TRIG=0xb9;
 820   1                      ;;;
 821   1                      data1=ISP_DATA;
 822   1      //              EA=1;
 823   1                      return data1;
 824   1      }
 825          //;;;;;;;;;;write data flash(EEPROM) program;;;;;;;;;;;;;;;;;;
 826          //;;;;;;;;;;;ext address 0~29696   data :;;;;;;;;;;;;;;;;;;;;
 827          void write_eeprom(unsigned int addrdata,unsigned char data2)
 828          {
 829   1                      unsigned int address;
 830   1                      address=0x2000+addrdata;
 831   1                      ISP_DATA=data2;
 832   1                      ISP_ADDRH=(unsigned char)(address>>8);
 833   1                      ISP_ADDRL=(unsigned char)address;
 834   1      //              EA=0;
 835   1                      ISP_CONTR=WAIT_TIME;
 836   1                      ISP_CONTR=0x80;
 837   1                      ISP_CMD=ISP_IAP_BYTE_PROGRAM;
 838   1                      ISP_TRIG=0x46;
 839   1                      ISP_TRIG=0xb9;
 840   1      //              EA=1;
 841   1      }
 842          void write_pagedata(unsigned char pagenumber)
 843          {
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 19  

 844   1                      unsigned int i;
 845   1                      unsigned char sectors;
 846   1                      sectors=pagenumber;
 847   1                      erase_eeprom(sectors);
 848   1                      for(i=0;i<4;i++)
 849   1                      write_eeprom(sectors*512+i,snr[i]);
 850   1                      for(i=4;i<512;i++)
 851   1                      write_eeprom(sectors*512+i,00);
 852   1      }
 853          
 854          void erase_eeprom(unsigned char sectors)
 855          {
 856   1                      unsigned int addr;
 857   1                      addr=0x2000+sectors*0x200;                //89c51rc is 0x2000  89c54rd+ is 0x8000
 858   1                      ISP_ADDRH=(unsigned char)(addr>>8);
 859   1                      ISP_ADDRL=(unsigned char)addr;
 860   1      //              EA=0;
 861   1                      ISP_CONTR=WAIT_TIME;
 862   1                      ISP_CONTR=0x80;
 863   1                      ISP_CMD=ISP_IAP_SECTOR_ERASE;
 864   1                      ISP_TRIG=0x46;
 865   1                      ISP_TRIG=0xb9;
 866   1      //              EA=1;
 867   1      
 868   1      }
 869          void read_cardno(void)
 870          {
 871   1              unsigned char i;
 872   1              for(i=0;i<4;i++)
 873   1              snr4[i]=read_eeprom(i);
 874   1      }
 875          
 876          void read_first(void)
 877          {
 878   1              unsigned int i;
 879   1              unsigned char j;
 880   1              unsigned char ss1;
 881   1              select_500(0);
 882   1              for(i=0;i<53;i++)
 883   1              {
 884   2                      ss1=readcard1();
 885   2                      if(ss1==0)
 886   2                      {
 887   3                              for(i=0;i<4;i++)
 888   3                              snr4[i]=snr[i];
 889   3                              write_pagedata(0);
 890   3                              led_light(0);
 891   3                              break;
 892   3                      }
 893   2              }
 894   1      
 895   1      }
 896          
 897          
 898          
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 20  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Com00DB (BEGIN)
0000         L?0220:
0000 7400        R     MOV     A,#LOW M_IDATA+01H
0002 2F                ADD     A,R7
0003 F582              MOV     DPL,A
0005 E4                CLR     A
0006 3400        R     ADDC    A,#HIGH M_IDATA+01H
0008 F583              MOV     DPH,A
000A E0                MOVX    A,@DPTR
000B FE                MOV     R6,A
000C 7400        R     MOV     A,#LOW snr
000E 2F                ADD     A,R7
000F         L?0221:
000F F582              MOV     DPL,A
0011 E4                CLR     A
0012 3400        R     ADDC    A,#HIGH snr
0014 F583              MOV     DPH,A
0016 22                RET     
0017         L?0222:
0017 FF                MOV     R7,A
0018 EE                MOV     A,R6
0019 3420              ADDC    A,#020H
001B AD07              MOV     R5,AR7
001D F5E3              MOV     ISP_ADDRH,A
001F 8DE4              MOV     ISP_ADDRL,R5
0021         L?0223:
0021 75E701            MOV     ISP_CONTR,#01H
0024 75E780            MOV     ISP_CONTR,#080H
0027 22                RET     
0028         L?0224:
0028         L?0225:
0028 C28C              CLR     TR0
002A 900000      R     MOV     DPTR,#M_STA
002D E4                CLR     A
002E 22                RET     
002F         L?0226:
002F E0                MOVX    A,@DPTR
0030 FB                MOV     R3,A
0031 A3                INC     DPTR
0032 E4                CLR     A
0033 75F001            MOV     B,#01H
0036 120000      E     LCALL   ?C?ILDIX
0039 A9F0              MOV     R1,B
003B FA                MOV     R2,A
003C 020000      E     LJMP    ?C?CLDPTR
003F         L?0227:
003F 2400        R     ADD     A,#LOW M_IDATA
0041         L?0228:
0041 F582              MOV     DPL,A
0043 E4                CLR     A
0044 3400        R     ADDC    A,#HIGH M_IDATA
0046 F583              MOV     DPH,A
0048 22                RET     
0049         L?0229:
0049 A3                INC     DPTR
004A E0                MOVX    A,@DPTR
004B 7F00              MOV     R7,#00H
004D 25E0              ADD     A,ACC
004F FE                MOV     R6,A
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 21  

0050 EF                MOV     A,R7
0051 2D                ADD     A,R5
0052 FF                MOV     R7,A
0053 EC                MOV     A,R4
0054 3E                ADDC    A,R6
0055 FE                MOV     R6,A
0056 22                RET     
0057         L?0230:
0057 FD                MOV     R5,A
0058 120000      R     LCALL   _write_eeprom
005B 900000      R     MOV     DPTR,#i+01H
005E E0                MOVX    A,@DPTR
005F 04                INC     A
0060 F0                MOVX    @DPTR,A
0061 22                RET     
0062         L?0231:
0062         L?0232:
0062 75E646            MOV     ISP_TRIG,#046H
0065 75E6B9            MOV     ISP_TRIG,#0B9H
0068 22                RET     
0069         L?0233:
0069 900000      R     MOV     DPTR,#i
006C E0                MOVX    A,@DPTR
006D FC                MOV     R4,A
006E A3                INC     DPTR
006F E0                MOVX    A,@DPTR
0070 FD                MOV     R5,A
0071 C3                CLR     C
0072 22                RET     
             ; FUNCTION Com00DB (END)

             ; FUNCTION main (BEGIN)
                                           ; SOURCE LINE # 149
                                           ; SOURCE LINE # 150
                                           ; SOURCE LINE # 152
0000 900000      R     MOV     DPTR,#mfout
0003 7402              MOV     A,#02H
0005 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 159
0006 E4                CLR     A
0007 900000      R     MOV     DPTR,#c1
000A F0                MOVX    @DPTR,A
000B A3                INC     DPTR
000C F0                MOVX    @DPTR,A
000D A3                INC     DPTR
000E F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 161
000F 120000      R     LCALL   init
                                           ; SOURCE LINE # 163
0012 900000      R     MOV     DPTR,#mjcounter
0015 7401              MOV     A,#01H
0017 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 165
0018 E4                CLR     A
0019 900000      R     MOV     DPTR,#yyjyj
001C F0                MOVX    @DPTR,A
001D A3                INC     DPTR
001E F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 166
001F 120000      R     LCALL   read_cardno
                                           ; SOURCE LINE # 167
0022         ?C0001:
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 22  

                                           ; SOURCE LINE # 168
                                           ; SOURCE LINE # 170
0022 2092FD            JB      save,?C0001
                                           ; SOURCE LINE # 171
                                           ; SOURCE LINE # 172
0025 120000      R     LCALL   read_first
                                           ; SOURCE LINE # 173
0028 80F8              SJMP    ?C0001
             ; FUNCTION main (END)

             ; FUNCTION readcance (BEGIN)
                                           ; SOURCE LINE # 182
                                           ; SOURCE LINE # 183
                                           ; SOURCE LINE # 185
0000 900000      R     MOV     DPTR,#i
0003 7404              MOV     A,#04H
0005 F0                MOVX    @DPTR,A
0006         ?C0006:
0006 900000      R     MOV     DPTR,#i
0009 E0                MOVX    A,@DPTR
000A FF                MOV     R7,A
000B C3                CLR     C
000C 9408              SUB

⌨️ 快捷键说明

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