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

📄 dm12864m串行.lis

📁 EEPROM读写程序: 先向EEPROM写入一幅图片数据
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 01B0 602F              mov R22,R16
 01B2                   .dbline 170
 01B2           ;          if(flag | LCD_temp)                  
 01B2 242E              mov R2,R20
 01B4 202A              or R2,R16
 01B6 19F0              breq L37
 01B8                   .dbline 172
 01B8           ; 
 01B8           ;                     {                                   
 01B8                   .dbline 174
 01B8           ; 
 01B8           ;                         LCMWriteData(0x30 + LCD_temp); 
 01B8 005D              subi R16,208    ; addi 48
 01BA 77DF              xcall _LCMWriteData
 01BC                   .dbline 176
 01BC           ; 
 01BC           ;                         flag = 1;                      
 01BC 41E0              ldi R20,1
 01BE                   .dbline 178
 01BE           ; 
 01BE           ;                     }    
 01BE           L37:
 01BE                   .dbline 179
 01BE           ;         DisplayNum -= LCD_temp*10000;
 01BE 262F              mov R18,R22
 01C0 3327              clr R19
 01C2 00E1              ldi R16,10000
 01C4 17E2              ldi R17,39
 01C6 0E940000          xcall empy16s
 01CA A01A              sub R10,R16
 01CC B10A              sbc R11,R17
 01CE                   .dbline 180
 01CE           ;         LCD_temp = DisplayNum/1000;
 01CE 28EE              ldi R18,1000
 01D0 33E0              ldi R19,3
 01D2 8501              movw R16,R10
 01D4 0E940000          xcall div16s
 01D8 602F              mov R22,R16
 01DA                   .dbline 181
 01DA           ;        if(flag | LCD_temp)                  
 01DA 242E              mov R2,R20
 01DC 202A              or R2,R16
 01DE 19F0              breq L39
 01E0                   .dbline 183
 01E0           ; 
 01E0           ;                     {                                   
 01E0                   .dbline 185
 01E0           ; 
 01E0           ;                         LCMWriteData(0x30 + LCD_temp); 
 01E0 005D              subi R16,208    ; addi 48
 01E2 63DF              xcall _LCMWriteData
 01E4                   .dbline 187
 01E4           ; 
 01E4           ;                         flag = 1;                      
 01E4 41E0              ldi R20,1
 01E6                   .dbline 189
 01E6           ; 
 01E6           ;                     }    
 01E6           L39:
 01E6                   .dbline 190
 01E6           ;         DisplayNum -= LCD_temp*1000;
 01E6 262F              mov R18,R22
 01E8 3327              clr R19
 01EA 08EE              ldi R16,1000
 01EC 13E0              ldi R17,3
 01EE 0E940000          xcall empy16s
 01F2 A01A              sub R10,R16
 01F4 B10A              sbc R11,R17
 01F6                   .dbline 191
 01F6           ;         LCD_temp = DisplayNum/100;
 01F6 24E6              ldi R18,100
 01F8 30E0              ldi R19,0
 01FA 8501              movw R16,R10
 01FC 0E940000          xcall div16s
 0200 602F              mov R22,R16
 0202                   .dbline 192
 0202           ;          if(flag | LCD_temp)                  
 0202 242E              mov R2,R20
 0204 202A              or R2,R16
 0206 19F0              breq L41
 0208                   .dbline 194
 0208           ; 
 0208           ;                     {                                   
 0208                   .dbline 196
 0208           ; 
 0208           ;                         LCMWriteData(0x30 + LCD_temp); 
 0208 005D              subi R16,208    ; addi 48
 020A 4FDF              xcall _LCMWriteData
 020C                   .dbline 198
 020C           ; 
 020C           ;                         flag = 1;                      
 020C 41E0              ldi R20,1
 020E                   .dbline 200
 020E           ; 
 020E           ;                     }    
 020E           L41:
 020E                   .dbline 201
 020E           ;         DisplayNum -= LCD_temp*100;
 020E 84E6              ldi R24,100
 0210 869F              mul R24,R22
 0212 A018              sub R10,R0
 0214 B108              sbc R11,R1
 0216                   .dbline 202
 0216           ;         LCD_temp = DisplayNum/10;
 0216 2AE0              ldi R18,10
 0218 30E0              ldi R19,0
 021A 8501              movw R16,R10
 021C 0E940000          xcall div16s
 0220 602F              mov R22,R16
 0222                   .dbline 203
 0222           ;          if(flag | LCD_temp)                  
 0222 242E              mov R2,R20
 0224 202A              or R2,R16
 0226 19F0              breq L43
 0228                   .dbline 205
 0228           ; 
 0228           ;                     {                                   
 0228                   .dbline 207
 0228           ; 
 0228           ;                         LCMWriteData(0x30 + LCD_temp); 
 0228 005D              subi R16,208    ; addi 48
 022A 3FDF              xcall _LCMWriteData
 022C                   .dbline 209
 022C           ; 
 022C           ;                         flag = 1;                      
 022C 41E0              ldi R20,1
 022E                   .dbline 211
 022E           ; 
 022E           ;                     }    
 022E           L43:
 022E                   .dbline 212
 022E           ;         DisplayNum -= LCD_temp*10;
 022E 8AE0              ldi R24,10
 0230 869F              mul R24,R22
 0232 A018              sub R10,R0
 0234 B108              sbc R11,R1
 0236                   .dbline 213
 0236           ;         LCD_temp = DisplayNum;
 0236 6A2D              mov R22,R10
 0238                   .dbline 214
 0238           ;          if(flag | LCD_temp)                  
 0238 242E              mov R2,R20
 023A 2A28              or R2,R10
 023C 21F0              breq L45
 023E                   .dbline 216
 023E           ; 
 023E           ;                     {                                   
 023E                   .dbline 218
 023E           ; 
 023E           ;                         LCMWriteData(0x30 + LCD_temp); 
 023E 062F              mov R16,R22
 0240 005D              subi R16,208    ; addi 48
 0242 33DF              xcall _LCMWriteData
 0244                   .dbline 220
 0244           ; 
 0244           ;                         flag = 1;                      
 0244 41E0              ldi R20,1
 0246                   .dbline 222
 0246           ; 
 0246           ;                     }    
 0246           L45:
 0246                   .dbline 223
 0246 4423              tst R20
 0248 11F4              brne L47
 024A                   .dbline 223
 024A 00E3              ldi R16,48
 024C 2EDF              xcall _LCMWriteData
 024E           L47:
 024E                   .dbline -2
 024E           L34:
 024E 0E940000          xcall pop_gset5
 0252                   .dbline 0 ; func end
 0252 0895              ret
 0254                   .dbsym r flag 20 c
 0254                   .dbsym r LCD_temp 22 c
 0254                   .dbsym r DisplayNum 10 I
 0254                   .dbsym r DisplayRow 14 c
 0254                   .dbsym r DisplayCol 12 c
 0254                   .dbend
 0254                   .dbfunc e LCMInit _LCMInit fV
                        .even
 0254           _LCMInit::
 0254                   .dbline -1
 0254                   .dbline 232
 0254           ;         if(!flag) LCMWriteData(0x30);   
 0254           ; }
 0254           ; 
 0254           ; 
 0254           ; 
 0254           ; ////////////////////////////////////////////////////////////////////
 0254           ; 
 0254           ; /*-----------------------液晶初始化-----------------------------*/
 0254           ; void LCMInit()
 0254           ; {
 0254                   .dbline 233
 0254           ;       LCDDDR_OUT;
 0254 8AB3              in R24,0x1a
 0256 8F61              ori R24,31
 0258 8ABB              out 0x1a,R24
 025A                   .dbline 233
 025A                   .dbline 234
 025A           ;        LCD_PSB;
 025A DB98              cbi 0x1b,3
 025C                   .dbline 235
 025C           ;       LCD_AK;
 025C DC9A              sbi 0x1b,4
 025E                   .dbline 236
 025E           ;     LCD_EN_L;      
 025E DA98              cbi 0x1b,2
 0260                   .dbline 237
 0260           ;     LCD_RS_L;
 0260 D898              cbi 0x1b,0
 0262                   .dbline 238
 0262           ;     LCD_RW_L;
 0262 D998              cbi 0x1b,1
 0264                   .dbline 240
 0264           ;    
 0264           ;     LCMWriteCommand(0x30); 
 0264 00E3              ldi R16,48
 0266 07DF              xcall _LCMWriteCommand
 0268                   .dbline 242
 0268           ;     //  8 bits interface,basic instrument
 0268           ;        LCMWriteCommand(0x0c);
 0268 0CE0              ldi R16,12
 026A 05DF              xcall _LCMWriteCommand
 026C                   .dbline 244
 026C           ;     //  display,cursor on
 026C           ;     LCMWriteCommand(0x01); 
 026C 01E0              ldi R16,1
 026E 03DF              xcall _LCMWriteCommand
 0270                   .dbline 246
 0270           ;         //  clear DDRAM
 0270           ;     LCMWriteCommand(0x02);
 0270 02E0              ldi R16,2
 0272 01DF              xcall _LCMWriteCommand
 0274                   .dbline -2
 0274           L49:
 0274                   .dbline 0 ; func end
 0274 0895              ret
 0276                   .dbend
 0276                   .dbfunc e LCMDelay _LCMDelay fV
 0276           ;              i -> R20,R21
 0276           ;              j -> R22,R23
 0276           ;              k -> R16,R17
                        .even
 0276           _LCMDelay::
 0276 0E940000          xcall push_gset2
 027A                   .dbline -1
 027A                   .dbline 254
 027A           ;         //  cursor return
 027A           ;    
 027A           ;        
 027A           ; }
 027A           ; 
 027A           ; /*----------------------延时子函数---------------------------*/
 027A           ; void LCMDelay(int k)                                     
 027A           ; { 
 027A                   .dbline 257
 027A           ;     int   i;
 027A           ;    int  j;           
 027A           ;     for(i=0;i<k;i++)
 027A 4427              clr R20
 027C 5527              clr R21
 027E 0BC0              xjmp L54
 0280           L51:
 0280                   .dbline 258
 0280           ;     {
 0280                   .dbline 259
 0280           ;        for(j=0;j<=2000;j++)
 0280 6627              clr R22
 0282 7727              clr R23
 0284           L55:
 0284                   .dbline 260
 0284                   .dbline 261
 0284                   .dbline 262
 0284           L56:
 0284                   .dbline 259
 0284 6F5F              subi R22,255  ; offset = 1
 0286 7F4F              sbci R23,255
 0288                   .dbline 259
 0288 80ED              ldi R24,2000
 028A 97E0              ldi R25,7
 028C 8617              cp R24,R22
 028E 9707              cpc R25,R23
 0290 CCF7              brge L55
 0292                   .dbline 263
 0292           L52:
 0292                   .dbline 257
 0292 4F5F              subi R20,255  ; offset = 1
 0294 5F4F              sbci R21,255
 0296           L54:
 0296                   .dbline 257
 0296 4017              cp R20,R16
 0298 5107              cpc R21,R17
 029A 94F3              brlt L51
 029C                   .dbline -2
 029C           L50:
 029C 0E940000          xcall pop_gset2
 02A0                   .dbline 0 ; func end
 02A0 0895              ret
 02A2                   .dbsym r i 20 I
 02A2                   .dbsym r j 22 I
 02A2                   .dbsym r k 16 I
 02A2                   .dbend

⌨️ 快捷键说明

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