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

📄 menumeasure.s

📁 Atmega64单片机程序(完整工程)
💻 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 + -