📄 dm12864m串行.lis
字号:
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 + -