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

📄 main.lis

📁 一个单片机的完整开发程序AVR的
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .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 + -