📄 qiantaiv11.lst
字号:
C51 COMPILER V7.06 QIANTAIV11 12/08/2004 15:27:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE QIANTAIV11
OBJECT MODULE PLACED IN qiantaiv11.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE qiantaiv11.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //************************************
2 //****护栏灯管控制程序*********
3 //**** 2004-06-19 mcu at89c2051 172800BPS OSC 11.0592MHZ
4 // ding li zhao ming
5 //************************************
6 #include <reg51.h>
7 #include <stdio.h>//一般I/O函数
8 #include <stdlib.h>//标准函数
9 #include <absacc.h>//绝对地址
10 #include <intrins.h>//内部函数
11 #include <setjmp.h>
12 #define uchar unsigned char
13 #define uint unsigned int
14 #define Byte unsigned char
15 #define Word unsigned int
16 #define ulong unsigned long
17 #define bool bit
18 #define true 1
19 #define false 0
20 #define V_TH0 0xff /* 时间常数高8位 (65536-500)/256 */
21 #define V_TL0 0x80 /* 时间常数低8位 (65536-500)%256 11.0592*/
22 #define ADD 2
23
24 //******************************
25 uchar code x64cr[]=
26 {
27 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
28 30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,
29 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
30 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
31 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
32 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
33
34 };
35 //*****************************************************************************
36 uchar code x64cg[]=
37 {
38 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
39 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
40 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
41 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,
42 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
43 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
44
45 };
46 //*************************************
47 uchar code x64cb[]=
48 {
49 0,0,0,0,0,0,0,0,
50 0,0,0,0,0,0,0,0,
51 0,0,0,0,0,0,0,0,
52 0,0,0,0,0,0,0,0,
53 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
54 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
55 31,31,31,31,31,31,31,31,
C51 COMPILER V7.06 QIANTAIV11 12/08/2004 15:27:00 PAGE 2
56 31,31,31,31,31,31,31,31,
57 31,31,31,31,31,31,31,31,
58 31,31,31,31,31,31,31,31,
59 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
60 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,
61
62 };
63 //******************************
64 uchar code x7cr[]=
65 {
66 31,31,0,0,0,31,31,
67 };
68 //******************************
69 uchar code x7cg[]=
70 {
71 0,31,31,31,0,0,31,
72 };
73 //******************************
74 uchar code x7cb[]=
75 {
76 0,0,0,31,31,31,31,
77 };
78
79 //******************************
80
81 sbit red0=P1^0;
82 sbit grn0=P1^1;
83 sbit blu0=P1^2;
84
85 sbit red1=P1^3;
86 sbit grn1=P1^4;
87 sbit blu1=P1^5;
88
89 sbit red2=P1^6;
90 sbit grn2=P1^7;
91 sbit blu2=P2^7;
92
93
94
95
96
97 //**************************************************************
98 uchar mode;
99 uchar pointer;
100 uchar dis_red0,dis_red1,dis_red2;
101 uchar dis_grn0,dis_grn1,dis_grn2;
102 uchar dis_blu0,dis_blu1,dis_blu2;
103
104 uchar pwm,rl;
105 uchar bdata flags;
106 sbit flag0=flags^0;
107 sbit flag1=flags^1;
108 sbit flag2=flags^2;
109 sbit flag3=flags^3;
110
111 //*****************************************
112 // 延时
113 //**************************************
114 void delay(uint tim)
115 {
116 1 uint i;
117 1 while(tim!=0)
C51 COMPILER V7.06 QIANTAIV11 12/08/2004 15:27:00 PAGE 3
118 1 {
119 2 for(i=0;i<500;i++);
120 2 tim--;
121 2 }
122 1 }
123 //********************************
124 // 多彩流动
125 //***************************************
126 void qczz(uint speed)
127 {
128 1 uchar i,j;
129 1 for(i=0;i<8;i++)
130 1 for(j=0;j<7;j++)
131 1 {
132 2 dis_red0=x7cr[j];
133 2 dis_red1=x7cr[j+1];
134 2 dis_red2=x7cr[j+2];
135 2
136 2 dis_grn0=x7cg[j];
137 2 dis_grn1=x7cg[j+1];
138 2 dis_grn2=x7cg[j+2];
139 2
140 2 dis_blu0=x7cb[j];
141 2 dis_blu1=x7cb[j+1];
142 2 dis_blu2=x7cb[j+2];
143 2 delay(speed);
144 2 }
145 1 for(j=0;j<3;j++)
146 1 {
147 2 dis_red0=x7cr[j];
148 2 dis_red1=x7cr[j+1];
149 2 dis_red2=x7cr[j+2];
150 2
151 2 dis_grn0=x7cg[j];
152 2 dis_grn1=x7cg[j+1];
153 2 dis_grn2=x7cg[j+2];
154 2
155 2 dis_blu0=0;
156 2 dis_blu1=0;
157 2 dis_blu2=0;
158 2 delay(speed);
159 2 }
160 1 }
161 //********************************
162 // 多彩流动
163 //***************************************
164 void qcld(uint speed,uchar step)
165 {
166 1 uchar j;
167 1 for(j=0;j<189;j+=step)
168 1 {
169 2 dis_red0=x64cr[j];
170 2 dis_red1=x64cr[j+1];
171 2 dis_red2=x64cr[j+2];
172 2
173 2 dis_grn0=x64cg[j];
174 2 dis_grn1=x64cg[j+1];
175 2 dis_grn2=x64cg[j+2];
176 2
177 2 dis_blu0=x64cb[j];
178 2 dis_blu1=x64cb[j+1];
179 2 dis_blu2=x64cb[j+2];
C51 COMPILER V7.06 QIANTAIV11 12/08/2004 15:27:00 PAGE 4
180 2 delay(speed);
181 2 }
182 1 }
183 //************************************
184 //七彩过渡
185 //**********************************
186
187 void qcgd(uint speed)
188 {
189 1 uchar i;
190 1 dis_red0=dis_red1=dis_red2=0;
191 1 dis_grn0=dis_grn1=dis_grn2=0;
192 1 dis_blu0=dis_blu1=dis_blu2=0;
193 1 for(i=1;i<32;i++)
194 1 {dis_red0=dis_red1=dis_red2=i;
195 2 delay(speed);
196 2 }
197 1 for(i=1;i<32;i++)
198 1 {//dis_red0=dis_red1=dis_red2=dis_red3=i;
199 2 dis_grn0=dis_grn1=dis_grn2=i; //yello
200 2 delay(speed);
201 2 }
202 1 for(i=31;i<255;i--)
203 1 {dis_red0=dis_red1=dis_red2=i; //green
204 2 delay(speed);
205 2 }
206 1 for(i=1;i<32;i++)
207 1 {//dis_red0=dis_red1=dis_red2=dis_red3=i;
208 2 dis_blu0=dis_blu1=dis_blu2=i;
209 2 delay(speed);
210 2 }
211 1 for(i=31;i<255;i--)
212 1 {//dis_red0=dis_red1=dis_red2=dis_red3=i; //blue
213 2 dis_grn0=dis_grn1=dis_grn2=i;
214 2 delay(speed);
215 2 }
216 1 for(i=1;i<32;i++)
217 1 {dis_red0=dis_red1=dis_red2=i;
218 2 delay(speed);
219 2 }
220 1 for(i=31;i<255;i--)
221 1 {dis_grn0=dis_grn1=dis_grn2=i; //green
222 2 delay(speed);
223 2 }
224 1 }
225
226 //*****************************************
227 //*********************************
228 void main(void)
229 {
230 1
231 1 TMOD=0x01;
232 1 TL0=V_TL0;
233 1 TH0=V_TH0;
234 1 TR0=1;
235 1 ET0=1;
236 1 TR1=1;
237 1 EA=1;
238 1 rl=0x01;
239 1 while(1)
240 1 {
241 2 qczz(100);
C51 COMPILER V7.06 QIANTAIV11 12/08/2004 15:27:00 PAGE 5
242 2 qczz(50);
243 2 qcgd(100);
244 2 qcld(20,1);
245 2 qcld(40,2);
246 2 qcld(80,4);
247 2 qcld(60,8);
248 2 qcld(100,16);
249 2 qcld(80,8);
250 2 qcld(60,4);
251 2 qcld(40,2);
252 2 qcld(20,1);
253 2
254 2 qcld(20,2);
255 2 qcld(40,4);
256 2 qcld(60,8);
257 2 qcld(80,16);
258 2 qcld(60,8);
259 2 qcld(40,4);
260 2 qcld(20,2);
261 2 qcld(90,16);
262 2 qcld(90,16);
263 2 qcld(90,16);
264 2 qcld(180,31);
265 2 qcld(180,31);
266 2 qcld(180,31);
267 2 qcld(180,31);
268 2
269 2 }
270 1 }
271
272 //**************************************
273 void pwmout(void)
274 {
275 1 red0=(bit)(dis_red0&rl);
276 1 red1=(bit)(dis_red1&rl);
277 1 red2=(bit)(dis_red2&rl);
278 1 grn0=(bit)(dis_grn0&rl);
279 1 grn1=(bit)(dis_grn1&rl);
280 1 grn2=(bit)(dis_grn2&rl);
281 1 blu0=(bit)(dis_blu0&rl);
282 1 blu1=(bit)(dis_blu1&rl);
283 1 blu2=(bit)(dis_blu2&rl);
284 1 }
285 //*******************************************
286 void timer1() interrupt 1
287 {TR0=0;
288 1 pwm++;
289 1 switch(pwm)
290 1 {
291 2 case 1:
292 2 pwmout();
293 2 rl=0x02;
294 2 break;
295 2 case 2:
296 2 pwmout();
297 2 rl=0x04;
298 2 break;
299 2 case 4:
300 2 pwmout();
301 2 rl=0x08;
302 2 break;
303 2 case 8:
C51 COMPILER V7.06 QIANTAIV11 12/08/2004 15:27:00 PAGE 6
304 2 pwmout();
305 2 rl=0x10;
306 2 break;
307 2 case 16:
308 2 pwmout();
309 2 rl=0x01;
310 2 break;
311 2 case 31:
312 2 pwm=0;
313 2 break;
314 2 default: break;
315 2 }
316 1 TL0=V_TL0;
317 1 TH0=V_TH0;
318 1 TR0=1;
319 1 }//end sub
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 789 ----
CONSTANT SIZE = 596 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 4
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 + -