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

📄 161212.lst

📁 winavr
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"161212.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:
  69               	.global	com
  71               	com:
   1:161212.c      **** 
   2:161212.c      **** /******************************************************************
   3:161212.c      ****    本程序只供学习使用,未经作者许可,不得用于其它任何用途
   4:161212.c      ****           我的邮箱:at89c58@163.com  
   5:161212.c      ****    
   6:161212.c      **** *******************************************************************/
   7:161212.c      **** //HD44780 1602 程序演示
   8:161212.c      **** 
   9:161212.c      **** //单片机型号:ATMEGA8L-8PU
  10:161212.c      **** 
  11:161212.c      **** //晶振:4M
  12:161212.c      **** 
  13:161212.c      **** //程序没有加入忙判断
  14:161212.c      **** 
  15:161212.c      **** //编译软件为winavr 200705
  16:161212.c      **** 
  17:161212.c      **** #include<avr/io.h>
  18:161212.c      **** #include <util/delay.h>
  19:161212.c      **** #include <avr/portpins.h>
  20:161212.c      **** #include <compat/deprecated.h>
  21:161212.c      **** 
  22:161212.c      **** #define uchar unsigned char 
  23:161212.c      **** 
  24:161212.c      **** #define LCD_E_0 cbi(PORTD,6)  
  25:161212.c      **** 
  26:161212.c      **** #define LCD_RW_0 cbi(PORTD,5)      
  27:161212.c      **** 
  28:161212.c      **** #define LCD_RS_0 cbi(PORTD,4)       
  29:161212.c      **** 
  30:161212.c      **** #define LCD_E_1 sbi(PORTD,6)        
  31:161212.c      **** 
  32:161212.c      **** #define LCD_RW_1 sbi(PORTD,5)       
  33:161212.c      **** 
  34:161212.c      **** #define LCD_RS_1 sbi(PORTD,4)     
  35:161212.c      **** 
  36:161212.c      **** void com(uchar init)   //写指令
  37:161212.c      **** 
  38:161212.c      **** {  
  72               	 end (size=0) */
  74               	.LM1:
  75               		cbi 50-0x20,4
  39:161212.c      ****     
  40:161212.c      ****     LCD_RS_0;       
  76               	abn	68,0,41,.LM2-com
  77               	.LM2:
  78 0000 9498      		out 56-0x20,r24
  41:161212.c      ****     PORTB=init;    
  79               	B16:
  80               	.LBB17:
  81 0002 88BB      	.LBB18:
  82               	.LBB19:
  84               	.Ltext1:
  86               	.LM3:
  87               		ldi r24,lo8(10000)
   1:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    Copyright (c) 2007 Joerg Wunsch
   3:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    All rights reserved.
   4:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
   5:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    Redistribution and use in source and binary forms, with or without
   6:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    modification, are permitted provided that the following conditions are met:
   7:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
   8:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    * Redistributions of source code must retain the above copyright
   9:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer.
  10:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  11:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    * Redistributions in binary form must reproduce the above copyright
  12:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      notice, this list of conditions and the following disclaimer in
  13:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      the documentation and/or other materials provided with the
  14:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      distribution.
  15:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  16:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****    * Neither the name of the copyright holders nor the names of
  17:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      contributors may be used to endorse or promote products derived
  18:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****      from this software without specific prior written permission.
  19:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  20:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  24:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****   POSSIBILITY OF SUCH DAMAGE. */
  31:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  32:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /* $Id: delay_basic.h,v 1.1.2.2 2007/05/13 21:26:06 joerg_wunsch Exp $ */
  33:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  34:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_
  35:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1
  36:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  37:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #include <inttypes.h>
  38:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  39:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \file */
  40:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
  41:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     \code
  42:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     #include <util/delay_basic.h>
  43:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     \endcode
  44:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  45:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     The functions in this header file implement simple delay loops
  46:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     that perform a busy-waiting.  They are typically used to
  47:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     facilitate short delays in the program execution.  They are
  48:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     implemented as count-down loops with a well-known CPU cycle
  49:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     count per loop iteration.  As such, no other processing can
  50:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     occur simultaneously.  It should be kept in mind that the
  51:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     functions described here do not disable interrupts.
  52:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  53:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     In general, for long delays, the use of hardware timers is
  54:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     much preferrable, as they free the CPU, and allow for
  55:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     concurrent processing of other events while the timer is
  56:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     running.  However, in particular for very short delays, the
  57:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     overhead of setting up a hardware timer is too much compared
  58:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     to the overall delay time.
  59:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  60:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Two inline functions are provided for the actual delay algorithms.
  61:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  62:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** */
  63:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  64:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__)
  65:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
  66:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
  67:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** #endif
  68:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  69:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  70:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  71:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Delay loop using an 8-bit counter \c __count, so up to 256
  72:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 256 would have to be passed
  73:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     as 0.)  The loop executes three CPU cycles per iteration, not
  74:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     including the overhead the compiler needs to setup the counter
  75:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     register.
  76:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  77:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
  78:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     can be achieved.
  79:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** */
  80:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** void
  81:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
  82:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** {
  83:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 	__asm__ volatile (
  84:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 		"1: dec %0" "\n\t"
  85:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 		"brne 1b"
  86:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 		: "=r" (__count)
  87:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 		: "0" (__count)
  88:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 	);
  89:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** }
  90:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  91:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  92:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  93:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
  94:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 65536 would have to be
  95:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
  96:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     not including the overhead the compiler requires to setup the
  97:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     counter register pair.
  98:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 
  99:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 100:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****     milliseconds can be achieved.
 101:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h ****  */
 102:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** void
 103:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
 104:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** {
 105:c:/winavr-20070525/bin/../avr/include/util/delay_basic.h **** 	__asm__ volatile (
  88               	hi8(10000)
  89               	/* #APP */
  90 0004 80E1      		1: sbiw r24,1
  91 0006 97E2      		brne 1b
  92               	/* #NOAPP */
  93 0008 0197      	.LBE19:
  94 000a 01F4      	.LBE18:
  95               	.LBE17:
  96               	.LBE16:
  98               	.Ltext2:
 100               	.LM4:
 101               		sbi 50-0x20,6
  42:161212.c      ****     _delay_ms(5);
  43:161212.c      ****     LCD_E_1;    
 102               	4,.LM5-com
 103               	.LM5:
 104 000c 969A      		cbi 50-0x20,6
  44:161212.c      ****     LCD_E_0;
 105               	epilogue: frame size=0 */
 106               		ret
 107 000e 9698      	/* epilogue end (size=1) */
 108               	/* function com size 11 (10) */
 113               	.Lscope0:
 116               	.global	Dat
 118               	Dat:
 120               	.LM6:
 121               	/* prologue: frame size=0 */
  45:161212.c      ****     
  46:161212.c      **** }
  47:161212.c      **** 
  48:161212.c      **** 
  49:161212.c      **** 
  50:161212.c      **** void Dat(uchar dat)     //写数据
  51:161212.c      **** 
  52:161212.c      **** {  
 122               	size=0) */
 124               	.LM7:
 125               		sbi 50-0x20,4
  53:161212.c      ****     
  54:161212.c      ****     LCD_RS_1;      
 126               	,36,0,0,Dat
 128 0012 949A      	.global	Dat
  55:161212.c      ****        
  56:161212.c      ****     PORTB=dat;
 129               	ype	Dat, @function
 130               	Dat:
 132               	.LM6:
 133               	/* prologue: frame size=0 */
 134               	/* prologue end (size=0) */
 136               	.LM7:
 137               		sbi 50-0x20,4
 139               	.LM8:
 140 0016 80E1      		out 56-0x20,r24
 141 0018 97E2      	.LBB20:
 142               	.LBB21:
 143 001a 0197      	.LBB22:
 144 001c 01F4      	.LBB23:
 146               	.Ltext3:

⌨️ 快捷键说明

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