📄 card9346.lst
字号:
C51 COMPILER V7.09 CARD9346 03/27/2005 16:17:14 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE CARD9346
OBJECT MODULE PLACED IN card9346.OBJ
COMPILER INVOKED BY: E:\学习工具\Keil51\C51\BIN\C51.EXE card9346.c LARGE DEBUG OBJECTEXTEND CODE SYMBOLS
line level source
1
2 /**************************************************************/
3 // from www.laogu.com
4 /**************************************************************/
5
6
7 #include "card9346.h"
8 #include "ylystd.h"
9 #include "hostmcu.h"
10 #include "8019.h"
11
12 /**************************************************************/
13
14 uint read_93c46(uchar address)
15 {
16 1 //93c46 command register:
17 1 // 7 6 5 4 3 2 1 0
18 1 // eem1 eem0 nc nc eecs eesk eedi eedo
19 1
20 1 uchar count;
21 1 uint retval;
22 1
23 1 address|=0x80;
24 1 myoutportb(0x00,0xe2); //select page 3 register
25 1 //first bit is 1
26 1 myoutportb(0x01,0x8a); //cs=1 sk=0 di=1
27 1 myoutportb(0x01,0x8e); //cs=1 sk=1 di=1
28 1 do_93c46(address);
29 1
30 1 for(count=0;count<16;count++)
31 1 {
32 2 //out 0
33 2 myoutportb(0x01,0x88); //cs=1 sk=0 di=0
34 2 myoutportb(0x01,0x8c); //cs=1 sk=1 di=0
35 2 retval<<=1;
36 2 if(myinportb(0x01)&0x01!=0)
37 2 {
38 3 retval|=0x01;
39 3 }
40 2 }
41 1 myoutportb(0x01,0x88); //cs=1 sk=0 di=0
42 1 myoutportb(0x01,0x00); //cs=0 sk=0 di=0
43 1
44 1 return retval;
45 1 }
46
47 /**************************************************************/
48
49 void write_93c46(uchar address,uint value)
50 {
51 1 uchar tmp;
52 1
53 1 myoutportb(0x00,0xe2); //select page 3 register
54 1
55 1 myoutportb(0x01,0x8a); //out start bit: 1
C51 COMPILER V7.09 CARD9346 03/27/2005 16:17:14 PAGE 2
56 1 myoutportb(0x01,0x8e);
57 1
58 1 do_93c46(0x3c); //Write/Erase enable
59 1 myoutportb(0x01,0x88);
60 1 myoutportb(0x01,0x00);
61 1
62 1 myoutportb(0x01,0x8a); //out start bit: 1
63 1 myoutportb(0x01,0x8e);
64 1
65 1 tmp=address|0x40; //actrual write
66 1 do_93c46(tmp);
67 1 do_93c46(value>>8);
68 1 do_93c46(value&0xff);
69 1 myoutportb(0x01,0x88);
70 1 myoutportb(0x01,0x00);
71 1
72 1 myoutportb(0x01,0x88); //wait for write finish
73 1 for(tmp=0;tmp<10000;tmp++)
74 1 {
75 2 if((myinportb(0x01)&0x01)!=0)
76 2 break;
77 2 }
78 1 myoutportb(0x01,0x00);
79 1
80 1 myoutportb(0x01,0x8a); //Write/Erase disable
81 1 myoutportb(0x01,0x8e);
82 1 do_93c46(0x00);
83 1 myoutportb(0x01,0x88);
84 1 myoutportb(0x01,0x00);
85 1
86 1 }
87 /**************************************************************/
88 void do_93c46(uchar val)
89 {
90 1 uchar count;
91 1 uchar tmpval;
92 1
93 1 tmpval=val;
94 1
95 1 for(count=0;count<8;count++)
96 1 {
97 2 if((tmpval&0x80)!=0)
98 2 {
99 3 //out 1
100 3 myoutportb(0x01,0x8a);
101 3 myoutportb(0x01,0x8e);
102 3 }
103 2 else
104 2 {
105 3 //out 0
106 3 myoutportb(0x01,0x88);
107 3 myoutportb(0x01,0x8c);
108 3 }
109 2 tmpval<<=1;
110 2 }
111 1 }
112
113 /**************************************************************/
114
C51 COMPILER V7.09 CARD9346 03/27/2005 16:17:14 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _read_93c46 (BEGIN)
; SOURCE LINE # 14
0000 900000 R MOV DPTR,#address
0003 EF MOV A,R7
0004 F0 MOVX @DPTR,A
; SOURCE LINE # 15
; SOURCE LINE # 23
0005 4480 ORL A,#080H
0007 F0 MOVX @DPTR,A
; SOURCE LINE # 24
0008 E4 CLR A
0009 FF MOV R7,A
000A 120000 E LCALL _map_io
000D 8F82 MOV DPL,R7
000F 8E83 MOV DPH,R6
0011 74E2 MOV A,#0E2H
0013 F0 MOVX @DPTR,A
; SOURCE LINE # 26
0014 7F01 MOV R7,#01H
0016 120000 E LCALL _map_io
0019 8F82 MOV DPL,R7
001B 8E83 MOV DPH,R6
001D 748A MOV A,#08AH
001F F0 MOVX @DPTR,A
; SOURCE LINE # 27
0020 7F01 MOV R7,#01H
0022 120000 E LCALL _map_io
0025 8F82 MOV DPL,R7
0027 8E83 MOV DPH,R6
0029 748E MOV A,#08EH
002B F0 MOVX @DPTR,A
; SOURCE LINE # 28
002C 900000 R MOV DPTR,#address
002F E0 MOVX A,@DPTR
0030 FF MOV R7,A
0031 120000 R LCALL _do_93c46
; SOURCE LINE # 30
0034 E4 CLR A
0035 900000 R MOV DPTR,#count
0038 F0 MOVX @DPTR,A
0039 ?C0001:
; SOURCE LINE # 31
; SOURCE LINE # 33
0039 7F01 MOV R7,#01H
003B 120000 E LCALL _map_io
003E 8F82 MOV DPL,R7
0040 8E83 MOV DPH,R6
0042 7488 MOV A,#088H
0044 F0 MOVX @DPTR,A
; SOURCE LINE # 34
0045 7F01 MOV R7,#01H
0047 120000 E LCALL _map_io
004A 8F82 MOV DPL,R7
004C 8E83 MOV DPH,R6
004E 748C MOV A,#08CH
0050 F0 MOVX @DPTR,A
; SOURCE LINE # 35
0051 900000 R MOV DPTR,#retval+01H
0054 E0 MOVX A,@DPTR
C51 COMPILER V7.09 CARD9346 03/27/2005 16:17:14 PAGE 4
0055 25E0 ADD A,ACC
0057 F0 MOVX @DPTR,A
0058 900000 R MOV DPTR,#retval
005B E0 MOVX A,@DPTR
005C 33 RLC A
005D F0 MOVX @DPTR,A
; SOURCE LINE # 36
005E 7F01 MOV R7,#01H
0060 120000 E LCALL _map_io
0063 8F82 MOV DPL,R7
0065 8E83 MOV DPH,R6
0067 E0 MOVX A,@DPTR
0068 30E00A JNB ACC.0,?C0003
; SOURCE LINE # 37
; SOURCE LINE # 38
006B 900000 R MOV DPTR,#retval
006E E0 MOVX A,@DPTR
006F F0 MOVX @DPTR,A
0070 A3 INC DPTR
0071 E0 MOVX A,@DPTR
0072 4401 ORL A,#01H
0074 F0 MOVX @DPTR,A
; SOURCE LINE # 39
; SOURCE LINE # 40
0075 ?C0003:
0075 900000 R MOV DPTR,#count
0078 E0 MOVX A,@DPTR
0079 04 INC A
007A F0 MOVX @DPTR,A
007B E0 MOVX A,@DPTR
007C C3 CLR C
007D 9410 SUBB A,#010H
007F 40B8 JC ?C0001
0081 ?C0002:
; SOURCE LINE # 41
0081 7F01 MOV R7,#01H
0083 120000 E LCALL _map_io
0086 8F82 MOV DPL,R7
0088 8E83 MOV DPH,R6
008A 7488 MOV A,#088H
008C F0 MOVX @DPTR,A
; SOURCE LINE # 42
008D 7F01 MOV R7,#01H
008F 120000 E LCALL _map_io
0092 8F82 MOV DPL,R7
0094 8E83 MOV DPH,R6
0096 E4 CLR A
0097 F0 MOVX @DPTR,A
; SOURCE LINE # 44
0098 900000 R MOV DPTR,#retval
009B E0 MOVX A,@DPTR
009C FE MOV R6,A
009D A3 INC DPTR
009E E0 MOVX A,@DPTR
009F FF MOV R7,A
; SOURCE LINE # 45
00A0 ?C0005:
00A0 22 RET
; FUNCTION _read_93c46 (END)
; FUNCTION _write_93c46 (BEGIN)
; SOURCE LINE # 49
C51 COMPILER V7.09 CARD9346 03/27/2005 16:17:14 PAGE 5
0000 900000 R MOV DPTR,#address
0003 EF MOV A,R7
0004 F0 MOVX @DPTR,A
0005 A3 INC DPTR
0006 EC MOV A,R4
0007 F0 MOVX @DPTR,A
0008 A3 INC DPTR
0009 ED MOV A,R5
000A F0 MOVX @DPTR,A
; SOURCE LINE # 50
; SOURCE LINE # 53
000B E4 CLR A
000C FF MOV R7,A
000D 120000 E LCALL _map_io
0010 8F82 MOV DPL,R7
0012 8E83 MOV DPH,R6
0014 74E2 MOV A,#0E2H
0016 F0 MOVX @DPTR,A
; SOURCE LINE # 55
0017 7F01 MOV R7,#01H
0019 120000 E LCALL _map_io
001C 8F82 MOV DPL,R7
001E 8E83 MOV DPH,R6
0020 748A MOV A,#08AH
0022 F0 MOVX @DPTR,A
; SOURCE LINE # 56
0023 7F01 MOV R7,#01H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -