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

📄 menu.lis

📁 ssd1325控制器液晶的驱动程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04C2                   .dbline 199
 04C2           ;    if( (xx+SMENU_WIDTH) > (mwin->x + mwin->with - 1) ) 
 04C2 F701              movw R30,R14
 04C4 2480              ldd R2,z+4
 04C6 3580              ldd R3,z+5
 04C8 F701              movw R30,R14
 04CA 8081              ldd R24,z+0
 04CC 9181              ldd R25,z+1
 04CE 820D              add R24,R2
 04D0 931D              adc R25,R3
 04D2 0197              sbiw R24,1
 04D4 E42F              mov R30,R20
 04D6 FF27              clr R31
 04D8 EE5B              subi R30,190  ; offset = 66
 04DA FF4F              sbci R31,255
 04DC 8E17              cp R24,R30
 04DE 9F07              cpc R25,R31
 04E0 08F4              brsh L61
 04E2                   .dbline 200
 04E2           ;    {  /* 以右下拉为原则显示子菜单,所以xx设置在左端 */
 04E2                   .dbline 201
 04E2           ;       xx = xx-(SMENU_WIDTH-MMENU_WIDTH);
 04E2 4052              subi R20,32
 04E4                   .dbline 202
 04E4           ;    }
 04E4           L61:
 04E4                   .dbline 203
 04E4           ;    xx++;
 04E4 4395              inc R20
 04E6                   .dbline 206
 04E6           ;  
 04E6           ;    /* 取消原子菜单选择 */  
 04E6           ;    yy = mwin->y + 22 + 2;
 04E6 F701              movw R30,R14
 04E8 6281              ldd R22,z+2
 04EA 685E              subi R22,232  ; offset = 24
 04EC 7F4F              sbci R23,255
 04EE                   .dbline 207
 04EE           ;    yy += old_no*11;
 04EE 8BE0              ldi R24,11
 04F0 0F84              ldd R0,y+15
 04F2 809D              mul R24,R0
 04F4 600D              add R22,R0
 04F6                   .dbline 208
 04F6           ;    GUI_RectangleFill(xx, yy, xx+SMENU_WIDTH-2, yy+10, back_color);
 04F6 20900000          lds R2,_back_color
 04FA 2C82              std y+4,R2
 04FC 862F              mov R24,R22
 04FE 9927              clr R25
 0500 0A96              adiw R24,10
 0502 9B83              std y+3,R25
 0504 8A83              std y+2,R24
 0506 842F              mov R24,R20
 0508 9927              clr R25
 050A 8E5B              subi R24,190  ; offset = 66
 050C 9F4F              sbci R25,255
 050E 0297              sbiw R24,2
 0510 9983              std y+1,R25
 0512 8883              std y+0,R24
 0514 262F              mov R18,R22
 0516 3327              clr R19
 0518 042F              mov R16,R20
 051A 1127              clr R17
 051C 0E940000          xcall _GUI_RectangleFill
 0520                   .dbline 209
 0520           ;    GUI_PutNoStr(xx+1, yy+1, men->str[old_no], 8);
 0520 88E0              ldi R24,8
 0522 8A83              std y+2,R24
 0524 82E0              ldi R24,2
 0526 0F84              ldd R0,y+15
 0528 809D              mul R24,R0
 052A F001              movw R30,R0
 052C C501              movw R24,R10
 052E 0496              adiw R24,4
 0530 E80F              add R30,R24
 0532 F91F              adc R31,R25
 0534 2080              ldd R2,z+0
 0536 3180              ldd R3,z+1
 0538 3982              std y+1,R3
 053A 2882              std y+0,R2
 053C 262F              mov R18,R22
 053E 3327              clr R19
 0540 2F5F              subi R18,255  ; offset = 1
 0542 3F4F              sbci R19,255
 0544 042F              mov R16,R20
 0546 1127              clr R17
 0548 0F5F              subi R16,255  ; offset = 1
 054A 1F4F              sbci R17,255
 054C 0E940000          xcall _GUI_PutNoStr
 0550                   .dbline 211
 0550           ;    /* 选择新的子菜单 */
 0550           ;    yy = mwin->y + 22 + 2;
 0550 F701              movw R30,R14
 0552 6281              ldd R22,z+2
 0554 685E              subi R22,232  ; offset = 24
 0556 7F4F              sbci R23,255
 0558                   .dbline 212
 0558           ;    yy += new_no*11;
 0558 8BE0              ldi R24,11
 055A 8C9D              mul R24,R12
 055C 600D              add R22,R0
 055E                   .dbline 213
 055E           ;    GUI_RectangleFill(xx, yy, xx+SMENU_WIDTH-2, yy+10, disp_color);
 055E 20900000          lds R2,_disp_color
 0562 2C82              std y+4,R2
 0564 862F              mov R24,R22
 0566 9927              clr R25
 0568 0A96              adiw R24,10
 056A 9B83              std y+3,R25
 056C 8A83              std y+2,R24
 056E 842F              mov R24,R20
 0570 9927              clr R25
 0572 8E5B              subi R24,190  ; offset = 66
 0574 9F4F              sbci R25,255
 0576 0297              sbiw R24,2
 0578 9983              std y+1,R25
 057A 8883              std y+0,R24
 057C 262F              mov R18,R22
 057E 3327              clr R19
 0580 042F              mov R16,R20
 0582 1127              clr R17
 0584 0E940000          xcall _GUI_RectangleFill
 0588                   .dbline 214
 0588           ;    GUI_ExchangeColor();
 0588 0E940000          xcall _GUI_ExchangeColor
 058C                   .dbline 215
 058C           ;    GUI_PutNoStr(xx+1, yy+1, men->str[new_no], 8);
 058C 88E0              ldi R24,8
 058E 8A83              std y+2,R24
 0590 82E0              ldi R24,2
 0592 8C9D              mul R24,R12
 0594 F001              movw R30,R0
 0596 C501              movw R24,R10
 0598 0496              adiw R24,4
 059A E80F              add R30,R24
 059C F91F              adc R31,R25
 059E 2080              ldd R2,z+0
 05A0 3180              ldd R3,z+1
 05A2 3982              std y+1,R3
 05A4 2882              std y+0,R2
 05A6 262F              mov R18,R22
 05A8 3327              clr R19
 05AA 2F5F              subi R18,255  ; offset = 1
 05AC 3F4F              sbci R19,255
 05AE 042F              mov R16,R20
 05B0 1127              clr R17
 05B2 0F5F              subi R16,255  ; offset = 1
 05B4 1F4F              sbci R17,255
 05B6 0E940000          xcall _GUI_PutNoStr
 05BA                   .dbline 216
 05BA           ;    GUI_ExchangeColor();
 05BA 0E940000          xcall _GUI_ExchangeColor
 05BE                   .dbline -2
 05BE           L55:
 05BE 2596              adiw R28,5
 05C0 0E940000          xcall pop_gset5
 05C4 2296              adiw R28,2
 05C6                   .dbline 0 ; func end
 05C6 0895              ret
 05C8                   .dbsym r mwin 14 pX
 05C8                   .dbsym r yy 22 c
 05C8                   .dbsym r xx 20 c
 05C8                   .dbsym r new_no 12 c
 05C8                   .dbsym l old_no 15 c
 05C8                   .dbsym r men 10 pX
 05C8                   .dbend
 05C8                   .dbfunc e GUI_SMenuHide _GUI_SMenuHide fc
 05C8           ;             yy -> R10
 05C8           ;             xx -> R20
 05C8           ;           mwin -> R22,R23
 05C8           ;            men -> R12,R13
                        .even
 05C8           _GUI_SMenuHide::
 05C8 0E940000          xcall push_gset4
 05CC 6801              movw R12,R16
 05CE 2597              sbiw R28,5
 05D0                   .dbline -1
 05D0                   .dbline 228
 05D0           ; }
 05D0           ; 
 05D0           ; 
 05D0           ; 
 05D0           ; /****************************************************************************
 05D0           ; * 名称:GUI_SMenuHide()
 05D0           ; * 功能:消隐子菜单项。
 05D0           ; * 入口参数:men               子菜单句柄
 05D0           ; * 出口参数:返回0表示操作失败,返回1表示操作成功
 05D0           ; ****************************************************************************/
 05D0           ; uint8  GUI_SMenuHide(SMENU *men)
 05D0           ; {  WINDOWS  *mwin;
 05D0                   .dbline 231
 05D0           ;    uint8    xx, yy;
 05D0           ; 
 05D0           ;    mwin = men->win;
 05D0 F601              movw R30,R12
 05D2 6081              ldd R22,z+0
 05D4 7181              ldd R23,z+1
 05D6                   .dbline 233
 05D6           ;    /* 判断是否可以显示主菜单 */
 05D6           ;    if( (mwin->hight)<50 ) return(0);
 05D6 FB01              movw R30,R22
 05D8 8681              ldd R24,z+6
 05DA 9781              ldd R25,z+7
 05DC 8233              cpi R24,50
 05DE E0E0              ldi R30,0
 05E0 9E07              cpc R25,R30
 05E2 10F4              brsh L64
 05E4                   .dbline 233
 05E4 0027              clr R16
 05E6 C9C0              xjmp L63
 05E8           L64:
 05E8                   .dbline 234
 05E8           ;    if( (mwin->with)<50 ) return(0);
 05E8 FB01              movw R30,R22
 05EA 8481              ldd R24,z+4
 05EC 9581              ldd R25,z+5
 05EE 8233              cpi R24,50
 05F0 E0E0              ldi R30,0
 05F2 9E07              cpc R25,R30
 05F4 10F4              brsh L66
 05F6                   .dbline 234
 05F6 0027              clr R16
 05F8 C0C0              xjmp L63
 05FA           L66:
 05FA                   .dbline 237
 05FA           ;     
 05FA           ;    /* 画菜子单项。下拉子菜单,以向左下拉为原则,若右边溢出则以右下拉显示 */
 05FA           ;    xx = mwin->x;
 05FA FB01              movw R30,R22
 05FC 4081              ldd R20,z+0
 05FE                   .dbline 238
 05FE           ;    xx +=  (men->mmenu_no)*MMENU_WIDTH;
 05FE F601              movw R30,R12
 0600 2280              ldd R2,z+2
 0602 82E2              ldi R24,34
 0604 829D              mul R24,R2
 0606 400D              add R20,R0
 0608                   .dbline 239
 0608           ;    yy = mwin->y + 22;
 0608 FB01              movw R30,R22
 060A 8281              ldd R24,z+2
 060C 9381              ldd R25,z+3
 060E 4696              adiw R24,22
 0610 A82E              mov R10,R24
 0612                   .dbline 240
 0612           ;    yy +=  (men->no) * 11 + 2;
 0612 F601              movw R30,R12
 0614 2380              ldd R2,z+3
 0616 8BE0              ldi R24,11
 0618 829D              mul R24,R2
 061A 802D              mov R24,R0
 061C 8E5F              subi R24,254    ; addi 2
 061E A80E              add R10,R24
 0620                   .dbline 241
 0620           ;    if( (xx+SMENU_WIDTH) <= (mwin->x + mwin->with - 1) ) 
 0620 FB01              movw R30,R22
 0622 2480              ldd R2,z+4
 0624 3580              ldd R3,z+5
 0626 FB01              movw R30,R22
 0628 8081              ldd R24,z+0
 062A 9181              ldd R25,z+1
 062C 820D              add R24,R2
 062E 931D              adc R25,R3
 0630 0197              sbiw R24,1
 0632 E42F              mov R30,R20
 0634 FF27              clr R31
 0636 EE5B              subi R30,190  ; offset = 66
 0638 FF4F              sbci R31,255
 063A 8E17              cp R24,R30
 063C 9F07              cpc R25,R31
 063E 08F4              brsh X3
 0640 48C0              xjmp L68
 0642           X3:
 0642                   .dbline 242
 0642           ;    {  /* 以左下拉为原则显示子菜单 */
 0642                   .dbline 243
 0642           ;       if( (men->mmenu_no) == 0 )
 0642 F601              movw R30,R12
 0644 2280              ldd R2,z+2
 0646 2220              tst R2
 0648 C9F4              brne L70
 064A                   .dbline 244
 064A           ;       {  GUI_RectangleFill(xx+1, mwin->y + 22+1, xx+SMENU_WIDTH, yy, back_color);
 064A                   .dbline 244
 064A 20900000          lds R2,_back_color
 064E 2C82              std y+4,R2
 0650 2A2C              mov R2,R10
 0652 3324              clr R3
 0654 3B82              std y+3,R3
 0656 2A82              std y+2,R2
 0658 842F              mov R24,R20
 065A 9927              clr R25
 065C 8E5B              subi R24,190  ; offset = 66
 065E 9F4F              sbci R25,255
 0660 9983              std y+1,R25
 0662 8883              std y+0,R24
 0664 FB01              movw R30,R22
 0666 2281              ldd R18,z+2
 0668 3381              ldd R19,z+3
 066A 295E              subi R18,233  ; offset = 23
 066C 3F4F              sbci R19,255
 066E 042F              mov R16,R20
 0670 1127              clr R17
 0672 0F5F              subi R16,255  ; offset = 1
 0674 1F4F              sbci R17,255
 0676 0E940000          xcall _GUI_RectangleFill
 067A                   .dbline 245
 067A           ;       }
 067A 16C0              xjmp L71
 067C           L70:
 067C                   .dbline 247
 067C           ;       else
 067C           ;       {  GUI_RectangleFill(xx, mwin->y + 22+1, xx+SMENU_WIDTH, yy, back_color);
 067C                   .dbline 247
 067C 20900000          lds R2,_back_color
 0680 2C82              std y+4,R2
 0682 2A2C              mov R2,R10
 0684 3324              clr R3
 0686 3B82              std y+3,R3
 0688 2A82              std y+2,R2
 068A 842F              mov R24,R20
 068C 9927              clr R25
 068E 8E5B              subi R24,190  ; offset = 66
 0690 9F4F              sbci R25,255
 0692 9983              std y+1,R25
 0694 8883              std y+0,R24
 0696 FB01              movw R30,R22
 0698 2281              ldd R18,z+2
 069A 3381              ldd R19,z+3

⌨️ 快捷键说明

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