📄 51xx.lst
字号:
C51 COMPILER V3.20, SN-0 51XX 10/28/02 12:10:54 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE 51XX
OBJECT MODULE PLACED IN 51XX.O
COMPILER INVOKED BY: C:\OMF51\BIN\C51.EXE C:\KEIL\TEST\51XX.CQD DB OE RB(0) OT(5) SM PR(51XX.LST) OJ(51XX.O)
stmt level source
1 #include <ldy.h>
2 #define rs p34
3 #define r_w p35
4 #define e p33
5 #define T 0x54
6 #define E 0x45
7 #define S 0x53
8 #define equal 0x3d
9 #define Y 0x59
10 #define J 0x4a
11 #define I 0x49
12 #define N 0x4e
13 #define G 0x47
14 #define O 0x4f
15 #define K 0x4b
16 #define D 0x44
17 #define V 0x56
18 #define L 0x4c
19 #define M 0x4d
20 #define R 0x52
21 #define zero 0x30
22 #define two 0x32
23 #define three 0x33
24 #define four 0x34
25 #define nine 0x39
26 #define P 0x50
27 #define A 0x41
28 #define B 0x42
29 #define D 0x44
30 #define space 0x20
31
32 #define uchar unsigned char
33 #define uint unsigned int
34 #define ulong unsigned long
35
36 uchar number[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
37 uchar led[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0x88,0x8c};
38 void delay(unsigned long v)
39 {
40 1 while(v!=0)v--;
41 1 }
42 void dlms()
43 {
44 1 uchar i;
45 1 for(i=200;i>0;i--){}
46 1 }
47 uchar bf_and_ac() //read busy and adrss counter
48 {
49 1 uchar x;
50 1 r_w=0;
51 1 rs=0;
52 1 e=0;
53 1 delay(100);
54 1 r_w=1;
55 1 e=1;
C51 COMPILER V3.20, SN-0 51XX 10/28/02 12:10:54 PAGE 2
56 1 delay(100);
57 1 x=p1;
58 1 e=0;
59 1 r_w=0;
60 1 return(0);
61 1 }
62 void w_code(uchar order)
63 {
64 1 uchar x;
65 1 x=bf_and_ac();
66 1 while((x&0x80)==0x80)
67 1 {
68 2 x=bf_and_ac();
69 2 }
70 1 r_w=0;
71 1 e=1;
72 1 p1=order;
73 1 e=0;
74 1 r_w=0;
75 1 }
76 void w_data(uchar su)
77 {
78 1 uchar x;
79 1 x=bf_and_ac();
80 1 while((x&0x80)==0x80)
81 1 {
82 2 x=bf_and_ac();
83 2 }
84 1 r_w=0;
85 1 rs=1;
86 1 e=1;
87 1 p1=su;
88 1 e=0;
89 1 r_w=0;
90 1 }
91 uchar r_data()
92 {
93 1 uchar x;
94 1 x=bf_and_ac();
95 1 while((x&0x80)==0x80)
96 1 {
97 2 x=bf_and_ac();
98 2 }
99 1 r_w=0;
100 1 rs=1;
101 1 e=1;
102 1 x=p1;
103 1 e=0;
104 1 r_w=0;
105 1 return(x);
106 1 }
107 void w_ram(uchar adrss,uchar su,uchar length)
108 {
109 1 uchar i;
110 1 w_code(adrss);
111 1 for(i=0;i<length;i++)
112 1 w_data(su);
113 1 }
114 void init()
115 {
116 1 w_code(0x38);
117 1 delay(1000);
C51 COMPILER V3.20, SN-0 51XX 10/28/02 12:10:54 PAGE 3
118 1 w_code(0x01);
119 1 delay(1000);
120 1 w_code(0x06);
121 1 delay(1000);
122 1 w_code(0x0e);
123 1 }
124 void display_good(unsigned long num_good)
125 {
126 1 uchar y=0;
127 1 unsigned long y1=0;
128 1 p31=0;
129 1 w_ram(0x85,space,0x01);
130 1 w_ram(0x86,O,0x01);
131 1 w_ram(0x87,K,0x01);
132 1 y=num_good/10000;
133 1 y1=num_good%10000;
134 1 w_ram(0xc3,number[y],0x01);
135 1 y=y1/1000;
136 1 y1=y1%1000;
137 1 w_ram(0xc4,number[y],0x01);
138 1 y=y1/100;
139 1 y1=y1%100;
140 1 w_ram(0xc5,number[y],0x01);
141 1 y=y1/10;
142 1 w_ram(0xc6,number[y],0x01);
143 1 y=y1%10;
144 1 w_ram(0xc7,number[y],0x01);
145 1 }
146 void display_bad(unsigned int num_bad)
147 {
148 1 uchar y=0;
149 1 unsigned long y1=0;
150 1 p31=1;
151 1 w_ram(0x85,B,0x01);
152 1 w_ram(0x86,A,0x01);
153 1 w_ram(0x87,D,0x01);
154 1 y=num_bad/100;
155 1 y1=num_bad%100;
156 1 w_ram(0xcd,number[y],0x01);
157 1 y=y1/10;
158 1 w_ram(0xce,number[y],0x01);
159 1 y=y1%10;
160 1 w_ram(0xcf,number[y],0x01);
161 1 }
162 uchar kbscan()
163 {
164 1 uchar lie4=0;
165 1 uchar hang2=0;
166 1 p3=0xf0;
167 1 if((p3&0xf0)!=0xf0)
168 1 {
169 2 dlms();
170 2 if((p3&0xf0)!=0xf0)
171 2 {
172 3 lie4=~(p3|0x0f);
173 3 p3=0xfe;
174 3 if((p3&0xf0)!=0xf0)hang2=0x01;
175 3 p3=0xfd;
176 3 if((p3&0xf0)!=0xf0)hang2=0x02;
177 3 p3=0xfb;
178 3 if((p3&0xf0)!=0xf0)hang2=0x04;
179 3 p3=0xf7;
C51 COMPILER V3.20, SN-0 51XX 10/28/02 12:10:54 PAGE 4
180 3 if((p3&0xf0)!=0xf0)hang2=0x08;
181 3 if(hang2!=0)return(lie4+hang2);
182 3 else return(0);
183 3 }
184 2 }
185 1 else return(0);
186 1 }
187 void main()
188 {
189 1 uchar l0,l1,l2;
190 1 bit flag;
191 1 uint led_number=0;
192 1 uchar lcd_value=0;
193 1 uint number_replace=0;
194 1 unsigned long good=0;
195 1 unsigned int error=0;
196 1 init();
197 1 while(1)
198 1 {
199 2 l1=kbscan();
200 2 if(l1==0x21){led_number=1;lcd_value=1;p3=p2=p1=led[0];p0=led[1];delay(10000);}
201 2 else if(l1==0x41){led_number=2;lcd_value=2;p3=p2=p1=led[0];p0=led[2];delay(10000);}
202 2 else if(l1==0x81){led_number=3;lcd_value=3;p3=p2=p1=led[0];p0=led[3];delay(10000);}
203 2 else if(l1==0x22){led_number=4;lcd_value=4;p3=p2=p1=led[0];p0=led[4];delay(10000);}
204 2 else if(l1==0x42){led_number=5;lcd_value=5;p3=p2=p1=led[0];p0=led[5];delay(10000);}
205 2 else if(l1==0x82){led_number=6;lcd_value=6;p3=p2=p1=led[0];p0=led[6];delay(10000);}
206 2 else if(l1==0x24){led_number=7;lcd_value=7;p3=p2=p1=led[0];p0=led[7];delay(10000);}
207 2 else if(l1==0x44){led_number=8;lcd_value=8;p3=p2=p1=led[0];p0=led[8];delay(10000);}
208 2 else if(l1==0x84){led_number=9;lcd_value=9;p3=p2=p1=led[0];p0=led[9];delay(10000);}
209 2 else if(l1==0x28){led_number=0x0a;lcd_value=0x2a;p3=p2=p1=led[0];p0=led[10];delay(10000);}
210 2 else if(l1==0x48){led_number=0;lcd_value=0;p3=p2=p1=led[0];p0=led[0];delay(10000);}
211 2 else if(l1==0x88){led_number=0x0b;lcd_value=0x23;p3=p2=p1=led[0];p0=led[11];delay(10000);}
212 2 else dlms();
213 2 l0=led_number/1000;
214 2 number_replace=led_number%1000;
215 2 p3=led[l0];
216 2 l0=number_replace/100;
217 2 number_replace=number_replace%100;
218 2 p2=led[l0];
219 2 l0=number_replace/10;
220 2 p1=led[l0];
221 2 l0=number_replace%10;
222 2 p0=led[l0];
223 2 if(led_number>9999)led_number=0;
224 2 else led_number=led_number+1;
225 2 delay(3000);
226 2 }
227 1
228 1
229 1
230 1
231 1
232 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1553 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 35
IDATA SIZE = ---- ----
C51 COMPILER V3.20, SN-0 51XX 10/28/02 12:10:54 PAGE 5
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -