📄 app.lis
字号:
.module app.c
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\RS232通信协议应用设计\app.c
0000 .dbfunc e Hardware_Init _Hardware_Init fV
.even
0000 _Hardware_Init::
0000 .dbline -1
0000 .dbline 25
0000 ; //***************************************************************
0000 ; // File Name : app.c
0000 ; // Author : Steaven
0000 ; // Created : 2008-06-09
0000 ; // Modified :
0000 ; // Revision : V0.0
0000 ; //***************************************************************
0000 ;
0000 ; #include "includes.h"
0000 ;
0000 ; //local function declaration
0000 ; void Gpio_Init(void);
0000 ; void Timer0_Init(void);
0000 ; void Timer1_Init(void);
0000 ; void Interrupt_Init(void);
0000 ; void Adc_Init(void);
0000 ;
0000 ; //***************************************************************
0000 ; // Function : Hardware_Init
0000 ; // Input : none
0000 ; // Output : none
0000 ; // Description : ATmega16 Hardware Initialization
0000 ; //***************************************************************
0000 ; void Hardware_Init(void)
0000 ; {
0000 .dbline 26
0000 ; Gpio_Init();
0000 04D0 xcall _Gpio_Init
0002 .dbline 27
0002 ; Adc_Init();
0002 25D0 xcall _Adc_Init
0004 .dbline 28
0004 ; Timer0_Init();
0004 0CD0 xcall _Timer0_Init
0006 .dbline 29
0006 ; Timer1_Init();
0006 18D0 xcall _Timer1_Init
0008 .dbline 30
0008 ; Interrupt_Init();
0008 .dbline -2
0008 .dbline 31
0008 ; }
0008 L1:
0008 .dbline 0 ; func end
0008 27C0 xjmp _Interrupt_Init
000A .dbend
000A .dbfunc e Gpio_Init _Gpio_Init fV
.even
000A _Gpio_Init::
000A .dbline -1
000A .dbline 40
000A ;
000A ; //***************************************************************
000A ; // Function : Gpio_Init
000A ; // Input : none
000A ; // Output : none
000A ; // Description : ATmega16 GPIO Initialization
000A ; //***************************************************************
000A ; void Gpio_Init(void)
000A ; {
000A .dbline 41
000A ; DDRA = 0x00; //PortA - Input without internal pull-up
000A 2224 clr R2
000C 2ABA out 0x1a,R2
000E .dbline 42
000E ; PORTA = 0x00;
000E 2BBA out 0x1b,R2
0010 .dbline 43
0010 ; DDRB = 0x00; //PortB - Input without internal pull-up
0010 27BA out 0x17,R2
0012 .dbline 44
0012 ; PORTB = 0x00;
0012 28BA out 0x18,R2
0014 .dbline 45
0014 ; DDRC = 0x00; //PortC - Input without internal pull-up
0014 24BA out 0x14,R2
0016 .dbline 46
0016 ; PORTC = 0x00;
0016 25BA out 0x15,R2
0018 .dbline 47
0018 ; DDRD = 0x00; //PortD - Input without internal upll-up
0018 21BA out 0x11,R2
001A .dbline 48
001A ; PORTD = 0x00;
001A 22BA out 0x12,R2
001C .dbline -2
001C .dbline 49
001C ; }
001C L2:
001C .dbline 0 ; func end
001C 0895 ret
001E .dbend
001E .dbfunc e Timer0_Init _Timer0_Init fV
.even
001E _Timer0_Init::
001E .dbline -1
001E .dbline 58
001E ;
001E ; //***************************************************************
001E ; // Function : Timer0_Init
001E ; // Input : none
001E ; // Output : none
001E ; // Description : ATmega16 Timer0 Initialization,10ms Interval
001E ; //***************************************************************
001E ; void Timer0_Init(void)
001E ; {
001E .dbline 59
001E ; TCCR0 = 0x0B; //64 division,8M/64,CTC Mode
001E 8BE0 ldi R24,11
0020 83BF out 0x33,R24
0022 .dbline 60
0022 ; TCNT0 = 0x00; //Clear Counter
0022 2224 clr R2
0024 22BE out 0x32,R2
0026 .dbline 61
0026 ; OCR0 = 63; //125 * 64/8M = 1ms/1kHz
0026 8FE3 ldi R24,63
0028 8CBF out 0x3c,R24
002A .dbline 62
002A ; TIMSK |= 0x02; //Enable OCIE0
002A 89B7 in R24,0x39
002C 8260 ori R24,2
002E 89BF out 0x39,R24
0030 .dbline 63
0030 ; TIFR |= 0x02; //Clear OCIF0
0030 88B7 in R24,0x38
0032 8260 ori R24,2
0034 88BF out 0x38,R24
0036 .dbline -2
0036 .dbline 64
0036 ; }
0036 L3:
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbend
0038 .dbfunc e Timer1_Init _Timer1_Init fV
.even
0038 _Timer1_Init::
0038 .dbline -1
0038 .dbline 73
0038 ;
0038 ; //***************************************************************
0038 ; // Function : Timer1_Init
0038 ; // Input : none
0038 ; // Output : none
0038 ; // Description : ATmega16 Timer1 Initialization,capture enabled
0038 ; //***************************************************************
0038 ; void Timer1_Init(void)
0038 ; {
0038 .dbline 74
0038 ; TCCR1A = 0x00; //Normal Mode
0038 2224 clr R2
003A 2FBC out 0x2f,R2
003C .dbline 75
003C ; TCCR1B = 0x82; //8 division,rising-edge capture
003C 82E8 ldi R24,130
003E 8EBD out 0x2e,R24
0040 .dbline 76
0040 ; TIMSK |= 0x20; //Enbale Input Capture Interrupt.
0040 89B7 in R24,0x39
0042 8062 ori R24,32
0044 89BF out 0x39,R24
0046 .dbline 77
0046 ; TIFR |= 0x20; //Clear TIFR Interrupt Flag.
0046 88B7 in R24,0x38
0048 8062 ori R24,32
004A 88BF out 0x38,R24
004C .dbline -2
004C .dbline 78
004C ; }
004C L4:
004C .dbline 0 ; func end
004C 0895 ret
004E .dbend
004E .dbfunc e Adc_Init _Adc_Init fV
.even
004E _Adc_Init::
004E .dbline -1
004E .dbline 87
004E ;
004E ; //***************************************************************
004E ; // Function : Adc_Init
004E ; // Input : none
004E ; // Output : none
004E ; // Description : ATmega16 ADC Initialization,free run
004E ; //***************************************************************
004E ; void Adc_Init(void)
004E ; {
004E .dbline 88
004E ; ADMUX = 0x00; //Select CH_0
004E 2224 clr R2
0050 27B8 out 0x7,R2
0052 .dbline 89
0052 ; ADCSRA = 0xE0; //Automatic Conversion
0052 80EE ldi R24,224
0054 86B9 out 0x6,R24
0056 .dbline -2
0056 .dbline 90
0056 ; }
0056 L5:
0056 .dbline 0 ; func end
0056 0895 ret
0058 .dbend
0058 .dbfunc e Interrupt_Init _Interrupt_Init fV
.even
0058 _Interrupt_Init::
0058 .dbline -1
0058 .dbline 99
0058 ;
0058 ; //***************************************************************
0058 ; // Function : Interrupt_Init
0058 ; // Input : none
0058 ; // Output : none
0058 ; // Description : ATmega16 Interrupt Initialization
0058 ; //***************************************************************
0058 ; void Interrupt_Init(void)
0058 ; {
0058 .dbline 100
0058 ; SREG |= 0x80; //Enable Global Interrupt
0058 7894 bset 7
005A .dbline -2
005A .dbline 101
005A ; }
005A L6:
005A .dbline 0 ; func end
005A 0895 ret
005C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -