📄 mian.lis
字号:
.module mian.c
.area text(rom, con, rel)
0000 .dbfile mian.c
.area data(ram, con, rel)
0000 .dbfile mian.c
0000 _Table::
0000 .blkb 2
.area idata
0000 C0F9 .byte 192,249
.area data(ram, con, rel)
0002 .dbfile mian.c
0002 .blkb 2
.area idata
0002 A4B0 .byte 164,176
.area data(ram, con, rel)
0004 .dbfile mian.c
0004 .blkb 2
.area idata
0004 9992 .byte 153,146
.area data(ram, con, rel)
0006 .dbfile mian.c
0006 .blkb 2
.area idata
0006 82F8 .byte 130,248
.area data(ram, con, rel)
0008 .dbfile mian.c
0008 .blkb 2
.area idata
0008 8090 .byte 128,144
.area data(ram, con, rel)
000A .dbfile mian.c
000A .blkb 2
.area idata
000A 8883 .byte 136,131
.area data(ram, con, rel)
000C .dbfile mian.c
000C .blkb 2
.area idata
000C C6A1 .byte 198,161
.area data(ram, con, rel)
000E .dbfile mian.c
000E .blkb 2
.area idata
000E 868E .byte 134,142
.area data(ram, con, rel)
0010 .dbfile mian.c
0010 .blkb 2
.area idata
0010 CFBF .byte 207,191
.area data(ram, con, rel)
0012 .dbfile mian.c
0012 .blkb 2
.area idata
0012 E387 .byte 227,135
.area data(ram, con, rel)
0014 .dbfile mian.c
0014 .blkb 2
.area idata
0014 A3AB .byte 163,171
.area data(ram, con, rel)
0016 .dbfile mian.c
0016 .blkb 2
.area idata
0016 89C7 .byte 137,199
.area data(ram, con, rel)
0018 .dbfile mian.c
0018 .dbfile E:\工作项目\手操器\mian.h
0018 .dbsym e Table _Table A[24:24]c
.area text(rom, con, rel)
0000 .dbfile E:\工作项目\手操器\mian.h
0000 .dbfile E:\工作项目\手操器\mian.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 13
0000 ; //ICC-AVR application builder : 2011-12-16 21:55:54
0000 ; // Target : M8
0000 ; // Crystal: 1.0000Mhz
0000 ; //ICC-AVR application builder : 2011-12-18 18:42:31
0000 ; // Target : M8
0000 ; // Crystal: 4.0000Mhz
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ; #include "mian.h"
0000 ; u8 keypress;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 14
0000 ; PORTB = 0x3F;
0000 8FE3 ldi R24,63
0002 88BB out 0x18,R24
0004 .dbline 15
0004 ; DDRB = 0x2E;
0004 8EE2 ldi R24,46
0006 87BB out 0x17,R24
0008 .dbline 16
0008 ; PORTC = 0x3F; //m103 output only
0008 8FE3 ldi R24,63
000A 85BB out 0x15,R24
000C .dbline 17
000C ; DDRC = 0x3F;
000C 84BB out 0x14,R24
000E .dbline 18
000E ; PORTD = 0xFF;
000E 8FEF ldi R24,255
0010 82BB out 0x12,R24
0012 .dbline 19
0012 ; DDRD = 0xFC;
0012 8CEF ldi R24,252
0014 81BB out 0x11,R24
0016 .dbline -2
0016 L3:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e timer0_init _timer0_init fV
.even
0018 _timer0_init::
0018 .dbline -1
0018 .dbline 28
0018 ; }
0018 ;
0018 ; //-------------------------------------------------------------
0018 ;
0018 ; //TIMER0 initialize - prescale:256
0018 ; // desired value: 2mSec
0018 ; // actual value: 1.984mSec (0.8%)
0018 ; void timer0_init(void)
0018 ; {
0018 .dbline 29
0018 ; TCCR0 = 0x00; //stop
0018 2224 clr R2
001A 23BE out 0x33,R2
001C .dbline 30
001C ; TCNT0 = 0xE1; //set count
001C 81EE ldi R24,225
001E 82BF out 0x32,R24
0020 .dbline 31
0020 ; TCCR0 = 0x04; //start timer
0020 84E0 ldi R24,4
0022 83BF out 0x33,R24
0024 .dbline -2
0024 L4:
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbend
.area vector(rom, abs)
.org 18
0012 13C0 rjmp _timer0_ovf_isr
.area text(rom, con, rel)
0026 .dbfile E:\工作项目\手操器\mian.c
0026 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
0026 ; i -> R16
.even
0026 _timer0_ovf_isr::
0026 2A92 st -y,R2
0028 0A93 st -y,R16
002A 8A93 st -y,R24
002C 9A93 st -y,R25
002E EA93 st -y,R30
0030 FA93 st -y,R31
0032 2FB6 IN R2,63
0034 2A92 st -y,R2
0036 .dbline -1
0036 .dbline 37
0036 ; }
0036 ; //-------------------------------------------------------------
0036 ;
0036 ; #pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
0036 ; void timer0_ovf_isr(void)
0036 ; {
0036 .dbline 38
0036 ; u8 i=0;
0036 0027 clr R16
0038 .dbline 40
0038 ;
0038 ; TCNT0 = 0xE1; //reload counter value
0038 81EE ldi R24,225
003A 82BF out 0x32,R24
003C .dbline 41
003C ; discount++;
003C 80911100 lds R24,_discount
0040 8F5F subi R24,255 ; addi 1
0042 80931100 sts _discount,R24
0046 .dbline 42
0046 ; if(discount>=8)
0046 8830 cpi R24,8
0048 18F0 brlo L6
004A X0:
004A .dbline 43
004A ; discount=0;
004A 2224 clr R2
004C 20921100 sts _discount,R2
0050 L6:
0050 .dbline 45
0050 ;
0050 ; PORTD |= 0xf0;
0050 82B3 in R24,0x12
0052 806F ori R24,240
0054 82BB out 0x12,R24
0056 .dbline 46
0056 ; PORTC |= 0x0f;
0056 85B3 in R24,0x15
0058 8F60 ori R24,15
005A 85BB out 0x15,R24
005C .dbline 48
005C ;
005C ; for(i=0;i<8;i++)
005C 0027 clr R16
005E 0EC0 rjmp L11
0060 L8:
0060 .dbline 49
0060 ; {
0060 .dbline 50
0060 ; if(i==discount)
0060 20901100 lds R2,_discount
0064 0215 cp R16,R2
0066 11F4 brne L12
0068 X1:
0068 .dbline 51
0068 ; set_IO();
0068 AD9A sbi 0x15,5
006A 03C0 rjmp L13
006C L12:
006C .dbline 53
006C ; else
006C ; clr_IO();
006C 85B3 in R24,0x15
006E 8F7D andi R24,223
0070 85BB out 0x15,R24
0072 L13:
0072 .dbline 54
0072 ; clr_sck();
0072 85B3 in R24,0x15
0074 8F7E andi R24,239
0076 85BB out 0x15,R24
0078 .dbline 55
0078 ; set_sck();
0078 AC9A sbi 0x15,4
007A .dbline 56
007A ; }
007A L9:
007A .dbline 48
007A 0395 inc R16
007C L11:
007C .dbline 48
007C 0830 cpi R16,8
007E 80F3 brlo L8
0080 X2:
0080 .dbline 58
0080 ;
0080 ; PORTD &= disbuff[discount]|0x0f ;
0080 80E0 ldi R24,<_disbuff
0082 90E0 ldi R25,>_disbuff
0084 E0911100 lds R30,_discount
0088 FF27 clr R31
008A E80F add R30,R24
008C F91F adc R31,R25
008E 8081 ldd R24,z+0
0090 8F60 ori R24,15
0092 22B2 in R2,0x12
0094 2822 and R2,R24
0096 22BA out 0x12,R2
0098 .dbline 59
0098 ; PORTC &= disbuff[discount]|0xf0;
0098 80E0 ldi R24,<_disbuff
009A 90E0 ldi R25,>_disbuff
009C E0911100 lds R30,_discount
00A0 FF27 clr R31
00A2 E80F add R30,R24
00A4 F91F adc R31,R25
00A6 8081 ldd R24,z+0
00A8 806F ori R24,240
00AA 25B2 in R2,0x15
00AC 2822 and R2,R24
00AE 25BA out 0x15,R2
00B0 .dbline -2
00B0 L5:
00B0 .dbline 0 ; func end
00B0 2990 ld R2,y+
00B2 2FBE OUT 63,R2
00B4 F991 ld R31,y+
00B6 E991 ld R30,y+
00B8 9991 ld R25,y+
00BA 8991 ld R24,y+
00BC 0991 ld R16,y+
00BE 2990 ld R2,y+
00C0 1895 reti
00C2 .dbsym r i 16 c
00C2 .dbend
00C2 .dbfunc e timer1_init _timer1_init fV
.even
00C2 _timer1_init::
00C2 .dbline -1
00C2 .dbline 69
00C2 ;
00C2 ; }
00C2 ; //-------------------------------------------------------------
00C2 ;
00C2 ; //TIMER1 initialize - prescale:1
00C2 ; // WGM: 14) PWM fast, TOP=ICRn
00C2 ; // desired value: 1mSec
00C2 ; // actual value: 1.000mSec (0.0%)
00C2 ; void timer1_init(void)
00C2 ; {
00C2 .dbline 70
00C2 ; TCCR1B = 0x00; //stop
00C2 2224 clr R2
00C4 2EBC out 0x2e,R2
00C6 .dbline 71
00C6 ; TCNT1 = 0xE0C1; //setup
00C6 81EC ldi R24,57537
00C8 90EE ldi R25,224
00CA 9DBD out 0x2d,R25
00CC 8CBD out 0x2c,R24
00CE .dbline 72
00CE ; OCR1A = 0x3E7F;
00CE 8FE7 ldi R24,15999
00D0 9EE3 ldi R25,62
00D2 9BBD out 0x2b,R25
00D4 8ABD out 0x2a,R24
00D6 .dbline 73
00D6 ; OCR1B = 0x1F3F;
00D6 8FE3 ldi R24,7999
00D8 9FE1 ldi R25,31
00DA 99BD out 0x29,R25
00DC 88BD out 0x28,R24
00DE .dbline 74
00DE ; ICR1 = 0x3E7F;
00DE 8FE7 ldi R24,15999
00E0 9EE3 ldi R25,62
00E2 97BD out 0x27,R25
00E4 86BD out 0x26,R24
00E6 .dbline 75
00E6 ; TCCR1A = 0x32;
00E6 82E3 ldi R24,50
00E8 8FBD out 0x2f,R24
00EA .dbline 76
00EA ; TCCR1B = 0x19; //start Timer
00EA 89E1 ldi R24,25
00EC 8EBD out 0x2e,R24
00EE .dbline -2
00EE L14:
00EE .dbline 0 ; func end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -