⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mian.lis

📁 手操器
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .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 + -