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

📄 main.lst

📁 单片机源代码
💻 LST
字号:
   1               		.file	"main.c"
   2               		.arch atmega8
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  68               		.lcomm g_nAdValue,2
  70               	.global	__vector_14
  72               	__vector_14:
   1:main.c        **** /*
   2:main.c        **** 	Mega8 中断方式 A/D 转换测试程序
   3:main.c        **** 	main.c
   4:main.c        **** 	MCU:atmega8
   5:main.c        **** 	编译:WinAVR-20040720
   6:main.c        **** 	
   7:main.c        **** 	
   8:main.c        **** 	芯艺 2004-09-19
   9:main.c        **** */
  10:main.c        **** 
  11:main.c        **** #include <avr/io.h>
  12:main.c        **** #include <avr/interrupt.h>
  13:main.c        **** #include <avr/signal.h>
  14:main.c        **** #include <avr/delay.h>
  15:main.c        **** #include <stdio.h>
  16:main.c        **** 
  17:main.c        **** #define uchar unsigned char
  18:main.c        **** #define uint  unsigned int
  19:main.c        **** 
  20:main.c        **** static uint g_nAdValue=0;		
  21:main.c        **** 
  22:main.c        **** void IoInit(void);
  23:main.c        **** 
  24:main.c        **** //AD转换完成中断
  25:main.c        **** SIGNAL(SIG_ADC)
  26:main.c        **** {
  74               	.LM1:
  75               	/* prologue: frame size=0 */
  76 0000 1F92      		push __zero_reg__
  77 0002 0F92      		push __tmp_reg__
  78 0004 0FB6      		in __tmp_reg__,__SREG__
  79 0006 0F92      		push __tmp_reg__
  80 0008 1124      		clr __zero_reg__
  81 000a 2F93      		push r18
  82 000c 3F93      		push r19
  83 000e 8F93      		push r24
  84 0010 9F93      		push r25
  85               	/* prologue end (size=9) */
  27:main.c        **** 	g_nAdValue=ADCL;
  87               	.LM2:
  88 0012 84B1      		in r24,36-0x20
  89 0014 282F      		mov r18,r24
  90 0016 3327      		clr r19
  28:main.c        **** 	g_nAdValue|=(uint)(ADCH<<8);		
  92               	.LM3:
  93 0018 85B1      		in r24,37-0x20
  94 001a 9927      		clr r25
  95 001c 982F      		mov r25,r24
  96 001e 8827      		clr r24
  97 0020 282B      		or r18,r24
  98 0022 392B      		or r19,r25
  99 0024 3093 0000 		sts (g_nAdValue)+1,r19
 100 0028 2093 0000 		sts g_nAdValue,r18
  29:main.c        **** }
 102               	.LM4:
 103               	/* epilogue: frame size=0 */
 104 002c 9F91      		pop r25
 105 002e 8F91      		pop r24
 106 0030 3F91      		pop r19
 107 0032 2F91      		pop r18
 108 0034 0F90      		pop __tmp_reg__
 109 0036 0FBE      		out __SREG__,__tmp_reg__
 110 0038 0F90      		pop __tmp_reg__
 111 003a 1F90      		pop __zero_reg__
 112 003c 1895      		reti
 113               	/* epilogue end (size=9) */
 114               	/* function __vector_14 size 31 (13) */
 116               		.data
 117               	.LC0:
 118 0000 2564 0A00 		.string	"%d\n"
 119               		.text
 121               	.global	main
 123               	main:
  30:main.c        **** 
  31:main.c        **** 
  32:main.c        **** int main(void)
  33:main.c        **** {
 125               	.LM5:
 126               	/* prologue: frame size=0 */
 127 003e C0E0      		ldi r28,lo8(__stack - 0)
 128 0040 D0E0      		ldi r29,hi8(__stack - 0)
 129 0042 DEBF      		out __SP_H__,r29
 130 0044 CDBF      		out __SP_L__,r28
 131               	/* prologue end (size=4) */
  34:main.c        **** 	uchar i;
  35:main.c        **** 	
  36:main.c        **** 	//内部2.56V参考电压,0通道
  37:main.c        **** 	ADMUX=0Xc0;
 133               	.LM6:
 134               	.LBB2:
 135 0046 80EC      		ldi r24,lo8(-64)
 136 0048 87B9      		out 39-0x20,r24
  38:main.c        **** 	
  39:main.c        **** 	//使能ADC,中断允许,自由模式, 时钟:ck/8
  40:main.c        **** 	ADCSRA=_BV(ADEN)|_BV(ADIE)|_BV(ADFR)|_BV(ADPS1)|_BV(ADPS0);
 138               	.LM7:
 139 004a 8BEA      		ldi r24,lo8(-85)
 140 004c 86B9      		out 38-0x20,r24
  41:main.c        **** 	
  42:main.c        **** 	IoInit();//标准输入/输出初始化
 142               	.LM8:
 143 004e 00D0      		rcall IoInit
  43:main.c        **** 	
  44:main.c        **** 	ADCSRA|=_BV(ADSC);//自由模式开始转换
 145               	.LM9:
 146 0050 369A      		sbi 38-0x20,6
 147               	.L12:
  45:main.c        **** 	
  46:main.c        **** 	while(1)
  47:main.c        **** 	{
  48:main.c        **** 		//延时
  49:main.c        **** 		for(i=0;i<100;i++)
 149               	.LM10:
 150 0052 20E0      		ldi r18,lo8(0)
 151               	.L11:
 153               	.Ltext1:
   1:C:/WinAVR/avr/include/avr/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:C:/WinAVR/avr/include/avr/delay.h ****    All rights reserved.
   3:C:/WinAVR/avr/include/avr/delay.h **** 
   4:C:/WinAVR/avr/include/avr/delay.h ****    Redistribution and use in source and binary forms, with or without
   5:C:/WinAVR/avr/include/avr/delay.h ****    modification, are permitted provided that the following conditions are met:
   6:C:/WinAVR/avr/include/avr/delay.h **** 
   7:C:/WinAVR/avr/include/avr/delay.h ****    * Redistributions of source code must retain the above copyright
   8:C:/WinAVR/avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer.
   9:C:/WinAVR/avr/include/avr/delay.h ****    * Redistributions in binary form must reproduce the above copyright
  10:C:/WinAVR/avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer in
  11:C:/WinAVR/avr/include/avr/delay.h ****      the documentation and/or other materials provided with the
  12:C:/WinAVR/avr/include/avr/delay.h ****      distribution.
  13:C:/WinAVR/avr/include/avr/delay.h **** 
  14:C:/WinAVR/avr/include/avr/delay.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  15:C:/WinAVR/avr/include/avr/delay.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16:C:/WinAVR/avr/include/avr/delay.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17:C:/WinAVR/avr/include/avr/delay.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  18:C:/WinAVR/avr/include/avr/delay.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  19:C:/WinAVR/avr/include/avr/delay.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  20:C:/WinAVR/avr/include/avr/delay.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  21:C:/WinAVR/avr/include/avr/delay.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  22:C:/WinAVR/avr/include/avr/delay.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  23:C:/WinAVR/avr/include/avr/delay.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  24:C:/WinAVR/avr/include/avr/delay.h ****   POSSIBILITY OF SUCH DAMAGE. */
  25:C:/WinAVR/avr/include/avr/delay.h **** 
  26:C:/WinAVR/avr/include/avr/delay.h **** /* $Id: delay.h,v 1.2 2002/12/12 11:41:01 joerg_wunsch Exp $ */
  27:C:/WinAVR/avr/include/avr/delay.h **** 
  28:C:/WinAVR/avr/include/avr/delay.h **** /*
  29:C:/WinAVR/avr/include/avr/delay.h ****    avr/delay.h - loops for small accurate delays
  30:C:/WinAVR/avr/include/avr/delay.h ****  */
  31:C:/WinAVR/avr/include/avr/delay.h **** 
  32:C:/WinAVR/avr/include/avr/delay.h **** #ifndef _AVR_DELAY_H_
  33:C:/WinAVR/avr/include/avr/delay.h **** #define _AVR_DELAY_H_ 1
  34:C:/WinAVR/avr/include/avr/delay.h **** 
  35:C:/WinAVR/avr/include/avr/delay.h **** /* 8-bit count, 3 cycles/loop */
  36:C:/WinAVR/avr/include/avr/delay.h **** static inline void
  37:C:/WinAVR/avr/include/avr/delay.h **** _delay_loop_1(unsigned char __count)
  38:C:/WinAVR/avr/include/avr/delay.h **** {
  39:C:/WinAVR/avr/include/avr/delay.h **** 	asm volatile (
  40:C:/WinAVR/avr/include/avr/delay.h **** 		"1: dec %0" "\n\t"
  41:C:/WinAVR/avr/include/avr/delay.h **** 		"brne 1b"
  42:C:/WinAVR/avr/include/avr/delay.h **** 		: "=r" (__count)
  43:C:/WinAVR/avr/include/avr/delay.h **** 		: "0" (__count)
  44:C:/WinAVR/avr/include/avr/delay.h **** 	);
  45:C:/WinAVR/avr/include/avr/delay.h **** }
  46:C:/WinAVR/avr/include/avr/delay.h **** 
  47:C:/WinAVR/avr/include/avr/delay.h **** /* 16-bit count, 4 cycles/loop */
  48:C:/WinAVR/avr/include/avr/delay.h **** static inline void
  49:C:/WinAVR/avr/include/avr/delay.h **** _delay_loop_2(unsigned int __count)
  50:C:/WinAVR/avr/include/avr/delay.h **** {
 155               	.LM11:
 156               	.LBB3:
 157 0054 80E1      		ldi r24,lo8(10000)
 158 0056 97E2      		ldi r25,hi8(10000)
  51:C:/WinAVR/avr/include/avr/delay.h **** 	asm volatile (
 160               	.LM12:
 161               	/* #APP */
 162 0058 0197      		1: sbiw r24,1
 163 005a F1F7      		brne 1b
 165               	.Ltext2:
 167               	.LM13:
 168               	/* #NOAPP */
 169               	.LBE3:
 170 005c 2F5F      		subi r18,lo8(-(1))
 171 005e 2436      		cpi r18,lo8(100)
 172 0060 C8F3      		brlo .L11
  50:main.c        **** 			_delay_loop_2(4 * 250 * 10);//10ms
  51:main.c        **** 			
  52:main.c        **** 		cli();
 174               	.LM14:
 175               	/* #APP */
 176 0062 F894      		cli
  53:main.c        **** 		printf("%d\n",g_nAdValue);
 178               	.LM15:
 179               	/* #NOAPP */
 180 0064 8091 0000 		lds r24,g_nAdValue
 181 0068 9091 0000 		lds r25,(g_nAdValue)+1
 182 006c 9F93      		push r25
 183 006e 8F93      		push r24
 184 0070 80E0      		ldi r24,lo8(.LC0)
 185 0072 90E0      		ldi r25,hi8(.LC0)
 186 0074 9F93      		push r25
 187 0076 8F93      		push r24
 188 0078 00D0      		rcall printf
  54:main.c        **** 		sei();
 190               	.LM16:
 191               	/* #APP */
 192 007a 7894      		sei
 193               	/* #NOAPP */
 194 007c 0F90      		pop __tmp_reg__
 195 007e 0F90      		pop __tmp_reg__
 196 0080 0F90      		pop __tmp_reg__
 197 0082 0F90      		pop __tmp_reg__
 198 0084 E6CF      		rjmp .L12
  55:main.c        **** 	}
  56:main.c        **** }
 200               	.LM17:
 201               	.LBE2:
 202               	/* epilogue: frame size=0 */
 203               	/* epilogue: noreturn */
 204               	/* epilogue end (size=0) */
 205               	/* function main size 40 (36) */
 214               		.text
 216               	Letext:
 217               	/* File "main.c": code   71 = 0x0047 (  49), prologues  13, epilogues   9 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
                             .bss:00000000 g_nAdValue
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8waaaa.s:72     .text:00000000 __vector_14
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8waaaa.s:123    .text:0000003e main
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cc8waaaa.s:216    .text:00000086 Letext
                            *ABS*:00000000 *ABS*

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
IoInit
printf

⌨️ 快捷键说明

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