menumeasure.lis

来自「Atmega64单片机程序(完整工程)」· LIS 代码 · 共 335 行

LIS
335
字号
                        .module MenuMeasure.C
                        .area text(rom, con, rel)
                        .even
 0000           _DispMenuMeasureInit::
 0000 2197              sbiw R28,1
 0002           ; /*这份代码经源码格式软件格式化过
 0002           ;      yang_hx@neusoft.com      */
 0002           ; /******************************************************************************
 0002           ;  * MenuMeasure.C - "测量"菜单
 0002           ; 
 0002           ;  ******************************************************************************/
 0002           ; #include "SYS_Config.h" 
 0002           ; #include "GUI_Config.h" 
 0002           ; #include "GUI.H" 
 0002           ; #include "Menu.H" 
 0002           ; 
 0002           ; //测量
 0002           ; //Bar型菜单
 0002           ; void DispMenuMeasureInit()
 0002           ; {
 0002           ;     //----------------------
 0002           ;     GUI_Clear();
 0002 0E940000          xcall _GUI_Clear
 0006           ;     //--------------------
 0006           ;     BarMenu=&MenuMeasure[language];
 0006 20900000          lds R2,_language
 000A 85E0              ldi R24,5
 000C 829D              mul R24,R2
 000E 1001              movw R2,R0
 0010 80E0              ldi R24,<_MenuMeasure
 0012 90E0              ldi R25,>_MenuMeasure
 0014 280E              add R2,R24
 0016 391E              adc R3,R25
 0018 30920100          sts _BarMenu+1,R3
 001C 20920000          sts _BarMenu,R2
 0020           ;     //--------------------
 0020           ;     
 0020           ;     ItemNum=(*BarMenu).TextNum ;
 0020 F101              movw R30,R2
 0022 3296              adiw R30,2
 0024 E491              lpm R30,Z
 0026 E0930000          sts _ItemNum,R30
 002A           ;     DispItem=(*BarMenu).Text ;
 002A F101              movw R30,R2
 002C 0590              lpm R0,Z+
 002E 1490              lpm R1,Z
 0030 F001              movw R30,R0
 0032 F0930100          sts _DispItem+1,R31
 0036 E0930000          sts _DispItem,R30
 003A           ;     
 003A           ;     //用户的初始化代码请放在这里
 003A           ;     
 003A           ;     //显示按键对应的文字提示,1-->"选择"
 003A           ;     GUI_DispStringAt(*(Tip[language].Text+1),1,LCD_YSIZE-14);
 003A 86E3              ldi R24,54
 003C 8883              std y+0,R24
 003E 21E0              ldi R18,1
 0040 20900000          lds R2,_language
 0044 85E0              ldi R24,5
 0046 829D              mul R24,R2
 0048 F001              movw R30,R0
 004A 80E0              ldi R24,<_Tip
 004C 90E0              ldi R25,>_Tip
 004E E80F              add R30,R24
 0050 F91F              adc R31,R25
 0052 0590              lpm R0,Z+
 0054 1490              lpm R1,Z
 0056 F001              movw R30,R0
 0058 0281              ldd R16,z+2
 005A 1381              ldd R17,z+3
 005C 0E940000          xcall _GUI_DispStringAt
 0060           ;     //显示按键对应的文字提示,0-->"退出"
 0060           ;       GUI_DispStringAt(*(Tip[language].Text+4),LCD_XSIZE-24,LCD_YSIZE-14);
 0060 86E3              ldi R24,54
 0062 8883              std y+0,R24
 0064 29E4              ldi R18,73
 0066 20900000          lds R2,_language
 006A 85E0              ldi R24,5
 006C 829D              mul R24,R2
 006E F001              movw R30,R0
 0070 80E0              ldi R24,<_Tip
 0072 90E0              ldi R25,>_Tip
 0074 E80F              add R30,R24
 0076 F91F              adc R31,R25
 0078 0590              lpm R0,Z+
 007A 1490              lpm R1,Z
 007C F001              movw R30,R0
 007E 0085              ldd R16,z+8
 0080 1185              ldd R17,z+9
 0082 0E940000          xcall _GUI_DispStringAt
 0086           ;     
 0086           ;       BarMenuInit();
 0086 0E940000          xcall _BarMenuInit
 008A           L1:
 008A 2196              adiw R28,1
 008C                   .dbline 0 ; func end
 008C 0895              ret
                        .even
 008E           _DispMenuMeasureUp::
 008E 0E940000          xcall push_gset1
 0092 2197              sbiw R28,1
 0094           ; }
 0094           ; 
 0094           ; 
 0094           ; 
 0094           ; void DispMenuMeasureUp()
 0094           ; {
 0094           ;     //-----------
 0094           ;     PUSH();
 0094 0E940000          xcall _PUSH
 0098           ;     //-------------------
 0098           ;     GUI_Clear();
 0098 0E940000          xcall _GUI_Clear
 009C           ;     switch(Item)
 009C 40910000          lds R20,_Item
 00A0 5527              clr R21
 00A2 4030              cpi R20,0
 00A4 4507              cpc R20,R21
 00A6 E1F0              breq L6
 00A8           X0:
 00A8 4130              cpi R20,1
 00AA E0E0              ldi R30,0
 00AC 5E07              cpc R21,R30
 00AE 21F1              breq L8
 00B0 4230              cpi R20,2
 00B2 E0E0              ldi R30,0
 00B4 5E07              cpc R21,R30
 00B6 61F1              breq L10
 00B8 4330              cpi R20,3
 00BA E0E0              ldi R30,0
 00BC 5E07              cpc R21,R30
 00BE A1F1              breq L12
 00C0 4430              cpi R20,4
 00C2 E0E0              ldi R30,0
 00C4 5E07              cpc R21,R30
 00C6 09F4              brne X2
 00C8 3BC0              xjmp L14
 00CA           X2:
 00CA 4530              cpi R20,5
 00CC E0E0              ldi R30,0
 00CE 5E07              cpc R21,R30
 00D0 09F4              brne X3
 00D2 42C0              xjmp L16
 00D4           X3:
 00D4 4630              cpi R20,6
 00D6 E0E0              ldi R30,0
 00D8 5E07              cpc R21,R30
 00DA 09F4              brne X4
 00DC 49C0              xjmp L18
 00DE           X4:
 00DE 54C0              xjmp L3
 00E0           X1:
 00E0           ;     {
 00E0           L6:
 00E0           ;         case 0 : GUI_DispStringAt("Measure 1",20,0);GUI_Delay(500);break ;
 00E0 2224              clr R2
 00E2 2882              std y+0,R2
 00E4 24E1              ldi R18,20
 00E6 00E0              ldi R16,<L7
 00E8 10E0              ldi R17,>L7
 00EA 0E940000          xcall _GUI_DispStringAt
 00EE 04EF              ldi R16,500
 00F0 11E0              ldi R17,1
 00F2 0E940000          xcall _GUI_Delay
 00F6 53C0              xjmp L4
 00F8           L8:
 00F8           ;         case 1 : GUI_DispStringAt("Measure 2",20,0);GUI_Delay(500);break ;
 00F8 2224              clr R2
 00FA 2882              std y+0,R2
 00FC 24E1              ldi R18,20
 00FE 00E0              ldi R16,<L9
 0100 10E0              ldi R17,>L9
 0102 0E940000          xcall _GUI_DispStringAt
 0106 04EF              ldi R16,500
 0108 11E0              ldi R17,1
 010A 0E940000          xcall _GUI_Delay
 010E 47C0              xjmp L4
 0110           L10:
 0110           ;         case 2 : GUI_DispStringAt("Measure 3",20,0);GUI_Delay(500);break ;
 0110 2224              clr R2
 0112 2882              std y+0,R2
 0114 24E1              ldi R18,20
 0116 00E0              ldi R16,<L11
 0118 10E0              ldi R17,>L11
 011A 0E940000          xcall _GUI_DispStringAt
 011E 04EF              ldi R16,500
 0120 11E0              ldi R17,1
 0122 0E940000          xcall _GUI_Delay
 0126 3BC0              xjmp L4
 0128           L12:
 0128           ;         case 3 : GUI_DispStringAt("Measure 4",20,0);GUI_Delay(500);break ;
 0128 2224              clr R2
 012A 2882              std y+0,R2
 012C 24E1              ldi R18,20
 012E 00E0              ldi R16,<L13
 0130 10E0              ldi R17,>L13
 0132 0E940000          xcall _GUI_DispStringAt
 0136 04EF              ldi R16,500
 0138 11E0              ldi R17,1
 013A 0E940000          xcall _GUI_Delay
 013E 2FC0              xjmp L4
 0140           L14:
 0140           ;         case 4 : GUI_DispStringAt("Measure 5",20,0);GUI_Delay(500);break ;
 0140 2224              clr R2
 0142 2882              std y+0,R2
 0144 24E1              ldi R18,20
 0146 00E0              ldi R16,<L15
 0148 10E0              ldi R17,>L15
 014A 0E940000          xcall _GUI_DispStringAt
 014E 04EF              ldi R16,500
 0150 11E0              ldi R17,1
 0152 0E940000          xcall _GUI_Delay
 0156 23C0              xjmp L4
 0158           L16:
 0158           ;         case 5 : GUI_DispStringAt("Measure 6",20,0);GUI_Delay(500);break ;
 0158 2224              clr R2
 015A 2882              std y+0,R2
 015C 24E1              ldi R18,20
 015E 00E0              ldi R16,<L17
 0160 10E0              ldi R17,>L17
 0162 0E940000          xcall _GUI_DispStringAt
 0166 04EF              ldi R16,500
 0168 11E0              ldi R17,1
 016A 0E940000          xcall _GUI_Delay
 016E 17C0              xjmp L4
 0170           L18:
 0170           ;         case 6 : GUI_DispStringAt("Measure 7",20,0);GUI_Delay(500);break ;
 0170 2224              clr R2
 0172 2882              std y+0,R2
 0174 24E1              ldi R18,20
 0176 00E0              ldi R16,<L19
 0178 10E0              ldi R17,>L19
 017A 0E940000          xcall _GUI_DispStringAt
 017E 04EF              ldi R16,500
 0180 11E0              ldi R17,1
 0182 0E940000          xcall _GUI_Delay
 0186 0BC0              xjmp L4
 0188           L3:
 0188           ;         default :GUI_DispStringAt("Measure X",20,0);GUI_Delay(500);break ;
 0188 2224              clr R2
 018A 2882              std y+0,R2
 018C 24E1              ldi R18,20
 018E 00E0              ldi R16,<L20
 0190 10E0              ldi R17,>L20
 0192 0E940000          xcall _GUI_DispStringAt
 0196 04EF              ldi R16,500
 0198 11E0              ldi R17,1
 019A 0E940000          xcall _GUI_Delay
 019E           L4:
 019E           ;     }
 019E           ;     GUI_Clear();
 019E 0E940000          xcall _GUI_Clear
 01A2           ;     //-------------------
 01A2           ;     POP();
 01A2 0E940000          xcall _POP
 01A6           L2:
 01A6 2196              adiw R28,1
 01A8 0E940000          xcall pop_gset1
 01AC                   .dbline 0 ; func end
 01AC 0895              ret
                        .even
 01AE           _DispMenuMeasureDown::
 01AE           ;     //-------------------
 01AE           ; }
 01AE           ; 
 01AE           ; void DispMenuMeasureDown()
 01AE           ; {
 01AE           ;     POP();
 01AE 0E940000          xcall _POP
 01B2           L21:
 01B2                   .dbline 0 ; func end
 01B2 0895              ret
                        .even
 01B4           _DispMenuMeasureLeft::
 01B4           ; }
 01B4           ; 
 01B4           ; void DispMenuMeasureLeft()
 01B4           ; {
 01B4           ;     BarMenuLeft();
 01B4 0E940000          xcall _BarMenuLeft
 01B8           L22:
 01B8                   .dbline 0 ; func end
 01B8 0895              ret
                        .even
 01BA           _DispMenuMeasureRight::
 01BA           ; }
 01BA           ; void DispMenuMeasureRight()
 01BA           ; {
 01BA           ;     BarMenuRight();
 01BA 0E940000          xcall _BarMenuRight
 01BE           L23:
 01BE                   .dbline 0 ; func end
 01BE 0895              ret
                        .area data(ram, con, rel)
 0000           L20:
 0000                   .blkb 10
                        .area idata
 0000 4D656173757265205800      .byte 'M,'e,'a,'s,'u,'r,'e,32,'X,0
                        .area data(ram, con, rel)
 000A           L19:
 000A                   .blkb 10
                        .area idata
 000A 4D656173757265203700      .byte 'M,'e,'a,'s,'u,'r,'e,32,55,0
                        .area data(ram, con, rel)
 0014           L17:
 0014                   .blkb 10
                        .area idata
 0014 4D656173757265203600      .byte 'M,'e,'a,'s,'u,'r,'e,32,54,0
                        .area data(ram, con, rel)
 001E           L15:
 001E                   .blkb 10
                        .area idata
 001E 4D656173757265203500      .byte 'M,'e,'a,'s,'u,'r,'e,32,53,0
                        .area data(ram, con, rel)
 0028           L13:
 0028                   .blkb 10
                        .area idata
 0028 4D656173757265203400      .byte 'M,'e,'a,'s,'u,'r,'e,32,52,0
                        .area data(ram, con, rel)
 0032           L11:
 0032                   .blkb 10
                        .area idata
 0032 4D656173757265203300      .byte 'M,'e,'a,'s,'u,'r,'e,32,51,0
                        .area data(ram, con, rel)
 003C           L9:
 003C                   .blkb 10
                        .area idata
 003C 4D656173757265203200      .byte 'M,'e,'a,'s,'u,'r,'e,32,50,0
                        .area data(ram, con, rel)
 0046           L7:
 0046                   .blkb 10
                        .area idata
 0046 4D656173757265203100      .byte 'M,'e,'a,'s,'u,'r,'e,32,49,0
                        .area data(ram, con, rel)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?