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

📄 menu.lis

📁 一个用于LCD的菜单模式界面的程序,如何实现滚屏.
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 019E 09F0              breq X10
 01A0 5BC0              xjmp L39
 01A2           X10:
 01A2                   .dbline 176
 01A2           ;                                                        { 
 01A2                   .dbline 177
 01A2           ;                                                          UserChoose = MaxItems-1;//下翻截至,如要回滚赋值为0 
 01A2 C101              movw R24,R2
 01A4 0197              sbiw R24,1
 01A6 8093DB00          sts _UserChoose,R24
 01AA                   .dbline 178
 01AA           ;                                                        } 
 01AA                   .dbline 179
 01AA           ;                                                        break; 
 01AA 56C0              xjmp L39
 01AC           L50:
 01AC                   .dbline 181
 01AC           ;                                               case Enter: 
 01AC           ;                                                        if (MenuPoint[UserChoose].Subs != NullSubs) 
 01AC 2090DB00          lds R2,_UserChoose
 01B0 89E0              ldi R24,9
 01B2 829D              mul R24,R2
 01B4 F001              movw R30,R0
 01B6 2090D800          lds R2,_MenuPoint
 01BA 3090D900          lds R3,_MenuPoint+1
 01BE E20D              add R30,R2
 01C0 F31D              adc R31,R3
 01C2 2380              ldd R2,z+3
 01C4 3480              ldd R3,z+4
 01C6 80E0              ldi R24,<PL_NullSubs
 01C8 90E0              ldi R25,>PL_NullSubs
 01CA 2816              cp R2,R24
 01CC 3906              cpc R3,R25
 01CE 89F0              breq L51
 01D0                   .dbline 182
 01D0           ;                                                        { 
 01D0                   .dbline 183
 01D0           ;                                                          (*MenuPoint[UserChoose].Subs)(); 
 01D0 2090DB00          lds R2,_UserChoose
 01D4 89E0              ldi R24,9
 01D6 829D              mul R24,R2
 01D8 F001              movw R30,R0
 01DA 2090D800          lds R2,_MenuPoint
 01DE 3090D900          lds R3,_MenuPoint+1
 01E2 E20D              add R30,R2
 01E4 F31D              adc R31,R3
 01E6 A381              ldd R26,z+3
 01E8 B481              ldd R27,z+4
 01EA FD01              movw R30,R26
 01EC 0E940000          xcall xicall
 01F0                   .dbline 184
 01F0           ;                                                        } 
 01F0 33C0              xjmp L39
 01F2           L51:
 01F2                   .dbline 185
 01F2           ;                                                        else if (MenuPoint[UserChoose].ChildrenMenus != Null) 
 01F2 2090DB00          lds R2,_UserChoose
 01F6 89E0              ldi R24,9
 01F8 829D              mul R24,R2
 01FA F001              movw R30,R0
 01FC 2090D800          lds R2,_MenuPoint
 0200 3090D900          lds R3,_MenuPoint+1
 0204 E20D              add R30,R2
 0206 F31D              adc R31,R3
 0208 2580              ldd R2,z+5
 020A 3680              ldd R3,z+6
 020C 2220              tst R2
 020E 11F4              brne X2
 0210 3320              tst R3
 0212 11F1              breq L39
 0214           X2:
 0214                   .dbline 186
 0214           ;                                                        { 
 0214                   .dbline 187
 0214           ;                                                          MenuPoint = MenuPoint[UserChoose].ChildrenMenus; 
 0214 2090DB00          lds R2,_UserChoose
 0218 89E0              ldi R24,9
 021A 829D              mul R24,R2
 021C F001              movw R30,R0
 021E 2090D800          lds R2,_MenuPoint
 0222 3090D900          lds R3,_MenuPoint+1
 0226 E20D              add R30,R2
 0228 F31D              adc R31,R3
 022A 2580              ldd R2,z+5
 022C 3680              ldd R3,z+6
 022E 3092D900          sts _MenuPoint+1,R3
 0232 2092D800          sts _MenuPoint,R2
 0236                   .dbline 188
 0236           ;                                                          UserChoose = 0; 
 0236 2224              clr R2
 0238 2092DB00          sts _UserChoose,R2
 023C                   .dbline 189
 023C           ;                                                          DisplayStart = 0; 
 023C 2092DA00          sts _DisplayStart,R2
 0240                   .dbline 190
 0240           ;                                                        } 
 0240                   .dbline 191
 0240           ;                                                        break; 
 0240 0BC0              xjmp L39
 0242           L55:
 0242                   .dbline 193
 0242           ;                                          case Reset: 
 0242           ;                                                       MenuPoint = MainMenu; 
 0242 80E0              ldi R24,<_MainMenu
 0244 90E0              ldi R25,>_MainMenu
 0246 9093D900          sts _MenuPoint+1,R25
 024A 8093D800          sts _MenuPoint,R24
 024E                   .dbline 194
 024E           ;                                                       UserChoose = 0; 
 024E 2224              clr R2
 0250 2092DB00          sts _UserChoose,R2
 0254                   .dbline 195
 0254           ;                                                       DisplayStart = 0; 
 0254 2092DA00          sts _DisplayStart,R2
 0258                   .dbline 196
 0258           ;                                                       break; 
 0258                   .dbline 197
 0258           ;                                          default:break;
 0258           L39:
 0258                   .dbline 199
 0258           ;                       }
 0258           ;                       if (UserChoose%ShowCount==0)           //一屏只能显示ShowCount行
 0258 1091DD00          lds R17,_ShowCount
 025C 0091DB00          lds R16,_UserChoose
 0260 0E940000          xcall mod8u
 0264 0023              tst R16
 0266 29F4              brne L59
 0268                   .dbline 200
 0268           ;                         DisplayStart = UserChoose;
 0268 2090DB00          lds R2,_UserChoose
 026C 2092DA00          sts _DisplayStart,R2
 0270 0BC0              xjmp L60
 0272           L59:
 0272                   .dbline 201
 0272           ;                       else if(UserChoose==1||UserChoose== 3)
 0272 8091DB00          lds R24,_UserChoose
 0276 8130              cpi R24,1
 0278 11F0              breq L63
 027A 8330              cpi R24,3
 027C 29F4              brne L61
 027E           L63:
 027E                   .dbline 202
 027E           ;                          DisplayStart = UserChoose-1;            //实现滚屏的关键                              
 027E 8091DB00          lds R24,_UserChoose
 0282 8150              subi R24,1
 0284 8093DA00          sts _DisplayStart,R24
 0288           L61:
 0288           L60:
 0288                   .dbline 203
 0288 01E0              ldi R16,1
 028A 10E0              ldi R17,0
 028C 0E940000          xcall _LCD_write_command
 0290                   .dbline 204
 0290 05E0              ldi R16,5
 0292 10E0              ldi R17,0
 0294 0E940000          xcall _delay_nms
 0298                   .dbline 205
 0298 C3DE              xcall _ShowMenu
 029A                   .dbline 206
 029A           L36:
 029A                   .dbline -2
 029A           L35:
 029A 0E940000          xcall pop_gset1
 029E                   .dbline 0 ; func end
 029E 0895              ret
 02A0                   .dbsym r KeyNum 20 c
 02A0                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0000           _MaxItems::
 0000                   .blkb 2
 0002                   .dbsym e MaxItems _MaxItems i
                        .area data(ram, con, rel)
 00DE                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 00DE           L33:
 00DE                   .blkb 3
                        .area idata
 00DE 2D3E00            .byte 45,62,0
                        .area data(ram, con, rel)
 00E1                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 00E1           L25:
 00E1                   .blkb 15
                        .area idata
 00E1 342E466C617368204F7074696F6E00    .byte 52,46,'F,'l,'a,'s,'h,32,'O,'p,'t,'i,'o,'n,0
                        .area data(ram, con, rel)
 00F0                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 00F0           L24:
 00F0                   .blkb 16
                        .area idata
 00F0 332E526F626F7420436F6E74726F6C00  .byte 51,46,'R,'o,'b,'o,'t,32,'C,'o,'n,'t,'r,'o,'l,0
                        .area data(ram, con, rel)
 0100                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0100           L23:
 0100                   .blkb 15
                        .area idata
 0100 322E566F6963652043656E74657200    .byte 50,46,'V,'o,'i,'c,'e,32,'C,'e,'n,'t,'e,'r,0
                        .area data(ram, con, rel)
 010F                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 010F           L22:
 010F                   .blkb 10
                        .area idata
 010F 342E476F204261636B00      .byte 52,46,'G,'o,32,'B,'a,'c,'k,0
                        .area data(ram, con, rel)
 0119                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0119           L21:
 0119                   .blkb 11
                        .area idata
 0119 332E476F20416865616400    .byte 51,46,'G,'o,32,'A,'h,'e,'a,'d,0
                        .area data(ram, con, rel)
 0124                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0124           L20:
 0124                   .blkb 13
                        .area idata
 0124 322E5475726E20526967687400        .byte 50,46,'T,'u,'r,'n,32,'R,'i,'g,'h,'t,0
                        .area data(ram, con, rel)
 0131                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0131           L19:
 0131                   .blkb 12
                        .area idata
 0131 312E5475726E204C65667400  .byte 49,46,'T,'u,'r,'n,32,'L,'e,'f,'t,0
                        .area data(ram, con, rel)
 013D                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 013D           L18:
 013D                   .blkb 15
                        .area idata
 013D 342E566F6963652044656C65746500    .byte 52,46,'V,'o,'i,'c,'e,32,'D,'e,'l,'e,'t,'e,0
                        .area data(ram, con, rel)
 014C                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 014C           L17:
 014C                   .blkb 15
                        .area idata
 014C 312E566F696365205265636F726400    .byte 49,46,'V,'o,'i,'c,'e,32,'R,'e,'c,'o,'r,'d,0
                        .area data(ram, con, rel)
 015B                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 015B           L16:
 015B                   .blkb 7
                        .area idata
 015B 352E4261636B00    .byte 53,46,'B,'a,'c,'k,0
                        .area data(ram, con, rel)
 0162                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0162           L15:
 0162                   .blkb 15
                        .area idata
 0162 342E466C6173682044656C65746500    .byte 52,46,'F,'l,'a,'s,'h,32,'D,'e,'l,'e,'t,'e,0
                        .area data(ram, con, rel)
 0171                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0171           L14:
 0171                   .blkb 8
                        .area idata
 0171 332E506175736500  .byte 51,46,'P,'a,'u,'s,'e,0
                        .area data(ram, con, rel)
 0179                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0179           L13:
 0179                   .blkb 7
                        .area idata
 0179 322E506C617900    .byte 50,46,'P,'l,'a,'y,0
                        .area data(ram, con, rel)
 0180                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0180           L12:
 0180                   .blkb 15
                        .area idata
 0180 312E466C617368205265636F726400    .byte 49,46,'F,'l,'a,'s,'h,32,'R,'e,'c,'o,'r,'d,0
                        .area data(ram, con, rel)
 018F                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 018F           L11:
 018F                   .blkb 7
                        .area idata
 018F 342E4261636B00    .byte 52,46,'B,'a,'c,'k,0
                        .area data(ram, con, rel)
 0196                   .dbfile C:\DOCUME~1\Administrator\桌面\Menu\menu.c
 0196           L10:
 0196                   .blkb 11
                        .area idata
 0196 332E416C65727453657400    .byte 51,46,'A,'l,'e,'r,'t,'S,'e,'t,0
                        .area data(ram, con, rel)
 01A1                   .dbfile C:\DOCUME~1\Admini

⌨️ 快捷键说明

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