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

📄 disp.lst

📁 winAVR编写的MEGA16内部EEPROM读写程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 266 00dc CDBF      		out __SP_L__,r28
 267               	/* prologue end (size=10) */
 268 00de 9A83      		std Y+2,r25
 269 00e0 8983      		std Y+1,r24
  83:disp.c        **** 	uint8_t i;
  84:disp.c        **** 	for(i=0;i<8;i++)
 271               	.LM21:
 272 00e2 1B82      		std Y+3,__zero_reg__
 273               	.L9:
 275               	.LM22:
 276 00e4 8B81      		ldd r24,Y+3
 277 00e6 8830      		cpi r24,lo8(8)
 278 00e8 08F0      		brlo .+2
 279 00ea C8C0      		rjmp .L8
  85:disp.c        **** 	{
  86:disp.c        **** 		DispSel(i);
 281               	.LM23:
 282 00ec 8091 3B00 		lds r24,59
 283 00f0 282F      		mov r18,r24
 284 00f2 2F71      		andi r18,lo8(31)
 285 00f4 8B81      		ldd r24,Y+3
 286 00f6 9927      		clr r25
 287 00f8 880F      		lsl r24
 288 00fa 991F      		rol r25
 289 00fc 8295      		swap r24
 290 00fe 9295      		swap r25
 291 0100 907F      		andi r25,0xf0
 292 0102 9827      		eor r25,r24
 293 0104 807F      		andi r24,0xf0
 294 0106 9827      		eor r25,r24
 295 0108 822B      		or r24,r18
 296 010a 8093 3B00 		sts 59,r24
  87:disp.c        **** 		if(i==4)_delay_ms(1);
 298               	.LM24:
 299 010e 8B81      		ldd r24,Y+3
 300 0110 8430      		cpi r24,lo8(4)
 301 0112 09F0      		breq .+2
 302 0114 4EC0      		rjmp .L12
 303               	.LBB2:
 305               	.Ltext1:
   1:C:/WinAVR/avr/include/util/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:C:/WinAVR/avr/include/util/delay.h ****    Copyright (c) 2004,2005 Joerg Wunsch
   3:C:/WinAVR/avr/include/util/delay.h ****    All rights reserved.
   4:C:/WinAVR/avr/include/util/delay.h **** 
   5:C:/WinAVR/avr/include/util/delay.h ****    Redistribution and use in source and binary forms, with or without
   6:C:/WinAVR/avr/include/util/delay.h ****    modification, are permitted provided that the following conditions are met:
   7:C:/WinAVR/avr/include/util/delay.h **** 
   8:C:/WinAVR/avr/include/util/delay.h ****    * Redistributions of source code must retain the above copyright
   9:C:/WinAVR/avr/include/util/delay.h ****      notice, this list of conditions and the following disclaimer.
  10:C:/WinAVR/avr/include/util/delay.h **** 
  11:C:/WinAVR/avr/include/util/delay.h ****    * Redistributions in binary form must reproduce the above copyright
  12:C:/WinAVR/avr/include/util/delay.h ****      notice, this list of conditions and the following disclaimer in
  13:C:/WinAVR/avr/include/util/delay.h ****      the documentation and/or other materials provided with the
  14:C:/WinAVR/avr/include/util/delay.h ****      distribution.
  15:C:/WinAVR/avr/include/util/delay.h **** 
  16:C:/WinAVR/avr/include/util/delay.h ****    * Neither the name of the copyright holders nor the names of
  17:C:/WinAVR/avr/include/util/delay.h ****      contributors may be used to endorse or promote products derived
  18:C:/WinAVR/avr/include/util/delay.h ****      from this software without specific prior written permission.
  19:C:/WinAVR/avr/include/util/delay.h **** 
  20:C:/WinAVR/avr/include/util/delay.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21:C:/WinAVR/avr/include/util/delay.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22:C:/WinAVR/avr/include/util/delay.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23:C:/WinAVR/avr/include/util/delay.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  24:C:/WinAVR/avr/include/util/delay.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25:C:/WinAVR/avr/include/util/delay.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26:C:/WinAVR/avr/include/util/delay.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27:C:/WinAVR/avr/include/util/delay.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28:C:/WinAVR/avr/include/util/delay.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29:C:/WinAVR/avr/include/util/delay.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30:C:/WinAVR/avr/include/util/delay.h ****   POSSIBILITY OF SUCH DAMAGE. */
  31:C:/WinAVR/avr/include/util/delay.h **** 
  32:C:/WinAVR/avr/include/util/delay.h **** /* $Id: delay.h,v 1.1.2.1 2005/12/12 23:19:49 joerg_wunsch Exp $ */
  33:C:/WinAVR/avr/include/util/delay.h **** 
  34:C:/WinAVR/avr/include/util/delay.h **** #ifndef _UTIL_DELAY_H_
  35:C:/WinAVR/avr/include/util/delay.h **** #define _UTIL_DELAY_H_ 1
  36:C:/WinAVR/avr/include/util/delay.h **** 
  37:C:/WinAVR/avr/include/util/delay.h **** #include <inttypes.h>
  38:C:/WinAVR/avr/include/util/delay.h **** 
  39:C:/WinAVR/avr/include/util/delay.h **** /** \defgroup util_delay <util/delay.h>: Busy-wait delay loops
  40:C:/WinAVR/avr/include/util/delay.h ****     \code
  41:C:/WinAVR/avr/include/util/delay.h ****     #define F_CPU 1000000UL  // 1 MHz
  42:C:/WinAVR/avr/include/util/delay.h ****     //#define F_CPU 14.7456E6
  43:C:/WinAVR/avr/include/util/delay.h ****     #include <util/delay.h>
  44:C:/WinAVR/avr/include/util/delay.h ****     \endcode
  45:C:/WinAVR/avr/include/util/delay.h **** 
  46:C:/WinAVR/avr/include/util/delay.h ****     \note As an alternative method, it is possible to pass the
  47:C:/WinAVR/avr/include/util/delay.h ****     F_CPU macro down to the compiler from the Makefile.
  48:C:/WinAVR/avr/include/util/delay.h ****     Obviously, in that case, no \c \#define statement should be
  49:C:/WinAVR/avr/include/util/delay.h ****     used.
  50:C:/WinAVR/avr/include/util/delay.h **** 
  51:C:/WinAVR/avr/include/util/delay.h ****     The functions in this header file implement simple delay loops
  52:C:/WinAVR/avr/include/util/delay.h ****     that perform a busy-waiting.  They are typically used to
  53:C:/WinAVR/avr/include/util/delay.h ****     facilitate short delays in the program execution.  They are
  54:C:/WinAVR/avr/include/util/delay.h ****     implemented as count-down loops with a well-known CPU cycle
  55:C:/WinAVR/avr/include/util/delay.h ****     count per loop iteration.  As such, no other processing can
  56:C:/WinAVR/avr/include/util/delay.h ****     occur simultaneously.  It should be kept in mind that the
  57:C:/WinAVR/avr/include/util/delay.h ****     functions described here do not disable interrupts.
  58:C:/WinAVR/avr/include/util/delay.h **** 
  59:C:/WinAVR/avr/include/util/delay.h ****     In general, for long delays, the use of hardware timers is
  60:C:/WinAVR/avr/include/util/delay.h ****     much preferrable, as they free the CPU, and allow for
  61:C:/WinAVR/avr/include/util/delay.h ****     concurrent processing of other events while the timer is
  62:C:/WinAVR/avr/include/util/delay.h ****     running.  However, in particular for very short delays, the
  63:C:/WinAVR/avr/include/util/delay.h ****     overhead of setting up a hardware timer is too much compared
  64:C:/WinAVR/avr/include/util/delay.h ****     to the overall delay time.
  65:C:/WinAVR/avr/include/util/delay.h **** 
  66:C:/WinAVR/avr/include/util/delay.h ****     Two inline functions are provided for the actual delay algorithms.
  67:C:/WinAVR/avr/include/util/delay.h **** 
  68:C:/WinAVR/avr/include/util/delay.h ****     Two wrapper functions allow the specification of microsecond, and
  69:C:/WinAVR/avr/include/util/delay.h ****     millisecond delays directly, using the application-supplied macro
  70:C:/WinAVR/avr/include/util/delay.h ****     F_CPU as the CPU clock frequency (in Hertz).  These functions
  71:C:/WinAVR/avr/include/util/delay.h ****     operate on double typed arguments, however when optimization is
  72:C:/WinAVR/avr/include/util/delay.h ****     turned on, the entire floating-point calculation will be done at
  73:C:/WinAVR/avr/include/util/delay.h ****     compile-time.
  74:C:/WinAVR/avr/include/util/delay.h **** 
  75:C:/WinAVR/avr/include/util/delay.h ****     \note When using _delay_us() and _delay_ms(), the expressions
  76:C:/WinAVR/avr/include/util/delay.h ****     passed as arguments to these functions shall be compile-time
  77:C:/WinAVR/avr/include/util/delay.h ****     constants, otherwise the floating-point calculations to setup the
  78:C:/WinAVR/avr/include/util/delay.h ****     loops will be done at run-time, thereby drastically increasing
  79:C:/WinAVR/avr/include/util/delay.h ****     both the resulting code size, as well as the time required to
  80:C:/WinAVR/avr/include/util/delay.h ****     setup the loops.
  81:C:/WinAVR/avr/include/util/delay.h **** */
  82:C:/WinAVR/avr/include/util/delay.h **** 
  83:C:/WinAVR/avr/include/util/delay.h **** #if !defined(__DOXYGEN__)
  84:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
  85:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
  86:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_us(double __us) __attribute__((always_inline));
  87:C:/WinAVR/avr/include/util/delay.h **** static inline void _delay_ms(double __ms) __attribute__((always_inline));
  88:C:/WinAVR/avr/include/util/delay.h **** #endif
  89:C:/WinAVR/avr/include/util/delay.h **** 
  90:C:/WinAVR/avr/include/util/delay.h **** /** \ingroup util_delay
  91:C:/WinAVR/avr/include/util/delay.h **** 
  92:C:/WinAVR/avr/include/util/delay.h ****     Delay loop using an 8-bit counter \c __count, so up to 256
  93:C:/WinAVR/avr/include/util/delay.h ****     iterations are possible.  (The value 256 would have to be passed
  94:C:/WinAVR/avr/include/util/delay.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  95:C:/WinAVR/avr/include/util/delay.h ****     including the overhead the compiler needs to setup the counter
  96:C:/WinAVR/avr/include/util/delay.h ****     register.
  97:C:/WinAVR/avr/include/util/delay.h **** 
  98:C:/WinAVR/avr/include/util/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  99:C:/WinAVR/avr/include/util/delay.h ****     can be achieved.
 100:C:/WinAVR/avr/include/util/delay.h **** */
 101:C:/WinAVR/avr/include/util/delay.h **** void
 102:C:/WinAVR/avr/include/util/delay.h **** _delay_loop_1(uint8_t __count)
 103:C:/WinAVR/avr/include/util/delay.h **** {
 104:C:/WinAVR/avr/include/util/delay.h **** 	__asm__ volatile (
 105:C:/WinAVR/avr/include/util/delay.h **** 		"1: dec %0" "\n\t"
 106:C:/WinAVR/avr/include/util/delay.h **** 		"brne 1b"
 107:C:/WinAVR/avr/include/util/delay.h **** 		: "=r" (__count)
 108:C:/WinAVR/avr/include/util/delay.h **** 		: "0" (__count)
 109:C:/WinAVR/avr/include/util/delay.h **** 	);
 110:C:/WinAVR/avr/include/util/delay.h **** }
 111:C:/WinAVR/avr/include/util/delay.h **** 
 112:C:/WinAVR/avr/include/util/delay.h **** /** \ingroup util_delay
 113:C:/WinAVR/avr/include/util/delay.h **** 
 114:C:/WinAVR/avr/include/util/delay.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
 115:C:/WinAVR/avr/include/util/delay.h ****     iterations are possible.  (The value 65536 would have to be
 116:C:/WinAVR/avr/include/util/delay.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
 117:C:/WinAVR/avr/include/util/delay.h ****     not including the overhead the compiler requires to setup the
 118:C:/WinAVR/avr/include/util/delay.h ****     counter register pair.
 119:C:/WinAVR/avr/include/util/delay.h **** 
 120:C:/WinAVR/avr/include/util/delay.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 121:C:/WinAVR/avr/include/util/delay.h ****     milliseconds can be achieved.
 122:C:/WinAVR/avr/include/util/delay.h ****  */
 123:C:/WinAVR/avr/include/util/delay.h **** void
 124:C:/WinAVR/avr/include/util/delay.h **** _delay_loop_2(uint16_t __count)
 125:C:/WinAVR/avr/include/util/delay.h **** {
 126:C:/WinAVR/avr/include/util/delay.h **** 	__asm__ volatile (
 127:C:/WinAVR/avr/include/util/delay.h **** 		"1: sbiw %0,1" "\n\t"
 128:C:/WinAVR/avr/include/util/delay.h **** 		"brne 1b"
 129:C:/WinAVR/avr/include/util/delay.h **** 		: "=w" (__count)
 130:C:/WinAVR/avr/include/util/delay.h **** 		: "0" (__count)
 131:C:/WinAVR/avr/include/util/delay.h **** 	);
 132:C:/WinAVR/avr/include/util/delay.h **** }
 133:C:/WinAVR/avr/include/util/delay.h **** 
 134:C:/WinAVR/avr/include/util/delay.h **** #ifndef F_CPU
 135:C:/WinAVR/avr/include/util/delay.h **** /* prevent compiler error by supplying a default */
 136:C:/WinAVR/avr/include/util/delay.h **** # warning "F_CPU not defined for <util/delay.h>"
 137:C:/WinAVR/avr/include/util/delay.h **** # define F_CPU 1000000UL
 138:C:/WinAVR/avr/include/util/delay.h **** #endif
 139:C:/WinAVR/avr/include/util/delay.h **** 
 140:C:/WinAVR/avr/include/util/delay.h **** /**
 141:C:/WinAVR/avr/include/util/delay.h ****    \ingroup util_delay
 142:C:/WinAVR/avr/include/util/delay.h **** 
 143:C:/WinAVR/avr/include/util/delay.h ****    Perform a delay of \c __us microseconds, using _delay_loop_1().
 144:C:/WinAVR/avr/include/util/delay.h **** 
 145:C:/WinAVR/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 146:C:/WinAVR/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 147:C:/WinAVR/avr/include/util/delay.h **** 
 148:C:/WinAVR/avr/include/util/delay.h ****    The maximal possible delay is 768 us / F_CPU in MHz.
 149:C:/WinAVR/avr/include/util/delay.h ****  */
 150:C:/WinAVR/avr/include/util/delay.h **** void
 151:C:/WinAVR/avr/include/util/delay.h **** _delay_us(double __us)
 152:C:/WinAVR/avr/include/util/delay.h **** {
 153:C:/WinAVR/avr/include/util/delay.h **** 	uint8_t __ticks;
 154:C:/WinAVR/avr/include/util/delay.h **** 	double __tmp = ((F_CPU) / 3e6) * __us;
 155:C:/WinAVR/avr/include/util/delay.h **** 	if (__tmp < 1.0)
 156:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 1;
 157:C:/WinAVR/avr/include/util/delay.h **** 	else if (__tmp > 255)
 158:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = 0;	/* i.e. 256 */
 159:C:/WinAVR/avr/include/util/delay.h **** 	else
 160:C:/WinAVR/avr/include/util/delay.h **** 		__ticks = (uint8_t)__tmp;
 161:C:/WinAVR/avr/include/util/delay.h **** 	_delay_loop_1(__ticks);
 162:C:/WinAVR/avr/include/util/delay.h **** }
 163:C:/WinAVR/avr/include/util/delay.h **** 
 164:C:/WinAVR/avr/include/util/delay.h **** 
 165:C:/WinAVR/avr/include/util/delay.h **** /**
 166:C:/WinAVR/avr/include/util/delay.h ****    \ingroup util_delay
 167:C:/WinAVR/avr/include/util/delay.h **** 
 168:C:/WinAVR/avr/include/util/delay.h ****    Perform a delay of \c __ms milliseconds, using _delay_loop_2().
 169:C:/WinAVR/avr/include/util/delay.h **** 
 170:C:/WinAVR/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 171:C:/WinAVR/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 172:C:/WinAVR/avr/include/util/delay.h **** 
 173:C:/WinAVR/avr/include/util/delay.h ****    The maximal possible delay is 262.14 ms / F_CPU in MHz.
 174:C:/WinAVR/avr/include/util/delay.h ****  */
 175:C:/WinAVR/avr/include/util/delay.h **** void
 176:C:/WinAVR/avr/include/util/delay.h **** _delay_ms(double __ms)
 177:C:/WinAVR/avr/include/util/delay.h **** {
 307               	.LM25:
 308 0116 80E0      		ldi r24,lo8(0x3f800000)
 309 0118 90E0      		ldi r25,hi8(0x3f800000)
 310 011a A0E8      		ldi r26,hlo8(0x3f800000)
 311 011c BFE3      		ldi r27,hhi8(0x3f800000)
 312 011e 8C83      		std Y+4,r24
 313 0120 9D83      		std Y+5,r25
 314 0122 AE83      		std Y+6,r26
 315 0124 BF83      		std Y+7,r27
 316               	.LBB3:
 178:C:/WinAVR/avr/include/util/delay.h **** 	uint16_t __ticks;
 179:C:/WinAVR/avr/include/util/delay.h **** 	double __tmp = ((F_CPU) / 4e3) * __ms;
 318               	.LM26:
 319 0126 26E6      		ldi r18,lo8(0x44e66666)
 320 0128 36E6      		ldi r19,hi8(0x44e66666)
 321 012a 46EE      		ldi r20,hlo8(0x44e66666)
 322 012c 54E4      		ldi r21,hhi8(0x44e66666)
 323 012e 6C81      		ldd r22,Y+4
 324 0130 7D81      		ldd r23,Y+5
 325 0132 8E81      		ldd r24,Y+6
 326 0134 9F81      		ldd r25,Y+7
 327 0136 0E94 0000 		call __mulsf3
 328 013a DC01      		movw r26,r24
 329 013c CB01      		movw r24,r22
 330 013e 8A87      		std Y+10,r24
 331 0140 9B87      		std Y+11,r25
 332 0142 AC87      		std Y+12,r26
 333 0144 BD87      		std Y+13,r27

⌨️ 快捷键说明

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