📄 main.lst
字号:
228:3310LCD.h **** 最后修改日期 :2004-8-13
229:3310LCD.h **** -----------------------------------------------------------------------*/
230:3310LCD.h **** void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map,
231:3310LCD.h **** unsigned char Pix_x,unsigned char Pix_y)
232:3310LCD.h **** {
233:3310LCD.h **** unsigned int i,n;
234:3310LCD.h **** unsigned char row;
235:3310LCD.h ****
236:3310LCD.h **** if (Pix_y%8==0) row=Pix_y/8; //计算位图所占行数
237:3310LCD.h **** else
238:3310LCD.h **** row=Pix_y/8+1;
239:3310LCD.h ****
240:3310LCD.h **** for (n=0;n<row;n++)
241:3310LCD.h **** {
242:3310LCD.h **** LCD_set_XY(X,Y);
243:3310LCD.h **** for(i=0; i<Pix_x; i++)
244:3310LCD.h **** {
245:3310LCD.h **** LCD_write_byte(map[i+n*Pix_x], 1);
246:3310LCD.h **** }
247:3310LCD.h **** Y++; //换行
248:3310LCD.h **** }
249:3310LCD.h **** }
250:3310LCD.h ****
251:3310LCD.h **** /*-----------------------------------------------------------------------
252:3310LCD.h **** LCD_write_byte : 使用SPI接口写数据到LCD
253:3310LCD.h ****
254:3310LCD.h **** 输入参数:data :写入的数据;
255:3310LCD.h **** command :写数据/命令选择;
256:3310LCD.h ****
257:3310LCD.h **** 编写日期 :2004-8-10
258:3310LCD.h **** 最后修改日期 :2004-8-13
259:3310LCD.h **** -----------------------------------------------------------------------*/
260:3310LCD.h **** void LCD_write_byte(unsigned char data, unsigned char command)
261:3310LCD.h **** {
286 n 68,0,265,.LM18-LCD_write_byte
287 .LM18:
288 cbi 56-0x20,6
289 rjmp .L27
262:3310LCD.h **** PORTB &= ~LCD_CE ; // 使能LCD
290 :
292 006a C498 .LM19:
263:3310LCD.h ****
264:3310LCD.h **** if (command == 0)
293 i 56-0x20,6
294 .L27:
296 006e 01F4 .LM20:
265:3310LCD.h **** PORTB &= ~LCD_DC ; // 传送命令
297 47-0x20,r24
298 .L28:
300 0072 00C0 .LM21:
301 sbis 46-0x20,7
266:3310LCD.h **** else
267:3310LCD.h **** PORTB |= LCD_DC ; // 传送数据
302 .L28
304 0074 C69A .LM22:
305 sbi 56-0x20,4
268:3310LCD.h ****
269:3310LCD.h **** SPDR = data; // 传送数据到SPI寄存器
306 pilogue: frame size=0 */
307 ret
308 0076 8FB9 /* epilogue end (size=1) */
309 /* function LCD_write_byte size 11 (10) */
270:3310LCD.h ****
271:3310LCD.h **** while ((SPSR & 0x80) == 0); // 等待数据传送完毕
310 ze LCD_write_byte, .-LCD_write_byte
311 .Lscope7:
272:3310LCD.h ****
273:3310LCD.h **** PORTB |= LCD_CE ; // 关闭LCD
314 bal LCD_write_char
316 007c C49A LCD_write_char:
318 007e 0895 .LM23:
319 /* prologue: frame size=0 */
320 push r17
321 push r28
322 push r29
323 /* prologue end (size=3) */
324 subi r24,lo8(-(-32))
325 ldi r25,lo8(6)
326 mul r24,r25
327 movw r28,r0
328 clr r1
329 subi r28,lo8(-(font6x8))
330 sbci r29,hi8(-(font6x8))
331 0080 1F93 ldi r17,lo8(0)
332 0082 CF93 .L34:
334 .LM24:
335 0086 8052 ldi r22,lo8(1)
336 0088 96E0 ld r24,Y+
337 008a 899F call LCD_write_byte
339 008e 1124 .LM25:
340 0090 C050 subi r17,lo8(-(1))
341 0092 D040 cpi r17,lo8(6)
342 0094 10E0 brne .L34
343 /* epilogue: frame size=0 */
344 pop r29
345 pop r28
346 0096 61E0 pop r17
347 0098 8991 ret
348 009a 0E94 0000 /* epilogue end (size=4) */
349 /* function LCD_write_char size 22 (15) */
354 .Lscope8:
358 00aa 0895 .global LCD_set_XY
360 LCD_set_XY:
362 .LM26:
363 /* prologue: frame size=0 */
364 push r17
365 /* prologue end (size=1) */
366 mov r17,r24
367 mov r24,r22
369 .LM27:
370 ldi r22,lo8(0)
371 ori r24,lo8(64)
372 call LCD_write_byte
374 .LM28:
375 00ac 1F93 ldi r22,lo8(0)
376 mov r24,r17
377 00ae 182F ori r24,lo8(-128)
378 00b0 862F call LCD_write_byte
379 /* epilogue: frame size=0 */
380 pop r17
381 00b2 60E0 ret
382 00b4 8064 /* epilogue end (size=2) */
383 00b6 0E94 0000 /* function LCD_set_XY size 14 (11) */
385 .Lscope9:
392 00c6 0895 .global LCD_draw_bmp_pixel
394 LCD_draw_bmp_pixel:
396 .LM29:
397 /* prologue: frame size=0 */
398 push r8
399 push r9
400 push r10
401 push r11
402 push r12
403 push r13
404 push r14
405 push r15
406 push r16
407 push r17
408 push r28
409 00c8 8F92 push r29
410 00ca 9F92 /* prologue end (size=12) */
411 00cc AF92 mov r8,r24
412 00ce BF92 mov r11,r22
414 00d2 DF92 .LM30:
415 00d4 EF92 mov r24,r16
416 00d6 FF92 clr r25
417 00d8 0F93 andi r24,lo8(7)
418 00da 1F93 andi r25,hi8(7)
419 00dc CF93 lsr r16
420 00de DF93 lsr r16
421 lsr r16
422 00e0 882E or r24,r25
423 00e2 B62E brne .L42
425 .LM31:
426 00e4 802F mov r9,r16
427 00e6 9927 rjmp .L44
428 00e8 8770 .L42:
430 00ec 0695 .LM32:
431 00ee 0695 mov r9,r16
432 00f0 0695 inc r9
433 00f2 892B .L44:
435 .LM33:
436 mov r12,r18
437 00f6 902E clr r13
438 00f8 00C0 movw r16,r20
439 clr r10
440 rjmp .L45
441 .L46:
443 00fc 9394 .LM34:
444 mov r22,r11
445 mov r24,r8
446 call LCD_set_XY
447 00fe C22E movw r14,r16
448 0100 DD24 ldi r28,lo8(0)
449 0102 8A01 ldi r29,hi8(0)
450 0104 AA24 rjmp .L47
451 0106 00C0 .L48:
453 .LM35:
454 ldi r22,lo8(1)
455 0108 6B2D movw r30,r14
456 010a 882D ld r24,Z+
457 010c 0E94 0000 movw r14,r30
458 0110 7801 call LCD_write_byte
460 0114 D0E0 .LM36:
461 0116 00C0 adiw r28,1
462 .L47:
463 cp r28,r12
464 cpc r29,r13
465 0118 61E0 brne .L48
467 011c 8191 .LM37:
468 011e 7F01 inc r11
469 0120 0E94 0000 inc r10
470 add r16,r12
471 adc r17,r13
472 0124 2196 .L45:
474 0126 CC15 .LM38:
475 0128 DD05 cp r10,r9
476 012a 01F4 brne .L46
477 /* epilogue: frame size=0 */
478 pop r29
479 012c B394 pop r28
480 012e A394 pop r17
481 0130 0C0D pop r16
482 0132 1D1D pop r15
483 pop r14
484 pop r13
485 pop r12
486 0134 A914 pop r11
487 0136 01F4 pop r10
488 pop r9
489 0138 DF91 pop r8
490 013a CF91 ret
491 013c 1F91 /* epilogue end (size=13) */
492 013e 0F91 /* function LCD_draw_bmp_pixel size 69 (44) */
498 014a AF90 .Lscope10:
503 .global LCD_move_chinese_string
505 LCD_move_chinese_string:
507 .LM39:
508 /* prologue: frame size=168 */
509 push r9
510 push r10
511 push r11
512 push r12
513 push r13
514 push r14
515 push r15
516 push r16
517 push r17
518 push r28
519 push r29
520 0152 9F92 in r28,__SP_L__
521 0154 AF92 in r29,__SP_H__
522 0156 BF92 subi r28,lo8(168)
523 0158 CF92 sbci r29,hi8(168)
524 015a DF92 in __tmp_reg__,__SREG__
525 015c EF92 cli
526 015e FF92 out __SP_H__,r29
527 0160 0F93 out __SREG__,__tmp_reg__
528 0162 1F93 out __SP_L__,r28
529 0164 CF93 /* prologue end (size=20) */
530 0166 DF93 mov r9,r24
531 0168 CDB7 mov r12,r22
532 016a DEB7 movw r10,r20
534 016e D040 .LM40:
535 0170 0FB6 ldi r24,lo8(84)
536 0172 F894 movw r30,r28
537 0174 DEBF subi r30,lo8(-(85))
538 0176 0FBE sbci r31,hi8(-(85))
539 0178 CDBF mov r18,r24
540 st Z+,__zero_reg__
541 017a 982E dec r18
542 017c C62E brne .-6
544 .LM41:
545 movw r30,r28
546 0180 84E5 adiw r30,1
547 0182 FE01 st Z+,__zero_reg__
548 0184 EB5A dec r24
549 0186 FF4F brne .-6
550 0188 282F clr r13
551 018a 1192 clr r14
552 018c 2A95 clr r15
553 018e 01F4 .L53:
555 .LM42:
556 0190 FE01 mov r24,r14
557 0192 3196 ldi r22,lo8(12)
558 0194 1192 call __udivmodqi4
559 0196 8A95 clr r25
560 0198 01F4 ldi r18,lo8(24)
561 019a DD24 ldi r19,hi8(24)
562 019c EE24 mul r24,r18
563 019e FF24 movw r30,r0
564 mul r24,r19
565 add r31,r0
566 mul r25,r18
567 01a0 8E2D add r31,r0
568 01a2 6CE0 clr r1
569 01a4 0E94 0000 subi r30,lo8(-(move_chinese_string))
570 01a8 9927 sbci r31,hi8(-(move_chinese_string))
571 01aa 28E1 add r30,r13
572 01ac 30E0 adc r31,__zero_reg__
573 01ae 829F ld r24,Z
575 01b2 839F .LM43:
576 01b4 F00D ldd r25,Z+12
578 01b8 F00D .LM44:
579 01ba 1124 inc r13
581 01be F040 .LM45:
582 01c0 ED0D cp r13,r22
583 01c2 F11D brne .L54
584 01c4 8081 clr r13
585 .L54:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -