📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _countnum::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\SPI\source\main.c
0002 .dbsym e countnum _countnum i
.area text(rom, con, rel)
0000 .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\SPI\source\main.c
0000 .dbfunc e timer1_init _timer1_init fV
.even
0000 _timer1_init::
0000 .dbline -1
0000 .dbline 14
0000 ; /************************************************
0000 ; 文件:main.c
0000 ; 用途:
0000 ; 注意:内部8M晶振
0000 ; 创建:2008.4.1
0000 ; 修改:2008.4.1
0000 ; Copy Right (c) www.avrvi.com AVR与虚拟仪器
0000 ; ************************************************/
0000 ;
0000 ; #include "config.h"
0000 ; volatile unsigned int countnum=0;
0000 ;
0000 ; void timer1_init(void)
0000 ; {
0000 .dbline 15
0000 ; TCCR1B = 0x00; //stop
0000 2224 clr R2
0002 2EBC out 0x2e,R2
0004 .dbline 16
0004 ; TCNT1H = 0x8F; //setup
0004 8FE8 ldi R24,143
0006 8DBD out 0x2d,R24
0008 .dbline 17
0008 ; TCNT1L = 0x81;
0008 81E8 ldi R24,129
000A 8CBD out 0x2c,R24
000C .dbline 18
000C ; OCR1AH = 0x70;
000C 80E7 ldi R24,112
000E 8BBD out 0x2b,R24
0010 .dbline 19
0010 ; OCR1AL = 0x7F;
0010 8FE7 ldi R24,127
0012 8ABD out 0x2a,R24
0014 .dbline 20
0014 ; OCR1BH = 0x70;
0014 80E7 ldi R24,112
0016 89BD out 0x29,R24
0018 .dbline 21
0018 ; OCR1BL = 0x7F;
0018 8FE7 ldi R24,127
001A 88BD out 0x28,R24
001C .dbline 22
001C ; OCR1CH = 0x70;
001C 80E7 ldi R24,112
001E 80937900 sts 121,R24
0022 .dbline 23
0022 ; OCR1CL = 0x7F;
0022 8FE7 ldi R24,127
0024 80937800 sts 120,R24
0028 .dbline 24
0028 ; ICR1H = 0x70;
0028 80E7 ldi R24,112
002A 87BD out 0x27,R24
002C .dbline 25
002C ; ICR1L = 0x7F;
002C 8FE7 ldi R24,127
002E 86BD out 0x26,R24
0030 .dbline 26
0030 ; TCCR1A = 0x00;
0030 2FBC out 0x2f,R2
0032 .dbline 27
0032 ; TCCR1B = 0x04; //start Timer
0032 84E0 ldi R24,4
0034 8EBD out 0x2e,R24
0036 .dbline -2
0036 L1:
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbend
.area vector(rom, abs)
.org 56
0038 0C941C00 jmp _timer1_ovf_isr
.area text(rom, con, rel)
0038 .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\SPI\source\main.c
0038 .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
0038 _timer1_ovf_isr::
0038 2A92 st -y,R2
003A 3A92 st -y,R3
003C 8A93 st -y,R24
003E 9A93 st -y,R25
0040 2FB6 in R2,0x3f
0042 2A92 st -y,R2
0044 .dbline -1
0044 .dbline 32
0044 .dbline 33
0044 8FE8 ldi R24,143
0046 8DBD out 0x2d,R24
0048 .dbline 34
0048 81E8 ldi R24,129
004A 8CBD out 0x2c,R24
004C .dbline 35
004C 80910000 lds R24,_countnum
0050 90910100 lds R25,_countnum+1
0054 0196 adiw R24,1
0056 90930100 sts _countnum+1,R25
005A 80930000 sts _countnum,R24
005E .dbline 36
005E 8FE0 ldi R24,9999
0060 97E2 ldi R25,39
0062 20900000 lds R2,_countnum
0066 30900100 lds R3,_countnum+1
006A 8215 cp R24,R2
006C 9305 cpc R25,R3
006E 30F4 brsh L3
0070 .dbline 36
0070 2224 clr R2
0072 3324 clr R3
0074 30920100 sts _countnum+1,R3
0078 20920000 sts _countnum,R2
007C L3:
007C .dbline -2
007C L2:
007C 2990 ld R2,y+
007E 2FBE out 0x3f,R2
0080 9991 ld R25,y+
0082 8991 ld R24,y+
0084 3990 ld R3,y+
0086 2990 ld R2,y+
0088 .dbline 0 ; func end
0088 1895 reti
008A .dbend
008A .dbfunc e init_devices _init_devices fV
.even
008A _init_devices::
008A .dbline -1
008A .dbline 40
008A ; }
008A ;
008A ; #pragma interrupt_handler timer1_ovf_isr:15
008A ; void timer1_ovf_isr(void)
008A ; {
008A ; TCNT1H = 0x8F; //reload counter high value
008A ; TCNT1L = 0x81; //reload counter low value
008A ; countnum++;
008A ; if(countnum>9999) countnum=0;
008A ; }
008A ;
008A ; void init_devices(void)
008A ; {
008A .dbline 41
008A ; CLI(); //disable all interrupts
008A F894 cli
008C .dbline 42
008C ; timer1_init();
008C B9DF xcall _timer1_init
008E .dbline 43
008E ; TIMSK = 0x04; //timer interrupt sources
008E 84E0 ldi R24,4
0090 87BF out 0x37,R24
0092 .dbline 44
0092 ; SEI(); //re-enable interrupts
0092 7894 sei
0094 .dbline -2
0094 L5:
0094 .dbline 0 ; func end
0094 0895 ret
0096 .dbend
0096 .dbfunc e main _main fV
.even
0096 _main::
0096 .dbline -1
0096 .dbline 48
0096 ; }
0096 ;
0096 ; void main(void)
0096 ; {
0096 .dbline 49
0096 ; init_devices();
0096 F9DF xcall _init_devices
0098 .dbline 50
0098 ; HC_595_init();
0098 0E940000 xcall _HC_595_init
009C 06C0 xjmp L8
009E L7:
009E .dbline 52
009E .dbline 53
009E 00910000 lds R16,_countnum
00A2 10910100 lds R17,_countnum+1
00A6 0E940000 xcall _Seg7_Led_display
00AA .dbline 55
00AA L8:
00AA .dbline 51
00AA F9CF xjmp L7
00AC X0:
00AC .dbline -2
00AC L6:
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -