📄 m16_pwm.lss
字号:
PORTC = sel;
144: 25 bb out 0x15, r18 ; 21
PORTA = 0xff - table[p[i]];
146: ed 91 ld r30, X+
148: f0 e0 ldi r31, 0x00 ; 0
14a: e0 5a subi r30, 0xA0 ; 160
14c: ff 4f sbci r31, 0xFF ; 255
14e: 80 81 ld r24, Z
150: 80 95 com r24
152: 8b bb out 0x1b, r24 ; 27
154: ca 01 movw r24, r20
156: 01 97 sbiw r24, 0x01 ; 1
158: f1 f7 brne .-4 ; 0x156 <key_process+0x4a>
_delay_ms(10);
sel <<= 1;
15a: 22 0f add r18, r18
uint8 key1, key2;
void display(uint8 *p)
{
uint8 sel = 0x01;
for (uint8 i = 0; i < 4; i++)
15c: 80 e0 ldi r24, 0x00 ; 0
15e: a0 37 cpi r26, 0x70 ; 112
160: b8 07 cpc r27, r24
162: 81 f7 brne .-32 ; 0x144 <key_process+0x38>
key1 = 1;
}
while ((PINB & 0x02) == 0)
{
display(data1);
key2 = 1;
164: 30 93 75 00 sts 0x0075, r19
168: 03 c0 rjmp .+6 ; 0x170 <key_process+0x64>
while ((PINB & 0x01) == 0)
{
display(data1);
key1 = 1;
}
while ((PINB & 0x02) == 0)
16a: 31 e0 ldi r19, 0x01 ; 1
16c: 44 ec ldi r20, 0xC4 ; 196
16e: 59 e0 ldi r21, 0x09 ; 9
170: b1 99 sbic 0x16, 1 ; 22
172: 04 c0 rjmp .+8 ; 0x17c <key_process+0x70>
174: ac e6 ldi r26, 0x6C ; 108
176: b0 e0 ldi r27, 0x00 ; 0
178: 21 e0 ldi r18, 0x01 ; 1
17a: e4 cf rjmp .-56 ; 0x144 <key_process+0x38>
{
display(data1);
key2 = 1;
}
if (key1 == 1)
17c: 80 91 74 00 lds r24, 0x0074
180: 81 30 cpi r24, 0x01 ; 1
182: 31 f4 brne .+12 ; 0x190 <key_process+0x84>
{
add(data1);
184: 8c e6 ldi r24, 0x6C ; 108
186: 90 e0 ldi r25, 0x00 ; 0
188: 0e 94 64 00 call 0xc8 ; 0xc8 <add>
key1 = 0;
18c: 10 92 74 00 sts 0x0074, r1
}
if (key2 == 1)
190: 80 91 75 00 lds r24, 0x0075
194: 81 30 cpi r24, 0x01 ; 1
196: 31 f4 brne .+12 ; 0x1a4 <key_process+0x98>
{
sub(data1);
198: 8c e6 ldi r24, 0x6C ; 108
19a: 90 e0 ldi r25, 0x00 ; 0
19c: 0e 94 72 00 call 0xe4 ; 0xe4 <sub>
key2 = 0;
1a0: 10 92 75 00 sts 0x0075, r1
1a4: 08 95 ret
000001a6 <set_process>:
}
}
void set_process(uint8 *p)
{
1a6: fc 01 movw r30, r24
uint16 tmp;
tmp = p[1] * 10 + p[2];
tmp = 1023 * tmp / 10;
1a8: 81 81 ldd r24, Z+1 ; 0x01
1aa: 2a e0 ldi r18, 0x0A ; 10
1ac: 82 9f mul r24, r18
1ae: c0 01 movw r24, r0
1b0: 11 24 eor r1, r1
1b2: 22 81 ldd r18, Z+2 ; 0x02
1b4: 82 0f add r24, r18
1b6: 91 1d adc r25, r1
1b8: 2f ef ldi r18, 0xFF ; 255
1ba: 33 e0 ldi r19, 0x03 ; 3
1bc: ac 01 movw r20, r24
1be: 42 9f mul r20, r18
1c0: c0 01 movw r24, r0
1c2: 43 9f mul r20, r19
1c4: 90 0d add r25, r0
1c6: 52 9f mul r21, r18
1c8: 90 0d add r25, r0
1ca: 11 24 eor r1, r1
1cc: 6a e0 ldi r22, 0x0A ; 10
1ce: 70 e0 ldi r23, 0x00 ; 0
1d0: 0e 94 32 01 call 0x264 ; 0x264 <__udivmodhi4>
OCR1AH = tmp >> 8;
1d4: 7b bd out 0x2b, r23 ; 43
OCR1AL = tmp & 0x00ff;
1d6: 6a bd out 0x2a, r22 ; 42
}
1d8: 08 95 ret
000001da <io_init>:
void io_init(void)
{
1da: 8f ef ldi r24, 0xFF ; 255
1dc: 8a bb out 0x1a, r24 ; 26
DDRA = 0xff;
PORTA = 0xff;
1de: 8b bb out 0x1b, r24 ; 27
DDRC = 0xff;
1e0: 84 bb out 0x14, r24 ; 20
PORTC = 0xff;
1e2: 85 bb out 0x15, r24 ; 21
DDRB = 0x00;
1e4: 17 ba out 0x17, r1 ; 23
PORTB = 0x00;
1e6: 18 ba out 0x18, r1 ; 24
DDRD = 0xff;
1e8: 81 bb out 0x11, r24 ; 17
PORTD = 0xff;
1ea: 82 bb out 0x12, r24 ; 18
}
1ec: 08 95 ret
000001ee <main>:
int main(void)
{
1ee: cf 93 push r28
1f0: df 93 push r29
OCR1AL = tmp & 0x00ff;
}
void io_init(void)
{
DDRA = 0xff;
1f2: 8f ef ldi r24, 0xFF ; 255
1f4: 8a bb out 0x1a, r24 ; 26
PORTA = 0xff;
1f6: 8b bb out 0x1b, r24 ; 27
DDRC = 0xff;
1f8: 84 bb out 0x14, r24 ; 20
PORTC = 0xff;
1fa: 85 bb out 0x15, r24 ; 21
DDRB = 0x00;
1fc: 17 ba out 0x17, r1 ; 23
PORTB = 0x00;
1fe: 18 ba out 0x18, r1 ; 24
DDRD = 0xff;
200: 81 bb out 0x11, r24 ; 17
PORTD = 0xff;
202: 82 bb out 0x12, r24 ; 18
int main(void)
{
io_init();
TCCR1A = 0xc3;
204: 83 ec ldi r24, 0xC3 ; 195
206: 8f bd out 0x2f, r24 ; 47
TCCR1B = 0x02;
208: 82 e0 ldi r24, 0x02 ; 2
20a: 8e bd out 0x2e, r24 ; 46
20c: 88 ea ldi r24, 0xA8 ; 168
20e: 91 e6 ldi r25, 0x61 ; 97
210: 01 97 sbiw r24, 0x01 ; 1
212: f1 f7 brne .-4 ; 0x210 <main+0x22>
_delay_ms(100);
while (1)
{
key_process();
214: c4 ec ldi r28, 0xC4 ; 196
216: d9 e0 ldi r29, 0x09 ; 9
218: 0e 94 86 00 call 0x10c ; 0x10c <key_process>
set_process(data1);
21c: 8c e6 ldi r24, 0x6C ; 108
21e: 90 e0 ldi r25, 0x00 ; 0
220: 0e 94 d3 00 call 0x1a6 ; 0x1a6 <set_process>
224: ac e6 ldi r26, 0x6C ; 108
226: b0 e0 ldi r27, 0x00 ; 0
228: 21 e0 ldi r18, 0x01 ; 1
void display(uint8 *p)
{
uint8 sel = 0x01;
for (uint8 i = 0; i < 4; i++)
{
PORTC = sel;
22a: 25 bb out 0x15, r18 ; 21
PORTA = 0xff - table[p[i]];
22c: ed 91 ld r30, X+
22e: f0 e0 ldi r31, 0x00 ; 0
230: e0 5a subi r30, 0xA0 ; 160
232: ff 4f sbci r31, 0xFF ; 255
234: 80 81 ld r24, Z
236: 80 95 com r24
238: 8b bb out 0x1b, r24 ; 27
23a: ce 01 movw r24, r28
23c: 01 97 sbiw r24, 0x01 ; 1
23e: f1 f7 brne .-4 ; 0x23c <main+0x4e>
_delay_ms(10);
sel <<= 1;
240: 22 0f add r18, r18
uint8 key1, key2;
void display(uint8 *p)
{
uint8 sel = 0x01;
for (uint8 i = 0; i < 4; i++)
242: 80 e0 ldi r24, 0x00 ; 0
244: a0 37 cpi r26, 0x70 ; 112
246: b8 07 cpc r27, r24
248: 81 f7 brne .-32 ; 0x22a <main+0x3c>
24a: e6 cf rjmp .-52 ; 0x218 <main+0x2a>
0000024c <__udivmodqi4>:
24c: 99 1b sub r25, r25
24e: 79 e0 ldi r23, 0x09 ; 9
250: 04 c0 rjmp .+8 ; 0x25a <__udivmodqi4_ep>
00000252 <__udivmodqi4_loop>:
252: 99 1f adc r25, r25
254: 96 17 cp r25, r22
256: 08 f0 brcs .+2 ; 0x25a <__udivmodqi4_ep>
258: 96 1b sub r25, r22
0000025a <__udivmodqi4_ep>:
25a: 88 1f adc r24, r24
25c: 7a 95 dec r23
25e: c9 f7 brne .-14 ; 0x252 <__udivmodqi4_loop>
260: 80 95 com r24
262: 08 95 ret
00000264 <__udivmodhi4>:
264: aa 1b sub r26, r26
266: bb 1b sub r27, r27
268: 51 e1 ldi r21, 0x11 ; 17
26a: 07 c0 rjmp .+14 ; 0x27a <__udivmodhi4_ep>
0000026c <__udivmodhi4_loop>:
26c: aa 1f adc r26, r26
26e: bb 1f adc r27, r27
270: a6 17 cp r26, r22
272: b7 07 cpc r27, r23
274: 10 f0 brcs .+4 ; 0x27a <__udivmodhi4_ep>
276: a6 1b sub r26, r22
278: b7 0b sbc r27, r23
0000027a <__udivmodhi4_ep>:
27a: 88 1f adc r24, r24
27c: 99 1f adc r25, r25
27e: 5a 95 dec r21
280: a9 f7 brne .-22 ; 0x26c <__udivmodhi4_loop>
282: 80 95 com r24
284: 90 95 com r25
286: bc 01 movw r22, r24
288: cd 01 movw r24, r26
28a: 08 95 ret
0000028c <_exit>:
28c: f8 94 cli
0000028e <__stop_program>:
28e: ff cf rjmp .-2 ; 0x28e <__stop_program>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -