📄 menu.s
字号:
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e VoiceMenu _VoiceMenu A[45:5]S[MenuItem]
_RobotMenu::
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L19
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L20
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L21
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L22
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L16
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e RobotMenu _RobotMenu A[45:5]S[MenuItem]
_MainMenu::
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L8
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _TimeMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L23
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _VoiceMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L24
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _RobotMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L25
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _FlashMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 2
.area idata
.word 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkb 1
.area idata
.byte 5
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word L16
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word PL_NullSubs
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e MainMenu _MainMenu A[45:5]S[MenuItem]
_MenuPoint::
.blkw 1
.area idata
.word _MainMenu
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e MenuPoint _MenuPoint pS[MenuItem]
_DisplayStart::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e DisplayStart _DisplayStart c
_UserChoose::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e UserChoose _UserChoose c
_DisplayPoint::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e DisplayPoint _DisplayPoint c
_ShowCount::
.blkb 1
.area idata
.byte 2
.area data(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbsym e ShowCount _ShowCount c
.area text(rom, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
.dbfunc e ShowMenu _ShowMenu fV
; n -> R20
.even
_ShowMenu::
xcall push_gset1
sbiw R28,2
.dbline -1
.dbline 139
; }
; //------------------------------------------------------------------------------
;
;
;
;
;
;
; /***********************
; * 结构体区 *
; ***********************/
; //----------------------以下为例子,请根据实际情况修改---------------------------
; struct MenuItem TimeMenu[4];
; struct MenuItem FlashMenu[5];
; struct MenuItem VoiceMenu[5];
; struct MenuItem RobotMenu[5];
; struct MenuItem MainMenu[5];
;
; struct MenuItem TimeMenu[4]=
; { //MenuCount DisplayString Subs ChildrenMenus ParentMenus
; {4, "1.Time Set", TimeSet, Null, MainMenu},
; {4, "2.Date Set", DateSet, Null, MainMenu},
; {4, "3.AlertSet", AlertSet, Null, MainMenu},
; {4, "4.Back", NullSubs, MainMenu, MainMenu},
; };
;
; struct MenuItem FlashMenu[5]=
; { //MenuCount DisplayString Subs ChildrenMenus ParentMenus
; {5, "1.Flash Record", NullSubs, Null, MainMenu},
; {5, "2.Play", NullSubs, Null, MainMenu},
; {5, "3.Pause", NullSubs, Null, MainMenu},
; {5, "4.Flash Delete", NullSubs, Null, MainMenu},
; {5, "5.Back", NullSubs, MainMenu, MainMenu},
; };
;
; struct MenuItem VoiceMenu[5]=
; { //MenuCount DisplayString Subs ChildrenMenus ParentMenus
; {5, "1.Voice Record" , NullSubs, Null, MainMenu},
; {5, "2.Play", NullSubs, Null, MainMenu},
; {5, "3.Pause", NullSubs, Null, MainMenu},
; {5, "4.Voice Delete", NullSubs, Null, MainMenu},
; {5, "5.Back", NullSubs, MainMenu, MainMenu},
; };
;
; struct MenuItem RobotMenu[5]=
; { //MenuCount DisplayString Subs ChildrenMenus ParentMenus
; {5, "1.Turn Left", NullSubs, Null, MainMenu},
; {5, "2.Turn Right", NullSubs, Null, MainMenu},
; {5, "3.Go Ahead", NullSubs, Null, MainMenu},
; {5, "4.Go Back", NullSubs, Null, MainMenu},
; {5, "5.Back", NullSubs, MainMenu, MainMenu},
; };
;
;
; struct MenuItem MainMenu[5]=
; { //MenuCount DisplayString Subs ChildrenMenus ParentMenus
; {5, "1.Time Set" , NullSubs, TimeMenu, Null},
; {5, "2.Voice Center", NullSubs, VoiceMenu, Null},
; {5, "3.Robot Control", NullSubs, RobotMenu, Null},
; {5, "4.Flash Option", NullSubs, FlashMenu, Null},
; {5, "5.Back", NullSubs, MainMenu, MainMenu},
; };
; //------------------------------------------------------------------------------
;
;
;
;
;
;
; /***********************
; * 全局变量声明区 *
; ***********************/
; struct MenuItem (*MenuPoint) = MainMenu; //结构体指针,指向结构体后由内部函数指针指向功能函数
; unsigned char DisplayStart = 0; //显示时的第一个菜单项
; unsigned char UserChoose = 0; //用户所选菜单项
; unsigned char DisplayPoint = 0; //显示指针
; unsigned MaxItems; //同级最大菜单数
; unsigned char ShowCount=2; //同屏显示菜单数
;
;
; /***********************
; *显示函数区 *
; ***********************/
; void ShowMenu(void)
; {
.dbline 141
; unsigned char n;
; MaxItems = MenuPoint[0].MenuCount;//定义最大同级菜单
lds R30,_MenuPoint
lds R31,_MenuPoint+1
ldd R2,z+0
clr R3
sts _MaxItems+1,R3
sts _MaxItems,R2
.dbline 142
; DisplayPoint = DisplayStart;
lds R2,_DisplayStart
sts _DisplayPoint,R2
.dbline 143
; for(n=0;DisplayPoint<MaxItems&&n<ShowCount;n++)
clr R20
xjmp L30
L27:
.dbline 144
; {if(DisplayPoint==UserChoose)
.dbline 144
lds R2,_UserChoose
lds R3,_DisplayPoint
cp R3,R2
brne L31
.dbline 145
; LCD_write_string(0,n,"->");
ldi R24,<L33
ldi R25,>L33
std y+1,R25
std y+0,R24
mov R18,R20
clr R19
clr R16
clr R17
xcall _LCD_write_string
L31:
.dbline 146
lds R2,_DisplayPoint
clr R3
mov R24,R2
subi R24,255 ; addi 1
sts _DisplayPoint,R24
ldi R16,9
ldi R17,0
movw R18,R2
xcall empy16s
movw R30,R16
lds R2,_MenuPoint
lds R3,_MenuPoint+1
add R30,R2
adc R31,R3
ldd R2,z+1
ldd R3,z+2
std y+1,R3
std y+0,R2
mov R18,R20
clr R19
ldi R16,2
ldi R17,0
xcall _LCD_write_string
.dbline 148
L28:
.dbline 143
inc R20
L30:
.dbline 143
lds R2,_MaxItems
lds R3,_MaxItems+1
lds R4,_DisplayPoint
clr R5
cp R4,R2
cpc R5,R3
brsh L34
lds R2,_ShowCount
cp R20,R2
brlo L27
L34:
.dbline -2
L26:
adiw R28,2
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r n 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -