led1.lst
来自「该程序可以实现用595与154结合51单片机的16*32LED点阵左右滚动。」· LST 代码 · 共 382 行 · 第 1/3 页
LST
382 行
C51 COMPILER V8.05a LED1 03/26/2009 12:14:40 PAGE 5
239 8 while(!P1_3);
240 8 }
241 7 }
242 6 if(P1_0==0) break;
243 6 }
244 5 if(P1_0==0) break;
245 5 }
246 4 if(P1_0==0)
247 4 {
248 5 while(!P1_0);
249 5 break;
250 5 }
251 4 }
252 3 for(m=0;m<10;m++) //右移数字字母
253 3 {
254 4 for(k=0;k<8;k++)
255 4 {
256 5 for(l=0;l<sp;l++)
257 5 {
258 6 for(n=0;n<16;n++) //扫16行
259 6 {
260 7 oe=1;
261 7 P0=(P0&0xf0)|n;
262 7 write_595((tab[n+16*(m+3)]>>k)|(tab[n+16*(m+4)]<<(8-k)));
263 7 write_595((tab[n+16*(m+2)]>>k)|(tab[n+16*(m+3)]<<(8-k)));
264 7 write_595((tab[n+16*(m+1)]>>k)|(tab[n+16*(m+2)]<<(8-k)));
265 7 write_595((tab[n+16*m]>>k)|(tab[n+16*(m+1)]<<(8-k)));
266 7 oe=0;
267 7 delay();
268 7 if(P1_0==0)
269 7 {
270 8 num=1;
271 8 wd=0;
272 8 time=0;
273 8 open=0;
274 8 break;
275 8 }
276 7 if(P1_3==0)
277 7 {
278 8 sp=sp+5;
279 8 if(sp==40) sp=5;
280 8 while(!P1_3);
281 8 }
282 7 }
283 6 if(P1_0==0) break;
284 6 }
285 5 if(P1_0==0) break;
286 5 }
287 4 if(P1_0==0)
288 4 {
289 5 while(!P1_0);
290 5 break;
291 5 }
292 4 }
293 3 }
294 2 if(num==0&&wd==0&&time==0&&open==1) //左移汉字
295 2 {
296 3 for(m=0;m<33;m++)
297 3 {
298 4 for(h=0;h<2;h++)
299 4 {
300 5 for(k=0;k<8;k++)
C51 COMPILER V8.05a LED1 03/26/2009 12:14:40 PAGE 6
301 5 {
302 6 for(l=0;l<sp;l++)
303 6 {
304 7 for(n=0;n<16;n++) //扫16行
305 7 {
306 8 oe=1;
307 8 P0=(P0&0xf0)|n;
308 8 write_595((hz[n*2+h+m*32]<<k)|(hz[(n*2+(1-h)+32*h+m*32)]>>(8-k)));
309 8 write_595((hz[(n*2+(1-h)+32*h+m*32)]<<k)|(hz[n*2+32+m*32+h]>>(8-k)));
310 8 write_595((hz[n*2+32+m*32+h]<<k)|(hz[n*2+(1-h)+32*h+32+m*32]>>(8-k)));
311 8 write_595((hz[n*2+(1-h)+32*h+32+m*32]<<k)|(hz[n*2+32*2+m*32+h]>>(8-k)));
312 8 oe=0;
313 8 delay();
314 8 if(P1_0==0)
315 8 {
316 9 num=0;
317 9 wd=0;
318 9 time=0;
319 9 open=0;
320 9 break;
321 9 }
322 8 if(P1_3==0)
323 8 {
324 9 sp=sp+5;
325 9 if(sp==40) sp=5;
326 9 while(!P1_3);
327 9 }
328 8 }
329 7 if(P1_0==0) break;
330 7 }
331 6 if(P1_0==0) break;
332 6 }
333 5 if(P1_0==0) break;
334 5 }
335 4 if(P1_0==0)
336 4 {
337 5 while(!P1_0);
338 5 break;
339 5 }
340 4 }
341 3
342 3 }
343 2
344 2 }while(1);
345 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2171 ----
CONSTANT SIZE = 1440 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?