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

📄 initial.s

📁 AVR单片机 C语言程序设计经典实用
💻 S
字号:
	.module initial.c
	.area text(rom, con, rel)
	.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\initial.c
	.dbfunc e Hardware_Init _Hardware_Init fV
	.even
_Hardware_Init::
	.dbline -1
	.dbline 23
; //***************************************************************
; // File Name : initial.c
; // Author    : Steaven
; // Created   : 2008-06-09
; // Modified  : 
; // Revision  : V0.0
; //***************************************************************
; 
; #include "app.h"
; 
; //local function(s) declaration
; void Gpio_Init(void);
; void Timer2_Init(void);
; void Interrupt_Init(void);
; 
; //***************************************************************
; // Function    : Hardware_Init
; // Input       : none
; // Output      : none
; // Description : ATmega16 Hardware Initialization
; //***************************************************************
; void Hardware_Init(void)
; {
	.dbline 24
;     Gpio_Init();
	xcall _Gpio_Init
	.dbline 25
;     Timer2_Init();
	xcall _Timer2_Init
	.dbline 26
;     Interrupt_Init();
	.dbline -2
	.dbline 27
; }
L1:
	.dbline 0 ; func end
	xjmp _Interrupt_Init
	.dbend
	.dbfunc e Gpio_Init _Gpio_Init fV
	.even
_Gpio_Init::
	.dbline -1
	.dbline 36
; 
; //***************************************************************
; // Function    : Gpio_Init
; // Input       : none
; // Output      : none
; // Description : ATmega16 GPIO Initialization
; //***************************************************************
; void Gpio_Init(void)
; {
	.dbline 37
; 	DDRA  = 0xFF;
	ldi R24,255
	out 0x1a,R24
	.dbline 38
; 	PORTA = 0x00; 
	clr R2
	out 0x1b,R2
	.dbline 39
; 	DDRB  = 0x0F;
	ldi R24,15
	out 0x17,R24
	.dbline 40
; 	PORTB = 0xF0;
	ldi R24,240
	out 0x18,R24
	.dbline 41
; 	DDRC  = 0xFF;
	ldi R24,255
	out 0x14,R24
	.dbline 42
; 	PORTC = 0x00;
	out 0x15,R2
	.dbline 43
; 	DDRD  = 0xFF;
	out 0x11,R24
	.dbline 44
; 	PORTD = 0x00;
	out 0x12,R2
	.dbline -2
	.dbline 45
; }
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Timer2_Init _Timer2_Init fV
	.even
_Timer2_Init::
	.dbline -1
	.dbline 54
; 
; //***************************************************************
; // Function    : Timer_Init
; // Input       : none
; // Output      : none
; // Description : ATmega16 Timer Initialization
; //***************************************************************
; void Timer2_Init(void)
; {
	.dbline 55
; 	ASSR  = 0x00;   //Timer2 clocked by sys clk
	clr R2
	out 0x22,R2
	.dbline 56
; 	TCCR2 = 0x47;   //1024 division,8M/1024,CTC Mode
	ldi R24,71
	out 0x25,R24
	.dbline 57
; 	TCNT2 = 0x00;   //Clear Counter
	out 0x24,R2
	.dbline 58
; 	OCR2  = 78;     //78 * 1024/8M = 10ms 
	ldi R24,78
	out 0x23,R24
	.dbline 59
; 	TIMSK |= 0x80;  //Enable OCIE2
	in R24,0x39
	ori R24,128
	out 0x39,R24
	.dbline 60
; 	TIFR  |= 0x80;  //Clear OCIF2
	in R24,0x38
	ori R24,128
	out 0x38,R24
	.dbline -2
	.dbline 61
; }
L3:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Interrupt_Init _Interrupt_Init fV
	.even
_Interrupt_Init::
	.dbline -1
	.dbline 70
; 
; //***************************************************************
; // Function    : Interrupt_Init
; // Input       : none
; // Output      : none
; // Description : ATmega16 Interrupt Initialization
; //***************************************************************
; void Interrupt_Init(void)
; {
	.dbline 71
; 	SREG |= 0x80;   //Enable Global Interrupt
	bset 7
	.dbline -2
	.dbline 72
; }
L4:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

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