📄 mian1.lis
字号:
.module mian1.c
.area text(rom, con, rel)
0000 .dbfile mian1.c
.area data(ram, con, rel)
0000 .dbfile mian1.c
0000 _Table::
0000 .blkb 2
.area idata
0000 C0F9 .byte 192,249
.area data(ram, con, rel)
0002 .dbfile mian1.c
0002 .blkb 2
.area idata
0002 A4B0 .byte 164,176
.area data(ram, con, rel)
0004 .dbfile mian1.c
0004 .blkb 2
.area idata
0004 9992 .byte 153,146
.area data(ram, con, rel)
0006 .dbfile mian1.c
0006 .blkb 2
.area idata
0006 82F8 .byte 130,248
.area data(ram, con, rel)
0008 .dbfile mian1.c
0008 .blkb 2
.area idata
0008 8090 .byte 128,144
.area data(ram, con, rel)
000A .dbfile mian1.c
000A .blkb 2
.area idata
000A 8883 .byte 136,131
.area data(ram, con, rel)
000C .dbfile mian1.c
000C .blkb 2
.area idata
000C C6A1 .byte 198,161
.area data(ram, con, rel)
000E .dbfile mian1.c
000E .blkb 2
.area idata
000E 868E .byte 134,142
.area data(ram, con, rel)
0010 .dbfile mian1.c
0010 .blkb 2
.area idata
0010 CFBF .byte 207,191
.area data(ram, con, rel)
0012 .dbfile mian1.c
0012 .blkb 2
.area idata
0012 E387 .byte 227,135
.area data(ram, con, rel)
0014 .dbfile mian1.c
0014 .blkb 2
.area idata
0014 A3AB .byte 163,171
.area data(ram, con, rel)
0016 .dbfile mian1.c
0016 .blkb 2
.area idata
0016 89C7 .byte 137,199
.area data(ram, con, rel)
0018 .dbfile mian1.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:\工作项目\手操器\mian1.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 command;
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 = 0x3C;
000C 8CE3 ldi R24,60
000E 84BB out 0x14,R24
0010 .dbline 18
0010 ; PORTD = 0xFF;
0010 8FEF ldi R24,255
0012 82BB out 0x12,R24
0014 .dbline 19
0014 ; DDRD = 0xFF;
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:\工作项目\手操器\mian1.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 80910B00 lds R24,_discount
0040 8F5F subi R24,255 ; addi 1
0042 80930B00 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 20920B00 sts _discount,R2
0050 L6:
0050 .dbline 44
0050 ; PORTD =0xFF;
0050 8FEF ldi R24,255
0052 82BB out 0x12,R24
0054 .dbline 45
0054 ; for(i=0;i<8;i++)
0054 0027 clr R16
0056 0EC0 rjmp L11
0058 L8:
0058 .dbline 46
0058 ; {
0058 .dbline 47
0058 ; if(i==discount)
0058 20900B00 lds R2,_discount
005C 0215 cp R16,R2
005E 11F4 brne L12
0060 X1:
0060 .dbline 48
0060 ; set_IO();
0060 AD9A sbi 0x15,5
0062 03C0 rjmp L13
0064 L12:
0064 .dbline 50
0064 ; else
0064 ; clr_IO();
0064 85B3 in R24,0x15
0066 8F7D andi R24,223
0068 85BB out 0x15,R24
006A L13:
006A .dbline 51
006A ; clr_sck();
006A 85B3 in R24,0x15
006C 8F7E andi R24,239
006E 85BB out 0x15,R24
0070 .dbline 52
0070 ; set_sck();
0070 AC9A sbi 0x15,4
0072 .dbline 53
0072 ; }
0072 L9:
0072 .dbline 45
0072 0395 inc R16
0074 L11:
0074 .dbline 45
0074 0830 cpi R16,8
0076 80F3 brlo L8
0078 X2:
0078 .dbline 55
0078 ;
0078 ; PORTD = disbuff[discount] ;
0078 80E0 ldi R24,<_disbuff
007A 90E0 ldi R25,>_disbuff
007C E0910B00 lds R30,_discount
0080 FF27 clr R31
0082 E80F add R30,R24
0084 F91F adc R31,R25
0086 2080 ldd R2,z+0
0088 22BA out 0x12,R2
008A .dbline -2
008A L5:
008A .dbline 0 ; func end
008A 2990 ld R2,y+
008C 2FBE OUT 63,R2
008E F991 ld R31,y+
0090 E991 ld R30,y+
0092 9991 ld R25,y+
0094 8991 ld R24,y+
0096 0991 ld R16,y+
0098 2990 ld R2,y+
009A 1895 reti
009C .dbsym r i 16 c
009C .dbend
009C .dbfunc e timer1_init _timer1_init fV
.even
009C _timer1_init::
009C .dbline -1
009C .dbline 66
009C ;
009C ;
009C ; }
009C ; //-------------------------------------------------------------
009C ;
009C ; //TIMER1 initialize - prescale:1
009C ; // WGM: 14) PWM fast, TOP=ICRn
009C ; // desired value: 1mSec
009C ; // actual value: 1.000mSec (0.0%)
009C ; void timer1_init(void)
009C ; {
009C .dbline 67
009C ; TCCR1B = 0x00; //stop
009C 2224 clr R2
009E 2EBC out 0x2e,R2
00A0 .dbline 68
00A0 ; TCNT1 = 0xE0C1; //setup
00A0 81EC ldi R24,57537
00A2 90EE ldi R25,224
00A4 9DBD out 0x2d,R25
00A6 8CBD out 0x2c,R24
00A8 .dbline 69
00A8 ; OCR1A = 0x3E7F;
00A8 8FE7 ldi R24,15999
00AA 9EE3 ldi R25,62
00AC 9BBD out 0x2b,R25
00AE 8ABD out 0x2a,R24
00B0 .dbline 70
00B0 ; OCR1B = 0x1F3F;
00B0 8FE3 ldi R24,7999
00B2 9FE1 ldi R25,31
00B4 99BD out 0x29,R25
00B6 88BD out 0x28,R24
00B8 .dbline 71
00B8 ; ICR1 = 0x3E7F;
00B8 8FE7 ldi R24,15999
00BA 9EE3 ldi R25,62
00BC 97BD out 0x27,R25
00BE 86BD out 0x26,R24
00C0 .dbline 72
00C0 ; TCCR1A = 0x22;
00C0 82E2 ldi R24,34
00C2 8FBD out 0x2f,R24
00C4 .dbline 73
00C4 ; TCCR1B = 0x19; //start Timer
00C4 89E1 ldi R24,25
00C6 8EBD out 0x2e,R24
00C8 .dbline -2
00C8 L14:
00C8 .dbline 0 ; func end
00C8 0895 ret
00CA .dbend
00CA .dbfunc e uart0_init _uart0_init fV
.even
00CA _uart0_init::
00CA .dbline -1
00CA .dbline 81
00CA ; }
00CA ; //-------------------------------------------------------------
00CA ;
00CA ; //UART0 initialize
00CA ; // desired baud rate: 9600
00CA ; // actual: baud rate:9615 (0.2%)
00CA ; void uart0_init(void)
00CA ; {
00CA .dbline 82
00CA ; UCSRB = 0x00; //disable while setting baud rate
00CA 2224 clr R2
00CC 2AB8 out 0xa,R2
00CE .dbline 83
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -