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

📄 menu.lis

📁 ssd1325控制器液晶的驱动程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0318 0197              sbiw R24,1
 031A FA01              movw R30,R20
 031C B296              adiw R30,34
 031E E817              cp R30,R24
 0320 F907              cpc R31,R25
 0322 E9F4              brne L47
 0324                   .dbline 136
 0324           ;       {  GUI_RLine(xx-(SMENU_WIDTH-MMENU_WIDTH), mwin->y + 22, yy, disp_color);
 0324                   .dbline 136
 0324 20900000          lds R2,_disp_color
 0328 2A82              std y+2,R2
 032A B982              std y+1,R11
 032C A882              std y+0,R10
 032E FB01              movw R30,R22
 0330 2281              ldd R18,z+2
 0332 3381              ldd R19,z+3
 0334 2A5E              subi R18,234  ; offset = 22
 0336 3F4F              sbci R19,255
 0338 8A01              movw R16,R20
 033A 0052              subi R16,32
 033C 1040              sbci R17,0
 033E 0E940000          xcall _GUI_RLine
 0342                   .dbline 137
 0342           ;          GUI_HLine(xx-(SMENU_WIDTH-MMENU_WIDTH), yy, xx+MMENU_WIDTH, disp_color);
 0342 20900000          lds R2,_disp_color
 0346 2A82              std y+2,R2
 0348 CA01              movw R24,R20
 034A 8296              adiw R24,34
 034C 9983              std y+1,R25
 034E 8883              std y+0,R24
 0350 9501              movw R18,R10
 0352 8A01              movw R16,R20
 0354 0052              subi R16,32
 0356 1040              sbci R17,0
 0358 0E940000          xcall _GUI_HLine
 035C                   .dbline 139
 035C           ;          
 035C           ;       }
 035C 13C0              xjmp L48
 035E           L47:
 035E                   .dbline 141
 035E           ;       else
 035E           ;       {  GUI_Rectangle(xx-(SMENU_WIDTH-MMENU_WIDTH), mwin->y + 22, xx+MMENU_WIDTH, yy, disp_color);
 035E                   .dbline 141
 035E 20900000          lds R2,_disp_color
 0362 2C82              std y+4,R2
 0364 BB82              std y+3,R11
 0366 AA82              std y+2,R10
 0368 CA01              movw R24,R20
 036A 8296              adiw R24,34
 036C 9983              std y+1,R25
 036E 8883              std y+0,R24
 0370 FB01              movw R30,R22
 0372 2281              ldd R18,z+2
 0374 3381              ldd R19,z+3
 0376 2A5E              subi R18,234  ; offset = 22
 0378 3F4F              sbci R19,255
 037A 8A01              movw R16,R20
 037C 0052              subi R16,32
 037E 1040              sbci R17,0
 0380 0E940000          xcall _GUI_Rectangle
 0384                   .dbline 142
 0384           ;       }
 0384           L48:
 0384                   .dbline 143
 0384           ;       GUI_HLine(xx+1, mwin->y + 22, xx+MMENU_WIDTH-1, back_color);
 0384 20900000          lds R2,_back_color
 0388 2A82              std y+2,R2
 038A CA01              movw R24,R20
 038C 8296              adiw R24,34
 038E 0197              sbiw R24,1
 0390 9983              std y+1,R25
 0392 8883              std y+0,R24
 0394 FB01              movw R30,R22
 0396 2281              ldd R18,z+2
 0398 3381              ldd R19,z+3
 039A 2A5E              subi R18,234  ; offset = 22
 039C 3F4F              sbci R19,255
 039E 8A01              movw R16,R20
 03A0 0F5F              subi R16,255  ; offset = 1
 03A2 1F4F              sbci R17,255
 03A4 0E940000          xcall _GUI_HLine
 03A8                   .dbline 145
 03A8           ;       
 03A8           ;       xx = xx-(SMENU_WIDTH-MMENU_WIDTH);
 03A8 4052              subi R20,32
 03AA 5040              sbci R21,0
 03AC                   .dbline 146
 03AC           ;    }
 03AC           L44:
 03AC                   .dbline 149
 03AC           ;    
 03AC           ;    /* 显示菜单文字 */
 03AC           ;    xx++;
 03AC 4F5F              subi R20,255  ; offset = 1
 03AE 5F4F              sbci R21,255
 03B0                   .dbline 150
 03B0           ;    yy = mwin->y + 22 + 2;
 03B0 FB01              movw R30,R22
 03B2 8281              ldd R24,z+2
 03B4 9381              ldd R25,z+3
 03B6 4896              adiw R24,24
 03B8 5C01              movw R10,R24
 03BA                   .dbline 151
 03BA           ;    for(i=0; i<(men->no); i++)
 03BA 6627              clr R22
 03BC 59C0              xjmp L52
 03BE           L49:
 03BE                   .dbline 152
 03BE           ;    {  if( i == (men->state) )                                                         // 判断所选择的菜单项
 03BE                   .dbline 152
 03BE F601              movw R30,R12
 03C0 2488              ldd R2,z+20
 03C2 6215              cp R22,R2
 03C4 59F5              brne L53
 03C6                   .dbline 153
 03C6           ;       {  /* 显示背景色 */
 03C6                   .dbline 154
 03C6           ;          GUI_RectangleFill(xx, yy, xx+SMENU_WIDTH-2, yy+10, disp_color);
 03C6 20900000          lds R2,_disp_color
 03CA 2C82              std y+4,R2
 03CC C501              movw R24,R10
 03CE 0A96              adiw R24,10
 03D0 9B83              std y+3,R25
 03D2 8A83              std y+2,R24
 03D4 CA01              movw R24,R20
 03D6 8E5B              subi R24,190  ; offset = 66
 03D8 9F4F              sbci R25,255
 03DA 0297              sbiw R24,2
 03DC 9983              std y+1,R25
 03DE 8883              std y+0,R24
 03E0 9501              movw R18,R10
 03E2 8A01              movw R16,R20
 03E4 0E940000          xcall _GUI_RectangleFill
 03E8                   .dbline 156
 03E8           ;          /* 显示菜单字符 */
 03E8           ;          GUI_ExchangeColor();
 03E8 0E940000          xcall _GUI_ExchangeColor
 03EC                   .dbline 157
 03EC           ;          GUI_PutNoStr(xx+1, yy+1, men->str[i], 8);                    // 书写子菜单文字
 03EC 88E0              ldi R24,8
 03EE 8A83              std y+2,R24
 03F0 82E0              ldi R24,2
 03F2 869F              mul R24,R22
 03F4 F001              movw R30,R0
 03F6 C601              movw R24,R12
 03F8 0496              adiw R24,4
 03FA E80F              add R30,R24
 03FC F91F              adc R31,R25
 03FE 2080              ldd R2,z+0
 0400 3180              ldd R3,z+1
 0402 3982              std y+1,R3
 0404 2882              std y+0,R2
 0406 9501              movw R18,R10
 0408 2F5F              subi R18,255  ; offset = 1
 040A 3F4F              sbci R19,255
 040C 8A01              movw R16,R20
 040E 0F5F              subi R16,255  ; offset = 1
 0410 1F4F              sbci R17,255
 0412 0E940000          xcall _GUI_PutNoStr
 0416                   .dbline 158
 0416           ;          GUI_ExchangeColor();
 0416 0E940000          xcall _GUI_ExchangeColor
 041A                   .dbline 159
 041A           ;       }
 041A 26C0              xjmp L54
 041C           L53:
 041C                   .dbline 161
 041C           ;       else
 041C           ;       {  /* 显示背景色 */
 041C                   .dbline 162
 041C           ;          GUI_RectangleFill(xx, yy, xx+SMENU_WIDTH-2, yy+10, back_color);
 041C 20900000          lds R2,_back_color
 0420 2C82              std y+4,R2
 0422 C501              movw R24,R10
 0424 0A96              adiw R24,10
 0426 9B83              std y+3,R25
 0428 8A83              std y+2,R24
 042A CA01              movw R24,R20
 042C 8E5B              subi R24,190  ; offset = 66
 042E 9F4F              sbci R25,255
 0430 0297              sbiw R24,2
 0432 9983              std y+1,R25
 0434 8883              std y+0,R24
 0436 9501              movw R18,R10
 0438 8A01              movw R16,R20
 043A 0E940000          xcall _GUI_RectangleFill
 043E                   .dbline 164
 043E           ;          /* 显示菜单字符 */
 043E           ;          GUI_PutNoStr(xx+1, yy+1, men->str[i], 8);                    // 书写子菜单文字
 043E 88E0              ldi R24,8
 0440 8A83              std y+2,R24
 0442 82E0              ldi R24,2
 0444 869F              mul R24,R22
 0446 F001              movw R30,R0
 0448 C601              movw R24,R12
 044A 0496              adiw R24,4
 044C E80F              add R30,R24
 044E F91F              adc R31,R25
 0450 2080              ldd R2,z+0
 0452 3180              ldd R3,z+1
 0454 3982              std y+1,R3
 0456 2882              std y+0,R2
 0458 9501              movw R18,R10
 045A 2F5F              subi R18,255  ; offset = 1
 045C 3F4F              sbci R19,255
 045E 8A01              movw R16,R20
 0460 0F5F              subi R16,255  ; offset = 1
 0462 1F4F              sbci R17,255
 0464 0E940000          xcall _GUI_PutNoStr
 0468                   .dbline 165
 0468           ;       }   
 0468           L54:
 0468                   .dbline 167
 0468 C501              movw R24,R10
 046A 0B96              adiw R24,11
 046C 5C01              movw R10,R24
 046E                   .dbline 168
 046E           L50:
 046E                   .dbline 151
 046E 6395              inc R22
 0470           L52:
 0470                   .dbline 151
 0470 F601              movw R30,R12
 0472 2380              ldd R2,z+3
 0474 6215              cp R22,R2
 0476 08F4              brsh X2
 0478 A2CF              xjmp L49
 047A           X2:
 047A                   .dbline 170
 047A           ;       
 047A           ;       yy += 11;
 047A           ;    }
 047A           ;     
 047A           ;    return(1);
 047A 01E0              ldi R16,1
 047C                   .dbline -2
 047C           L38:
 047C 2596              adiw R28,5
 047E 0E940000          xcall pop_gset4
 0482                   .dbline 0 ; func end
 0482 0895              ret
 0484                   .dbsym r mwin 22 pX
 0484                   .dbsym r xx 20 i
 0484                   .dbsym r i 22 c
 0484                   .dbsym r yy 10 i
 0484                   .dbsym r men 12 pX
 0484                   .dbend
 0484                   .dbfunc e GUI_SMenuSelect _GUI_SMenuSelect fV
 0484           ;           mwin -> R14,R15
 0484           ;             yy -> R22
 0484           ;             xx -> R20
 0484           ;         new_no -> R12
 0484           ;         old_no -> y+15
 0484           ;            men -> R10,R11
                        .even
 0484           _GUI_SMenuSelect::
 0484 3A93              st -y,r19
 0486 2A93              st -y,r18
 0488 0E940000          xcall push_gset5
 048C 5801              movw R10,R16
 048E 2597              sbiw R28,5
 0490 C988              ldd R12,y+17
 0492                   .dbline -1
 0492                   .dbline 184
 0492           ; }
 0492           ; 
 0492           ; 
 0492           ; 
 0492           ; /****************************************************************************
 0492           ; * 名称:GUI_SMenuSelect()
 0492           ; * 功能:选择新的子菜单。
 0492           ; * 入口参数:men               子菜单句柄
 0492           ; *          old_no     原先选择的子菜单项
 0492           ; *                new_no       现要选择的子菜单项
 0492           ; * 出口参数:无
 0492           ; ****************************************************************************/
 0492           ; void  GUI_SMenuSelect(SMENU *men, uint8 old_no, uint8 new_no)
 0492           ; {  WINDOWS  *mwin;
 0492                   .dbline 188
 0492           ;    uint8  xx, yy;
 0492           ; 
 0492           ;    /* 参数过滤 */ 
 0492           ;    if(old_no==new_no) return;
 0492 0F84              ldd R0,y+15
 0494 0C14              cp R0,R12
 0496 09F4              brne L56
 0498                   .dbline 188
 0498 92C0              xjmp L55
 049A           L56:
 049A                   .dbline 189
 049A           ;    xx = men->no;
 049A F501              movw R30,R10
 049C 4381              ldd R20,z+3
 049E                   .dbline 190
 049E 0F84              ldd R0,y+15
 04A0 4015              cp R20,R0
 04A2 10F0              brlo L60
 04A4 4C15              cp R20,R12
 04A6 08F4              brsh L58
 04A8           L60:
 04A8                   .dbline 190
 04A8           ;    if( (old_no>xx) || (new_no>xx) ) return;
 04A8 8AC0              xjmp L55
 04AA           L58:
 04AA                   .dbline 193
 04AA           ;    
 04AA           ;    /* 设置新的选择的子菜单项 */
 04AA           ;    men->state = new_no;
 04AA F501              movw R30,R10
 04AC C48A              std z+20,R12
 04AE                   .dbline 196
 04AE           ;    
 04AE           ;    /* 进行菜单反相显示 */
 04AE           ;    mwin = men->win;    
 04AE F501              movw R30,R10
 04B0 E080              ldd R14,z+0
 04B2 F180              ldd R15,z+1
 04B4                   .dbline 197
 04B4           ;    xx = mwin->x;
 04B4 F701              movw R30,R14
 04B6 4081              ldd R20,z+0
 04B8                   .dbline 198
 04B8           ;    xx +=  (men->mmenu_no)*MMENU_WIDTH;
 04B8 F501              movw R30,R10
 04BA 2280              ldd R2,z+2
 04BC 82E2              ldi R24,34
 04BE 829D              mul R24,R2
 04C0 400D              add R20,R0

⌨️ 快捷键说明

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