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

📄 main.lst

📁 avr单片机的一些实际应用源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
   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:
  55               		.global __do_global_ctors
  56               		.section .ctors,"a",@progbits
  57 0000 0000      		.word	pm(_GLOBAL__I__ZN8CControlC2Ev)
  58               	.global	g_oMotorCtl
  59               	.global	g_oMotorCtl
  60               		.section .bss
  63               	g_oMotorCtl:
  64 0000 00        		.skip 1,0
  65               		.text
  68               	.global	_ZN8CControlC2Ev
  70               	_ZN8CControlC2Ev:
   1:main.c        **** /*
   2:main.c        **** 	广告灯箱交流电机测试程序 
   3:main.c        **** 	main.c
   4:main.c        **** 	MCU:at90s2313
   5:main.c        **** 	时钟:4MHz
   6:main.c        **** 	
   7:main.c        **** 	佟长福 2004-09-25
   8:main.c        **** */
   9:main.c        **** 
  10:main.c        **** #include <avr/io.h>
  11:main.c        **** #include <avr/delay.h>
  12:main.c        **** 
  13:main.c        **** #define uchar unsigned char
  14:main.c        **** #define uint unsigned int
  15:main.c        **** 
  16:main.c        **** #define SET_RED_LED PORTD|=_BV(5) //PD5接红色发光管
  17:main.c        **** #define CLR_RED_LED PORTD&=~_BV(5)
  18:main.c        **** 
  19:main.c        **** #define SET_GRN_LED PORTD|=_BV(4) //PD4接绿色发光管
  20:main.c        **** #define CLR_GRN_LED PORTD&=~_BV(4)
  21:main.c        **** 
  22:main.c        **** class CControl
  23:main.c        **** {
  24:main.c        **** public:
  25:main.c        **** 	CControl();		
  26:main.c        **** public:
  27:main.c        **** 	uchar m_bCounter;
  28:main.c        **** 	
  29:main.c        **** 	void DelayMs(uint ms);
  30:main.c        **** 	void RunMotor(uchar direction);
  31:main.c        **** };
  32:main.c        **** 
  33:main.c        **** CControl::CControl()
  34:main.c        **** {
  72               	.LM1:
  73               	/* prologue: frame size=0 */
  74               	/* prologue end (size=0) */
  75 0000 F92F      		mov r31,r25
  76 0002 E82F      		mov r30,r24
  77               	.LBB2:
  35:main.c        **** 	m_bCounter=0;
  79               	.LM2:
  80 0004 1082      		st Z,__zero_reg__
  81               	.LBE2:
  82               	/* epilogue: frame size=0 */
  83 0006 0895      		ret
  84               	/* epilogue end (size=1) */
  85               	/* function CControl::CControl() size 4 (3) */
  89               	.global	_ZN8CControlC1Ev
  91               	_ZN8CControlC1Ev:
  93               	.LM3:
  94               	/* prologue: frame size=0 */
  95               	/* prologue end (size=0) */
  96 0008 F92F      		mov r31,r25
  97 000a E82F      		mov r30,r24
  98               	.LBB3:
 100               	.LM4:
 101 000c 1082      		st Z,__zero_reg__
 102               	.LBE3:
 103               	/* epilogue: frame size=0 */
 104 000e 0895      		ret
 105               	/* epilogue end (size=1) */
 106               	/* function CControl::CControl() size 4 (3) */
 111               	.global	_ZN8CControl7DelayMsEj
 113               	_ZN8CControl7DelayMsEj:
  36:main.c        **** 
  37:main.c        **** }
  38:main.c        **** 
  39:main.c        **** void CControl::RunMotor(uchar direction)
  40:main.c        **** {
  41:main.c        **** 	if(direction==1)
  42:main.c        **** 	{
  43:main.c        **** 		SET_GRN_LED;
  44:main.c        **** 		CLR_RED_LED;
  45:main.c        **** 	}
  46:main.c        **** 	else if(direction==2)
  47:main.c        **** 	{
  48:main.c        **** 		CLR_GRN_LED;
  49:main.c        **** 		SET_RED_LED;
  50:main.c        **** 	}
  51:main.c        **** 	else
  52:main.c        **** 	{
  53:main.c        **** 		CLR_GRN_LED;
  54:main.c        **** 		CLR_RED_LED;
  55:main.c        **** 	}	
  56:main.c        **** 
  57:main.c        **** 	for(uchar i=0;i<m_bCounter;i++)
  58:main.c        **** 	{
  59:main.c        **** 		while((PINB&_BV(0))==1);				
  60:main.c        **** 		while((PINB&_BV(0))==0);	
  61:main.c        **** 			
  62:main.c        **** 		if(direction==1)
  63:main.c        **** 		{
  64:main.c        **** 			PORTB|=_BV(PB3);
  65:main.c        **** 			DelayMs(2);
  66:main.c        **** 			PORTB&=~_BV(PB3);
  67:main.c        **** 		}
  68:main.c        **** 		else if(direction==2)
  69:main.c        **** 		{
  70:main.c        **** 			PORTB|=_BV(PB2);
  71:main.c        **** 			DelayMs(2);
  72:main.c        **** 			PORTB&=~_BV(PB2);
  73:main.c        **** 		}
  74:main.c        **** 		else
  75:main.c        **** 			PORTB=0;	
  76:main.c        **** 	}	
  77:main.c        **** }
  78:main.c        **** 
  79:main.c        **** void CControl::DelayMs(uint ms)
  80:main.c        **** {
 115               	.LM5:
 116               	/* prologue: frame size=0 */
 117               	/* prologue end (size=0) */
 118               	.L11:
 119               	.LBB4:
 120               	.LBB5:
  81:main.c        **** 	uint k=0;
  82:main.c        **** 	for(k=0;k<ms;k++)
 122               	.LM6:
 123 0010 6115      		cp r22,__zero_reg__
 124 0012 7105      		cpc r23,__zero_reg__
 125 0014 39F0      		breq .L10
 126               	.LBB6:
 128               	.Ltext1:
   1:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    All rights reserved.
   3:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
   4:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    Redistribution and use in source and binary forms, with or without
   5:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    modification, are permitted provided that the following conditions are met:
   6:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
   7:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    * Redistributions of source code must retain the above copyright
   8:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer.
   9:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    * Redistributions in binary form must reproduce the above copyright
  10:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer in
  11:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      the documentation and/or other materials provided with the
  12:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      distribution.
  13:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  14:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  15:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  18:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  19:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  20:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  21:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  22:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  23:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  24:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   POSSIBILITY OF SUCH DAMAGE. */
  25:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  26:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* $Id: delay.h,v 1.2.2.2 2004/02/13 21:43:37 joerg_wunsch Exp $ */
  27:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  28:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /*
  29:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    avr/delay.h - loops for small accurate delays
  30:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****  */
  31:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  32:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #ifndef _AVR_DELAY_H_
  33:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #define _AVR_DELAY_H_ 1
  34:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  35:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #include <inttypes.h>
  36:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  37:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* 8-bit count, 3 cycles/loop */
  38:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** static __inline__ void
  39:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** _delay_loop_1(uint8_t __count)
  40:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** {
  41:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	asm volatile (
  42:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		"1: dec %0" "\n\t"
  43:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		"brne 1b"
  44:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		: "=r" (__count)
  45:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		: "0" (__count)
  46:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	);
  47:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** }
  48:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  49:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* 16-bit count, 4 cycles/loop */
  50:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** static __inline__ void
  51:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** _delay_loop_2(uint16_t __count)
  52:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** {
 130               	.LM7:
 131 0016 88EE      		ldi r24,lo8(1000)
 132 0018 93E0      		ldi r25,hi8(1000)
 133               	.LBB7:
  53:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	asm volatile (
  54:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		"1: sbiw %0,1" "\n\t"
  55:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		"brne 1b"
  56:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		: "=w" (__count)
  57:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		: "0" (__count)
  58:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	);
 135               	.LM8:
 136               	/* #APP */
 137 001a 0197      		1: sbiw r24,1
 138 001c F1F7      		brne 1b
 139               	/* #NOAPP */
 140               	.LBE7:
 141               	.LBE6:
 143               	.Ltext2:
 145               	.LM9:
 146 001e 6150      		subi r22,lo8(-(-1))
 147 0020 7040      		sbci r23,hi8(-(-1))
 148 0022 F6CF      		rjmp .L11
 149               	.L10:
 150 0024 0895      		ret
 151               	.LBE5:
 152               	.LBE4:
 153               	/* epilogue: frame size=0 */
 154               	/* epilogue: noreturn */
 155               	/* epilogue end (size=0) */
 156               	/* function void CControl::DelayMs(unsigned int) size 13 (13) */
 167               	.global	_ZN8CControl8RunMotorEh
 169               	_ZN8CControl8RunMotorEh:
 171               	.LM10:
 172               	/* prologue: frame size=0 */

⌨️ 快捷键说明

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