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

📄 initt.lis

📁 用ICCAVR编辑通过的
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 01C8 30920400          sts L6+1,R3
 01CC 20920300          sts L6,R2
 01D0                   .dbline 73
 01D0           ;               min_value = 0xff;
 01D0 8FEF              ldi R24,255
 01D2 90E0              ldi R25,0
 01D4 90930600          sts L7+1,R25
 01D8 80930500          sts L7,R24
 01DC                   .dbline 74
 01DC           ;               total = 0;
 01DC 30920200          sts L5+1,R3
 01E0 20920100          sts L5,R2
 01E4                   .dbline 75
 01E4           ;       }
 01E4           L18:
 01E4           L15:
 01E4                   .dbline 76
 01E4           ;       if ( i < 50 )
 01E4 80910000          lds R24,L4
 01E8 8233              cpi R24,50
 01EA 10F4              brsh L21
 01EC                   .dbline 77
 01EC           ;       {
 01EC                   .dbline 78
 01EC           ;               ADMUX &= ~( 1 << MUX0 );
 01EC 3898              cbi 0x7,0
 01EE                   .dbline 79
 01EE           ;       }
 01EE 01C0              rjmp L22
 01F0           L21:
 01F0                   .dbline 81
 01F0           ;       else
 01F0           ;       {
 01F0                   .dbline 82
 01F0           ;               ADMUX |= ( 1 << MUX0 );
 01F0 389A              sbi 0x7,0
 01F2                   .dbline 83
 01F2           ;       }       
 01F2           L22:
 01F2                   .dbline 84
 01F2           ;       i++;
 01F2 80910000          lds R24,L4
 01F6 8F5F              subi R24,255    ; addi 1
 01F8 80930000          sts L4,R24
 01FC                   .dbline 85
 01FC           ;       i %= 100;
 01FC 14E6              ldi R17,100
 01FE 082F              mov R16,R24
 0200 00D0              rcall mod8u
 0202 00930000          sts L4,R16
 0206                   .dbline 86
 0206           ;       ADCSR |= ( 1<< ADSC );                                                  //启动新的AD转换
 0206 369A              sbi 0x6,6
 0208                   .dbline -2
 0208           L3:
 0208 00D0              rcall pop_gset1
 020A                   .dbline 0 ; func end
 020A 0895              ret
 020C                   .dbsym r SIG_OVERFLOW0 20 I
 020C                   .dbend
 020C                   .dbfunc e watchdog_init _watchdog_init fV
                        .even
 020C           _watchdog_init::
 020C                   .dbline -1
 020C                   .dbline 92
 020C           ; }
 020C           ; 
 020C           ; //Watchdog initialize
 020C           ; // prescale: 512K
 020C           ; void watchdog_init(void)
 020C           ; {
 020C                   .dbline 93
 020C           ;       wdt_reset();                                                                    //this prevents a timout on enabling
 020C 00D0              rcall _wdt_reset
 020E                   .dbline -2
 020E           L23:
 020E                   .dbline 0 ; func end
 020E 0895              ret
 0210                   .dbend
 0210                   .dbfunc e adc_init _adc_init fV
                        .even
 0210           _adc_init::
 0210                   .dbline -1
 0210                   .dbline 100
 0210           ;       //wdt_enable(WDTO_1S);                                                  //WATCHDOG ENABLED - dont forget to issue WDRs,0.52S
 0210           ; }
 0210           ;       
 0210           ; //ADC initialize
 0210           ; // Conversion time: 117uS
 0210           ; void adc_init(void)
 0210           ; {
 0210                   .dbline 101
 0210           ;       ADCSR = 0x00;                                                                   //disable adc
 0210 2224              clr R2
 0212 26B8              out 0x6,R2
 0214                   .dbline 102
 0214           ;       ADMUX = 0xC0;                                                                   //select adc input 0,选择AVCC为参考电源
 0214 80EC              ldi R24,192
 0216 87B9              out 0x7,R24
 0218                   .dbline 103
 0218           ;       ACSR  = 0x80;                                                                   //禁止模拟比较器
 0218 80E8              ldi R24,128
 021A 88B9              out 0x8,R24
 021C                   .dbline 104
 021C           ;       ADCSR = 0xCE;                                                                   //使能ADC,ADC转换开始,允许ADC中断,32分频
 021C 8EEC              ldi R24,206
 021E 86B9              out 0x6,R24
 0220                   .dbline -2
 0220           L24:
 0220                   .dbline 0 ; func end
 0220 0895              ret
 0222                   .dbend
 0222                   .dbfunc e init_devices _init_devices fV
                        .even
 0222           _init_devices::
 0222                   .dbline -1
 0222                   .dbline 109
 0222           ; }
 0222           ; 
 0222           ; //call this routine to initialize all peripherals
 0222           ; void init_devices(void)
 0222           ; {                                                                                                     //stop errant interrupts until set up
 0222                   .dbline 110
 0222           ;       cli();                                                                                  //disable all interrupts
 0222 00D0              rcall _cli
 0224                   .dbline 111
 0224           ;       port_init();
 0224 EDDE              rcall _port_init
 0226                   .dbline 112
 0226           ;       watchdog_init();
 0226 F2DF              rcall _watchdog_init
 0228                   .dbline 113
 0228           ;       timer0_init();
 0228 F6DE              rcall _timer0_init
 022A                   .dbline 114
 022A           ;       adc_init();
 022A F2DF              rcall _adc_init
 022C                   .dbline 115
 022C           ;       MCUCR = 0x00;
 022C 2224              clr R2
 022E 25BE              out 0x35,R2
 0230                   .dbline 116
 0230           ;       GICR  = 0x00;
 0230 2BBE              out 0x3b,R2
 0232                   .dbline 117
 0232           ;       TIMSK = 0x01;                                                                   //timer interrupt sources
 0232 81E0              ldi R24,1
 0234 89BF              out 0x39,R24
 0236                   .dbline 118
 0236           ;       if ( UP_DOWN_POWER != 0x55aa )
 0236 80910000          lds R24,_UP_DOWN_POWER
 023A 8A3A              cpi R24,170
 023C C1F0              breq L26
 023E                   .dbline 119
 023E           ;       {
 023E                   .dbline 126
 023E           ;                       /*
 023E           ;               KEY_A_V_STATE = 0;
 023E           ;               KEY_AUTO_MAN_STATE = 0;
 023E           ;               KEY_CC_CV_STATE = 0;
 023E           ;               POWER_STATE = 0;
 023E           ;               */
 023E           ;               eeprom_busy_wait();
 023E 00D0              rcall _eeprom_busy_wait
 0240                   .dbline 127
 0240           ;               KEY_A_V_STATE      = eeprom_read_byte ( (char*)0x01 );
 0240 01E0              ldi R16,1
 0242 10E0              ldi R17,0
 0244 00D0              rcall _eeprom_read_byte
 0246 00930400          sts _KEY_A_V_STATE,R16
 024A                   .dbline 128
 024A           ;               eeprom_busy_wait();
 024A 00D0              rcall _eeprom_busy_wait
 024C                   .dbline 129
 024C           ;               KEY_AUTO_MAN_STATE = eeprom_read_byte ( (char*)0x03 );
 024C 03E0              ldi R16,3
 024E 10E0              ldi R17,0
 0250 00D0              rcall _eeprom_read_byte
 0252 00930100          sts _KEY_AUTO_MAN_STATE,R16
 0256                   .dbline 130
 0256           ;               eeprom_busy_wait();
 0256 00D0              rcall _eeprom_busy_wait
 0258                   .dbline 131
 0258           ;               KEY_CC_CV_STATE    = eeprom_read_byte ( (char*)0x05 );
 0258 05E0              ldi R16,5
 025A 10E0              ldi R17,0
 025C 00D0              rcall _eeprom_read_byte
 025E 00930200          sts _KEY_CC_CV_STATE,R16
 0262                   .dbline 132
 0262           ;               eeprom_busy_wait();
 0262 00D0              rcall _eeprom_busy_wait
 0264                   .dbline 133
 0264           ;               POWER_STATE        = eeprom_read_byte ( (char*)0x07 );
 0264 07E0              ldi R16,7
 0266 10E0              ldi R17,0
 0268 00D0              rcall _eeprom_read_byte
 026A 00930300          sts _POWER_STATE,R16
 026E                   .dbline 134
 026E           ;       }
 026E           L26:
 026E                   .dbline 136
 026E           ;               
 026E           ;       if ( POWER_STATE )
 026E 20900300          lds R2,_POWER_STATE
 0272 2220              tst R2
 0274 11F0              breq L28
 0276                   .dbline 137
 0276           ;       {
 0276                   .dbline 138
 0276           ;               PORTB |= ( 1 << POWER );                //开启电源
 0276 C49A              sbi 0x18,4
 0278                   .dbline 139
 0278           ;       }
 0278 01C0              rjmp L29
 027A           L28:
 027A                   .dbline 141
 027A           ;       else
 027A           ;       {
 027A                   .dbline 142
 027A           ;               PORTB &= ~( 1 << POWER );               //关闭电源
 027A C498              cbi 0x18,4
 027C                   .dbline 143
 027C           ;       }
 027C           L29:
 027C                   .dbline 144
 027C           ;       if ( KEY_A_V_STATE )
 027C 20900400          lds R2,_KEY_A_V_STATE
 0280 2220              tst R2
 0282 11F0              breq L30
 0284                   .dbline 145
 0284           ;       {
 0284                   .dbline 146
 0284           ;               PORTB |= ( 1 << OUT_A );                //显示电流
 0284 C79A              sbi 0x18,7
 0286                   .dbline 147
 0286           ;       }
 0286 01C0              rjmp L31
 0288           L30:
 0288                   .dbline 149
 0288           ;       else
 0288           ;       {
 0288                   .dbline 150
 0288           ;               PORTB &= ~( 1 << OUT_A );               //显示电压
 0288 C798              cbi 0x18,7
 028A                   .dbline 151
 028A           ;       }
 028A           L31:
 028A                   .dbline 152
 028A           ;       if ( KEY_CC_CV_STATE )
 028A 20900200          lds R2,_KEY_CC_CV_STATE
 028E 2220              tst R2
 0290 11F0              breq L32
 0292                   .dbline 153
 0292           ;       {
 0292                   .dbline 154
 0292           ;               PORTB |= ( 1 << OUT_CV );               //稳压
 0292 C69A              sbi 0x18,6
 0294                   .dbline 155
 0294           ;       }
 0294 01C0              rjmp L33
 0296           L32:
 0296                   .dbline 157
 0296           ;       else
 0296           ;       {
 0296                   .dbline 158
 0296           ;               PORTB &= ~( 1 << OUT_CV );              //稳流
 0296 C698              cbi 0x18,6
 0298                   .dbline 159
 0298           ;       }
 0298           L33:
 0298                   .dbline 160
 0298           ;       if ( KEY_AUTO_MAN_STATE )
 0298 20900100          lds R2,_KEY_AUTO_MAN_STATE
 029C 2220              tst R2
 029E 11F0              breq L34
 02A0                   .dbline 161
 02A0           ;       {
 02A0                   .dbline 162
 02A0           ;               PORTB |= ( 1 << OUT_AUTO );     //自动
 02A0 C59A              sbi 0x18,5
 02A2                   .dbline 163
 02A2           ;       }
 02A2 01C0              rjmp L35
 02A4           L34:
 02A4                   .dbline 165
 02A4           ;       else
 02A4           ;       {
 02A4                   .dbline 166
 02A4           ;               PORTB &= ~( 1 << OUT_AUTO );    //手动
 02A4 C598              cbi 0x18,5
 02A6                   .dbline 167
 02A6           ;       }
 02A6           L35:
 02A6                   .dbline 168
 02A6           ;       UP_DOWN_POWER = 0x55aa;
 02A6 8AEA              ldi R24,21930
 02A8 95E5              ldi R25,85
 02AA 80930000          sts _UP_DOWN_POWER,R24
 02AE                   .dbline 169
 02AE           ;       sei();                                                          //re-enable interrupts
 02AE 00D0              rcall _sei
 02B0                   .dbline -2
 02B0           L25:
 02B0                   .dbline 0 ; func end
 02B0 0895              ret
 02B2                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
 0000           _UP_DOWN_POWER::
 0000                   .blkb 1
 0001                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF/init.h
 0001                   .dbsym e UP_DOWN_POWER _UP_DOWN_POWER c
 0001           _KEY_AUTO_MAN_STATE::
 0001                   .blkb 1
 0002                   .dbsym e KEY_AUTO_MAN_STATE _KEY_AUTO_MAN_STATE c
 0002           _KEY_CC_CV_STATE::
 0002                   .blkb 1
 0003                   .dbsym e KEY_CC_CV_STATE _KEY_CC_CV_STATE c
 0003           _POWER_STATE::
 0003                   .blkb 1
 0004                   .dbsym e POWER_STATE _POWER_STATE c
 0004           _KEY_A_V_STATE::
 0004                   .blkb 1
 0005                   .dbsym e KEY_A_V_STATE _KEY_A_V_STATE c
 0005           _KEY_INPUT::
 0005                   .blkb 1
 0006                   .dbsym e KEY_INPUT _KEY_INPUT c
 0006           _KEY_TEMP::
 0006                   .blkb 1
 0007                   .dbsym e KEY_TEMP _KEY_TEMP c
 0007           _SET_STATU::
 0007                   .blkb 1
 0008                   .dbsym e SET_STATU _SET_STATU c
 0008           _TIMER_EN::
 0008                   .blkb 1
 0009                   .dbsym e TIMER_EN _TIMER_EN c
 0009           _TIMER_NUM::
 0009                   .blkb 2
 000B                   .dbsym e TIMER_NUM _TIMER_NUM i
 000B           _adc_data_temp::
 000B                   .blkb 2
 000D                   .dbsym e adc_data_temp _adc_data_temp i
                        .area lit(rom, con, rel)
 0000           L17:
 0000 00004042          .word 0x0,0x4240
 0004           L16:
 0004 00000040          .word 0x0,0x4000

⌨️ 快捷键说明

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