📄 ledbright.lst
字号:
(0129) // adc_l=(uchar)(vol_to/2);//high bit
(0130) // vol_to=0;
(0131) // }
(0132) return pot_vol;
00B7 2D02 MOV R16,R2
00B8 9508 RET
(0133) }
(0134)
(0135) void manu_mode(void)
(0136) {
(0137) //unsigned char i;
(0138) //bitset(PORTD,1);
(0139) //bitclr(PORTD,0);
(0140)
(0141) //if((PINC&0x02))
(0142)
(0143) pwmopen(pot_charge());
_manu_mode:
00B9 DFD6 RCALL _pot_charge
00BA DFA7 RCALL _pwmopen
00BB 9508 RET
(0144)
(0145) }
(0146) void sw_check(void)
(0147) {
(0148) if (!(PINC&0x02)){uchsw=1;auto_mode();}//自动模式
_sw_check:
00BC 9999 SBIC 0x13,1
00BD C005 RJMP 0x00C3
00BE E081 LDI R24,1
00BF 93800063 STS uchsw,R24
00C1 DFAB RCALL _auto_mode
00C2 C004 RJMP 0x00C7
(0149) else {uchsw=0;manu_mode();}//手动模式
00C3 2422 CLR R2
00C4 92200063 STS uchsw,R2
00C6 DFF2 RCALL _manu_mode
00C7 9508 RET
(0150) }
(0151)
(0152)
(0153) void vlr_v(void)
(0154) {
(0155) num=1;
_vlr_v:
00C8 E081 LDI R24,1
00C9 E090 LDI R25,0
00CA 93900062 STS num+1,R25
00CC 93800061 STS num,R24
(0156)
(0157) pot_vol=0;
00CE 2422 CLR R2
00CF 2433 CLR R3
00D0 92300065 STS pot_vol+1,R3
00D2 92200064 STS pot_vol,R2
(0158) uchsw=0;
00D4 92200063 STS uchsw,R2
(0159) pwm=0;
00D6 92200060 STS pwm,R2
00D8 9508 RET
(0160)
(0161) }
(0162) void main(void)
(0163) {
(0164)
(0165) init_devices();
_main:
00D9 DF73 RCALL _init_devices
(0166) vlr_v();
00DA DFED RCALL _vlr_v
(0167) TCCR1B=0x00; //停止PWM
00DB 2422 CLR R2
00DC BC2E OUT 0x2E,R2
(0168) TCCR1A=0x00;
00DD BC2F OUT 0x2F,R2
00DE C05B RJMP 0x013A
(0169) while(1)
(0170) {
(0171) if (!(PINC&0x04))
00DF 999A SBIC 0x13,2
00E0 C009 RJMP 0x00EA
(0172) {
(0173) PORTD=0;
00E1 2422 CLR R2
00E2 BA22 OUT 0x12,R2
(0174) DDRD=0;
00E3 BA21 OUT 0x11,R2
(0175) TCCR1A = 0x82; //打开PWM
00E4 E882 LDI R24,0x82
00E5 BD8F OUT 0x2F,R24
(0176) TCCR1B = 0x19;
00E6 E189 LDI R24,0x19
00E7 BD8E OUT 0x2E,R24
(0177) sw_check();
00E8 DFD3 RCALL _sw_check
(0178) }
00E9 C050 RJMP 0x013A
(0179) else
(0180) {
(0181) clpwm();
00EA DF7B RCALL _clpwm
(0182) bitclr(PORTB,1);
00EB 98C1 CBI 0x18,1
(0183) for(num=1;0x80>num;num=num*2) //由亮变暗
00EC E081 LDI R24,1
00ED E090 LDI R25,0
00EE 93900062 STS num+1,R25
00F0 93800061 STS num,R24
00F2 C017 RJMP 0x010A
(0184) {
(0185) if (!(PINC&0x04)) break;
00F3 999A SBIC 0x13,2
00F4 C001 RJMP 0x00F6
00F5 C01D RJMP 0x0113
(0186) PORTD=num;
00F6 90200061 LDS R2,num
00F8 90300062 LDS R3,num+1
00FA BA22 OUT 0x12,R2
(0187) DDRD=num;
00FB BA21 OUT 0x11,R2
(0188) delay();
00FC DF59 RCALL _delay
(0189) delay();
00FD DF58 RCALL _delay
(0190) delay();
00FE DF57 RCALL _delay
00FF 91200061 LDS R18,num
0101 91300062 LDS R19,num+1
0103 E002 LDI R16,2
0104 E010 LDI R17,0
0105 D06F RCALL empy16s
0106 93100062 STS num+1,R17
0108 93000061 STS num,R16
010A 90200061 LDS R2,num
010C 90300062 LDS R3,num+1
010E E880 LDI R24,0x80
010F E090 LDI R25,0
0110 1628 CP R2,R24
0111 0639 CPC R3,R25
0112 F304 BLT 0x00F3
(0191) }
(0192) for(num=0x80;1<num;num=num/2)//由暗变亮
0113 E880 LDI R24,0x80
0114 E090 LDI R25,0
0115 93900062 STS num+1,R25
0117 93800061 STS num,R24
0119 C017 RJMP 0x0131
(0193) {
(0194) if (PINC&0x04) break;
011A 9B9A SBIS 0x13,2
011B C001 RJMP 0x011D
011C C01D RJMP 0x013A
(0195) PORTD=num;
011D 90200061 LDS R2,num
011F 90300062 LDS R3,num+1
0121 BA22 OUT 0x12,R2
(0196) DDRD=num;
0122 BA21 OUT 0x11,R2
(0197) delay();
0123 DF32 RCALL _delay
(0198) delay();
0124 DF31 RCALL _delay
(0199) delay();
FILE: <library>
0125 DF30 RCALL _delay
0126 E022 LDI R18,2
0127 E030 LDI R19,0
0128 91000061 LDS R16,num
012A 91100062 LDS R17,num+1
012C D013 RCALL div16s
012D 93100062 STS num+1,R17
012F 93000061 STS num,R16
0131 90200061 LDS R2,num
0133 90300062 LDS R3,num+1
0135 E081 LDI R24,1
0136 E090 LDI R25,0
0137 1582 CP R24,R2
0138 0593 CPC R25,R3
0139 F304 BLT 0x011A
013A CFA4 RJMP 0x00DF
013B 9508 RET
mod16s:
013C 9468 BSET 6
013D 92DA ST R13,-Y
013E 2ED1 MOV R13,R17
013F C004 RJMP 0x0144
div16s:
0140 94E8 BCLR 6
0141 92DA ST R13,-Y
0142 2ED1 MOV R13,R17
0143 26D3 EOR R13,R19
0144 FF17 SBRS R17,7
0145 C004 RJMP 0x014A
0146 9510 COM R17
0147 9500 COM R16
0148 5F0F SUBI R16,0xFF
0149 4F1F SBCI R17,0xFF
014A FF37 SBRS R19,7
014B C004 RJMP 0x0150
014C 9530 COM R19
014D 9520 COM R18
014E 5F2F SUBI R18,0xFF
014F 4F3F SBCI R19,0xFF
0150 D00B RCALL xdiv16u
0151 FED7 SBRS R13,7
0152 C004 RJMP 0x0157
0153 9510 COM R17
0154 9500 COM R16
0155 5F0F SUBI R16,0xFF
0156 4F1F SBCI R17,0xFF
0157 90D9 LD R13,Y+
0158 9508 RET
mod16u:
0159 9468 BSET 6
015A C001 RJMP xdiv16u
div16u:
015B 94E8 BCLR 6
xdiv16u:
015C 92EA ST R14,-Y
015D 92FA ST R15,-Y
015E 938A ST R24,-Y
015F 24EE CLR R14
0160 24FF CLR R15
0161 E180 LDI R24,0x10
0162 0F00 LSL R16
0163 1F11 ROL R17
0164 1CEE ROL R14
0165 1CFF ROL R15
0166 16E2 CP R14,R18
0167 06F3 CPC R15,R19
0168 F018 BCS 0x016C
0169 1AE2 SUB R14,R18
016A 0AF3 SBC R15,R19
016B 9503 INC R16
016C 958A DEC R24
016D F7A1 BNE 0x0162
016E F416 BRTC 0x0171
016F 2D0E MOV R16,R14
0170 2D1F MOV R17,R15
0171 9189 LD R24,Y+
0172 90F9 LD R15,Y+
0173 90E9 LD R14,Y+
0174 9508 RET
empy16s:
0175 920A ST R0,-Y
0176 921A ST R1,-Y
0177 938A ST R24,-Y
0178 939A ST R25,-Y
0179 9F02 MUL R16,R18
017A 01C0 MOVW R24,R0
017B 9F12 MUL R17,R18
017C 0D90 ADD R25,R0
017D 9F03 MUL R16,R19
017E 0D90 ADD R25,R0
017F 018C MOVW R16,R24
0180 9199 LD R25,Y+
0181 9189 LD R24,Y+
0182 9019 LD R1,Y+
0183 9009 LD R0,Y+
0184 9508 RET
push_gset5:
0185 92FA ST R15,-Y
0186 92EA ST R14,-Y
push_gset4:
0187 92DA ST R13,-Y
0188 92CA ST R12,-Y
push_gset3:
0189 92BA ST R11,-Y
018A 92AA ST R10,-Y
push_gset2:
018B 937A ST R23,-Y
018C 936A ST R22,-Y
push_gset1:
018D 935A ST R21,-Y
018E 934A ST R20,-Y
018F 9508 RET
pop_gset1:
0190 E0E1 LDI R30,1
pop:
0191 9149 LD R20,Y+
0192 9159 LD R21,Y+
0193 FDE0 SBRC R30,0
0194 9508 RET
0195 9169 LD R22,Y+
0196 9179 LD R23,Y+
0197 FDE1 SBRC R30,1
0198 9508 RET
0199 90A9 LD R10,Y+
019A 90B9 LD R11,Y+
019B FDE2 SBRC R30,2
019C 9508 RET
019D 90C9 LD R12,Y+
019E 90D9 LD R13,Y+
019F FDE3 SBRC R30,3
01A0 9508 RET
01A1 90E9 LD R14,Y+
01A2 90F9 LD R15,Y+
01A3 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -