📄 display_dhtxx.lis
字号:
0064 .dbsym r i 20 i
0064 .dbsym r dly 16 i
0064 .dbend
0064 .dbfunc e DelaymS _DelaymS fV
0064 ; i -> R20,R21
0064 ; dly -> R16,R17
.even
0064 _DelaymS::
0064 00D0 rcall push_gset1
0066 .dbline -1
0066 .dbline 154
0066 ; }
0066 ; void DelaymS (U16 dly) //延时子程序 1.010ms
0066 ; {
0066 .dbline 156
0066 ; U16 i;
0066 ; for ( ; dly>0; dly--)
0066 0CC0 rjmp L21
0068 L18:
0068 .dbline 157
0068 ; {
0068 .dbline 158
0068 ; WDR();
0068 A895 wdr
006A .dbline 159
006A 4427 clr R20
006C 5527 clr R21
006E 02C0 rjmp L25
0070 L22:
0070 .dbline 159
0070 L23:
0070 .dbline 159
0070 4F5F subi R20,255 ; offset = 1
0072 5F4F sbci R21,255
0074 L25:
0074 .dbline 159
0074 4831 cpi R20,24
0076 E1E0 ldi R30,1
0078 5E07 cpc R21,R30
007A D0F3 brlo L22
007C .dbline 160
007C L19:
007C .dbline 156
007C 0150 subi R16,1
007E 1040 sbci R17,0
0080 L21:
0080 .dbline 156
0080 0030 cpi R16,0
0082 0107 cpc R16,R17
0084 89F7 brne L18
0086 X2:
0086 .dbline -2
0086 L17:
0086 00D0 rcall pop_gset1
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbsym r i 20 i
008A .dbsym r dly 16 i
008A .dbend
008A .dbfunc e Display _Display fV
.even
008A _Display::
008A 00D0 rcall push_gset5
008C .dbline -1
008C .dbline 163
008C ; for (i=0; i<280; i++); //1131
008C ; }
008C ; }
008C ; void Display (void)
008C ; {
008C .dbline 165
008C ;
008C ; for(i=0;i<=5;i++)
008C 2224 clr R2
008E 20921300 sts _i,R2
0092 7FC0 rjmp L30
0094 L27:
0094 .dbline 166
0094 ; {
0094 .dbline 167
0094 ; DDRD |= 0XFC;
0094 81B3 in R24,0x11
0096 8C6F ori R24,252
0098 81BB out 0x11,R24
009A .dbline 168
009A ; PORTD&=0x03;
009A 82B3 in R24,0x12
009C 8370 andi R24,3
009E 82BB out 0x12,R24
00A0 .dbline 169
00A0 ; DDRC |= 0X0C;
00A0 84B3 in R24,0x14
00A2 8C60 ori R24,12
00A4 84BB out 0x14,R24
00A6 .dbline 170
00A6 ; PORTC&=0xF3;
00A6 85B3 in R24,0x15
00A8 837F andi R24,243
00AA 85BB out 0x15,R24
00AC .dbline 171
00AC ; Delay(1);
00AC 01E0 ldi R16,1
00AE 10E0 ldi R17,0
00B0 BEDF rcall _Delay
00B2 .dbline 173
00B2 ;
00B2 ; switch(i)
00B2 40911300 lds R20,_i
00B6 5527 clr R21
00B8 4030 cpi R20,0
00BA 4507 cpc R20,R21
00BC A9F0 breq L34
00BE X3:
00BE 4130 cpi R20,1
00C0 E0E0 ldi R30,0
00C2 5E07 cpc R21,R30
00C4 99F0 breq L35
00C6 4230 cpi R20,2
00C8 E0E0 ldi R30,0
00CA 5E07 cpc R21,R30
00CC 89F0 breq L36
00CE 4330 cpi R20,3
00D0 E0E0 ldi R30,0
00D2 5E07 cpc R21,R30
00D4 79F0 breq L37
00D6 4430 cpi R20,4
00D8 E0E0 ldi R30,0
00DA 5E07 cpc R21,R30
00DC 69F0 breq L38
00DE 4530 cpi R20,5
00E0 E0E0 ldi R30,0
00E2 5E07 cpc R21,R30
00E4 59F0 breq L39
00E6 0BC0 rjmp L32
00E8 X4:
00E8 .dbline 174
00E8 ; {
00E8 L34:
00E8 .dbline 175
00E8 ; case 0: PORTC|=led1;break;
00E8 AB9A sbi 0x15,3
00EA .dbline 175
00EA 09C0 rjmp L32
00EC L35:
00EC .dbline 176
00EC ; case 1: PORTD|=led2;break;
00EC 959A sbi 0x12,5
00EE .dbline 176
00EE 07C0 rjmp L32
00F0 L36:
00F0 .dbline 177
00F0 ; case 2: PORTD|=led3;break;
00F0 949A sbi 0x12,4
00F2 .dbline 177
00F2 05C0 rjmp L32
00F4 L37:
00F4 .dbline 178
00F4 ; case 3: PORTD|=led4;break;
00F4 979A sbi 0x12,7
00F6 .dbline 178
00F6 03C0 rjmp L32
00F8 L38:
00F8 .dbline 179
00F8 ; case 4: PORTD|=led5;break;
00F8 969A sbi 0x12,6
00FA .dbline 179
00FA 01C0 rjmp L32
00FC L39:
00FC .dbline 180
00FC ; case 5: PORTD|=led6;break;
00FC 929A sbi 0x12,2
00FE .dbline 180
00FE .dbline 181
00FE ; default :break;
00FE L32:
00FE .dbline 183
00FE ; }
00FE ; PORTB=LED[PLAY[i]] ; //送数据
00FE 80E0 ldi R24,<_PLAY
0100 90E0 ldi R25,>_PLAY
0102 E0911300 lds R30,_i
0106 FF27 clr R31
0108 E80F add R30,R24
010A F91F adc R31,R25
010C E081 ldd R30,z+0
010E FF27 clr R31
0110 80E0 ldi R24,<_LED
0112 90E0 ldi R25,>_LED
0114 E80F add R30,R24
0116 F91F adc R31,R25
0118 E491 lpm R30,Z
011A E8BB out 0x18,R30
011C .dbline 184
011C ; if((i==0)|(i==2)|(i==3)|(i==5))
011C 20901300 lds R2,_i
0120 2220 tst R2
0122 21F4 brne L42
0124 81E0 ldi R24,1
0126 90E0 ldi R25,0
0128 7C01 movw R14,R24
012A 02C0 rjmp L43
012C L42:
012C EE24 clr R14
012E FF24 clr R15
0130 L43:
0130 80911300 lds R24,_i
0134 8230 cpi R24,2
0136 21F4 brne L44
0138 81E0 ldi R24,1
013A 90E0 ldi R25,0
013C 6C01 movw R12,R24
013E 02C0 rjmp L45
0140 L44:
0140 CC24 clr R12
0142 DD24 clr R13
0144 L45:
0144 80911300 lds R24,_i
0148 8330 cpi R24,3
014A 21F4 brne L46
014C 81E0 ldi R24,1
014E 90E0 ldi R25,0
0150 5C01 movw R10,R24
0152 02C0 rjmp L47
0154 L46:
0154 AA24 clr R10
0156 BB24 clr R11
0158 L47:
0158 80911300 lds R24,_i
015C 8530 cpi R24,5
015E 19F4 brne L48
0160 61E0 ldi R22,1
0162 70E0 ldi R23,0
0164 02C0 rjmp L49
0166 L48:
0166 6627 clr R22
0168 7727 clr R23
016A L49:
016A 1701 movw R2,R14
016C 2C28 or R2,R12
016E 3D28 or R3,R13
0170 2A28 or R2,R10
0172 3B28 or R3,R11
0174 262A or R2,R22
0176 372A or R3,R23
0178 2220 tst R2
017A 11F4 brne X5
017C 3320 tst R3
017E 09F0 breq L40
0180 X5:
0180 .dbline 185
0180 ; {
0180 .dbline 186
0180 ; PORTB|=0x80;
0180 C79A sbi 0x18,7
0182 .dbline 187
0182 ; }
0182 L40:
0182 .dbline 188
0182 01E0 ldi R16,1
0184 10E0 ldi R17,0
0186 6EDF rcall _DelaymS
0188 .dbline 189
0188 L28:
0188 .dbline 165
0188 80911300 lds R24,_i
018C 8F5F subi R24,255 ; addi 1
018E 80931300 sts _i,R24
0192 L30:
0192 .dbline 165
0192 85E0 ldi R24,5
0194 20901300 lds R2,_i
0198 8215 cp R24,R2
019A 08F0 brlo X6
019C 7BCF rjmp L27
019E X6:
019E .dbline 190
019E ; DelaymS(1);
019E ; }
019E ; PORTD&=0x03;
019E 82B3 in R24,0x12
01A0 8370 andi R24,3
01A2 82BB out 0x12,R24
01A4 .dbline 191
01A4 ; PORTC&=0xF3;
01A4 85B3 in R24,0x15
01A6 837F andi R24,243
01A8 85BB out 0x15,R24
01AA .dbline -2
01AA L26:
01AA 00D0 rcall pop_gset5
01AC .dbline 0 ; func end
01AC 0895 ret
01AE .dbend
01AE .dbfunc e delay1N _delay1N fV
01AE ; Dcount -> R16,R17
.even
01AE _delay1N::
01AE .dbline -1
01AE .dbline 195
01AE ; }
01AE ;
01AE ; void delay1N(unsigned int Dcount) //(1u*Dcount)
01AE ; {
01AE 03C0 rjmp L52
01B0 L51:
01B0 .dbline 197
01B0 .dbline 198
01B0 0000 nop
01B2 .dbline 199
01B2 0000 nop
01B4 .dbline 200
01B4 0000 nop
01B6 .dbline 201
01B6 L52:
01B6 .dbline 196
01B6 ; while(Dcount--)
01B6 1801 movw R2,R16
01B8 0150 subi R16,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -