📄 menumeasure.s
字号:
.module MenuMeasure.C
.area text(rom, con, rel)
.even
_DispMenuMeasureInit::
sbiw R28,1
; /*这份代码经源码格式软件格式化过
; yang_hx@neusoft.com */
; /******************************************************************************
; * MenuMeasure.C - "测量"菜单
;
; ******************************************************************************/
; #include "SYS_Config.h"
; #include "GUI_Config.h"
; #include "GUI.H"
; #include "Menu.H"
;
; //测量
; //Bar型菜单
; void DispMenuMeasureInit()
; {
; //----------------------
; GUI_Clear();
xcall _GUI_Clear
; //--------------------
; BarMenu=&MenuMeasure[language];
lds R2,_language
ldi R24,5
mul R24,R2
movw R2,R0
ldi R24,<_MenuMeasure
ldi R25,>_MenuMeasure
add R2,R24
adc R3,R25
sts _BarMenu+1,R3
sts _BarMenu,R2
; //--------------------
;
; ItemNum=(*BarMenu).TextNum ;
movw R30,R2
adiw R30,2
lpm R30,Z
sts _ItemNum,R30
; DispItem=(*BarMenu).Text ;
movw R30,R2
lpm R0,Z+
lpm R1,Z
movw R30,R0
sts _DispItem+1,R31
sts _DispItem,R30
;
; //用户的初始化代码请放在这里
;
; //显示按键对应的文字提示,1-->"选择"
; GUI_DispStringAt(*(Tip[language].Text+1),1,LCD_YSIZE-14);
ldi R24,54
std y+0,R24
ldi R18,1
lds R2,_language
ldi R24,5
mul R24,R2
movw R30,R0
ldi R24,<_Tip
ldi R25,>_Tip
add R30,R24
adc R31,R25
lpm R0,Z+
lpm R1,Z
movw R30,R0
ldd R16,z+2
ldd R17,z+3
xcall _GUI_DispStringAt
; //显示按键对应的文字提示,0-->"退出"
; GUI_DispStringAt(*(Tip[language].Text+4),LCD_XSIZE-24,LCD_YSIZE-14);
ldi R24,54
std y+0,R24
ldi R18,73
lds R2,_language
ldi R24,5
mul R24,R2
movw R30,R0
ldi R24,<_Tip
ldi R25,>_Tip
add R30,R24
adc R31,R25
lpm R0,Z+
lpm R1,Z
movw R30,R0
ldd R16,z+8
ldd R17,z+9
xcall _GUI_DispStringAt
;
; BarMenuInit();
xcall _BarMenuInit
L1:
adiw R28,1
.dbline 0 ; func end
ret
.even
_DispMenuMeasureUp::
xcall push_gset1
sbiw R28,1
; }
;
;
;
; void DispMenuMeasureUp()
; {
; //-----------
; PUSH();
xcall _PUSH
; //-------------------
; GUI_Clear();
xcall _GUI_Clear
; switch(Item)
lds R20,_Item
clr R21
cpi R20,0
cpc R20,R21
breq L6
X0:
cpi R20,1
ldi R30,0
cpc R21,R30
breq L8
cpi R20,2
ldi R30,0
cpc R21,R30
breq L10
cpi R20,3
ldi R30,0
cpc R21,R30
breq L12
cpi R20,4
ldi R30,0
cpc R21,R30
brne X2
xjmp L14
X2:
cpi R20,5
ldi R30,0
cpc R21,R30
brne X3
xjmp L16
X3:
cpi R20,6
ldi R30,0
cpc R21,R30
brne X4
xjmp L18
X4:
xjmp L3
X1:
; {
L6:
; case 0 : GUI_DispStringAt("Measure 1",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L7
ldi R17,>L7
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
xjmp L4
L8:
; case 1 : GUI_DispStringAt("Measure 2",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L9
ldi R17,>L9
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
xjmp L4
L10:
; case 2 : GUI_DispStringAt("Measure 3",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L11
ldi R17,>L11
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
xjmp L4
L12:
; case 3 : GUI_DispStringAt("Measure 4",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L13
ldi R17,>L13
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
xjmp L4
L14:
; case 4 : GUI_DispStringAt("Measure 5",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L15
ldi R17,>L15
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
xjmp L4
L16:
; case 5 : GUI_DispStringAt("Measure 6",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L17
ldi R17,>L17
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
xjmp L4
L18:
; case 6 : GUI_DispStringAt("Measure 7",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L19
ldi R17,>L19
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
xjmp L4
L3:
; default :GUI_DispStringAt("Measure X",20,0);GUI_Delay(500);break ;
clr R2
std y+0,R2
ldi R18,20
ldi R16,<L20
ldi R17,>L20
xcall _GUI_DispStringAt
ldi R16,500
ldi R17,1
xcall _GUI_Delay
L4:
; }
; GUI_Clear();
xcall _GUI_Clear
; //-------------------
; POP();
xcall _POP
L2:
adiw R28,1
xcall pop_gset1
.dbline 0 ; func end
ret
.even
_DispMenuMeasureDown::
; //-------------------
; }
;
; void DispMenuMeasureDown()
; {
; POP();
xcall _POP
L21:
.dbline 0 ; func end
ret
.even
_DispMenuMeasureLeft::
; }
;
; void DispMenuMeasureLeft()
; {
; BarMenuLeft();
xcall _BarMenuLeft
L22:
.dbline 0 ; func end
ret
.even
_DispMenuMeasureRight::
; }
; void DispMenuMeasureRight()
; {
; BarMenuRight();
xcall _BarMenuRight
L23:
.dbline 0 ; func end
ret
.area data(ram, con, rel)
L20:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,'X,0
.area data(ram, con, rel)
L19:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,55,0
.area data(ram, con, rel)
L17:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,54,0
.area data(ram, con, rel)
L15:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,53,0
.area data(ram, con, rel)
L13:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,52,0
.area data(ram, con, rel)
L11:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,51,0
.area data(ram, con, rel)
L9:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,50,0
.area data(ram, con, rel)
L7:
.blkb 10
.area idata
.byte 'M,'e,'a,'s,'u,'r,'e,32,49,0
.area data(ram, con, rel)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -