📄 test.lst
字号:
C51 COMPILER V3.20, SN-0 TEST 05/14/03 11:30:42 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN TEST.OBJ
COMPILER INVOKED BY: E:\APP\C51\BIN\C51.EXE TEST.C
stmt level source
1 /********************************************************************************/
2 /* */
3 /* 描述: 复用解复用板(V2.0)控制器程序 */
4 /* VER: 2.0 */
5 /* REV: 1.0 */
6 /* 作者: 胡丙龙 */
7 /* 时间: 2002年05月31日 */
8 /* */
9 /********************************************************************************/
10 #pragma debug code small optimize(5) objectextend
11
12 #include "reg52.h"
13 #include "mdb.h"
14 #include "hpi.h"
15 #include "hdlc.h"
16 #include "constant.h"
17 #include "sab82525.h"
18
19 /* 函数声明 */
20 void TestSRAM(void);
21 void TestSAB82525(void);
22
23 /* 变量定义 */
24 uchar bdata m_ucTestFlag;
25 sbit m_bSRAMTestFlag = m_ucTestFlag^0; /* 定义RAM测试结果标志 */
26 sbit m_bSAB82525TestFlag = m_ucTestFlag^1; /* 定义SAB825255测试结果标志 */
27
28 /* 外部变量 */
29 extern uchar xdata *SAB82525; /* 定义SAB82525芯片译码地址 */
30 extern uchar xdata *SRAM; /* 定义外部数据RAM芯片译码地址 */ /*(基地址) */
31
32 /********************************************************************************/
33 /* 函数名称:void TestSRAM(void) */
34 /* 简要描述:测试片外SRAM函数 */
35 /* */
36 /* 时 间:2002年02月21日 */
37 /********************************************************************************/
38 void TestSRAM(void)
39 {
40 1 unsigned char data i,j;
41 1 unsigned char data a,b[4],c;
42 1
43 1 /* 标志清零 */
44 1 a = 0;
45 1
46 1 /* 读写测试10次 */
47 1 for(j=0;j<10;j++)
48 1 {
49 2 WATCHDOG = ~WATCHDOG;
50 2
51 2 for(i=0;i<250;i++)
52 2 {
53 3 c = i+j;
54 3
55 3 /* 写数据 */
C51 COMPILER V3.20, SN-0 TEST 05/14/03 11:30:42 PAGE 2
56 3 *(SRAM+i) = c;
57 3 *(SRAM+0x100+i) = c;
58 3 *(SRAM+0x200+i) = c;
59 3 *(SRAM+0x300+i) = c;
60 3
61 3 /* 读数据并比较 */
62 3 b[0] = *(SRAM+i);
63 3 b[1] = *(SRAM+0x100+i);
64 3 b[2] = *(SRAM+0x200+i);
65 3 b[3] = *(SRAM+0x300+i);
66 3
67 3 if( (b[0]!=c) ||
68 3 (b[1]!=c) ||
69 3 (b[2]!=c) ||
70 3 (b[3]!=c) )
71 3 {
72 4 a = 1;
73 4 }
74 3 }
75 2
76 2 /* 根据结果置标志 */
77 2 if(a==1)
78 2 {
79 3 // ALARM_LED = ON;
80 3 m_bSRAMTestFlag = WRONG;
81 3 }
82 2 else
83 2 {
84 3 m_bSRAMTestFlag = RIGHT;
85 3 }
86 2 }
87 1
88 1 return;
89 1 }
90
91
92 /********************************************************************************/
93 /* 函数名称:void TestSAB82525(void) */
94 /* 简要描述:测试SAB82525读写函数 */
95 /* */
96 /* 时 间:2002年02月21日 */
97 /********************************************************************************/
98 void TestSAB82525(void)
99 {
100 1 unsigned char data i,j;
101 1 unsigned char data a,b[8];
102 1
103 1 /* 标志清零 */
104 1 a = 0;
105 1
106 1 /* 读写测试250次 */
107 1 for(i=0;i<250;i++)
108 1 {
109 2 WATCHDOG = ~WATCHDOG;
110 2
111 2 *(SAB82525+0x22) = i;
112 2 *(SAB82525+0x23) = i;
113 2 *(SAB82525+0x2c) = i;
114 2 // *(SAB82525+0x2f) = i;
115 2 *(SAB82525+0x62) = i;
116 2 *(SAB82525+0x63) = i;
117 2 *(SAB82525+0x6c) = i;
C51 COMPILER V3.20, SN-0 TEST 05/14/03 11:30:42 PAGE 3
118 2 // *(SAB82525+0x6f) = i;
119 2
120 2 b[0] = *(SAB82525+0x22);
121 2 b[1] = *(SAB82525+0x23);
122 2 b[2] = *(SAB82525+0x2c);
123 2 b[3] = i;
124 2 // b[3] = *(SAB82525+0x2f);
125 2 b[4] = *(SAB82525+0x62);
126 2 b[5] = *(SAB82525+0x63);
127 2 b[6] = *(SAB82525+0x6c);
128 2 b[7] = i;
129 2 // b[7] = *(SAB82525+0x6f);
130 2
131 2 for(j=0;j<8;j++)
132 2 {
133 3 if (b[j] != i)
134 3 {
135 4 a = 1;
136 4 }
137 3 }
138 2
139 2 /* 根据结果置标志 */
140 2 if(a==1)
141 2 {
142 3 // ALARM_LED = ON;
143 3 m_bSAB82525TestFlag = WRONG;
144 3 }
145 2 else
146 2 {
147 3 m_bSAB82525TestFlag = RIGHT;
148 3 }
149 2 }
150 1
151 1 return;
152 1 }
C51 COMPILER V3.20, SN-0 TEST 05/14/03 11:30:42 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION TestSRAM (BEGIN)
; SOURCE LINE # 38
; SOURCE LINE # 39
; SOURCE LINE # 44
;---- Variable 'a' assigned to Register 'R1' ----
0000 E4 CLR A
0001 F9 MOV R1,A
; SOURCE LINE # 47
;---- Variable 'j' assigned to Register 'R7' ----
0002 FF MOV R7,A
0003 ?C0001:
0003 EF MOV A,R7
0004 C3 CLR C
0005 940A SUBB A,#0AH
0007 4003 JC $ + 5H
0009 020000 R LJMP ?C0011
; SOURCE LINE # 48
; SOURCE LINE # 49
000C B295 CPL WATCHDOG
; SOURCE LINE # 51
;---- Variable 'i' assigned to Register 'R6' ----
000E E4 CLR A
000F FE MOV R6,A
0010 ?C0004:
0010 EE MOV A,R6
0011 C3 CLR C
0012 94FA SUBB A,#0FAH
0014 4003 JC $ + 5H
0016 020000 R LJMP ?C0005
; SOURCE LINE # 52
; SOURCE LINE # 53
0019 EE MOV A,R6
001A 2F ADD A,R7
001B FD MOV R5,A
;---- Variable 'c' assigned to Register 'R5' ----
; SOURCE LINE # 56
001C E500 E MOV A,SRAM+01H
001E 2E ADD A,R6
001F F582 MOV DPL,A
0021 E4 CLR A
0022 3500 E ADDC A,SRAM
0024 F583 MOV DPH,A
0026 ED MOV A,R5
0027 F0 MOVX @DPTR,A
; SOURCE LINE # 57
0028 E4 CLR A
0029 2500 E ADD A,SRAM+01H
002B F582 MOV DPL,A
002D E500 E MOV A,SRAM
002F 3401 ADDC A,#01H
0031 F583 MOV DPH,A
0033 E582 MOV A,DPL
0035 2E ADD A,R6
0036 F582 MOV DPL,A
0038 E4 CLR A
0039 3583 ADDC A,DPH
003B F583 MOV DPH,A
003D ED MOV A,R5
003E F0 MOVX @DPTR,A
C51 COMPILER V3.20, SN-0 TEST 05/14/03 11:30:42 PAGE 5
; SOURCE LINE # 58
003F E4 CLR A
0040 2500 E ADD A,SRAM+01H
0042 F582 MOV DPL,A
0044 E500 E MOV A,SRAM
0046 3402 ADDC A,#02H
0048 F583 MOV DPH,A
004A E582 MOV A,DPL
004C 2E ADD A,R6
004D F582 MOV DPL,A
004F E4 CLR A
0050 3583 ADDC A,DPH
0052 F583 MOV DPH,A
0054 ED MOV A,R5
0055 F0 MOVX @DPTR,A
; SOURCE LINE # 59
0056 E4 CLR A
0057 2500 E ADD A,SRAM+01H
0059 F582 MOV DPL,A
005B E500 E MOV A,SRAM
005D 3403 ADDC A,#03H
005F F583 MOV DPH,A
0061 E582 MOV A,DPL
0063 2E ADD A,R6
0064 F582 MOV DPL,A
0066 E4 CLR A
0067 3583 ADDC A,DPH
0069 F583 MOV DPH,A
006B ED MOV A,R5
006C F0 MOVX @DPTR,A
; SOURCE LINE # 62
006D E500 E MOV A,SRAM+01H
006F 2E ADD A,R6
0070 F582 MOV DPL,A
0072 E4 CLR A
0073 3500 E ADDC A,SRAM
0075 F583 MOV DPH,A
0077 E0 MOVX A,@DPTR
0078 F500 R MOV b,A
; SOURCE LINE # 63
007A E4 CLR A
007B 2500 E ADD A,SRAM+01H
007D F582 MOV DPL,A
007F E500 E MOV A,SRAM
0081 3401 ADDC A,#01H
0083 F583 MOV DPH,A
0085 E582 MOV A,DPL
0087 2E ADD A,R6
0088 F582 MOV DPL,A
008A E4 CLR A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -