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

📄 m8demo.lis

📁 AVR系列被广泛应用的单片机MEGA8开发(原理图)及例程
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0102                   .dbline 90
 0102 11C0              rjmp L17
 0104           L21:
 0104                   .dbline 93
 0104           ;                               case in_eeprom_addr_modify_mode:
 0104           ;                               case in_eeprom_data_modify_mode:
 0104           ;                               case in_eeprom_read_mode:DisplayHexData(in_eeprom_addr,in_eeprom_data);break;
 0104 20910100          lds R18,_in_eeprom_data
 0108 00910100          lds R16,_in_eeprom_addr
 010C B7D0              rcall _DisplayHexData
 010E                   .dbline 93
 010E 0BC0              rjmp L17
 0110           L22:
 0110                   .dbline 94
 0110           ;                               case adc_mode:DisplayData( adc_value);break;
 0110 00910200          lds R16,_adc_value
 0114 10910300          lds R17,_adc_value+1
 0118 CDD0              rcall _DisplayData
 011A                   .dbline 94
 011A 05C0              rjmp L17
 011C           L23:
 011C                   .dbline 96
 011C 20910000          lds R18,_AT45DB021_data
 0120 00910400          lds R16,_AT45DB021_addr
 0124 ABD0              rcall _DisplayHexData
 0126                   .dbline 96
 0126                   .dbline 97
 0126           L17:
 0126                   .dbline -2
 0126           L13:
 0126 00D0              rcall pop_gset1
 0128 00D0              rcall pop_lset
 012A                   .dbline 0 ; func end
 012A 1895              reti
 012C                   .dbend
 012C                   .dbfunc e timer1_init _timer1_init fV
                        .even
 012C           _timer1_init::
 012C                   .dbline -1
 012C                   .dbline 107
 012C           ;                               case AT45DB021_addr_modify_mode:
 012C           ;                                 case AT45DB021_data_modify_mode:DisplayHexData(AT45DB021_addr,AT45DB021_data);break;
 012C           ;                               default :break;
 012C           ;                       }
 012C           ; 
 012C           ; }
 012C           ; 
 012C           ; //TIMER1 initialisation - prescale:256
 012C           ; // WGM: 0) Normal, TOP=0xFFFF
 012C           ; // desired value: 1Sec
 012C           ; // actual value:  1.000Sec (0.0%)
 012C           ; void timer1_init(void)
 012C           ; {
 012C                   .dbline 108
 012C           ;  TCCR1B = 0x00; //stop
 012C 2224              clr R2
 012E 2EBC              out 0x2e,R2
 0130                   .dbline 109
 0130           ;  TCNT1H = 0x8F; //setup
 0130 8FE8              ldi R24,143
 0132 8DBD              out 0x2d,R24
 0134                   .dbline 110
 0134           ;  TCNT1L = 0x80;
 0134 80E8              ldi R24,128
 0136 8CBD              out 0x2c,R24
 0138                   .dbline 111
 0138           ;  OCR1AH = 0x70;
 0138 80E7              ldi R24,112
 013A 8BBD              out 0x2b,R24
 013C                   .dbline 112
 013C           ;  OCR1AL = 0x80;
 013C 80E8              ldi R24,128
 013E 8ABD              out 0x2a,R24
 0140                   .dbline 113
 0140           ;  OCR1BH = 0x70;
 0140 80E7              ldi R24,112
 0142 89BD              out 0x29,R24
 0144                   .dbline 114
 0144           ;  OCR1BL = 0x80;
 0144 80E8              ldi R24,128
 0146 88BD              out 0x28,R24
 0148                   .dbline 115
 0148           ;  ICR1H  = 0x70;
 0148 80E7              ldi R24,112
 014A 87BD              out 0x27,R24
 014C                   .dbline 116
 014C           ;  ICR1L  = 0x80;
 014C 80E8              ldi R24,128
 014E 86BD              out 0x26,R24
 0150                   .dbline 117
 0150           ;  TCCR1A = 0x00;
 0150 2FBC              out 0x2f,R2
 0152                   .dbline 118
 0152           ;  TCCR1B = 0x04; //start Timer
 0152 84E0              ldi R24,4
 0154 8EBD              out 0x2e,R24
 0156                   .dbline -2
 0156           L24:
 0156                   .dbline 0 ; func end
 0156 0895              ret
 0158                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 ACC0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0158                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
 0158                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0158           _timer1_ovf_isr::
 0158 2A92              st -y,R2
 015A 3A92              st -y,R3
 015C 8A93              st -y,R24
 015E 9A93              st -y,R25
 0160 EA93              st -y,R30
 0162 2FB6              in R2,0x3f
 0164 2A92              st -y,R2
 0166                   .dbline -1
 0166                   .dbline 123
 0166                   .dbline 125
 0166 8FE8              ldi R24,143
 0168 8DBD              out 0x2d,R24
 016A                   .dbline 126
 016A 80E8              ldi R24,128
 016C 8CBD              out 0x2c,R24
 016E                   .dbline 127
 016E 80910D00          lds R24,_TimerCount
 0172 90910E00          lds R25,_TimerCount+1
 0176 0196              adiw R24,1
 0178 90930E00          sts _TimerCount+1,R25
 017C 80930D00          sts _TimerCount,R24
 0180                   .dbline 128
 0180 8031              cpi R24,16
 0182 EEE0              ldi R30,14
 0184 9E07              cpc R25,R30
 0186 31F4              brne L26
 0188                   .dbline 129
 0188 2224              clr R2
 018A 3324              clr R3
 018C 30920E00          sts _TimerCount+1,R3
 0190 20920D00          sts _TimerCount,R2
 0194           L26:
 0194                   .dbline -2
 0194           L25:
 0194 2990              ld R2,y+
 0196 2FBE              out 0x3f,R2
 0198 E991              ld R30,y+
 019A 9991              ld R25,y+
 019C 8991              ld R24,y+
 019E 3990              ld R3,y+
 01A0 2990              ld R2,y+
 01A2                   .dbline 0 ; func end
 01A2 1895              reti
 01A4                   .dbend
 01A4                   .dbfunc e spi_init _spi_init fV
                        .even
 01A4           _spi_init::
 01A4                   .dbline -1
 01A4                   .dbline 134
 01A4           ; }
 01A4           ; 
 01A4           ; #pragma interrupt_handler timer1_ovf_isr:9
 01A4           ; void timer1_ovf_isr(void)
 01A4           ; {
 01A4           ;  //TIMER1 has overflowed
 01A4           ;  TCNT1H = 0x8F; //reload counter high value
 01A4           ;  TCNT1L = 0x80; //reload counter low value
 01A4           ;   TimerCount++;
 01A4           ; if(TimerCount==3600)
 01A4           ;       TimerCount=0;
 01A4           ; }
 01A4           ; 
 01A4           ; 
 01A4           ; void spi_init(void)
 01A4           ; {
 01A4                   .dbline 135
 01A4           ;  SPCR = 0x70; //setup SPI
 01A4 80E7              ldi R24,112
 01A6 8DB9              out 0xd,R24
 01A8                   .dbline 136
 01A8           ;  SPSR = 0x00; //setup SPI
 01A8 2224              clr R2
 01AA 2EB8              out 0xe,R2
 01AC                   .dbline -2
 01AC           L28:
 01AC                   .dbline 0 ; func end
 01AC 0895              ret
 01AE                   .dbend
 01AE                   .dbfunc e twi_init _twi_init fV
                        .even
 01AE           _twi_init::
 01AE                   .dbline -1
 01AE                   .dbline 142
 01AE           ; }
 01AE           ; 
 01AE           ; //TWI initialisation
 01AE           ; // bit rate:1
 01AE           ; void twi_init(void)
 01AE           ; {
 01AE                   .dbline 143
 01AE           ;  TWCR= 0X00; //disable twi
 01AE 2224              clr R2
 01B0 26BE              out 0x36,R2
 01B2                   .dbline 144
 01B2           ;  TWBR= 0x01; //set bit rate
 01B2 81E0              ldi R24,1
 01B4 80B9              out 0x0,R24
 01B6                   .dbline 145
 01B6           ;  TWSR= 0x00; //set prescale
 01B6 21B8              out 0x1,R2
 01B8                   .dbline 146
 01B8           ;  TWAR= 0x02; //set slave address
 01B8 82E0              ldi R24,2
 01BA 82B9              out 0x2,R24
 01BC                   .dbline 147
 01BC           ;  TWCR= 0x44; //enable twi
 01BC 84E4              ldi R24,68
 01BE 86BF              out 0x36,R24
 01C0                   .dbline -2
 01C0           L29:
 01C0                   .dbline 0 ; func end
 01C0 0895              ret
 01C2                   .dbend
 01C2                   .dbfunc e twi_Enable _twi_Enable fV
                        .even
 01C2           _twi_Enable::
 01C2                   .dbline -1
 01C2                   .dbline 151
 01C2           ; }
 01C2           ; 
 01C2           ; void twi_Enable(void)
 01C2           ; {
 01C2                   .dbline 152
 01C2           ;  TWCR= 0x44; //enable twi
 01C2 84E4              ldi R24,68
 01C4 86BF              out 0x36,R24
 01C6                   .dbline -2
 01C6           L30:
 01C6                   .dbline 0 ; func end
 01C6 0895              ret
 01C8                   .dbend
 01C8                   .dbfunc e twi_Disable _twi_Disable fV
                        .even
 01C8           _twi_Disable::
 01C8                   .dbline -1
 01C8                   .dbline 155
 01C8           ; }
 01C8           ; void twi_Disable(void)
 01C8           ; {
 01C8                   .dbline 156
 01C8           ;  TWCR= 0x00; //enable twi
 01C8 2224              clr R2
 01CA 26BE              out 0x36,R2
 01CC                   .dbline -2
 01CC           L31:
 01CC                   .dbline 0 ; func end
 01CC 0895              ret
 01CE                   .dbend
 01CE                   .dbfunc e adc_init _adc_init fV
                        .even
 01CE           _adc_init::
 01CE                   .dbline -1
 01CE                   .dbline 163
 01CE           ; }
 01CE           ; 
 01CE           ; 
 01CE           ; //ADC initialisation
 01CE           ; // Conversion time: 208uS
 01CE           ; void adc_init(void)
 01CE           ; {
 01CE                   .dbline 164
 01CE           ;  ADCSR = 0x00; //disable adc
 01CE 2224              clr R2
 01D0 26B8              out 0x6,R2
 01D2                   .dbline 165
 01D2           ;  ADMUX = 0x00; //select adc input 0
 01D2 27B8              out 0x7,R2
 01D4                   .dbline 166
 01D4           ;  ACSR  = 0x00;
 01D4 28B8              out 0x8,R2
 01D6                   .dbline 167
 01D6           ;  ADCSR = 0xc8;
 01D6 88EC              ldi R24,200
 01D8 86B9              out 0x6,R24
 01DA                   .dbline -2
 01DA           L32:
 01DA                   .dbline 0 ; func end
 01DA 0895              ret
 01DC                   .dbend
 01DC                   .dbfunc e adc_Enable _adc_Enable fV
                        .even
 01DC           _adc_Enable::
 01DC                   .dbline -1
 01DC                   .dbline 170
 01DC           ;  }
 01DC           ; void adc_Enable(void)
 01DC           ; {
 01DC                   .dbline 171
 01DC           ; DDRC&=0xFE;
 01DC 84B3              in R24,0x14
 01DE 8E7F              andi R24,254
 01E0 84BB              out 0x14,R24
 01E2                   .dbline 172
 01E2           ; PORTC&=0xFE;
 01E2 85B3              in R24,0x15
 01E4 8E7F              andi R24,254
 01E6 85BB              out 0x15,R24
 01E8                   .dbline 173
 01E8           ; ADCSR = 0xC8;
 01E8 88EC              ldi R24,200
 01EA 86B9              out 0x6,R24
 01EC                   .dbline -2
 01EC           L33:
 01EC                   .dbline 0 ; func end
 01EC 0895              ret
 01EE                   .dbend
 01EE                   .dbfunc e adc_Disable _adc_Disable fV
                        .even
 01EE           _adc_Disable::
 01EE                   .dbline -1
 01EE                   .dbline 176
 01EE           ;  }
 01EE           ; void adc_Disable(void)
 01EE           ; {//DDRC|=0x01;
 01EE                   .dbline 178
 01EE           ; //PORTC|=0x01;
 01EE           ;  ADCSR = 0x00;
 01EE 2224              clr R2
 01F0 26B8              out 0x6,R2
 01F2                   .dbline -2
 01F2           L34:
 01F2                   .dbline 0 ; func end
 01F2 0895              ret
 01F4                   .dbend
                        .area vector(rom, abs)
                        .org 28
 001C FAC0              rjmp _adc_isr
                        .area text(rom, con, rel)
 01F4                   .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\M8Demo.c
 01F4                   .dbfunc e adc_isr _adc_isr fV

⌨️ 快捷键说明

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