📄 main.lst
字号:
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 + -