📄 menu.lis
字号:
052E 0000 .byte 0,0
0530 1010 .byte 16,16
0532 0F08 .byte 15,8
0534 0804 .byte 8,4
0536 FF04 .byte 255,4
0538 2210 .byte 34,16
053A 0906 .byte 9,6
053C 0930 .byte 9,48
053E 1000 .byte 16,0
0540 0404 .byte 4,4
0542 FF00 .byte 255,0
0544 0000 .byte 0,0
0546 FF09 .byte 255,9
0548 0909 .byte 9,9
054A 0949 .byte 9,'I
054C 897F .byte 137,127
054E 0000 .byte 0,0
0550 .dbsym e qx _qx A[64:64]kc
0550 _curflag::
0550 0000 .byte 0,0
0552 8000 .byte 128,0
0554 0000 .byte 0,0
0556 FCFC .byte 252,252
0558 FC00 .byte 252,0
055A 0000 .byte 0,0
055C 8000 .byte 128,0
055E 0000 .byte 0,0
0560 0000 .byte 0,0
0562 0001 .byte 0,1
0564 0204 .byte 2,4
0566 0F1F .byte 15,31
0568 1F04 .byte 31,4
056A 0201 .byte 2,1
056C 0000 .byte 0,0
056E 0000 .byte 0,0
0570 .dbsym e curflag _curflag A[32:32]kc
.area data(ram, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/menu.h
0000 _menu_led::
0000 .blkw 1
.area idata
0000 2600 .word _main_menu
.area data(ram, con, rel)
0002 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/menu.h
0002 .dbsym e menu_led _menu_led pX
0002 _user_choosen::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/menu.h
0003 .dbsym e user_choosen _user_choosen c
0003 _max_item::
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/menu.h
0004 .dbsym e max_item _max_item c
0004 _refresh::
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/menu.h
0005 .dbsym e refresh _refresh c
0005 _keyval::
0005 .blkb 1
.area idata
0005 00 .byte 0
.area data(ram, con, rel)
0006 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/menu.h
0006 .dbsym e keyval _keyval c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/menu.h
0000 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/delay.h
0000 .dbfunc e delay_3_us _delay_3_us fV
0000 ; n -> R16,R17
.even
0000 _delay_3_us::
0000 .dbline -1
0000 .dbline 15
0000 ; /****************************************************************************************
0000 ; 简单菜单程序,八个按键.使用AVR单片机.2008/3/24--2008/3/29
0000 ; 编译器为ICCAVR7.14.晶振7.3728M,单片机为ATmega16(用ATmega32在proteus中仿真不成功!)
0000 ; *****************************************************************************************/
0000 ;
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ; #include "menu.h" //所有变量定义以及函数声明均放在这个头文件里.
0000 ; #include "delay.h"
0000 ; #include "lcd_12864.h"
0000 ; #include "get_key.h"
0000 ;
0000 ; #define blueon PORTB|=(1<<PORTB5)
0000 ; #define blueoff PORTB&=~(1<<PORTB5)
0000 .dbline 16
0000 ; #define greenon PORTB|=(1<<PORTB6)
0000 04C0 xjmp L5
0002 L2:
0002 .dbline 17
0002 .dbline 18
0002 0000 nop
0004 .dbline 19
0004 0000 nop
0006 .dbline 20
0006 L3:
0006 .dbline 16
0006 0150 subi R16,1
0008 1040 sbci R17,0
000A L5:
000A .dbline 16
000A 0030 cpi R16,0
000C 0107 cpc R16,R17
000E C9F7 brne L2
0010 X0:
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbsym r n 16 i
0012 .dbend
0012 .dbfunc e delay_ms _delay_ms fV
0012 ; n -> R20,R21
0012 ; m -> R16,R17
.even
0012 _delay_ms::
0012 0E940000 xcall push_gset1
0016 .dbline -1
0016 .dbline 35
0016 ; #define greenoff PORTB&=~(1<<PORTB6)
0016 ; #define redon PORTB|=(1<<PORTB7)
0016 ; #define redoff PORTB&=~(1<<PORTB7)
0016 ;
0016 ; //SFR初始化.
0016 ; void main_init(void)
0016 ; {
0016 ; DDRA=0xff; //A口设置为输出.
0016 ; PORTA=0x00;
0016 ; DDRB=0xff; //B口设置为输出.
0016 ; PORTB=0x00;
0016 ; // ASSR&=~(1<<AS2);
0016 ; DDRC=0x00; //C口设置为输入.
0016 ; PORTC=0xff; //AVR没有上拉寄存器,在PORTC中写1即表示打开上拉了.
0016 ; DDRD=0x00; //D口设置为输入.
0016 ; PORTD=0xff; //打开D口上拉.
0016 ; }
0016 ;
0016 ; void main_menu_initial(void) //LED主菜单初始化.
0016 .dbline 38
0016 ; {
0016 ; main_menu[0].menu_count=3; //有三个菜单项.
0016 ; main_menu[0].display=blue;
0016 0AC0 xjmp L10
0018 L7:
0018 .dbline 39
0018 ; main_menu[0].subs=NULL; //点亮兰灯
0018 4DEC ldi R20,1229
001A 54E0 ldi R21,4
001C 02C0 xjmp L14
001E L11:
001E .dbline 40
001E .dbline 41
001E .dbline 42
001E L12:
001E .dbline 39
001E 4150 subi R20,1
0020 5040 sbci R21,0
0022 L14:
0022 .dbline 39
0022 4030 cpi R20,0
0024 4507 cpc R20,R21
0026 D9F7 brne L11
0028 X1:
0028 L8:
0028 .dbline 38
0028 0150 subi R16,1
002A 1040 sbci R17,0
002C L10:
002C .dbline 38
002C 0030 cpi R16,0
002E 0107 cpc R16,R17
0030 99F7 brne L7
0032 X2:
0032 .dbline -2
0032 L6:
0032 0E940000 xcall pop_gset1
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbsym r n 20 i
0038 .dbsym r m 16 i
0038 .dbend
0038 .dbfile C:\DOCUME~1\Administrator\桌面\LedMenu/lcd_12864.h
0038 .dbfunc e chkbusy _chkbusy fV
.even
0038 _chkbusy::
0038 .dbline -1
0038 .dbline 24
0038 .dbline 26
0038 C49A sbi 0x18,4
003A .dbline 27
003A C298 cbi 0x18,2
003C .dbline 28
003C C39A sbi 0x18,3
003E .dbline -2
003E L15:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbend
0040 .dbfunc e send_comm _send_comm fV
0040 ; command -> R20
.even
0040 _send_comm::
0040 0E940000 xcall push_gset1
0044 402F mov R20,R16
0046 .dbline -1
0046 .dbline 33
0046 .dbline 34
0046 F8DF xcall _chkbusy
0048 .dbline 35
0048 C49A sbi 0x18,4
004A .dbline 36
004A C298 cbi 0x18,2
004C .dbline 37
004C C398 cbi 0x18,3
004E .dbline 38
004E 4BBB out 0x1b,R20
0050 .dbline 39
0050 C49A sbi 0x18,4
0052 .dbline 40
0052 ; main_menu[0].children_menus=blue_menu;
0052 C498 cbi 0x18,4
0054 .dbline -2
0054 L16:
0054 0E940000 xcall pop_gset1
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbsym r command 20 c
005A .dbend
005A .dbfunc e send_data _send_data fV
005A ; dat -> R20
.even
005A _send_data::
005A 0E940000 xcall push_gset1
005E 402F mov R20,R16
0060 .dbline -1
0060 .dbline 44
0060 ; main_menu[0].parent_menus=NULL;
0060 ;
0060 ; main_menu[1].menu_count=3;
0060 ; main_menu[1].display=green; //点亮绿灯
0060 .dbline 45
0060 ; main_menu[1].subs=NULL;
0060 EBDF xcall _chkbusy
0062 .dbline 46
0062 ; main_menu[1].children_menus=green_menu;
0062 C49A sbi 0x18,4
0064 .dbline 47
0064 ; main_menu[1].parent_menus=NULL;
0064 C29A sbi 0x18,2
0066 .dbline 48
0066 ;
0066 C398 cbi 0x18,3
0068 .dbline 49
0068 ; main_menu[2].menu_count=3;
0068 4BBB out 0x1b,R20
006A .dbline 50
006A ; main_menu[2].display=red; //点亮红灯.
006A C498 cbi 0x18,4
006C .dbline -2
006C L17:
006C 0E940000 xcall pop_gset1
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbsym r dat 20 c
0072 .dbend
0072 .dbfunc e lcd_init _lcd_init fV
.even
0072 _lcd_init::
0072 .dbline -1
0072 .dbline 55
0072 ; main_menu[2].subs=openred;
0072 ; main_menu[2].children_menus=NULL;
0072 ; main_menu[2].parent_menus=NULL;
0072 ; }
0072 ;
0072 .dbline 56
0072 ; void blue_menu_initial(void)
0072 00EC ldi R16,192
0074 E5DF xcall _send_comm
0076 .dbline 57
0076 ; {
0076 08EB ldi R16,184
0078 E3DF xcall _send_comm
007A .dbline 58
007A ; blue_menu[0].menu_count=2;
007A 00E4 ldi R16,64
007C E1DF xcall _send_comm
007E .dbline 59
007E ; blue_menu[0].display=qr; //点亮兰灯,确认.
007E 0FE3 ldi R16,63
0080 DFDF xcall _send_comm
0082 .dbline -2
0082 L18:
0082 .dbline 0 ; func end
0082 0895 ret
0084 .dbend
0084 .dbfunc e lcd_clr _lcd_clr fV
0084 ; page -> R20
0084 ; col -> R22
.even
0084 _lcd_clr::
0084 0E940000 xcall push_gset2
0088 .dbline -1
0088 .dbline 64
0088 ; blue_menu[0].subs=openblue;
0088 ; blue_menu[0].children_menus=NULL;
0088 ; blue_menu[0].parent_menus=main_menu;
0088 ;
0088 ; blue_menu[1].menu_count=2;
0088 .dbline 66
0088 ; blue_menu[1].display=qx; //取消.
0088 ; blue_menu[1].subs=closeblue;
0088 C09A sbi 0x18,0
008A .dbline 67
008A ; blue_menu[1].children_menus=NULL;
008A C198 cbi 0x18,1
008C .dbline 68
008C ; blue_menu[1].parent_menus=main_menu;
008C 4427 clr R20
008E 0DC0 xjmp L23
0090 L20:
0090 .dbline 69
0090 ; }
0090 .dbline 70
0090 ;
0090 042F mov R16,R20
0092 086B ori R16,184
0094 D5DF xcall _send_comm
0096 .dbline 71
0096 ; void green_menu_initial(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -