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

📄 main.lis

📁 手操器
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\..\..\DOCUME~1\Administrator\桌面\手操器\main.c
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\main.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 16
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include "TypeDef.h"
 0000           ; 
 0000           ; unsigned int  CurrentOut;
 0000           ; unsigned char TaskState[MAX_TASK_NUM];//  用于任务调度            4个 
 0000           ; unsigned char LedBit;
 0000           ; unsigned char  DisBuffer[8];
 0000           ; unsigned char  SysP5msTimer;
 0000           ; unsigned char disp_flag;
 0000           ; extern void TaskInit(void); 
 0000           ; extern void TaskRun(void);
 0000           ; 
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 17
 0000           ;  PORTA = 0x00;
 0000 2224              clr R2
 0002 2BBA              out 0x1b,R2
 0004                   .dbline 18
 0004           ;  DDRA  = 0x00;
 0004 2ABA              out 0x1a,R2
 0006                   .dbline 19
 0006           ;  PORTB = 0x00;
 0006 28BA              out 0x18,R2
 0008                   .dbline 20
 0008           ;  DDRB  = 0xFF;
 0008 8FEF              ldi R24,255
 000A 87BB              out 0x17,R24
 000C                   .dbline 21
 000C           ;  PORTC = 0xFF; //m103 output only
 000C 85BB              out 0x15,R24
 000E                   .dbline 22
 000E           ;  DDRC  = 0xFF;
 000E 84BB              out 0x14,R24
 0010                   .dbline 23
 0010           ;  PORTD = 0x1F;
 0010 8FE1              ldi R24,31
 0012 82BB              out 0x12,R24
 0014                   .dbline 24
 0014           ;  DDRD  = 0x10;
 0014 80E1              ldi R24,16
 0016 81BB              out 0x11,R24
 0018                   .dbline -2
 0018           L5:
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbend
 001A                   .dbfunc e adc_init _adc_init fV
                        .even
 001A           _adc_init::
 001A                   .dbline -1
 001A                   .dbline 33
 001A           ; }
 001A           ; 
 001A           ; 
 001A           ; 
 001A           ; 
 001A           ; //ADC initialize
 001A           ; // Conversion time: 6uS
 001A           ; void adc_init(void)
 001A           ; {
 001A                   .dbline 34
 001A           ;  ADCSR = 0x00; //disable adc
 001A 2224              clr R2
 001C 26B8              out 0x6,R2
 001E                   .dbline 35
 001E           ;  ADMUX = 0xc0; //select adc input 0
 001E 80EC              ldi R24,192
 0020 87B9              out 0x7,R24
 0022                   .dbline 36
 0022           ;  ACSR  = 0x80;
 0022 80E8              ldi R24,128
 0024 88B9              out 0x8,R24
 0026                   .dbline 37
 0026           ;  ADCSR = 0x81;
 0026 81E8              ldi R24,129
 0028 86B9              out 0x6,R24
 002A                   .dbline -2
 002A           L6:
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbend
 002C                   .dbfunc e watchdog_init _watchdog_init fV
                        .even
 002C           _watchdog_init::
 002C                   .dbline -1
 002C                   .dbline 44
 002C           ; }
 002C           ; 
 002C           ; 
 002C           ; //Watchdog initialize
 002C           ; // prescale: 2048K
 002C           ; void watchdog_init(void)
 002C           ; {
 002C                   .dbline 45
 002C           ;  WDR (); //this prevents a timeout on enabling
 002C A895              wdr
 002E                   .dbline 46
 002E           ;  WDTCR |=  (1<<WDE);/* 30-Oct-2006 Umesh*/  
 002E 81B5              in R24,0x21
 0030 8860              ori R24,8
 0032 81BD              out 0x21,R24
 0034                   .dbline 47
 0034           ;  WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
 0034 8FE0              ldi R24,15
 0036 81BD              out 0x21,R24
 0038                   .dbline -2
 0038           L7:
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbend
 003A                   .dbfunc e timer0_init _timer0_init fV
                        .even
 003A           _timer0_init::
 003A                   .dbline -1
 003A                   .dbline 54
 003A           ; }
 003A           ; 
 003A           ; //TIMER0 initialize - prescale:64
 003A           ; // desired value: 1mSec
 003A           ; // actual value:  0.992mSec (0.8%)
 003A           ; void timer0_init(void)
 003A           ; {
 003A                   .dbline 55
 003A           ;  TCCR0 = 0x00; //stop
 003A 2224              clr R2
 003C 23BE              out 0x33,R2
 003E                   .dbline 56
 003E           ;  TCNT0 = 0x83; //set count
 003E 83E8              ldi R24,131
 0040 82BF              out 0x32,R24
 0042                   .dbline 57
 0042           ;  TCCR0 = 0x03; //start timer
 0042 83E0              ldi R24,3
 0044 83BF              out 0x33,R24
 0046                   .dbline -2
 0046           L8:
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C942400          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 0048                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\main.c
 0048                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 0048           _timer0_ovf_isr::
 0048 2A92              st -y,R2
 004A 0A93              st -y,R16
 004C 1A93              st -y,R17
 004E 8A93              st -y,R24
 0050 9A93              st -y,R25
 0052 EA93              st -y,R30
 0054 FA93              st -y,R31
 0056 2FB6              IN R2,63
 0058 2A92              st -y,R2
 005A                   .dbline -1
 005A                   .dbline 62
 005A           ; }
 005A           ; 
 005A           ; #pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
 005A           ; void timer0_ovf_isr(void)
 005A           ; {  
 005A                   .dbline 65
 005A           ; 
 005A           ; 
 005A           ;       if(LedBit >= LED_MAX_NUM)
 005A 80910A00          lds R24,_LedBit
 005E 8830              cpi R24,8
 0060 18F0              brlo L10
 0062           X0:
 0062                   .dbline 66
 0062           ;          LedBit=0;
 0062 2224              clr R2
 0064 20920A00          sts _LedBit,R2
 0068           L10:
 0068                   .dbline 67
 0068           ;       if(disp_flag) 
 0068 20900000          lds R2,_disp_flag
 006C 2220              tst R2
 006E 91F0              breq L12
 0070           X1:
 0070                   .dbline 68
 0070           ;       {  
 0070                   .dbline 69
 0070           ;       LED_CONTROL = ~(0x01<<LedBit);
 0070 10910A00          lds R17,_LedBit
 0074 01E0              ldi R16,1
 0076 0E940000          xcall lsl8
 007A 202E              mov R2,R16
 007C 2094              com R2
 007E 28BA              out 0x18,R2
 0080                   .dbline 70
 0080           ;     LED_DATA    = DisBuffer[LedBit]; 
 0080 80E0              ldi R24,<_DisBuffer
 0082 90E0              ldi R25,>_DisBuffer
 0084 E0910A00          lds R30,_LedBit
 0088 FF27              clr R31
 008A E80F              add R30,R24
 008C F91F              adc R31,R25
 008E 2080              ldd R2,z+0
 0090 25BA              out 0x15,R2
 0092                   .dbline 71
 0092           ;       } 
 0092 03C0              xjmp L13
 0094           L12:
 0094                   .dbline 73
 0094           ;       else 
 0094           ;       {
 0094                   .dbline 74
 0094           ;       LED_CONTROL = 0x00;
 0094 2224              clr R2
 0096 28BA              out 0x18,R2
 0098                   .dbline 75
 0098           ;       LED_DATA    = 0x00;
 0098 25BA              out 0x15,R2
 009A                   .dbline 76
 009A           ;       }
 009A           L13:
 009A                   .dbline 77
 009A           ;       LedBit++;
 009A 80910A00          lds R24,_LedBit
 009E 8F5F              subi R24,255    ; addi 1
 00A0 80930A00          sts _LedBit,R24
 00A4                   .dbline 81
 00A4           ;   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -