📄 led.lst
字号:
194 uchar code xin1[]={
195 /*-- 调入了一幅图像:C:\Documents and Settings\jyn\桌面\148.bmp --*/
196 /*-- 宽度x高度=32x16 --*/
197 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0xC3,0xFF,
198 0xFF,0x03,0x81,0xFF,0xFE,0x00,0x00,0xFF,0xFE,0x00,0x00,0xFF,0xFE,0x00,0x00,0xFF,
199 0xFE,0x00,0x00,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0xC0,0x07,0xFF,
200 0xFF,0xE0,0x0F,0xFF,0xFF,0xF0,0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF};
201
202 uchar code xin2[]={
203 /*-- 调入了一幅图像:C:\Documents and Settings\jyn\桌面\149.bmp --*/
204 /*-- 宽度x高度=32x16 --*/
205 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0xC3,0xFF,
206 0xFF,0x03,0x81,0xFF,0xFE,0x00,0x00,0xFF,0xFE,0x1C,0x70,0xFF,0xFE,0x33,0x98,0xFF,
207 0xFE,0x31,0x18,0xFF,0xFF,0x18,0x31,0xFF,0xFF,0x8C,0x63,0xFF,0xFF,0xC6,0xC7,0xFF,
208 0xFF,0xE3,0x8F,0xFF,0xFF,0xF1,0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF};
209 uchar code xin3[]={
210 /*-- 调入了一幅图像:C:\Documents and Settings\jyn\桌面\1410.bmp --*/
211 /*-- 宽度x高度=32x16 --*/
212 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x87,0xC3,0xFF,
213 0xFF,0x03,0x81,0xFF,0xFE,0x3C,0x78,0xFF,0xFE,0x7E,0xFC,0xFF,0xFE,0x73,0x9C,0xFF,
214 0xFE,0x71,0x1C,0xFF,0xFF,0x38,0x39,0xFF,0xFF,0x9C,0x73,0xFF,0xFF,0xCE,0xE7,0xFF,
215 0xFF,0xE7,0xCF,0xFF,0xFF,0xF3,0x9F,0xFF,0xFF,0xF9,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF};
216
217 /**********************/
218
219 void init_com()
220
221 {SCON=0x50;
222 1 TMOD=0x20;
223 1 TH1=0xFA;
224 1 TL1=0xFA;
225 1 TH0=0;
226 1 TL0=0;
227 1 TCON=0x02;
228 1
229 1 TR1=1;
230 1 REN=1;
231 1 EA=1;
232 1 ES=1;
233 1 }
234 /********************************/
235 void delay1(uint us)
236 {uint i,j;
237 1 for(i=0;i<us;i++)
238 1 for(j=0;j<1000;j++);
239 1
240 1 }
241 /******************************/
C51 COMPILER V7.50 LED 09/02/2007 22:46:16 PAGE 5
242
243 void delay2(uint i)
244 {
245 1 while(i!=0)i--;
246 1
247 1 }
248
249
250 /********************************/
251 /* 发送8位数据到595
252 /********************************/
253
254 void send_8bit(uchar led_data,uchar t)
255 {
256 1 uchar i;
257 1 for(i=0;i<t;i++)
258 1 {
259 2 if(led_data&0x80)DI=1;
260 2 else DI=0;
261 2 CLK=1;
262 2 led_data=led_data<<1;
263 2 CLK=0;
264 2 }
265 1 }
266 /********************************/
267 void serial () interrupt 4
268
269 { uchar S=0;
270 1
271 1 if(RI)
272 1 {RI=0;
273 2 LED[3]=SBUF;
274 2 LED[0]=LED[1];
275 2 LED[1]=LED[2];
276 2 LED[2]=LED[3];
277 2 if(RECODE==1)rx_buff[i++]=SBUF;
278 2 if((LED[0]=='L')&(LED[1]=='E')&(LED[2]=='D')){RECODE=1;i=0;}
279 2 if((LED[0]=='E')&(LED[1]=='N')&(LED[2]=='D')){RECODE=0;
280 3 if(rx_buff[i-4]=='L')LEFT=1;
281 3 else if(rx_buff[i-4]=='R')RIGHT=1;
282 3 lager=rx_buff[i-5];
283 3 i=0;rx_over=1;}
284 2
285 2 }
286 1
287 1 if(TI)
288 1 { TI=0;
289 2 if(*(++tx_pointer)!='\0')
290 2
291 2 SBUF=* tx_pointer;
292 2
293 2 else tx_complete=1; //发送完毕后,置发送完成标志位!
294 2
295 2 }
296 1 }
297
298 ///////////////////////////////
299 // 发送命令子函数 //
300 // //
301 ///////////////////////////////
302
303 void tx_string(uchar * buff)
C51 COMPILER V7.50 LED 09/02/2007 22:46:16 PAGE 6
304 {
305 1 uint i=0;
306 1
307 1 tx_pointer=buff;
308 1 SBUF=buff[0];
309 1 while(tx_complete!=1){delay(1); ++i; //等待命令字节发送完毕!
310 2 if(i>500)break;
311 2 }
312 1 }
313
314
315 /**************************************************/
316 /* 读数据到显示缓存
317 /**************************************************/
318 void DATA_TO_dispBUF(uchar number)
319 {
320 1 uchar i,j;
321 1 for(i=0;i<16;i++)
322 1 for(j=0;j<number;j++)
323 1 {
324 2 dispBUF[i*(number*2)+j*2]=MY_DATA[(number-j-1)*32+(i*2)+1];
325 2 dispBUF[i*(number*2)+j*2+1]=MY_DATA[(number-j-1)*32+(i*2)];
326 2 }
327 1 }
328 /***************************************************/
329 /* 主函数
330 /***************************************************/
331 main()
332 { uchar i,j,t=0;
333 1 uchar a,b,c,d,e,f; //'L''E''D''N''R'':'
334 1 uchar L_R=1;
335 1 uchar time=0;
336 1 uchar N=0,M=0;
337 1 uchar x=0;
338 1 // init_com();
339 1 // I_write(0,34);
340 1 // lager=I_read(0);
341 1 // L_R=I_read(1);
342 1 // for(i=0;i<(lager*32);i++)
343 1 // rx_buff[i]=I_read(i+2);
344 1
345 1
346 1
347 1 P0=time;
348 1 DATA_TO_dispBUF(3); //装载
349 1 /* for(i=0;i<16;i++)
350 1 {
351 1 dispBUF[i*4]=rx_buf[i*2+65];
352 1 dispBUF[i*4+1]=rx_buf[i*2+64];
353 1 dispBUF[i*4+2]=rx_buf[i*2+33];
354 1 dispBUF[i*4+3]=rx_buf[i*2+32];
355 1 dispBUF[i*4+4]=rx_buf[i*2+1];
356 1 dispBUF[i*4+5]=rx_buf[i*2];
357 1 } */
358 1 while(1)
359 1
360 1 {
361 2 if(rx_over==1)
362 2 {tx_string(OK);
363 3 I_write(0,lager);
364 3 if(LEFT==1)I_write(1,1);
365 3 else if(RIGHT==1)I_write(1,0);
C51 COMPILER V7.50 LED 09/02/2007 22:46:16 PAGE 7
366 3 lager=I_read(0);
367 3 L_R=I_read(1);
368 3 // for(i=0;i<(lager*32);i++)
369 3 // I_write(i+2,rx_buff[i]);
370 3 rx_over=0;
371 3 }
372 2
373 2 /******************************************/
374 2 /* 显示部分
375 2 /******************************************/
376 2
377 2
378 2 {time=15;
379 3 for(i=15;i>0;i--)
380 3 {
381 4 a=i*6;
382 4 SCLK=0;
383 4 send_8bit(dispBUF[a+2],8);
384 4 send_8bit(dispBUF[a+3],8);
385 4 send_8bit(dispBUF[a+4],8);
386 4 send_8bit(dispBUF[a+5],8);
387 4 SCLK=1;
388 4 P0=time;
389 4 time--;
390 4 }
391 3 time=0;
392 3 SCLK=0;
393 3 send_8bit(dispBUF[0+2],8);
394 3 send_8bit(dispBUF[0+3],8);
395 3 send_8bit(dispBUF[0+4],8);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -