📄 定时器0.lis
字号:
.module _定时器0.c
.area text(rom, con, rel)
0000 .dbfile 定时器0.c
.area data(ram, con, rel)
0000 .dbfile 定时器0.c
0000 _num::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile 定时器0.c
0001 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0001 .dbsym e num _num c
.area vector(rom, abs)
.org 32
0020 0C942F00 jmp _miao
.area data(ram, con, rel)
0001 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0001 _table::
0001 .blkb 2
.area idata
0001 3F06 .byte 63,6
.area data(ram, con, rel)
0003 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0003 .blkb 2
.area idata
0003 5B4F .byte 91,'O
.area data(ram, con, rel)
0005 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0005 .blkb 2
.area idata
0005 666D .byte 'f,'m
.area data(ram, con, rel)
0007 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0007 .blkb 2
.area idata
0007 7D07 .byte 125,7
.area data(ram, con, rel)
0009 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0009 .blkb 2
.area idata
0009 7F6F .byte 127,'o
.area data(ram, con, rel)
000B .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
000B .blkb 2
.area idata
000B 777C .byte 'w,124
.area data(ram, con, rel)
000D .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
000D .blkb 2
.area idata
000D 395E .byte 57,94
.area data(ram, con, rel)
000F .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
000F .blkb 2
.area idata
000F 7971 .byte 'y,'q
.area data(ram, con, rel)
0011 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0011 .dbsym e table _table A[16:16]c
0011 _LED_W::
0011 .blkb 2
.area idata
0011 0001 .byte 0,1
.area data(ram, con, rel)
0013 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0013 .blkb 2
.area idata
0013 0203 .byte 2,3
.area data(ram, con, rel)
0015 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0015 .blkb 2
.area idata
0015 0405 .byte 4,5
.area data(ram, con, rel)
0017 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0017 .blkb 2
.area idata
0017 0607 .byte 6,7
.area data(ram, con, rel)
0019 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.c
0019 .dbsym e LED_W _LED_W A[8:8]c
.area text(rom, con, rel)
0000 .dbfile E:\AVR自编程序\11实验板\8定时器0\定时器0.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:9
0004 ;
0004 ; uchar const table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
0004 ; 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
0004 ; uchar const LED_W[8] = {0,1,2,3,4,5,6,7};
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 23
0032 ;
0032 ;
0032 ; PORTA = table[j]; // i 值的 个位数
0032 80E0 ldi R24,<_table
0034 90E0 ldi R25,>_table
0036 EC2D mov R30,R12
0038 FF27 clr R31
003A E80F add R30,R24
003C F91F adc R31,R25
003E 2080 ldd R2,z+0
0040 2BBA out 0x1b,R2
0042 .dbline 24
0042 ; PORTC = LED_W[k]; //点亮第一位数码管
0042 80E0 ldi R24,<_LED_W
0044 90E0 ldi R25,>_LED_W
0046 EA2D mov R30,R10
0048 FF27 clr R31
004A E80F add R30,R24
004C F91F adc R31,R25
004E 2080 ldd R2,z+0
0050 25BA out 0x15,R2
0052 .dbline 26
0052 ;
0052 ; delay(2);
0052 02E0 ldi R16,2
0054 10E0 ldi R17,0
0056 D4DF xcall _delay
0058 .dbline -2
0058 L10:
0058 .dbline 0 ; func end
0058 C990 ld R12,y+
005A A990 ld R10,y+
005C 0895 ret
005E .dbsym r k 10 c
005E .dbsym r j 12 c
005E .dbend
005E .dbfunc e miao _miao fV
.even
005E _miao::
005E 2A92 st -y,R2
0060 8A93 st -y,R24
0062 9A93 st -y,R25
0064 2FB6 IN R2,63
0066 2A92 st -y,R2
0068 .dbline -1
0068 .dbline 38
0068 ;
0068 ; /*j++;
0068 ; i++;
0068 ; if(j == 8) //利用 j 值的变化,来控制数码管数值变化间隔的时间
0068 ; {
0068 ; j = 0;
0068 ; i = 0;
0068 ; }*/
0068 ;
0068 ; }
0068 ; void miao()
0068 ; {
0068 .dbline 39
0068 ; if(num==60)
0068 80910000 lds R24,_num
006C 8C33 cpi R24,60
006E 19F4 brne L12
0070 X2:
0070 .dbline 40
0070 ; num=0;
0070 2224 clr R2
0072 20920000 sts _num,R2
0076 L12:
0076 .dbline 41
0076 ; num++;
0076 80910000 lds R24,_num
007A 8F5F subi R24,255 ; addi 1
007C 80930000 sts _num,R24
0080 .dbline 42
0080 ; TCNT1H=0X85;
0080 85E8 ldi R24,133
0082 8DBD out 0x2d,R24
0084 .dbline 43
0084 ; TCNT1L=0XED;
0084 8DEE ldi R24,237
0086 8CBD out 0x2c,R24
0088 .dbline -2
0088 L11:
0088 .dbline 0 ; func end
0088 2990 ld R2,y+
008A 2FBE OUT 63,R2
008C 9991 ld R25,y+
008E 8991 ld R24,y+
0090 2990 ld R2,y+
0092 1895 reti
0094 .dbend
0094 .dbfunc e main _main fV
.even
0094 _main::
0094 .dbline -1
0094 .dbline 46
0094 ; }
0094 ; void main()
0094 ; {
0094 .dbline 47
0094 ; DDRA=0xff;
0094 8FEF ldi R24,255
0096 8ABB out 0x1a,R24
0098 .dbline 48
0098 ; DDRC=0XFF;
0098 84BB out 0x14,R24
009A .dbline 50
009A ;
009A ; TCCR1B=0X04;
009A 84E0 ldi R24,4
009C 8EBD out 0x2e,R24
009E .dbline 51
009E ; TCNT1H=0X85;
009E 85E8 ldi R24,133
00A0 8DBD out 0x2d,R24
00A2 .dbline 52
00A2 ; TCNT1L=0XED;
00A2 8DEE ldi R24,237
00A4 8CBD out 0x2c,R24
00A6 .dbline 53
00A6 ; TIMSK|=BIT(2);
00A6 89B7 in R24,0x39
00A8 8460 ori R24,4
00AA 89BF out 0x39,R24
00AC .dbline 54
00AC ; SREG|=BIT(7);
00AC 7894 bset 7
00AE 0EC0 xjmp L16
00B0 L15:
00B0 .dbline 57
00B0 ;
00B0 ; while(1)
00B0 ; {
00B0 .dbline 58
00B0 ; show(num/10,1);
00B0 21E0 ldi R18,1
00B2 1AE0 ldi R17,10
00B4 00910000 lds R16,_num
00B8 0E940000 xcall div8u
00BC B6DF xcall _show
00BE .dbline 59
00BE ; show(num%10,0);
00BE 2227 clr R18
00C0 1AE0 ldi R17,10
00C2 00910000 lds R16,_num
00C6 0E940000 xcall mod8u
00CA AFDF xcall _show
00CC .dbline 60
00CC ; }
00CC L16:
00CC .dbline 56
00CC F1CF xjmp L15
00CE X3:
00CE .dbline -2
00CE L14:
00CE .dbline 0 ; func end
00CE 0895 ret
00D0 .dbend
00D0 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -