⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.lis

📁 简单菜单程序,八个按键.使用AVR单片机.2008/3/24--2008/3/29 编译器为ICCAVR7.14.晶振7.3728M,单片机为ATmega16(用ATmega32在proteus中仿
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -