📄 main.lst
字号:
C51 COMPILER V7.20 MAIN 08/18/2008 13:56:54 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include "address.h"
3
4
5 void maii( );
6 void rec( );
7 void play( );
8 void checkfull( );
9 void mrest( );
10 unsigned char chesr1( );
11 void waitrdy( );
12 void rdstatus( );
13 unsigned char chesr0( );
14 void clrint( );
15 void powerup( );
16 void stopp( );
17 void chk_mem( );
18 void fwd( );
19 void dstop( );
20 void gerase( );
21 void rest( );
22 void wr_apc(unsigned char a1,unsigned char a2);
23 void delay10ms( );
24 void delayms(unsigned char ts);
25 unsigned char SPOI(unsigned char instr);
26
27 void main( )
28 {
29 1 SP=0x70;
30 1 P1=0xff;
31 1 P2=0xff;
32 1 P3=0xff;
33 1 P0=0xff;
34 1 EA=0;
35 1 maii( );
36 1 }
37
38 void maii( )
39 {
40 1 unsigned char apc1,apc2;
41 1 rest( );
42 1 dstop( );
43 1 LED=1;
44 1 if(STOP==0)
45 1 {
46 2 mrest( );
47 2 }
48 1 do{}while(AN==1);
49 1 delay10ms( );
50 1 if(AN==0)
51 1 {
52 2 powerup( );
53 2 if(MORA==1)
54 2 {
55 3 apc1=0x40;
C51 COMPILER V7.20 MAIN 08/18/2008 13:56:54 PAGE 2
56 3 apc2=0x04;
57 3 }
58 2 else
59 2 {
60 3 apc1=0x80;
61 3 apc2=0x04;
62 3 }
63 2 wr_apc(apc1,apc2);
64 2 waitrdy( );
65 2 while(1)
66 2 {
67 3 clrint( );
68 3 waitrdy( );
69 3 chk_mem( );
70 3 if(PR==1)
71 3 {
72 4 rec( );
73 4 }
74 3 else
75 3 {
76 4 play( );
77 4 }
78 3 }
79 2 }
80 1 }
81
82
83 void rec( )
84 {
85 1 bdata unsigned char resta;
86 1 unsigned char i;
87 1 delayms(50);
88 1 do
89 1 {
90 2 resta=SPOI(0x41);
91 2 resta=SPOI(0x00);
92 2 SS=1;
93 2 resta=chesr1( );
94 2 }while(resta^3==0);
95 1 LED=0;
96 1 for(i=0;i<200;i++)
97 1 {
98 2 while(AN==0)
99 2 {
100 3 checkfull( );
101 3 }
102 2 }
103 1 LED=1;
104 1 clrint( );
105 1 stopp( );
106 1 do
107 1 {
108 2 if(STOP==0) mrest( );
109 2 }while(AN==1);
110 1 clrint( );
111 1 stopp( );
112 1 }
113
114 void play( )
115 {
116 1 bdata unsigned char resr;
117 1 do{ }while(AN==0);
C51 COMPILER V7.20 MAIN 08/18/2008 13:56:54 PAGE 3
118 1 do
119 1 {
120 2 resr=SPOI(0x40);
121 2 resr=SPOI(0x00);
122 2 SS=1;
123 2 resr=chesr0( );
124 2 }while(resr^0==1);
125 1 LED=0;
126 1 do
127 1 {
128 2 if(STOP==0) mrest( );
129 2 resr=chesr1( );
130 2 }while(resr^0==0);
131 1 LED=1;
132 1 stopp( );
133 1 do
134 1 {
135 2 if(STOP==0) mrest( );
136 2 }while(AN==1);
137 1 fwd( );
138 1 }
139
140
141 void checkfull( )
142 {
143 1 bdata unsigned char i;
144 1 unsigned char j;
145 1 rdstatus( );
146 1 i=SPOI(05);
147 1 if(i^1==1)
148 1 {
149 2 while(1)
150 2 {
151 3 LED=1;
152 3 for(j=0;j<10;j++)
153 3 {
154 4 delayms(5);
155 4 if(AN==0) mrest( );
156 4 }
157 3 LED=0;
158 3 for(j=0;j<10;j++)
159 3 {
160 4 delayms(5);
161 4 if(AN==0) mrest( );
162 4 }
163 3 }
164 2 }
165 1 }
166
167 void mrest( )
168 {
169 1 unsigned char i,j;
170 1 for(i=0;i<60;i++)
171 1 {
172 2 if(STOP==1) break;
173 2 if(i==59)
174 2 {
175 3 gerase( );
176 3 for(j=0;j<3;j++)
177 3 {
178 4 LED=0;
179 4 delayms(40);
C51 COMPILER V7.20 MAIN 08/18/2008 13:56:54 PAGE 4
180 4 LED=1;
181 4 delayms(40);
182 4 }
183 3 }
184 2 }
185 1 stopp( );
186 1 clrint( );
187 1 maii( );
188 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 358 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -