📄 main.lis
字号:
.module main.c
.area data(ram, con, rel)
0000 _table::
0000 .blkb 2
.area idata
0000 EB60 .byte 235,96
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 C78F .byte 199,143
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 2EBD .byte 46,189
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 ED0B .byte 237,11
.area data(ram, con, rel)
0008 .blkb 2
.area idata
0008 EFAF .byte 239,175
.area data(ram, con, rel)
000A .dbfile F:\赵一\edu6000_1202\main.c
000A .dbsym e table _table A[10:10]c
.area text(rom, con, rel)
0000 .dbfile F:\赵一\edu6000_1202\main.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 15
0000 ; //ICC-AVR application builder : 2004-11-19 9:42:35
0000 ; // Target : M8
0000 ; // Crystal: 7.3728Mhz
0000 ; #include <eeprom.h>
0000 ; #include "head.h"
0000 ;
0000 ; unsigned char getchar(void); //申明函数:串口接收函数;
0000 ; void sendchar(unsigned char data); //申明函数:串口发送函数;
0000 ; unsigned char table[10]={0xeb,0x60,0xc7,0x8f,0x2e,0xbd,0xed,0x0b,0xef,0xaf};
0000 ; unsigned char lcd_buffer[16];
0000 ; unsigned char host_id,guest_id,t,ques[100],data[110],ques_num;
0000 ; unsigned int t1;
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 16
0000 ; PORTB = 0xDF;
0000 8FED ldi R24,223
0002 88BB out 0x18,R24
0004 .dbline 17
0004 ; DDRB = 0xFF;
0004 8FEF ldi R24,255
0006 87BB out 0x17,R24
0008 .dbline 18
0008 ; PORTC = 0x75; //m103 output only
0008 85E7 ldi R24,117
000A 85BB out 0x15,R24
000C .dbline 19
000C ; DDRC = 0x77;
000C 87E7 ldi R24,119
000E 84BB out 0x14,R24
0010 .dbline 20
0010 ; PORTD = 0xFF;
0010 8FEF ldi R24,255
0012 82BB out 0x12,R24
0014 .dbline 21
0014 ; DDRD = 0x97;
0014 87E9 ldi R24,151
0016 81BB out 0x11,R24
0018 .dbline -2
0018 .dbline 22
0018 ; }
0018 L1:
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbend
001A .dbfunc e uart0_init _uart0_init fV
.even
001A _uart0_init::
001A .dbline -1
001A .dbline 30
001A ;
001A ; //UART0 initialisation
001A ; // desired baud rate: 9600
001A ; // actual: baud rate:9600 (0.0%)
001A ; // char size: 8 bit
001A ; // parity: Disabled
001A ; void uart0_init(void)
001A ; {
001A .dbline 31
001A ; UCSRB = 0x00; //disable while setting baud rate
001A 2224 clr R2
001C 2AB8 out 0xa,R2
001E .dbline 32
001E ; UCSRA = 0x00;
001E 2BB8 out 0xb,R2
0020 .dbline 33
0020 ; UCSRC = 0x86;
0020 86E8 ldi R24,134
0022 80BD out 0x20,R24
0024 .dbline 34
0024 ; UBRRL = 0x2F; //set baud rate lo
0024 8FE2 ldi R24,47
0026 89B9 out 0x9,R24
0028 .dbline 35
0028 ; UBRRH = 0x00; //set baud rate hi
0028 20BC out 0x20,R2
002A .dbline 36
002A ; UCSRB = 0x18;
002A 88E1 ldi R24,24
002C 8AB9 out 0xa,R24
002E .dbline -2
002E .dbline 37
002E ; }
002E L2:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbend
0030 .dbfunc e timer0_init _timer0_init fV
.even
0030 _timer0_init::
0030 .dbline -1
0030 .dbline 40
0030 ;
0030 ; void timer0_init(void)
0030 ; {
0030 .dbline 41
0030 ; TCCR0 = 0x00; //stop
0030 2224 clr R2
0032 23BE out 0x33,R2
0034 .dbline 42
0034 ; TCNT0 = 0x00 /*INVALID SETTING*/; //set count
0034 22BE out 0x32,R2
0036 .dbline 43
0036 ; TCCR0 = 0x05; //start timer
0036 85E0 ldi R24,5
0038 83BF out 0x33,R24
003A .dbline -2
003A .dbline 44
003A ; }
003A L3:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbend
.area vector(rom, abs)
.org 36
0024 0C941E00 jmp _timer0_ovf_isr
.area text(rom, con, rel)
003C .dbfile F:\赵一\edu6000_1202\main.c
003C .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
003C _timer0_ovf_isr::
003C 2A92 st -y,R2
003E 8A93 st -y,R24
0040 9A93 st -y,R25
0042 2FB6 in R2,0x3f
0044 2A92 st -y,R2
0046 .dbline -1
0046 .dbline 48
0046 .dbline 49
0046 2224 clr R2
0048 22BE out 0x32,R2
004A .dbline 50
004A 8091D500 lds R24,_t
004E 8F5F subi R24,255 ; addi 1
0050 8093D500 sts _t,R24
0054 .dbline 51
0054 84E6 ldi R24,100
0056 2090D500 lds R2,_t
005A 8215 cp R24,R2
005C 60F4 brsh L5
005E .dbline 52
005E .dbline 53
005E 80910000 lds R24,_t1
0062 90910100 lds R25,_t1+1
0066 0196 adiw R24,1
0068 90930100 sts _t1+1,R25
006C 80930000 sts _t1,R24
0070 .dbline 54
0070 2224 clr R2
0072 2092D500 sts _t,R2
0076 .dbline 55
0076 L5:
0076 .dbline -2
0076 .dbline 56
0076 ;
0076 ; #pragma interrupt_handler timer0_ovf_isr:10
0076 ; void timer0_ovf_isr(void)
0076 ; {
0076 ; TCNT0 = 0x00 /*INVALID SETTING*/; //reload counter value
0076 ; t++;
0076 ; if(t>100)
0076 ; {
0076 ; t1++;
0076 ; t=0;
0076 ; }
0076 ; }
0076 L4:
0076 2990 ld R2,y+
0078 2FBE out 0x3f,R2
007A 9991 ld R25,y+
007C 8991 ld R24,y+
007E 2990 ld R2,y+
0080 .dbline 0 ; func end
0080 1895 reti
0082 .dbend
0082 .dbfunc e adc_init _adc_init fV
.even
0082 _adc_init::
0082 .dbline -1
0082 .dbline 59
0082 ;
0082 ; void adc_init(void)
0082 ; {
0082 .dbline 60
0082 ; DDRC=0x77;
0082 87E7 ldi R24,119
0084 84BB out 0x14,R24
0086 .dbline 61
0086 ; PORTC=0x75;
0086 85E7 ldi R24,117
0088 85BB out 0x15,R24
008A .dbline 62
008A ; ADCSRA = 0x00; //disable adc
008A 2224 clr R2
008C 26B8 out 0x6,R2
008E .dbline 63
008E ; ADMUX = 0xC3; //select adc input 0
008E 83EC ldi R24,195
0090 87B9 out 0x7,R24
0092 .dbline 64
0092 ; ACSR = 0x80;
0092 80E8 ldi R24,128
0094 88B9 out 0x8,R24
0096 .dbline 65
0096 ; ADCSRA = 0xC6;
0096 86EC ldi R24,198
0098 86B9 out 0x6,R24
009A .dbline -2
009A .dbline 66
009A ; }
009A L7:
009A .dbline 0 ; func end
009A 0895 ret
009C .dbend
009C .dbfunc e init_devices _init_devices fV
.even
009C _init_devices::
009C .dbline -1
009C .dbline 70
009C ;
009C ; //call this routine to initialise all peripherals
009C ; void init_devices(void)
009C ; {
009C .dbline 72
009C ; //stop errant interrupts until set up
009C ; CLI(); //disable all interrupts
009C F894 cli
009E .dbline 73
009E ; port_init();
009E B0DF xcall _port_init
00A0 .dbline 74
00A0 ; uart0_init();
00A0 BCDF xcall _uart0_init
00A2 .dbline 75
00A2 ; timer0_init();
00A2 C6DF xcall _timer0_init
00A4 .dbline 76
00A4 ; adc_init();
00A4 EEDF xcall _adc_init
00A6 .dbline 78
00A6 ;
00A6 ; MCUCR = 0x00;
00A6 2224 clr R2
00A8 25BE out 0x35,R2
00AA .dbline 79
00AA ; GICR = 0x00;
00AA 2BBE out 0x3b,R2
00AC .dbline 80
00AC ; TIMSK = 0x01; //timer interrupt sources
00AC 81E0 ldi R24,1
00AE 89BF out 0x39,R24
00B0 .dbline 81
00B0 ; SEI(); //re-enable interrupts
00B0 7894 sei
00B2 .dbline -2
00B2 .dbline 83
00B2 ; //all peripherals are now initialised
00B2 ; }
00B2 L8:
00B2 .dbline 0 ; func end
00B2 0895 ret
00B4 .dbend
00B4 .dbfunc e sendchar _sendchar fV
00B4 ; data -> R16
.even
00B4 _sendchar::
00B4 .dbline -1
00B4 .dbline 87
00B4 ;
00B4 ; //send data from the UART.
00B4 ; void sendchar(unsigned char data)
00B4 ; {
00B4 L10:
00B4 .dbline 88
00B4 L11:
00B4 .dbline 88
00B4 ; while(!(UCSRA&(1<<UDRE)));
00B4 5D9B sbis 0xb,5
00B6 FECF rjmp L10
00B8 .dbline 89
00B8 ; UDR=data;
00B8 0CB9 out 0xc,R16
00BA .dbline -2
00BA .dbline 90
00BA ; }
00BA L9:
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbsym r data 16 c
00BC .dbend
00BC .dbfunc e getchar _getchar fc
.even
00BC _getchar::
00BC .dbline -1
00BC .dbline 93
00BC ; //receive data from the UART.
00BC ; unsigned char getchar(void)
00BC ; {
00BC L14:
00BC .dbline 94
00BC L15:
00BC .dbline 94
00BC ; while(!(UCSRA&(1<<RXC)));
00BC 5F9B sbis 0xb,7
00BE FECF rjmp L14
00C0 .dbline 95
00C0 ; return UDR;
00C0 0CB1 in R16,0xc
00C2 .dbline -2
00C2 L13:
00C2 .dbline 0 ; func end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -