📄 led.lis
字号:
0056 50901500 lds R5,_JS_003+2+1
005A 20901200 lds R2,_JS_003
005E 30901300 lds R3,_JS_003+1
0062 240E add R2,R20
0064 351E adc R3,R21
0066 461E adc R4,R22
0068 571E adc R5,R23
006A FE01 movw R30,R28
006C 2082 std z+0,R2
006E 3182 std z+1,R3
0070 4282 std z+2,R4
0072 5382 std z+3,R5
0074 FE01 movw R30,R28
0076 2080 ldd R2,z+0
0078 3180 ldd R3,z+1
007A 4280 ldd R4,z+2
007C 5380 ldd R5,z+3
007E 30921300 sts _JS_003+1,R3
0082 20921200 sts _JS_003,R2
0086 50921500 sts _JS_003+2+1,R5
008A 40921400 sts _JS_003+2,R4
008E FE01 movw R30,R28
0090 2080 ldd R2,z+0
0092 3180 ldd R3,z+1
0094 4280 ldd R4,z+2
0096 5380 ldd R5,z+3
0098 30921300 sts _JS_003+1,R3
009C 20921200 sts _JS_003,R2
00A0 50921500 sts _JS_003+2+1,R5
00A4 40921400 sts _JS_003+2,R4
00A8 06D0 xcall _TEST
00AA .dbline -2
00AA .dbline 143
00AA ; //display_times(); //TEST USE
00AA ;
00AA ;
00AA ;
00AA ; }
00AA L5:
00AA 2496 adiw R28,4
00AC 0E940000 xcall pop_gset2
00B0 0E940000 xcall pop_lset
00B4 .dbline 0 ; func end
00B4 1895 reti
00B6 .dbend
00B6 .dbfunc e TEST _TEST fV
.even
00B6 _TEST::
00B6 0E940000 xcall push_gset2
00BA .dbline -1
00BA .dbline 146
00BA ; /////////////////test/////////////////////////////////////
00BA ; void TEST()
00BA ; {
00BA .dbline 148
00BA ; //LED_DISPLAY_V4=8; //TEST
00BA ; if (JS_003==10000)
00BA 40E1 ldi R20,16
00BC 57E2 ldi R21,39
00BE 60E0 ldi R22,0
00C0 70E0 ldi R23,0
00C2 40901400 lds R4,_JS_003+2
00C6 50901500 lds R5,_JS_003+2+1
00CA 20901200 lds R2,_JS_003
00CE 30901300 lds R3,_JS_003+1
00D2 2416 cp R2,R20
00D4 3506 cpc R3,R21
00D6 4606 cpc R4,R22
00D8 5706 cpc R5,R23
00DA 21F4 brne L7
00DC .dbline 149
00DC ; {
00DC .dbline 150
00DC ; LED_DISPLAY_V5=14;
00DC 8EE0 ldi R24,14
00DE 80931F00 sts _LED_DISPLAY_V5,R24
00E2 .dbline 152
00E2 ;
00E2 ; }
00E2 20C0 xjmp L8
00E4 L7:
00E4 .dbline 153
00E4 ; else if (JS_003==20000)
00E4 40E2 ldi R20,32
00E6 5EE4 ldi R21,78
00E8 60E0 ldi R22,0
00EA 70E0 ldi R23,0
00EC 40901400 lds R4,_JS_003+2
00F0 50901500 lds R5,_JS_003+2+1
00F4 20901200 lds R2,_JS_003
00F8 30901300 lds R3,_JS_003+1
00FC 2416 cp R2,R20
00FE 3506 cpc R3,R21
0100 4606 cpc R4,R22
0102 5706 cpc R5,R23
0104 79F4 brne L9
0106 .dbline 154
0106 ; {
0106 .dbline 155
0106 ; JS_003=0;
0106 .dbline 156
0106 ; LED_DISPLAY_V5=13;
0106 40E0 ldi R20,0
0108 50E0 ldi R21,0
010A 60E0 ldi R22,0
010C 70E0 ldi R23,0
010E 50931300 sts _JS_003+1,R21
0112 40931200 sts _JS_003,R20
0116 70931500 sts _JS_003+2+1,R23
011A 60931400 sts _JS_003+2,R22
011E 8DE0 ldi R24,13
0120 80931F00 sts _LED_DISPLAY_V5,R24
0124 .dbline 157
0124 ; }
0124 L9:
0124 L8:
0124 .dbline -2
0124 .dbline 158
0124 ; }
0124 L6:
0124 0E940000 xcall pop_gset2
0128 .dbline 0 ; func end
0128 0895 ret
012A .dbend
012A .dbfunc e timer2_init _timer2_init fV
.even
012A _timer2_init::
012A .dbline -1
012A .dbline 165
012A ; /////////////////////////timer2///////////////////////////////////////////////////////////////////
012A ; //TIMER2 initialize - prescale:32
012A ; // WGM: Normal
012A ; // desired value: 10uSec
012A ; // actual value: 10.000uSec (0.0%)
012A ; void timer2_init(void)
012A ; {
012A .dbline 166
012A ; TCCR2 = 0x00; //stop
012A 2224 clr R2
012C 25BC out 0x25,R2
012E .dbline 167
012E ; ASSR = 0x00; //set async mode
012E 22BC out 0x22,R2
0130 .dbline 168
0130 ; TCNT2 = 0xFB; //setup
0130 8BEF ldi R24,251
0132 84BD out 0x24,R24
0134 .dbline 169
0134 ; OCR2 = 0x05;
0134 85E0 ldi R24,5
0136 83BD out 0x23,R24
0138 .dbline 170
0138 ; TCCR2 = 0x03; //start
0138 83E0 ldi R24,3
013A 85BD out 0x25,R24
013C .dbline -2
013C .dbline 171
013C ; }
013C L11:
013C .dbline 0 ; func end
013C 0895 ret
013E .dbend
.area vector(rom, abs)
.org 16
0010 0C949F00 jmp _timer2_ovf_isr
.area text(rom, con, rel)
013E .dbfile D:\WORK\ELECTR~1\proteus\M167LE~1\c\led.c
013E .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
.even
013E _timer2_ovf_isr::
013E 8A93 st -y,R24
0140 8FB7 in R24,0x3f
0142 8A93 st -y,R24
0144 .dbline -1
0144 .dbline 175
0144 ;
0144 ; #pragma interrupt_handler timer2_ovf_isr:5
0144 ; void timer2_ovf_isr(void) //10us
0144 ; {
0144 .dbline 176
0144 ; TCNT2 = 0xFB; //reload counter value
0144 8BEF ldi R24,251
0146 84BD out 0x24,R24
0148 .dbline -2
0148 .dbline 180
0148 ; //ICP_INT_JS();
0148 ; //ICP_INT_CLR_JS();
0148 ;
0148 ; }
0148 L12:
0148 8991 ld R24,y+
014A 8FBF out 0x3f,R24
014C 8991 ld R24,y+
014E .dbline 0 ; func end
014E 1895 reti
0150 .dbend
0150 .dbfunc e KEY_CHK _KEY_CHK fV
.even
0150 _KEY_CHK::
0150 .dbline -1
0150 .dbline 184
0150 ; /////////////////////////KEY_CHK/////////////////////////////////////////////////////////////
0150 ;
0150 ; void KEY_CHK()
0150 ; {
0150 .dbline 187
0150 ;
0150 ;
0150 ; KEY_CHK_MODE(); // 调用 KEY_CHK_MODE
0150 03D0 xcall _KEY_CHK_MODE
0152 .dbline 188
0152 ; KEY_CHK_MENU(); // 调用 KEY_CHK_MENU
0152 45D0 xcall _KEY_CHK_MENU
0154 .dbline 189
0154 ; KEY_CHK_UP(); // 调用 KEY_CHK_UP
0154 45D0 xcall _KEY_CHK_UP
0156 .dbline 190
0156 ; KEY_CHK_DOWN(); // 调用 KEY_CHK_DOWN
0156 .dbline -2
0156 .dbline 191
0156 ; }
0156 L13:
0156 .dbline 0 ; func end
0156 4EC1 xjmp _KEY_CHK_DOWN
0158 .dbend
0158 .dbfunc e KEY_CHK_MODE _KEY_CHK_MODE fV
.even
0158 _KEY_CHK_MODE::
0158 .dbline -1
0158 .dbline 194
0158 ; //////////////////////////MODE///////////////////////////////////////////////////////////
0158 ; void KEY_CHK_MODE() //100us /times
0158 ; {
0158 .dbline 195
0158 ; KEY_BANK=KEY_INPUT; // 取PINC值
0158 .dbline 196
0158 ; KEY_BANK&=0X01; // 取mode 值
0158 .dbline 197
0158 ; if (KEY_BANK==0) //有按下 执行
0158 23B2 in R2,0x13
015A 20923900 sts _KEY_BANK,R2
015E 822D mov R24,R2
0160 8170 andi R24,1
0162 80933900 sts _KEY_BANK,R24
0166 8823 tst R24
0168 29F5 brne L15
016A .dbline 198
016A ; { //TEST--------OK------------->>>>
016A .dbline 199
016A ; KEY_BANK=1;
016A .dbline 200
016A ; JS_004=++JS_004;
016A .dbline 201
016A ; if (JS_004==1)
016A 81E0 ldi R24,1
016C 80933900 sts _KEY_BANK,R24
0170 80911600 lds R24,_JS_004
0174 8F5F subi R24,255 ; addi 1
0176 282E mov R2,R24
0178 20921600 sts _JS_004,R2
017C 20921600 sts _JS_004,R2
0180 8130 cpi R24,1
0182 49F4 brne L17
0184 .dbline 202
0184 ; {
0184 .dbline 204
0184 ; //LED_DISPLAY_V1=11;
0184 ; LED_DISPLAY_V2=0;
0184 .dbline 205
0184 ; LED_DISPLAY_V3=0;
0184 .dbline 206
0184 ; LED_DISPLAY_V4=1;
0184 2224 clr R2
0186 20921C00 sts _LED_DISPLAY_V2,R2
018A 20921D00 sts _LED_DISPLAY_V3,R2
018E 81E0 ldi R24,1
0190 80931E00 sts _LED_DISPLAY_V4,R24
0194 .dbline 207
0194 ; }
0194 12C0 xjmp L16
0196 L17:
0196 .dbline 208
0196 ; else if (JS_004==2)
0196 80911600 lds R24,_JS_004
019A 8230 cpi R24,2
019C 71F4 brne L16
019E .dbline 209
019E ; {
019E .dbline 210
019E ; JS_004&=0;
019E .dbline 212
019E ; //LED_DISPLAY_V1=10;
019E ; LED_DISPLAY_V2=0;
019E .dbline 213
019E ; LED_DISPLAY_V3=0;
019E .dbline 214
019E ; LED_DISPLAY_V4=1;
019E 2224 clr R2
01A0 20921600 sts _JS_004,R2
01A4 20921C00 sts _LED_DISPLAY_V2,R2
01A8 20921D00 sts _LED_DISPLAY_V3,R2
01AC 81E0 ldi R24,1
01AE 80931E00 sts _LED_DISPLAY_V4,R24
01B2 .dbline 215
01B2 ; }
01B2 .dbline 216
01B2 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -