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

📄 demo.lst

📁 avr单片机的一些实际应用源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"demo.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:
  53               	.global	DelayMs
  55               	DelayMs:
   1:demo.c        **** #include <avr/io.h>
   2:demo.c        **** #include <avr/delay.h>
   3:demo.c        **** 
   4:demo.c        **** #define uint unsigned int
   5:demo.c        **** #define uchar unsigned char
   6:demo.c        **** 
   7:demo.c        **** #ifdef BASE_BORD
   8:demo.c        **** 
   9:demo.c        **** 	#define SET_RED_LED cbi(PORTC,2);
  10:demo.c        **** 	#define CLR_RED_LED sbi(PORTC,2);
  11:demo.c        **** 
  12:demo.c        **** 	#define SET_LFT_LED cbi(PORTC,1);
  13:demo.c        **** 	#define CLR_LFT_LED sbi(PORTC,1);
  14:demo.c        **** 
  15:demo.c        **** 	#define SET_RIT_LED cbi(PORTC,3);
  16:demo.c        **** 	#define CLR_RIT_LED sbi(PORTC,3);
  17:demo.c        **** #else
  18:demo.c        **** 	#define SET_RED_LED cbi(PORTB,2);
  19:demo.c        **** 	#define CLR_RED_LED sbi(PORTB,2);
  20:demo.c        **** 
  21:demo.c        **** 	#define SET_LFT_LED cbi(PORTB,1);
  22:demo.c        **** 	#define CLR_LFT_LED sbi(PORTB,1);
  23:demo.c        **** 
  24:demo.c        **** 	#define SET_RIT_LED cbi(PORTB,0);
  25:demo.c        **** 	#define CLR_RIT_LED sbi(PORTB,0);
  26:demo.c        **** #endif
  27:demo.c        **** 
  28:demo.c        **** #define FREQ 4
  29:demo.c        **** 
  30:demo.c        **** void DelayMs(uint ms)
  31:demo.c        **** {
  57               	.LM1:
  58               	/* prologue: frame size=0 */
  59               	/* prologue end (size=0) */
  32:demo.c        **** 	uint i;
  33:demo.c        **** 	for(i=0;i<ms;i++)
  61               	.LM2:
  62 0000 0097      		sbiw r24,0
  63 0002 41F0      		breq .L8
  64 0004 9C01      		movw r18,r24
  65               	.L6:
  66               	.LBB2:
  68               	.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 **** {
  70               	.LM3:
  71 0006 88EE      		ldi r24,lo8(1000)
  72 0008 93E0      		ldi r25,hi8(1000)
  73               	.LBB3:
  53:J:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	asm volatile (
  75               	.LM4:
  76               	/* #APP */
  77 000a 0197      		1: sbiw r24,1
  78 000c F1F7      		brne 1b
  79               	/* #NOAPP */
  80               	.LBE3:
  81               	.LBE2:
  83               	.Ltext2:
  85               	.LM5:
  86 000e 2150      		subi r18,lo8(-(-1))
  87 0010 3040      		sbci r19,hi8(-(-1))
  88 0012 C9F7      		brne .L6
  89               	.L8:
  90 0014 0895      		ret
  91               	/* epilogue: frame size=0 */
  92               	/* epilogue: noreturn */
  93               	/* epilogue end (size=0) */
  94               	/* function DelayMs size 15 (15) */
 101               	.global	main
 103               	main:
  34:demo.c        **** 		_delay_loop_2(FREQ *250);
  35:demo.c        **** }
  36:demo.c        **** 
  37:demo.c        **** int main(void)
  38:demo.c        **** {
 105               	.LM6:
 106               	/* prologue: frame size=0 */
 107 0016 C0E0      		ldi r28,lo8(__stack - 0)
 108 0018 D0E0      		ldi r29,hi8(__stack - 0)
 109 001a DEBF      		out __SP_H__,r29
 110 001c CDBF      		out __SP_L__,r28
 111               	/* prologue end (size=4) */
  39:demo.c        **** 	uchar i;
  40:demo.c        **** 	
  41:demo.c        **** 	DDRC=0XFF;
 113               	.LM7:
 114 001e 8FEF      		ldi r24,lo8(-1)
 115 0020 84BB      		out 52-0x20,r24
  42:demo.c        **** 	PORTC=0XFF;
 117               	.LM8:
 118 0022 85BB      		out 53-0x20,r24
  43:demo.c        **** 	
  44:demo.c        **** 	DDRB=0XFF;
 120               	.LM9:
 121 0024 87BB      		out 55-0x20,r24
  45:demo.c        **** 	PORTB=0XFF;
 123               	.LM10:
 124 0026 88BB      		out 56-0x20,r24
 125               	.L10:
 126 0028 C0E0      		ldi r28,lo8(0)
 127 002a D0E0      		ldi r29,hi8(0)
 128 002c 12E0      		ldi r17,lo8(2)
 129               	.L15:
  46:demo.c        **** 	
  47:demo.c        **** 	while(1)
  48:demo.c        **** 	{
  49:demo.c        **** #ifdef BASE_BORD
  50:demo.c        **** 		//三个灯逐一闪
  51:demo.c        **** 		for(i=1;i<4;i++)
  52:demo.c        **** 		{
  53:demo.c        **** 			PORTC=0xff;
  54:demo.c        **** 			PORTC&=~_BV(i);
  55:demo.c        **** 			DelayMs(500);
  56:demo.c        **** 		}
  57:demo.c        **** #else
  58:demo.c        **** 		for(i=0;i<3;i++)
  59:demo.c        **** 		{
  60:demo.c        **** 			PORTB=0XFF;
 131               	.LM11:
 132 002e 8FEF      		ldi r24,lo8(-1)
 133 0030 88BB      		out 56-0x20,r24
  61:demo.c        **** 			PORTB&=~_BV(i);
 135               	.LM12:
 136 0032 81E0      		ldi r24,lo8(1)
 137 0034 90E0      		ldi r25,hi8(1)
 138 0036 0C2E      		mov r0,r28
 139 0038 02C0      		rjmp 2f
 140 003a 880F      	1:	lsl r24
 141 003c 991F      		rol r25
 142 003e 0A94      	2:	dec r0
 143 0040 E2F7      		brpl 1b
 144 0042 982F      		mov r25,r24
 145 0044 9095      		com r25
 146 0046 88B3      		in r24,56-0x20
 147 0048 8923      		and r24,r25
 148 004a 88BB      		out 56-0x20,r24
  62:demo.c        **** 			DelayMs(500);
 150               	.LM13:
 151 004c 84EF      		ldi r24,lo8(500)
 152 004e 91E0      		ldi r25,hi8(500)

⌨️ 快捷键说明

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