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

📄 initt.lis

📁 用ICCAVR编辑通过的
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module initt.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 22
 0000           ; //ICC-AVR application builder : 2005-4-25 9:42:27
 0000           ; // Target : M8
 0000           ; // Crystal: 8.00Mhz
 0000           ; /*
 0000           ; * Copyright (c) 2005, 广州力源电器公司开发部
 0000           ; * All rights reserved.
 0000           ; * 文件名称:init.c  负责初始化MCU各内部资源及外部端口
 0000           ; 
 0000           ; * 当前版本: 1.0
 0000           ; * 作者:       张洪强
 0000           ; * 完成日期: 2005.7.25
 0000           ; */
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h> 
 0000           ; //#include <interrupt.h>
 0000           ; #include <signal.h>
 0000           ; //#include <wdt.h>
 0000           ; #include <eeprom.h> 
 0000           ; #include "init.h"
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 23
 0000           ;       PORTB = 0x0F;                                                                   //PB0-4接键盘,设为输入上拉
 0000 8FE0              ldi R24,15
 0002 88BB              out 0x18,R24
 0004                   .dbline 24
 0004           ;       DDRB  = 0xF0;                                                                   //PB4-7接控制输出,设为输出不上拉
 0004 80EF              ldi R24,240
 0006 87BB              out 0x17,R24
 0008                   .dbline 25
 0008           ;       PORTC = 0x3C;                                                                   //PC0,PC1接模拟信号进行AD转换,设为输入不上拉
 0008 8CE3              ldi R24,60
 000A 85BB              out 0x15,R24
 000C                   .dbline 26
 000C           ;       DDRC  = 0x3C;                                                                   //PC2,PC3,PC4,PC5接4位7段LED的位选端,设为输出上拉
 000C 84BB              out 0x14,R24
 000E                   .dbline 27
 000E           ;       PORTD = 0xFF;                                                                   //PORTD口接7段LED的段选端,全部设为输出上拉
 000E 8FEF              ldi R24,255
 0010 82BB              out 0x12,R24
 0012                   .dbline 28
 0012           ;       DDRD  = 0xFF;
 0012 81BB              out 0x11,R24
 0014                   .dbline -2
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
 0016                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0016           _timer0_init::
 0016                   .dbline -1
 0016                   .dbline 35
 0016           ; }
 0016           ; 
 0016           ; //TIMER0 initialize - prescale:1024
 0016           ; // desired value: 50Hz
 0016           ; // actual value: 50.080Hz (0.2%)
 0016           ; void timer0_init(void)
 0016           ; {
 0016                   .dbline 36
 0016           ;       TCCR0 = 0x00;                                                                   //stop
 0016 2224              clr R2
 0018 23BE              out 0x33,R2
 001A                   .dbline 37
 001A           ;       TCNT0 = 0xB2;                                                                   //set count
 001A 82EB              ldi R24,178
 001C 82BF              out 0x32,R24
 001E                   .dbline 38
 001E           ;       TCCR0 = 0x05;                                                                   //start timer
 001E 85E0              ldi R24,5
 0020 83BF              out 0x33,R24
 0022                   .dbline -2
 0022           L2:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
 0000           L4:
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
 0001           L5:
 0001                   .blkb 2
                        .area idata
 0001 0000              .word 0
                        .area data(ram, con, rel)
 0003                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
 0003           L6:
 0003                   .blkb 2
                        .area idata
 0003 0000              .word 0
                        .area data(ram, con, rel)
 0005                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
 0005           L7:
 0005                   .blkb 2
                        .area idata
 0005 FF00              .word 255
                        .area data(ram, con, rel)
 0007                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
                        .area text(rom, con, rel)
 0024                   .dbfile F:\网络下载\AVR\完整应用\电流电压表\SOF\initt.c
 0024                   .dbfunc e SIGNAL _SIGNAL fI
 0024                   .dbsym s min_value L7 i
 0024                   .dbsym s max_value L6 i
 0024                   .dbsym s total L5 i
 0024                   .dbsym s i L4 c
 0024           ;  SIG_OVERFLOW0 -> R20,R21
                        .even
 0024           _SIGNAL::
 0024 00D0              rcall push_gset1
 0026 A801              movw R20,R16
 0028                   .dbline -1
 0028                   .dbline 43
 0028           ; }
 0028           ; 
 0028           ; //#pragma interrupt_handler timer0_ovf_isr:10
 0028           ; SIGNAL(SIG_OVERFLOW0)
 0028           ; {
 0028                   .dbline 46
 0028           ;       static unsigned char i = 0;
 0028           ;       static unsigned int  total = 0,max_value = 0,min_value = 0xff;
 0028           ;       TCNT0 = 0xB2;                                                                   //reload counter value
 0028 82EB              ldi R24,178
 002A 82BF              out 0x32,R24
 002C                   .dbline 47
 002C           ;       if ( TIMER_EN )
 002C 20900800          lds R2,_TIMER_EN
 0030 2220              tst R2
 0032 49F0              breq L8
 0034                   .dbline 48
 0034           ;       {
 0034                   .dbline 49
 0034           ;               TIMER_NUM++;
 0034 80910900          lds R24,_TIMER_NUM
 0038 90910A00          lds R25,_TIMER_NUM+1
 003C 0196              adiw R24,1
 003E 90930A00          sts _TIMER_NUM+1,R25
 0042 80930900          sts _TIMER_NUM,R24
 0046                   .dbline 50
 0046           ;       }
 0046           L8:
 0046                   .dbline 51
 0046           ;       if ( adc_data_temp > max_value )
 0046 20900300          lds R2,L6
 004A 30900400          lds R3,L6+1
 004E 40900B00          lds R4,_adc_data_temp
 0052 50900C00          lds R5,_adc_data_temp+1
 0056 2414              cp R2,R4
 0058 3504              cpc R3,R5
 005A 28F4              brsh L10
 005C                   .dbline 52
 005C           ;       {
 005C                   .dbline 53
 005C           ;               max_value = adc_data_temp;
 005C 1201              movw R2,R4
 005E 30920400          sts L6+1,R3
 0062 20920300          sts L6,R2
 0066                   .dbline 54
 0066           ;       }
 0066           L10:
 0066                   .dbline 55
 0066           ;       if ( adc_data_temp < min_value )
 0066 20900500          lds R2,L7
 006A 30900600          lds R3,L7+1
 006E 40900B00          lds R4,_adc_data_temp
 0072 50900C00          lds R5,_adc_data_temp+1
 0076 4214              cp R4,R2
 0078 5304              cpc R5,R3
 007A 28F4              brsh L12
 007C                   .dbline 56
 007C           ;       {
 007C                   .dbline 57
 007C           ;               min_value = adc_data_temp;
 007C 1201              movw R2,R4
 007E 30920600          sts L7+1,R3
 0082 20920500          sts L7,R2
 0086                   .dbline 58
 0086           ;       }
 0086           L12:
 0086                   .dbline 59
 0086           ;       total += adc_data_temp;
 0086 20900B00          lds R2,_adc_data_temp
 008A 30900C00          lds R3,_adc_data_temp+1
 008E 40900100          lds R4,L5
 0092 50900200          lds R5,L5+1
 0096 420C              add R4,R2
 0098 531C              adc R5,R3
 009A 50920200          sts L5+1,R5
 009E 40920100          sts L5,R4
 00A2                   .dbline 60
 00A2           ;       if ( i == 49 )
 00A2 80910000          lds R24,L4
 00A6 8133              cpi R24,49
 00A8 09F0              breq X0
 00AA 4AC0              rjmp L14
 00AC           X0:
 00AC                   .dbline 61
 00AC           ;       {
 00AC                   .dbline 62
 00AC           ;               adc_data[0] =( total - min_value - max_value ) / 48.0;
 00AC 20900500          lds R2,L7
 00B0 30900600          lds R3,L7+1
 00B4 4218              sub R4,R2
 00B6 5308              sbc R5,R3
 00B8 20900300          lds R2,L6
 00BC 30900400          lds R3,L6+1
 00C0 4218              sub R4,R2
 00C2 5308              sbc R5,R3
 00C4 00E0              ldi R16,<L16
 00C6 10E0              ldi R17,>L16
 00C8 00D0              rcall lpm32
 00CA 3A93              st -y,R19
 00CC 2A93              st -y,R18
 00CE 1A93              st -y,R17
 00D0 0A93              st -y,R16
 00D2 8201              movw R16,R4
 00D4 1695              lsr R17
 00D6 0795              ror R16
 00D8 00D0              rcall int2fp
 00DA 3A93              st -y,R19
 00DC 2A93              st -y,R18
 00DE 1A93              st -y,R17
 00E0 0A93              st -y,R16
 00E2 00D0              rcall empy32fs
 00E4 8201              movw R16,R4
 00E6 0170              andi R16,1
 00E8 1070              andi R17,0
 00EA 00D0              rcall int2fp
 00EC 3A93              st -y,R19
 00EE 2A93              st -y,R18
 00F0 1A93              st -y,R17
 00F2 0A93              st -y,R16
 00F4 00D0              rcall add32fs
 00F6 00E0              ldi R16,<L17
 00F8 10E0              ldi R17,>L17
 00FA 00D0              rcall lpm32
 00FC 3A93              st -y,R19
 00FE 2A93              st -y,R18
 0100 1A93              st -y,R17
 0102 0A93              st -y,R16
 0104 00D0              rcall div32f
 0106 10930100          sts _adc_data+1,R17
 010A 00930000          sts _adc_data,R16
 010E 30930300          sts _adc_data+2+1,R19
 0112 20930200          sts _adc_data+2,R18
 0116                   .dbline 63
 0116           ;               adc_data_temp = 0;
 0116 2224              clr R2
 0118 3324              clr R3
 011A 30920C00          sts _adc_data_temp+1,R3
 011E 20920B00          sts _adc_data_temp,R2
 0122                   .dbline 64
 0122           ;               max_value = 0;
 0122 30920400          sts L6+1,R3
 0126 20920300          sts L6,R2
 012A                   .dbline 65
 012A           ;               min_value = 0xff;
 012A 8FEF              ldi R24,255
 012C 90E0              ldi R25,0
 012E 90930600          sts L7+1,R25
 0132 80930500          sts L7,R24
 0136                   .dbline 66
 0136           ;               total = 0;
 0136 30920200          sts L5+1,R3
 013A 20920100          sts L5,R2
 013E                   .dbline 67
 013E           ;       }
 013E 52C0              rjmp L15
 0140           L14:
 0140                   .dbline 68
 0140           ;       else if ( i == 99 )
 0140 80910000          lds R24,L4
 0144 8336              cpi R24,99
 0146 09F0              breq X1
 0148 4DC0              rjmp L18
 014A           X1:
 014A                   .dbline 69
 014A           ;       {
 014A                   .dbline 70
 014A           ;               adc_data[1] =( total - min_value - max_value ) / 48.0;
 014A 20900500          lds R2,L7
 014E 30900600          lds R3,L7+1
 0152 40900100          lds R4,L5
 0156 50900200          lds R5,L5+1
 015A 4218              sub R4,R2
 015C 5308              sbc R5,R3
 015E 20900300          lds R2,L6
 0162 30900400          lds R3,L6+1
 0166 4218              sub R4,R2
 0168 5308              sbc R5,R3
 016A 00E0              ldi R16,<L16
 016C 10E0              ldi R17,>L16
 016E 00D0              rcall lpm32
 0170 3A93              st -y,R19
 0172 2A93              st -y,R18
 0174 1A93              st -y,R17
 0176 0A93              st -y,R16
 0178 8201              movw R16,R4
 017A 1695              lsr R17
 017C 0795              ror R16
 017E 00D0              rcall int2fp
 0180 3A93              st -y,R19
 0182 2A93              st -y,R18
 0184 1A93              st -y,R17
 0186 0A93              st -y,R16
 0188 00D0              rcall empy32fs
 018A 8201              movw R16,R4
 018C 0170              andi R16,1
 018E 1070              andi R17,0
 0190 00D0              rcall int2fp
 0192 3A93              st -y,R19
 0194 2A93              st -y,R18
 0196 1A93              st -y,R17
 0198 0A93              st -y,R16
 019A 00D0              rcall add32fs
 019C 00E0              ldi R16,<L17
 019E 10E0              ldi R17,>L17
 01A0 00D0              rcall lpm32
 01A2 3A93              st -y,R19
 01A4 2A93              st -y,R18
 01A6 1A93              st -y,R17
 01A8 0A93              st -y,R16
 01AA 00D0              rcall div32f
 01AC 10930500          sts _adc_data+4+1,R17
 01B0 00930400          sts _adc_data+4,R16
 01B4 30930700          sts _adc_data+4+2+1,R19
 01B8 20930600          sts _adc_data+4+2,R18
 01BC                   .dbline 71
 01BC           ;               adc_data_temp = 0;
 01BC 2224              clr R2
 01BE 3324              clr R3
 01C0 30920C00          sts _adc_data_temp+1,R3
 01C4 20920B00          sts _adc_data_temp,R2
 01C8                   .dbline 72
 01C8           ;               max_value = 0;

⌨️ 快捷键说明

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