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

📄 main.lis

📁 前两年在一家模型公司开发的
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\TWINTI~1\main.c
 0000                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0000           _timer0_init::
 0000                   .dbline -1
 0000                   .dbline 48
 0000           ; /********************************************************************************/
 0000           ; //            
 0000           ; //            builder : 2007-04-10
 0000           ; //            Target  : ATMEAG 48V
 0000           ; //            Crystal : 内部 8.00 MHz
 0000           ; //
 0000           ; //            
 0000           ;               
 0000           ; /********************************************************************************/
 0000           ; 
 0000           ; #include      <iom48v.h>
 0000           ; #include      <macros.h>
 0000           ; 
 0000           ; #include      "eeprom.h"
 0000           ; #include      "time2.h"
 0000           ; #include      "adc.h"
 0000           ; 
 0000           ; 
 0000           ; #define               uchar           unsigned char
 0000           ; #define               uint            unsigned int
 0000           ; 
 0000           ; #define               SET_LED         PORTD |=  (1<<PB4)
 0000           ; #define               CLR_LED         PORTD &= ~(1<<PB4)
 0000           ; 
 0000           ; uchar e2rom[7];
 0000           ; 
 0000           ; uint  PE1,PE2;
 0000           ; 
 0000           ; uchar mode;
 0000           ; uchar rxd_flag;       // 油门接收OK标志
 0000           ; 
 0000           ; uchar PWM;
 0000           ; uint  Timer;
 0000           ; uint  high,middle,low;
 0000           ; uchar REV;
 0000           ; uchar power;
 0000           ; uchar heat;
 0000           ; union 
 0000           ; {     uint    temp;
 0000           ;       uchar   data[2];                
 0000           ; }time;
 0000           ; 
 0000           ; 
 0000           ; /*---------------------------------------------------------------
 0000           ;                       初始化
 0000           ; ----------------------------------------------------------------*/
 0000           ; void timer0_init(void)
 0000           ; {
 0000                   .dbline 49
 0000           ;       TCCR0B = 0x00; //stop
 0000 2224              clr R2
 0002 25BC              out 0x25,R2
 0004                   .dbline 50
 0004           ;       TCNT0  = 0x01; //set count
 0004 81E0              ldi R24,1
 0006 86BD              out 0x26,R24
 0008                   .dbline 51
 0008           ;       TCCR0A = 0x23; 
 0008 83E2              ldi R24,35
 000A 84BD              out 0x24,R24
 000C                   .dbline 52
 000C           ;       OCR0B  = 0xA5;
 000C 85EA              ldi R24,165
 000E 88BD              out 0x28,R24
 0010                   .dbline 53
 0010           ;       TCCR0B = 0x01; //start timer
 0010 81E0              ldi R24,1
 0012 85BD              out 0x25,R24
 0014                   .dbline -2
 0014           L2:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
 0016                   .dbfunc e timer1_init _timer1_init fV
                        .even
 0016           _timer1_init::
 0016                   .dbline -1
 0016                   .dbline 59
 0016           ; }
 0016           ; 
 0016           ; 
 0016           ; 
 0016           ; void timer1_init(void)                // 20MS 中断
 0016           ; {
 0016                   .dbline 60
 0016           ;       TCCR1B = 0x00;  // stop
 0016 2224              clr R2
 0018 20928100          sts 129,R2
 001C                   .dbline 61
 001C           ;       TCNT1H = 0xB1;  // setup
 001C 81EB              ldi R24,177
 001E 80938500          sts 133,R24
 0022                   .dbline 62
 0022           ;       TCNT1L = 0xE0;
 0022 80EE              ldi R24,224
 0024 80938400          sts 132,R24
 0028                   .dbline 63
 0028           ;       OCR1AH = 0x4E;
 0028 8EE4              ldi R24,78
 002A 80938900          sts 137,R24
 002E                   .dbline 64
 002E           ;       OCR1AL = 0x20;
 002E 80E2              ldi R24,32
 0030 80938800          sts 136,R24
 0034                   .dbline 65
 0034           ;       OCR1BH = 0x4E;
 0034 8EE4              ldi R24,78
 0036 80938B00          sts 139,R24
 003A                   .dbline 66
 003A           ;       OCR1BL = 0x20;
 003A 80E2              ldi R24,32
 003C 80938A00          sts 138,R24
 0040                   .dbline 67
 0040           ;       ICR1H  = 0x4E;
 0040 8EE4              ldi R24,78
 0042 80938700          sts 135,R24
 0046                   .dbline 68
 0046           ;       ICR1L  = 0x20;
 0046 80E2              ldi R24,32
 0048 80938600          sts 134,R24
 004C                   .dbline 69
 004C           ;       TCCR1A = 0x00;
 004C 20928000          sts 128,R2
 0050                   .dbline -2
 0050           L3:
 0050                   .dbline 0 ; func end
 0050 0895              ret
 0052                   .dbend
 0052                   .dbfunc e init_devices _init_devices fV
                        .even
 0052           _init_devices::
 0052                   .dbline -1
 0052                   .dbline 74
 0052           ; }
 0052           ; 
 0052           ; 
 0052           ; void init_devices(void)
 0052           ; {
 0052                   .dbline 75
 0052           ;       CLI();
 0052 F894              cli
 0054                   .dbline 77
 0054           ;               
 0054           ;       DDRB  = 0x7F;
 0054 8FE7              ldi R24,127
 0056 84B9              out 0x4,R24
 0058                   .dbline 78
 0058           ;       PORTB = 0xC0;
 0058 80EC              ldi R24,192
 005A 85B9              out 0x5,R24
 005C                   .dbline 80
 005C           ;       
 005C           ;       DDRC  = 0x00;
 005C 2224              clr R2
 005E 27B8              out 0x7,R2
 0060                   .dbline 81
 0060           ;       PORTC = 0x40; // m103 output only
 0060 80E4              ldi R24,64
 0062 88B9              out 0x8,R24
 0064                   .dbline 83
 0064           ;       
 0064           ;       DDRD  = 0xFB;
 0064 8BEF              ldi R24,251
 0066 8AB9              out 0xa,R24
 0068                   .dbline 84
 0068           ;       PORTD = 0x40;
 0068 80E4              ldi R24,64
 006A 8BB9              out 0xb,R24
 006C                   .dbline 86
 006C           ;       
 006C           ;       MCUCR  = 0x00;
 006C 25BE              out 0x35,R2
 006E                   .dbline 87
 006E           ;       EICRA  = 0x03;  // INT0 上升沿触发
 006E 83E0              ldi R24,3
 0070 80936900          sts 105,R24
 0074                   .dbline 88
 0074           ;       EIMSK  = 0x01;  // 使能 INT0 中断
 0074 81E0              ldi R24,1
 0076 8DBB              out 0x1d,R24
 0078                   .dbline 90
 0078           ;       
 0078           ;       timer0_init();
 0078 C3DF              rcall _timer0_init
 007A                   .dbline 91
 007A           ;       timer1_init();
 007A CDDF              rcall _timer1_init
 007C                   .dbline 92
 007C           ;       timer2_init();
 007C 00D0              rcall _timer2_init
 007E                   .dbline 93
 007E           ;       init_eeprom();
 007E 00D0              rcall _init_eeprom
 0080                   .dbline 94
 0080           ;       adc_int();
 0080 00D0              rcall _adc_int
 0082                   .dbline 96
 0082           ;       
 0082           ;       SEI();
 0082 7894              sei
 0084                   .dbline -2
 0084           L4:
 0084                   .dbline 0 ; func end
 0084 0895              ret
 0086                   .dbend
 0086                   .dbfunc e delay _delay fV
 0086           ;              i -> R20,R21
 0086           ;              j -> R22,R23
 0086           ;              k -> R10,R11
 0086           ;              t -> R16,R17
                        .even
 0086           _delay::
 0086 00D0              rcall push_gset3
 0088                   .dbline -1
 0088                   .dbline 104
 0088           ; }
 0088           ; 
 0088           ; /*---------------------------------------------------------------
 0088           ;                       延时
 0088           ; ----------------------------------------------------------------*/
 0088           ; 
 0088           ; void delay(uint t)
 0088           ; {
 0088                   .dbline 107
 0088           ;       uint i,j,k;
 0088           ;       
 0088           ;       for(i=0;i<t;i++)
 0088 4427              clr R20
 008A 5527              clr R21
 008C 16C0              rjmp L9
 008E           L6:
 008E                   .dbline 108
 008E           ;       {
 008E                   .dbline 109
 008E           ;               for(j=0;j<200;j++)
 008E 6627              clr R22
 0090 7727              clr R23
 0092 0DC0              rjmp L13
 0094           L10:
 0094                   .dbline 110
 0094           ;               {
 0094                   .dbline 111
 0094 AA24              clr R10
 0096 BB24              clr R11
 0098 03C0              rjmp L17
 009A           L14:
 009A                   .dbline 111
 009A           L15:
 009A                   .dbline 111
 009A C501              movw R24,R10
 009C 0196              adiw R24,1
 009E 5C01              movw R10,R24
 00A0           L17:
 00A0                   .dbline 111
 00A0 C501              movw R24,R10
 00A2 8233              cpi R24,50
 00A4 E0E0              ldi R30,0
 00A6 9E07              cpc R25,R30
 00A8 C0F3              brlo L14
 00AA                   .dbline 111
 00AA                   .dbline 112
 00AA           L11:
 00AA                   .dbline 109
 00AA 6F5F              subi R22,255  ; offset = 1
 00AC 7F4F              sbci R23,255
 00AE           L13:
 00AE                   .dbline 109
 00AE 683C              cpi R22,200
 00B0 E0E0              ldi R30,0
 00B2 7E07              cpc R23,R30
 00B4 78F3              brlo L10
 00B6                   .dbline 113
 00B6           L7:
 00B6                   .dbline 107
 00B6 4F5F              subi R20,255  ; offset = 1
 00B8 5F4F              sbci R21,255
 00BA           L9:
 00BA                   .dbline 107
 00BA 4017              cp R20,R16
 00BC 5107              cpc R21,R17
 00BE 38F3              brlo L6
 00C0                   .dbline -2
 00C0           L5:
 00C0 00D0              rcall pop_gset3
 00C2                   .dbline 0 ; func end
 00C2 0895              ret
 00C4                   .dbsym r i 20 i
 00C4                   .dbsym r j 22 i
 00C4                   .dbsym r k 10 i
 00C4                   .dbsym r t 16 i
 00C4                   .dbend
 00C4                   .dbfunc e LED_set _LED_set fV
                        .even
 00C4           _LED_set::
 00C4                   .dbline -1
 00C4                   .dbline 118
 00C4           ;                       for(k=0;k<50;k++);;
 00C4           ;               }
 00C4           ;       }
 00C4           ; }
 00C4           ; 
 00C4           ; 
 00C4           ; void LED_set(void)
 00C4           ; {
 00C4                   .dbline 119
 00C4           ;       SET_LED ;
 00C4 5C9A              sbi 0xb,4
 00C6                   .dbline 120
 00C6           ;       delay(10);
 00C6 0AE0              ldi R16,10
 00C8 10E0              ldi R17,0
 00CA DDDF              rcall _delay
 00CC                   .dbline 121
 00CC           ;       CLR_LED ;
 00CC 5C98              cbi 0xb,4
 00CE                   .dbline 122
 00CE           ;       delay(8);
 00CE 08E0              ldi R16,8
 00D0 10E0              ldi R17,0
 00D2 D9DF              rcall _delay
 00D4                   .dbline -2
 00D4           L18:
 00D4                   .dbline 0 ; func end
 00D4 0895              ret
 00D6                   .dbend
 00D6                   .dbfunc e egis _egis fV
 00D6           ;           temp -> R20,R21
                        .even
 00D6           _egis::
 00D6 00D0              rcall push_gset1
 00D8                   .dbline -1
 00D8                   .dbline 126
 00D8           ; }
 00D8           ; 
 00D8           ; void egis(void)
 00D8           ; {
 00D8                   .dbline 129
 00D8           ;       uint temp;
 00D8           ;       

⌨️ 快捷键说明

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