📄 fangbojishu.lis
字号:
.module FANGBOJISHU.c
.area text(rom, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\fangbojishu\FANGBOJISHU.c
.area data(ram, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\fangbojishu\FANGBOJISHU.c
0000 _num::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\fangbojishu\FANGBOJISHU.c
0001 .dbsym e num _num c
.area vector(rom, abs)
.org 24
0018 0C943900 jmp _miao
.area data(ram, con, rel)
0001 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\fangbojishu\FANGBOJISHU.c
.area code(ram, con, rel)
0000 .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\fangbojishu\FANGBOJISHU.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 G:\学习\avr\天祥电子AVR视频教程\chengxu\fangbojishu\FANGBOJISHU.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_xgsetF000
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:7
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 ; for(j=0;j<1141;j++);
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 X0:
001C .dbline 17
001C ; }
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 X1:
0026 .dbline -2
0026 L1:
0026 .dbline 0 ; func end
0026 0C940000 xjmp pop_xgsetF000
002A .dbsym r i 20 i
002A .dbsym r j 22 i
002A .dbsym r ms 16 i
002A .dbend
002A .dbfunc e show _show fV
002A ; k -> R10
002A ; j -> R12
.even
002A _show::
002A AA92 st -y,R10
002C CA92 st -y,R12
002E A22E mov R10,R18
0030 C02E mov R12,R16
0032 .dbline -1
0032 .dbline 20
0032 ; }
0032 ; void show(uchar j,uchar k)
0032 ; {
0032 .dbline 21
0032 ; PORTA|=BIT(3);
0032 DB9A sbi 0x1b,3
0034 .dbline 22
0034 ; PORTB=table[j];
0034 80E0 ldi R24,<_table
0036 90E0 ldi R25,>_table
0038 EC2D mov R30,R12
003A FF27 clr R31
003C EE0F lsl R30
003E FF1F rol R31
0040 E80F add R30,R24
0042 F91F adc R31,R25
0044 2590 lpm R2,Z+
0046 3490 lpm R3,Z
0048 28BA out 0x18,R2
004A .dbline 23
004A ; PORTA&=~BIT(3);
004A DB98 cbi 0x1b,3
004C .dbline 25
004C ;
004C ; PORTB=0XFF;
004C 8FEF ldi R24,255
004E 88BB out 0x18,R24
0050 .dbline 26
0050 ; PORTB&=~BIT(k);
0050 01E0 ldi R16,1
0052 1A2D mov R17,R10
0054 0E940000 xcall lsl8
0058 202E mov R2,R16
005A 2094 com R2
005C 38B2 in R3,0x18
005E 3220 and R3,R2
0060 38BA out 0x18,R3
0062 .dbline 27
0062 ; PORTA|=BIT(4);
0062 DC9A sbi 0x1b,4
0064 .dbline 28
0064 ; PORTA&=~BIT(4);
0064 DC98 cbi 0x1b,4
0066 .dbline 29
0066 ; delay(80);//delay(1);
0066 00E5 ldi R16,80
0068 10E0 ldi R17,0
006A CADF xcall _delay
006C .dbline -2
006C L10:
006C .dbline 0 ; func end
006C C990 ld R12,y+
006E A990 ld R10,y+
0070 0895 ret
0072 .dbsym r k 10 c
0072 .dbsym r j 12 c
0072 .dbend
0072 .dbfunc e miao _miao fV
.even
0072 _miao::
0072 2A92 st -y,R2
0074 8A93 st -y,R24
0076 9A93 st -y,R25
0078 2FB6 in R2,0x3f
007A 2A92 st -y,R2
007C .dbline -1
007C .dbline 32
007C ; }
007C ; void miao()
007C ; {
007C .dbline 33
007C ; if(num==60)
007C 80910000 lds R24,_num
0080 8C33 cpi R24,60
0082 19F4 brne L12
0084 X2:
0084 .dbline 34
0084 ; num=0;
0084 2224 clr R2
0086 20920000 sts _num,R2
008A L12:
008A .dbline 35
008A ; num++;
008A 80910000 lds R24,_num
008E 8F5F subi R24,255 ; addi 1
0090 80930000 sts _num,R24
0094 .dbline 36
0094 ; TCNT1H=0X00;
0094 2224 clr R2
0096 2DBC out 0x2d,R2
0098 .dbline 37
0098 ; TCNT1L=0X00;
0098 2CBC out 0x2c,R2
009A .dbline -2
009A L11:
009A .dbline 0 ; func end
009A 2990 ld R2,y+
009C 2FBE out 0x3f,R2
009E 9991 ld R25,y+
00A0 8991 ld R24,y+
00A2 2990 ld R2,y+
00A4 1895 reti
00A6 .dbend
00A6 .dbfunc e main _main fV
.even
00A6 _main::
00A6 .dbline -1
00A6 .dbline 40
00A6 ; }
00A6 ; void main()
00A6 ; {
00A6 .dbline 41
00A6 ; DDRB=0XFF;
00A6 8FEF ldi R24,255
00A8 87BB out 0x17,R24
00AA .dbline 42
00AA ; DDRD|=0X30;
00AA 81B3 in R24,0x11
00AC 8063 ori R24,48
00AE 81BB out 0x11,R24
00B0 .dbline 43
00B0 ; DDRA|=0X18;//573锁存端
00B0 8AB3 in R24,0x1a
00B2 8861 ori R24,24
00B4 8ABB out 0x1a,R24
00B6 .dbline 44
00B6 ; TCCR1A=0X50;//T/C1控制寄存器A
00B6 80E5 ldi R24,80
00B8 8FBD out 0x2f,R24
00BA .dbline 45
00BA ; TCCR1B=0X0A;//T/C1控制寄存器B
00BA 8AE0 ldi R24,10
00BC 8EBD out 0x2e,R24
00BE .dbline 46
00BE ; TCNT1=0;//计数寄存器
00BE 2224 clr R2
00C0 3324 clr R3
00C2 3DBC out 0x2d,R3
00C4 2CBC out 0x2c,R2
00C6 .dbline 47
00C6 ; OCR1A=999;//比较寄存器
00C6 87EE ldi R24,999
00C8 93E0 ldi R25,3
00CA 9BBD out 0x2b,R25
00CC 8ABD out 0x2a,R24
00CE .dbline 48
00CE ; TIMSK|=BIT(2);//T/C1中断屏蔽寄存器
00CE 89B7 in R24,0x39
00D0 8460 ori R24,4
00D2 89BF out 0x39,R24
00D4 .dbline 49
00D4 ; TIFR|=BIT(4);//T/C中断标志寄存器
00D4 88B7 in R24,0x38
00D6 8061 ori R24,16
00D8 88BF out 0x38,R24
00DA .dbline 50
00DA ; TIFR|=BIT(3);//T/C中断标志寄存器
00DA 88B7 in R24,0x38
00DC 8860 ori R24,8
00DE 88BF out 0x38,R24
00E0 .dbline 51
00E0 ; SREG|=BIT(7);//总中断
00E0 7894 bset 7
00E2 0EC0 xjmp L16
00E4 L15:
00E4 .dbline 54
00E4 ;
00E4 ; while(1)
00E4 ; {
00E4 .dbline 55
00E4 ; show(num/10,1);
00E4 21E0 ldi R18,1
00E6 1AE0 ldi R17,10
00E8 00910000 lds R16,_num
00EC 0E940000 xcall div8u
00F0 9CDF xcall _show
00F2 .dbline 56
00F2 ; show(num%10,0);
00F2 2227 clr R18
00F4 1AE0 ldi R17,10
00F6 00910000 lds R16,_num
00FA 0E940000 xcall mod8u
00FE 95DF xcall _show
0100 .dbline 57
0100 ; }
0100 L16:
0100 .dbline 53
0100 F1CF xjmp L15
0102 X3:
0102 .dbline -2
0102 L14:
0102 .dbline 0 ; func end
0102 0895 ret
0104 .dbend
0104 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -