📄 1.lis
字号:
01C8 ; //-----------------------------------------------------------------------------
01C8 ; // LCD:DIlcdsplay ASCII.
01C8 ; //-----------------------------------------------------------------------------
01C8 ; void WriteDG(uchar XH_Dig,uchar adrPage,int adrColumn)
01C8 ; {
01C8 .dbline 248
01C8 ; unsigned int dptr; // dptr_adderss for Dig code.
01C8 ; unsigned char left, i, j;
01C8 ; dptr = XH_Dig * 16;
01C8 80E1 ldi R24,16
01CA 849F mul R24,R20
01CC 5001 movw R10,R0
01CE .dbline 249
01CE ; if(adrColumn-64 >= 0) left = 0; // left = 0:for right.
01CE C601 movw R24,R12
01D0 8054 subi R24,64
01D2 9040 sbci R25,0
01D4 8030 cpi R24,0
01D6 E0E0 ldi R30,0
01D8 9E07 cpc R25,R30
01DA 14F0 brlt L49
01DC .dbline 249
01DC 6627 clr R22
01DE 01C0 xjmp L50
01E0 L49:
01E0 .dbline 250
01E0 ; else left = 1; // left = 1:for left.
01E0 61E0 ldi R22,1
01E2 L50:
01E2 .dbline 252
01E2 ;
01E2 ; for(i=0; i<2; i++)
01E2 4427 clr R20
01E4 34C0 xjmp L54
01E6 L51:
01E6 .dbline 253
01E6 ; {
01E6 .dbline 254
01E6 ; if(left == 0)
01E6 6623 tst R22
01E8 B1F4 brne L55
01EA .dbline 255
01EA ; { Wrigt_Cmad(adrPage | 0xb8);
01EA .dbline 255
01EA 0A85 ldd R16,y+10
01EC 086B ori R16,184
01EE 37DF xcall _Wrigt_Cmad
01F0 .dbline 256
01F0 ; Wrigt_Cmad(adrColumn | 0x40);
01F0 0C2D mov R16,R12
01F2 0064 ori R16,64
01F4 34DF xcall _Wrigt_Cmad
01F6 .dbline 257
01F6 EE24 clr R14
01F8 0BC0 xjmp L60
01FA L57:
01FA .dbline 257
01FA .dbline 258
01FA 80E0 ldi R24,<_Dig
01FC 90E0 ldi R25,>_Dig
01FE F501 movw R30,R10
0200 E80F add R30,R24
0202 F91F adc R31,R25
0204 0491 lpm R16,Z
0206 42DF xcall _Wrigt_Data
0208 .dbline 259
0208 C501 movw R24,R10
020A 0196 adiw R24,1
020C 5C01 movw R10,R24
020E .dbline 259
020E L58:
020E .dbline 257
020E E394 inc R14
0210 L60:
0210 .dbline 257
0210 ; for(j=0; j< 8; j++) {
0210 8E2D mov R24,R14
0212 8830 cpi R24,8
0214 90F3 brlo L57
0216 .dbline 260
0216 ; Wrigt_Data(Dig[dptr]);
0216 ; dptr = dptr + 1; }
0216 ; }
0216 L55:
0216 .dbline 261
0216 ; if(left == 1)
0216 6130 cpi R22,1
0218 B1F4 brne L61
021A .dbline 262
021A ; { Wleft_Cmad(adrPage | 0xb8);
021A .dbline 262
021A 0A85 ldd R16,y+10
021C 086B ori R16,184
021E F0DE xcall _Wleft_Cmad
0220 .dbline 263
0220 ; Wleft_Cmad(adrColumn | 0x40);
0220 0C2D mov R16,R12
0222 0064 ori R16,64
0224 EDDE xcall _Wleft_Cmad
0226 .dbline 264
0226 EE24 clr R14
0228 0BC0 xjmp L66
022A L63:
022A .dbline 264
022A .dbline 265
022A 80E0 ldi R24,<_Dig
022C 90E0 ldi R25,>_Dig
022E F501 movw R30,R10
0230 E80F add R30,R24
0232 F91F adc R31,R25
0234 0491 lpm R16,Z
0236 FBDE xcall _Wleft_Data
0238 .dbline 266
0238 C501 movw R24,R10
023A 0196 adiw R24,1
023C 5C01 movw R10,R24
023E .dbline 266
023E L64:
023E .dbline 264
023E E394 inc R14
0240 L66:
0240 .dbline 264
0240 ; for(j=0; j< 8; j++) {
0240 8E2D mov R24,R14
0242 8830 cpi R24,8
0244 90F3 brlo L63
0246 .dbline 267
0246 ; Wleft_Data(Dig[dptr]);
0246 ; dptr = dptr + 1; }
0246 ; }
0246 L61:
0246 .dbline 268
0246 0A84 ldd R0,y+10
0248 0394 inc R0
024A 0A86 std y+10,R0
024C .dbline 269
024C L52:
024C .dbline 252
024C 4395 inc R20
024E L54:
024E .dbline 252
024E 4230 cpi R20,2
0250 08F4 brsh X1
0252 C9CF xjmp L51
0254 X1:
0254 .dbline -2
0254 L48:
0254 0E940000 xcall pop_gset5
0258 2296 adiw R28,2
025A .dbline 0 ; func end
025A 0895 ret
025C .dbsym r i 20 c
025C .dbsym r left 22 c
025C .dbsym r j 14 c
025C .dbsym r dptr 10 i
025C .dbsym r adrColumn 12 I
025C .dbsym l adrPage 10 c
025C .dbsym r XH_Dig 20 c
025C .dbend
025C .dbfunc e delay_1ms _delay_1ms fV
025C ; i -> R16,R17
.even
025C _delay_1ms::
025C .dbline -1
025C .dbline 274
025C ; adrPage = adrPage + 1;
025C ; }
025C ; }
025C ;
025C ; #define xtal 4
025C ; void delay_1ms(void)
025C ; { unsigned int i;
025C .dbline 275
025C ; for(i=1;i<(unsigned int)(xtal*143-2);i++)
025C 01E0 ldi R16,1
025E 10E0 ldi R17,0
0260 02C0 xjmp L71
0262 L68:
0262 .dbline 276
0262 L69:
0262 .dbline 275
0262 0F5F subi R16,255 ; offset = 1
0264 1F4F sbci R17,255
0266 L71:
0266 .dbline 275
0266 0A33 cpi R16,58
0268 E2E0 ldi R30,2
026A 1E07 cpc R17,R30
026C D0F3 brlo L68
026E .dbline -2
026E L67:
026E .dbline 0 ; func end
026E 0895 ret
0270 .dbsym r i 16 i
0270 .dbend
0270 .dbfunc e delay_ms _delay_ms fV
0270 ; i -> R20,R21
0270 ; n -> R22,R23
.even
0270 _delay_ms::
0270 0E940000 xcall push_gset2
0274 B801 movw R22,R16
0276 .dbline -1
0276 .dbline 279
0276 ; ;
0276 ; }
0276 ; void delay_ms(unsigned int n)
0276 ; {
0276 .dbline 280
0276 ; unsigned int i=0;
0276 4427 clr R20
0278 5527 clr R21
027A 03C0 xjmp L74
027C L73:
027C .dbline 282
027C .dbline 282
027C EFDF xcall _delay_1ms
027E .dbline 283
027E 4F5F subi R20,255 ; offset = 1
0280 5F4F sbci R21,255
0282 .dbline 284
0282 L74:
0282 .dbline 281
0282 ; while(i<n)
0282 4617 cp R20,R22
0284 5707 cpc R21,R23
0286 D0F3 brlo L73
0288 .dbline -2
0288 L72:
0288 0E940000 xcall pop_gset2
028C .dbline 0 ; func end
028C 0895 ret
028E .dbsym r i 20 i
028E .dbsym r n 22 i
028E .dbend
028E .dbfunc e main _main fV
.even
028E _main::
028E 2397 sbiw R28,3
0290 .dbline -1
0290 .dbline 289
0290 ; {delay_1ms();
0290 ; i++;
0290 ; }
0290 ; }
0290 ;
0290 ;
0290 ; void main()
0290 ; {
0290 .dbline 290
0290 ; PORTA = 0x00;
0290 2224 clr R2
0292 2BBA out 0x1b,R2
0294 .dbline 291
0294 ; DDRA = 0xFF;
0294 8FEF ldi R24,255
0296 8ABB out 0x1a,R24
0298 .dbline 292
0298 ; DDRB = 0xff ;
0298 87BB out 0x17,R24
029A .dbline 293
029A ; PORTB=0xff;
029A 88BB out 0x18,R24
029C .dbline 294
029C ; PORTC = 0xff;
029C 85BB out 0x15,R24
029E .dbline 295
029E ; DDRC = 0xFF;
029E 84BB out 0x14,R24
02A0 .dbline 296
02A0 ; PORTC = 0xff;
02A0 85BB out 0x15,R24
02A2 .dbline 297
02A2 ; PORTD = 0xFF;
02A2 82BB out 0x12,R24
02A4 .dbline 298
02A4 ; LCD_INT();
02A4 0BDF xcall _LCD_INT
02A6 .dbline 299
02A6 ; LCD_CLR();
02A6 13DF xcall _LCD_CLR
02A8 .dbline 300
02A8 ; WriteHZ(12, 0, 5, 64); // 氧电势
02A8 80E4 ldi R24,64
02AA 8A83 std y+2,R24
02AC 85E0 ldi R24,5
02AE 90E0 ldi R25,0
02B0 9983 std y+1,R25
02B2 8883 std y+0,R24
02B4 2227 clr R18
02B6 0CE0 ldi R16,12
02B8 27DF xcall _WriteHZ
02BA .dbline 301
02BA ; WriteHZ(17, 0, 108, 16); // mv
02BA 80E1 ldi R24,16
02BC 8A83 std y+2,R24
02BE 8CE6 ldi R24,108
02C0 90E0 ldi R25,0
02C2 9983 std y+1,R25
02C4 8883 std y+0,R24
02C6 2227 clr R18
02C8 01E1 ldi R16,17
02CA 1EDF xcall _WriteHZ
02CC .dbline 302
02CC ; WriteHZ(0, 2, 0, 64); // 氧量
02CC 80E4 ldi R24,64
02CE 8A83 std y+2,R24
02D0 2224 clr R2
02D2 3324 clr R3
02D4 3982 std y+1,R3
02D6 2882 std y+0,R2
02D8 22E0 ldi R18,2
02DA 0027 clr R16
02DC 15DF xcall _WriteHZ
02DE .dbline 303
02DE ; WriteDG(11, 2, 108); // %
02DE 8CE6 ldi R24,108
02E0 90E0 ldi R25,0
02E2 9983 std y+1,R25
02E4 8883 std y+0,R24
02E6 22E0 ldi R18,2
02E8 0BE0 ldi R16,11
02EA 67DF xcall _WriteDG
02EC .dbline 304
02EC ; WriteHZ(8, 4, 0, 64); // 热电势
02EC 80E4 ldi R24,64
02EE 8A83 std y+2,R24
02F0 2224 clr R2
02F2 3324 clr R3
02F4 3982 std y+1,R3
02F6 2882 std y+0,R2
02F8 24E0 ldi R18,4
02FA 08E0 ldi R16,8
02FC 05DF xcall _WriteHZ
02FE .dbline 305
02FE ; WriteHZ(17, 4, 108, 16); // mv
02FE 80E1 ldi R24,16
0300 8A83 std y+2,R24
0302 8CE6 ldi R24,108
0304 90E0 ldi R25,0
0306 9983 std y+1,R25
0308 8883 std y+0,R24
030A 24E0 ldi R18,4
030C 01E1 ldi R16,17
030E FCDE xcall _WriteHZ
0310 .dbline 306
0310 ; WriteHZ(4, 6, 0, 64); // 温度
0310 80E4 ldi R24,64
0312 8A83 std y+2,R24
0314 2224 clr R2
0316 3324 clr R3
0318 3982 std y+1,R3
031A 2882 std y+0,R2
031C 26E0 ldi R18,6
031E 04E0 ldi R16,4
0320 F3DE xcall _WriteHZ
0322 .dbline 307
0322 ; WriteHZ(16, 6,108, 16); // C
0322 80E1 ldi R24,16
0324 8A83 std y+2,R24
0326 8CE6 ldi R24,108
0328 90E0 ldi R25,0
032A 9983 std y+1,R25
032C 8883 std y+0,R24
032E 26E0 ldi R18,6
0330 00E1 ldi R16,16
0332 EADE xcall _WriteHZ
0334 .dbline -2
0334 L76:
0334 2396 adiw R28,3
0336 .dbline 0 ; func end
0336 0895 ret
0338 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -