📄 ledmenu_icc.lst
字号:
5FF E124 LDI R18,0x14
600 2F04 MOV R16,R20
601 0F00 LSL R16
602 DD75 RCALL _draw_bmp
603 9543 INC R20
604 3043 CPI R20,3
605 F340 BCS 0x05EE
(0150) }
(0151) select_item(user_choosen); //标记出当前菜单项.
606 9100 0062 LDS R16,user_choosen
608 D057 RCALL _select_item
(0152) }
609 C053 RJMP 0x065D
(0153) else
(0154) {
(0155) switch(temp_choosen)
60A 9160 006A LDS R22,temp_choosen
60C 2777 CLR R23
60D 3060 CPI R22,0
60E 0767 CPC R22,R23
60F F049 BEQ 0x0619
610 3061 CPI R22,1
611 E0E0 LDI R30,0
612 077E CPC R23,R30
613 F089 BEQ 0x0625
614 3062 CPI R22,2
615 E0E0 LDI R30,0
616 077E CPC R23,R30
617 F0C9 BEQ 0x0631
618 C023 RJMP 0x063C
(0156) {
(0157) case 0:
(0158) draw_bmp(0,20,96,0,blue);
619 EE8E LDI R24,0xEE
61A E092 LDI R25,2
61B 839D STD Y+5,R25
61C 838C STD Y+4,R24
61D 2422 CLR R2
61E 822A STD Y+2,R2
61F E680 LDI R24,0x60
620 8388 STD Y+0,R24
621 E124 LDI R18,0x14
622 2700 CLR R16
623 DD54 RCALL _draw_bmp
(0159) break;
624 C017 RJMP 0x063C
(0160) case 1:
(0161) draw_bmp(0,20,96,0,green);
625 EA8E LDI R24,0xAE
626 E093 LDI R25,3
627 839D STD Y+5,R25
628 838C STD Y+4,R24
629 2422 CLR R2
62A 822A STD Y+2,R2
62B E680 LDI R24,0x60
62C 8388 STD Y+0,R24
62D E124 LDI R18,0x14
62E 2700 CLR R16
62F DD48 RCALL _draw_bmp
(0162) break;
630 C00B RJMP 0x063C
(0163) case 2:
(0164) draw_bmp(0,20,96,0,red);
631 E68E LDI R24,0x6E
632 E094 LDI R25,4
633 839D STD Y+5,R25
634 838C STD Y+4,R24
635 2422 CLR R2
636 822A STD Y+2,R2
637 E680 LDI R24,0x60
638 8388 STD Y+0,R24
639 E124 LDI R18,0x14
63A 2700 CLR R16
63B DD3C RCALL _draw_bmp
(0165) break;
(0166) default:
(0167) break;
(0168) }
(0169) for(n=0;n<max_item;n++)
63C 2744 CLR R20
63D C017 RJMP 0x0655
(0170) {
(0171) draw_bmp((n+1)*2,20,32,0,menu_led[n].display);
63E E089 LDI R24,0x9
63F 9F84 MUL R24,R20
640 01F0 MOVW R30,R0
641 9020 0060 LDS R2,menu_led
643 9030 0061 LDS R3,menu_led+1
645 0DE2 ADD R30,R2
646 1DF3 ADC R31,R3
647 8021 LDD R2,Z+1
648 8032 LDD R3,Z+2
649 823D STD Y+5,R3
64A 822C STD Y+4,R2
64B 2422 CLR R2
64C 822A STD Y+2,R2
64D E280 LDI R24,0x20
64E 8388 STD Y+0,R24
64F E124 LDI R18,0x14
650 2F04 MOV R16,R20
651 5F0F SUBI R16,0xFF
652 0F00 LSL R16
653 DD24 RCALL _draw_bmp
654 9543 INC R20
655 9020 0063 LDS R2,max_item
657 1542 CP R20,R2
658 F328 BCS 0x063E
(0172) }
(0173) select_item(user_choosen+1);
659 9100 0062 LDS R16,user_choosen
65B 5F0F SUBI R16,0xFF
65C D003 RCALL _select_item
(0174) }
65D 9626 ADIW R28,6
65E 940C 06F4 JMP pop_xgsetF000
_select_item:
n --> R10
660 92AA ST R10,-Y
661 2EA0 MOV R10,R16
662 9726 SBIW R28,6
(0175) }
(0176)
(0177) void select_item(uchar n)
(0178) {
(0179) draw_bmp(n*2,2,16,0,curflag);
663 EA8E LDI R24,0xAE
664 E095 LDI R25,5
665 839D STD Y+5,R25
666 838C STD Y+4,R24
667 2422 CLR R2
668 822A STD Y+2,R2
669 E180 LDI R24,0x10
66A 8388 STD Y+0,R24
66B E022 LDI R18,2
66C 2D0A MOV R16,R10
66D 0F00 LSL R16
66E DD09 RCALL _draw_bmp
66F 9626 ADIW R28,6
670 90A9 LD R10,Y+
671 9508 RET
(0180) }
(0181)
(0182) void openblue(void)
(0183) {
(0184) blueon;
_openblue:
672 9AC5 SBI 0x18,5
(0185) greenoff;
673 98C6 CBI 0x18,6
(0186) redoff;
674 98C7 CBI 0x18,7
675 9508 RET
(0187) }
(0188)
(0189) void opengreen(void)
(0190) {
(0191) blueoff;
_opengreen:
676 98C5 CBI 0x18,5
(0192) greenon;
677 9AC6 SBI 0x18,6
(0193) redoff;
678 98C7 CBI 0x18,7
679 9508 RET
(0194) }
(0195)
(0196) void openred(void)
(0197) {
(0198) blueoff;
_openred:
67A 98C5 CBI 0x18,5
(0199) greenoff;
67B 98C6 CBI 0x18,6
(0200) redon;
67C 9AC7 SBI 0x18,7
67D 9508 RET
(0201) }
(0202)
(0203) void closeblue(void)
(0204) {
(0205) blueoff;
_closeblue:
67E 98C5 CBI 0x18,5
67F 9508 RET
(0206) }
(0207)
(0208) void closegreen(void)
(0209) {
(0210) greenoff;
_closegreen:
680 98C6 CBI 0x18,6
681 9508 RET
_main:
682 9726 SBIW R28,6
(0211) }
(0212)
(0213)
(0214)
(0215)
(0216) /*************************************************
(0217) 主程序.
(0218) **************************************************/
(0219)
(0220) void main(void)
(0221) {
(0222) main_init();
683 DDE1 RCALL _main_init
(0223) lcd_init();
684 DCBF RCALL _lcd_init
(0224) lcd_clr();
685 DCC7 RCALL _lcd_clr
(0225) draw_bmp(0,0,128,0,xtcsh); //函数调用形式为页,列,宽度,数据指针.
686 E58E LDI R24,0x5E
687 E090 LDI R25,0
688 839D STD Y+5,R25
689 838C STD Y+4,R24
68A 2422 CLR R2
68B 822A STD Y+2,R2
68C E880 LDI R24,0x80
68D 8388 STD Y+0,R24
68E 2722 CLR R18
68F 2700 CLR R16
690 DCE7 RCALL _draw_bmp
(0226) draw_bmp(2,8,72,0,writeby);
691 E58E LDI R24,0x5E
692 E091 LDI R25,1
693 839D STD Y+5,R25
694 838C STD Y+4,R24
695 2422 CLR R2
696 822A STD Y+2,R2
697 E488 LDI R24,0x48
698 8388 STD Y+0,R24
699 E028 LDI R18,0x8
69A E002 LDI R16,2
69B DCDC RCALL _draw_bmp
(0227) draw_bmp(4,56,32,1,jiangping);
69C EE8E LDI R24,0xEE
69D E091 LDI R25,1
69E 839D STD Y+5,R25
69F 838C STD Y+4,R24
6A0 E081 LDI R24,1
6A1 838A STD Y+2,R24
6A2 E280 LDI R24,0x20
6A3 8388 STD Y+0,R24
6A4 E328 LDI R18,0x38
6A5 E004 LDI R16,4
6A6 DCD1 RCALL _draw_bmp
(0228)
(0229) blueon;
6A7 9AC5 SBI 0x18,5
(0230) greenon;
6A8 9AC6 SBI 0x18,6
(0231) redon;
6A9 9AC7 SBI 0x18,7
(0232)
(0233) delay_ms(3000); //延时3秒.
6AA EB08 LDI R16,0xB8
6AB E01B LDI R17,0xB
6AC DC6B RCALL _delay_ms
(0234) lcd_clr();
6AD DC9F RCALL _lcd_clr
(0235)
(0236) blueoff;
6AE 98C5 CBI 0x18,5
(0237) greenoff;
6AF 98C6 CBI 0x18,6
(0238) redoff;
6B0 98C7 CBI 0x18,7
(0239)
(0240) main_menu_initial();
6B1 DDBE RCALL _main_menu_initial
(0241) blue_menu_initial();
6B2 DE05 RCALL _blue_menu_initial
(0242) green_menu_initial();
6B3 DE39 RCALL _green_menu_initial
6B4 C004 RJMP 0x06B9
(0243)
(0244) while(1)
(0245) {
(0246) keyval=get_key(); //读键.
6B5 DD2D RCALL _get_key
6B6 9300 0065 STS keyval,R16
(0247) led_menu_pro();
FILE: <library>
6B8 DE69 RCALL _led_menu_pro
6B9 CFFB RJMP 0x06B5
6BA 9626 ADIW R28,6
6BB 9508 RET
push_arg4:
6BC 933A ST R19,-Y
6BD 932A ST R18,-Y
push_arg2:
6BE 931A ST R17,-Y
6BF 930A ST R16,-Y
6C0 9508 RET
mod8u:
6C1 9468 BSET 6
6C2 C001 RJMP xdiv8u
div8u:
6C3 94E8 BCLR 6
xdiv8u:
6C4 932A ST R18,-Y
6C5 92FA ST R15,-Y
6C6 92EA ST R14,-Y
6C7 24FF CLR R15
6C8 24EE CLR R14
6C9 E120 LDI R18,0x10
6CA 0F00 LSL R16
6CB 1CFF ROL R15
6CC 1CEE ROL R14
6CD 16E1 CP R14,R17
6CE F010 BCS 0x06D1
6CF 1AE1 SUB R14,R17
6D0 9503 INC R16
6D1 952A DEC R18
6D2 F7B9 BNE 0x06CA
6D3 F40E BRTC 0x06D5
6D4 2D0E MOV R16,R14
6D5 90E9 LD R14,Y+
6D6 90F9 LD R15,Y+
6D7 9129 LD R18,Y+
6D8 9508 RET
pop_xgsetF0FC:
6D9 90A9 LD R10,Y+
6DA 90B9 LD R11,Y+
6DB 90C9 LD R12,Y+
6DC 90D9 LD R13,Y+
6DD 90E9 LD R14,Y+
6DE 90F9 LD R15,Y+
6DF 9149 LD R20,Y+
6E0 9159 LD R21,Y+
6E1 9169 LD R22,Y+
6E2 9179 LD R23,Y+
6E3 9508 RET
push_xgsetF0FC:
6E4 937A ST R23,-Y
6E5 936A ST R22,-Y
push_xgset30FC:
6E6 935A ST R21,-Y
6E7 934A ST R20,-Y
push_xgset00FC:
6E8 92FA ST R15,-Y
6E9 92EA ST R14,-Y
push_xgset003C:
6EA 92DA ST R13,-Y
6EB 92CA ST R12,-Y
6EC 92BA ST R11,-Y
6ED 92AA ST R10,-Y
6EE 9508 RET
push_xgsetF000:
6EF 937A ST R23,-Y
6F0 936A ST R22,-Y
6F1 935A ST R21,-Y
6F2 934A ST R20,-Y
6F3 9508 RET
pop_xgsetF000:
6F4 9149 LD R20,Y+
6F5 9159 LD R21,Y+
6F6 9169 LD R22,Y+
6F7 9179 LD R23,Y+
6F8 9508 RET
xicall:
6F9 920A ST R0,-Y
6FA 95C8 LPM
6FB 920A ST R0,-Y
6FC 9631 ADIW R30,1
6FD 95C8 LPM
6FE 2DF0 MOV R31,R0
6FF 91E9 LD R30,Y+
700 9009 LD R0,Y+
701 9409 IJMP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -