📄 lesson7.lis
字号:
.module lesson7.c
.area data(ram, con, rel)
0000 _num::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile I:\学习\单片机编程\AVR\十天学~1\第七集\lesson7\chengxu\MIAO\lesson7.c
0001 .dbsym e num _num c
.area vector(rom, abs)
.org 32
0020 0C943A00 jmp _miao
.area data(ram, con, rel)
0001 .dbfile I:\学习\单片机编程\AVR\十天学~1\第七集\lesson7\chengxu\MIAO\lesson7.c
.area code(ram, con, rel)
0000 .dbfile I:\学习\单片机编程\AVR\十天学~1\第七集\lesson7\chengxu\MIAO\lesson7.c
.area lit(rom, con, rel)
0000 _table::
0000 3F00 .word 63
0002 0600 .word 6
0004 5B00 .word 91
0006 4F00 .word 79
0008 6600 .word 102
000A 6D00 .word 109
000C 7D00 .word 125
000E 0700 .word 7
0010 7F00 .word 127
0012 6F00 .word 111
0014 7700 .word 119
0016 7C00 .word 124
0018 3900 .word 57
001A 5E00 .word 94
001C 7900 .word 121
001E 7100 .word 113
0020 .dbsym e table _table A[32:16]kI
.area text(rom, con, rel)
0000 .dbfile I:\学习\单片机编程\AVR\十天学~1\第七集\lesson7\chengxu\MIAO\lesson7.c
0000 .dbfunc e delay _delay fV
0000 ; i -> R20,R21
0000 ; j -> R22,R23
0000 ; ms -> R16,R17
.even
0000 _delay::
0000 0E940000 xcall push_gset2
0004 .dbline -1
0004 .dbline 12
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ; uchar num=0;
0004 ; #pragma interrupt_handler miao:9
0004 ; #pragma data:code
0004 ; const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
0004 ; 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
0004 ;
0004 ; void delay(uint ms)
0004 ; {
0004 .dbline 14
0004 ; uint i,j;
0004 ; for(i=0;i<ms;i++)
0004 4427 clr R20
0006 5527 clr R21
0008 0BC0 xjmp L5
000A L2:
000A .dbline 15
000A ; {
000A .dbline 16
000A 6627 clr R22
000C 7727 clr R23
000E 02C0 xjmp L9
0010 L6:
0010 .dbline 16
0010 L7:
0010 .dbline 16
0010 6F5F subi R22,255 ; offset = 1
0012 7F4F sbci R23,255
0014 L9:
0014 .dbline 16
0014 6537 cpi R22,117
0016 E4E0 ldi R30,4
0018 7E07 cpc R23,R30
001A D0F3 brlo L6
001C .dbline 17
001C L3:
001C .dbline 14
001C 4F5F subi R20,255 ; offset = 1
001E 5F4F sbci R21,255
0020 L5:
0020 .dbline 14
0020 4017 cp R20,R16
0022 5107 cpc R21,R17
0024 90F3 brlo L2
0026 .dbline -2
0026 L1:
0026 0E940000 xcall pop_gset2
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r i 20 i
002C .dbsym r j 22 i
002C .dbsym r ms 16 i
002C .dbend
002C .dbfunc e show _show fV
002C ; k -> R20
002C ; j -> R22
.even
002C _show::
002C 0E940000 xcall push_gset2
0030 422F mov R20,R18
0032 602F mov R22,R16
0034 .dbline -1
0034 .dbline 20
0034 ; for(j=0;j<1141;j++);
0034 ; }
0034 ; }
0034 ; void show(uchar j,uchar k)
0034 ; {
0034 .dbline 21
0034 ; PORTA|=BIT(3);
0034 DB9A sbi 0x1b,3
0036 .dbline 22
0036 ; PORTB=table[j];
0036 82E0 ldi R24,2
0038 869F mul R24,R22
003A F001 movw R30,R0
003C 80E0 ldi R24,<_table
003E 90E0 ldi R25,>_table
0040 E80F add R30,R24
0042 F91F adc R31,R25
0044 0590 lpm R0,Z+
0046 1490 lpm R1,Z
0048 F001 movw R30,R0
004A E8BB out 0x18,R30
004C .dbline 23
004C ; PORTA&=~BIT(3);
004C DB98 cbi 0x1b,3
004E .dbline 25
004E ;
004E ; PORTB=0XFF;
004E 8FEF ldi R24,255
0050 88BB out 0x18,R24
0052 .dbline 26
0052 ; PORTB&=~BIT(k);
0052 01E0 ldi R16,1
0054 142F mov R17,R20
0056 0E940000 xcall lsl8
005A 202E mov R2,R16
005C 2094 com R2
005E 38B2 in R3,0x18
0060 3220 and R3,R2
0062 38BA out 0x18,R3
0064 .dbline 27
0064 ; PORTA|=BIT(4);
0064 DC9A sbi 0x1b,4
0066 .dbline 28
0066 ; PORTA&=~BIT(4);
0066 DC98 cbi 0x1b,4
0068 .dbline 29
0068 ; delay(1);
0068 01E0 ldi R16,1
006A 10E0 ldi R17,0
006C C9DF xcall _delay
006E .dbline -2
006E L10:
006E 0E940000 xcall pop_gset2
0072 .dbline 0 ; func end
0072 0895 ret
0074 .dbsym r k 20 c
0074 .dbsym r j 22 c
0074 .dbend
0074 .dbfunc e miao _miao fV
.even
0074 _miao::
0074 2A92 st -y,R2
0076 8A93 st -y,R24
0078 9A93 st -y,R25
007A 2FB6 in R2,0x3f
007C 2A92 st -y,R2
007E .dbline -1
007E .dbline 32
007E ; }
007E ; void miao()
007E ; {
007E .dbline 33
007E ; if(num==60)
007E 80910000 lds R24,_num
0082 8C33 cpi R24,60
0084 19F4 brne L12
0086 .dbline 34
0086 ; num=0;
0086 2224 clr R2
0088 20920000 sts _num,R2
008C L12:
008C .dbline 35
008C ; num++;
008C 80910000 lds R24,_num
0090 8F5F subi R24,255 ; addi 1
0092 80930000 sts _num,R24
0096 .dbline 36
0096 ; TCNT1H=0X85;
0096 85E8 ldi R24,133
0098 8DBD out 0x2d,R24
009A .dbline 37
009A ; TCNT1L=0XED;
009A 8DEE ldi R24,237
009C 8CBD out 0x2c,R24
009E .dbline -2
009E L11:
009E 2990 ld R2,y+
00A0 2FBE out 0x3f,R2
00A2 9991 ld R25,y+
00A4 8991 ld R24,y+
00A6 2990 ld R2,y+
00A8 .dbline 0 ; func end
00A8 1895 reti
00AA .dbend
00AA .dbfunc e main _main fV
.even
00AA _main::
00AA .dbline -1
00AA .dbline 40
00AA ; }
00AA ; void main()
00AA ; {
00AA .dbline 41
00AA ; DDRB=0XFF;
00AA 8FEF ldi R24,255
00AC 87BB out 0x17,R24
00AE .dbline 42
00AE ; DDRA|=0X18;
00AE 8AB3 in R24,0x1a
00B0 8861 ori R24,24
00B2 8ABB out 0x1a,R24
00B4 .dbline 44
00B4 ;
00B4 ; TCCR1B=0X04;
00B4 84E0 ldi R24,4
00B6 8EBD out 0x2e,R24
00B8 .dbline 45
00B8 ; TCNT1H=0X85;
00B8 85E8 ldi R24,133
00BA 8DBD out 0x2d,R24
00BC .dbline 46
00BC ; TCNT1L=0XED;
00BC 8DEE ldi R24,237
00BE 8CBD out 0x2c,R24
00C0 .dbline 47
00C0 ; TIMSK|=BIT(2);
00C0 89B7 in R24,0x39
00C2 8460 ori R24,4
00C4 89BF out 0x39,R24
00C6 .dbline 48
00C6 ; SREG|=BIT(7);
00C6 7894 bset 7
00C8 0EC0 xjmp L16
00CA L15:
00CA .dbline 51
00CA .dbline 52
00CA 2227 clr R18
00CC 1AE0 ldi R17,10
00CE 00910000 lds R16,_num
00D2 0E940000 xcall div8u
00D6 AADF xcall _show
00D8 .dbline 53
00D8 21E0 ldi R18,1
00DA 1AE0 ldi R17,10
00DC 00910000 lds R16,_num
00E0 0E940000 xcall mod8u
00E4 A3DF xcall _show
00E6 .dbline 54
00E6 L16:
00E6 .dbline 50
00E6 F1CF xjmp L15
00E8 X0:
00E8 .dbline -2
00E8 L14:
00E8 .dbline 0 ; func end
00E8 0895 ret
00EA .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -