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

📄 main.lst

📁 avr单片机的一些实际应用源码
💻 LST
字号:
   1               		.file	"main.c"
   2               		.arch at90s2313
   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:
  47               	.global	DelayMs
  49               	DelayMs:
   1:main.c        **** /*
   2:main.c        **** 	Watchdog测试程序 
   3:main.c        **** 	main.c
   4:main.c        **** 	MCU:AT90S2313
   5:main.c        **** 	时钟:4MHz
   6:main.c        **** 	
   7:main.c        **** 	芯艺 2004-09-18
   8:main.c        **** */
   9:main.c        **** 
  10:main.c        **** #include <avr/io.h>
  11:main.c        **** #include <avr/wdt.h>
  12:main.c        **** #include <avr/delay.h>
  13:main.c        **** 
  14:main.c        **** #define uchar unsigned char
  15:main.c        **** #define uint unsigned int
  16:main.c        **** 
  17:main.c        **** #define CLR_LED PORTD&=0XEF //PD4接发光管
  18:main.c        **** #define SET_LED PORTD|=0X10
  19:main.c        **** 
  20:main.c        **** 
  21:main.c        **** //误差不会太大的延时1ms函数  
  22:main.c        **** void DelayMs(uint ms)
  23:main.c        **** {
  51               	.LM1:
  52               	/* prologue: frame size=0 */
  53               	/* prologue end (size=0) */
  54 0000 482F      		mov r20,r24
  55 0002 592F      		mov r21,r25
  24:main.c        **** 	uint i;
  25:main.c        **** 	for(i=0;i<ms;i++)
  57               	.LM2:
  58               	.LBB2:
  59 0004 20E0      		ldi r18,lo8(0)
  60 0006 30E0      		ldi r19,hi8(0)
  61 0008 2817      		cp r18,r24
  62 000a 3907      		cpc r19,r25
  63 000c 48F4      		brsh .L9
  64               	.L7:
  26:main.c        **** 		_delay_loop_2(4 *250);
  66               	.LM3:
  68               	.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 **** {
  70               	.LM4:
  71               	.LBB3:
  72 000e 88EE      		ldi r24,lo8(1000)
  73 0010 93E0      		ldi r25,hi8(1000)
  51:C:/WinAVR/avr/include/avr/delay.h **** 	asm volatile (
  75               	.LM5:
  76               	/* #APP */
  77 0012 0197      		1: sbiw r24,1
  78 0014 F1F7      		brne 1b
  80               	.Ltext2:
  82               	.LM6:
  83               	/* #NOAPP */
  84               	.LBE3:
  85 0016 2F5F      		subi r18,lo8(-(1))
  86 0018 3F4F      		sbci r19,hi8(-(1))
  87 001a 2417      		cp r18,r20
  88 001c 3507      		cpc r19,r21
  89 001e B8F3      		brlo .L7
  90               	.L9:
  27:main.c        **** }
  92               	.LM7:
  93 0020 0895      		ret
  94               	.LBE2:
  95               	/* epilogue: frame size=0 */
  96               	/* epilogue: noreturn */
  97               	/* epilogue end (size=0) */
  98               	/* function DelayMs size 19 (19) */
 107               	.global	main
 109               	main:
  28:main.c        **** 
  29:main.c        **** int main(void)
  30:main.c        **** {
 111               	.LM8:
 112               	/* prologue: frame size=0 */
 113 0022 C0E0      		ldi r28,lo8(__stack - 0)
 114 0024 D0E0      		ldi r29,hi8(__stack - 0)
 115 0026 DEBF      		out __SP_H__,r29
 116 0028 CDBF      		out __SP_L__,r28
 117               	/* prologue end (size=4) */
  31:main.c        **** 	DDRD=0X10;
 119               	.LM9:
 120 002a 80E1      		ldi r24,lo8(16)
 121 002c 81BB      		out 49-0x20,r24
  32:main.c        **** 	PORTD=0X10; 
 123               	.LM10:
 124 002e 82BB      		out 50-0x20,r24
  33:main.c        **** 	
  34:main.c        **** 	wdt_enable(WDTO_1S);
 126               	.LM11:
 127 0030 88E1      		ldi r24,lo8(24)
 128 0032 90E0      		ldi r25,hi8(24)
 129 0034 2EE0      		ldi r18,lo8(14)
 130               	/* #APP */
 131 0036 0FB6      		in __tmp_reg__,__SREG__
 132 0038 F894      		cli
 133 003a A895      		wdr
 134 003c 81BD      		out 33,r24
 135 003e 0FBE      		out __SREG__,__tmp_reg__
 136 0040 21BD      		out 33,r18
  35:main.c        **** 	wdt_reset();
 138               	.LM12:
 139 0042 A895      		wdr
  36:main.c        **** 	
  37:main.c        **** 	DelayMs(500);
 141               	.LM13:
 142               	/* #NOAPP */
 143 0044 84EF      		ldi r24,lo8(500)
 144 0046 91E0      		ldi r25,hi8(500)
 145 0048 DBDF      		rcall DelayMs
  38:main.c        **** 	
  39:main.c        **** 	CLR_LED;
 147               	.LM14:
 148 004a 9498      		cbi 50-0x20,4
  40:main.c        **** 	
  41:main.c        **** 	DelayMs(5000);
 150               	.LM15:
 151 004c 88E8      		ldi r24,lo8(5000)
 152 004e 93E1      		ldi r25,hi8(5000)
 153 0050 D7DF      		rcall DelayMs
  42:main.c        **** 		
  43:main.c        **** 	SET_LED;
 155               	.LM16:
 156 0052 949A      		sbi 50-0x20,4
  44:main.c        **** 	while(1);
 158               	.LM17:
 159               	.L14:
 160 0054 FFCF      		rjmp .L14
  45:main.c        **** }...
 162               	.LM18:
 163               	/* epilogue: frame size=0 */
 164               	/* epilogue: noreturn */
 165               	/* epilogue end (size=0) */
 166               	/* function main size 33 (29) */
 168               		.text
 170               	Letext:
 171               	/* File "main.c": code   52 = 0x0034 (  48), prologues   4, epilogues   0 */
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__
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGuaaaa.s:49     .text:00000000 DelayMs
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGuaaaa.s:109    .text:00000022 main
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGuaaaa.s:170    .text:00000056 Letext
                            *ABS*:00000000 *ABS*

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

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