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

📄 int0.lst

📁 meg16 的所有功能实例
💻 LST
字号:
__start:
__text_start:
    002A E5CF      LDI	R28,0x5F
    002B E0D4      LDI	R29,4
    002C BFCD      OUT	0x3D,R28
    002D BFDE      OUT	0x3E,R29
    002E 51C0      SUBI	R28,0x10
    002F 40D0      SBCI	R29,0
    0030 EA0A      LDI	R16,0xAA
    0031 8308      STD	Y+0,R16
    0032 2400      CLR	R0
    0033 E6E0      LDI	R30,0x60
    0034 E0F0      LDI	R31,0
    0035 E010      LDI	R17,0
    0036 36E0      CPI	R30,0x60
    0037 07F1      CPC	R31,R17
    0038 F011      BEQ	0x003B
    0039 9201      ST	R0,Z+
    003A CFFB      RJMP	0x0036
    003B 8300      STD	Z+0,R16
    003C E5E4      LDI	R30,0x54
    003D E0F0      LDI	R31,0
    003E E6A0      LDI	R26,0x60
    003F E0B0      LDI	R27,0
    0040 E010      LDI	R17,0
    0041 35E4      CPI	R30,0x54
    0042 07F1      CPC	R31,R17
    0043 F021      BEQ	0x0048
    0044 95C8      LPM
    0045 9631      ADIW	R30,1
    0046 920D      ST	R0,X+
    0047 CFF9      RJMP	0x0041
    0048 940E007B  CALL	_main
_exit:
    004A CFFF      RJMP	_exit
FILE: E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\INT0中断测试\mian.c
(0001) /****************************************Copyright (c)**************************************************
(0002) **                               ADEmbed Development Co.,LTD.                                    
(0003) **                                 http://www.adembed.com
(0004) **--------------File Info-------------------------------------------------------------------------------
(0005) ** File name:			main.c
(0006) ** Last modified Date:  2008-12-13
(0007) ** Last Version:		1.0
(0008) ** Descriptions:		INT0 Test.
(0009) ** 
(0010) **------------------------------------------------------------------------------------------------------
(0011) ** Created by:			junbolu
(0012) ** Created date:		2008-12-13
(0013) ** Version:				1.0
(0014) ** Descriptions:		
(0015) **
(0016) **------------------------------------------------------------------------------------------------------
(0017) ** Modified by:
(0018) ** Modified date:
(0019) ** Version:
(0020) ** Descriptions:
(0021) **
(0022) **------------------------------------------------------------------------------------------------------
(0023) **ICC-AVR application builder : 2008-12-13
(0024) **Target : M16
(0025) **Crystal: 7.3728Mhz
(0026) **PD2--->K0			PD7--->Sound_EN
(0027) **描述:按下K0后会产生一个下降沿中断,中断处理程序将蜂鸣器使能1s。
(0028) **      最简单的下降沿中断程序。
(0029) *******************************************************************************************************/
(0030) #include <iom16v.h>
(0031) #include <macros.h>
(0032) 
(0033) void Delay_us(unsigned int time)
(0034) {
(0035) while(time--);
_Delay_us:
  time                 --> R16
    004B 0118      MOVW	R2,R16
    004C 5001      SUBI	R16,1
    004D 4010      SBCI	R17,0
    004E 2022      TST	R2
    004F F7D9      BNE	0x004B
    0050 2033      TST	R3
    0051 F7C9      BNE	0x004B
    0052 9508      RET
_Delay_ms:
  time                 --> R20
    0053 940E008B  CALL	push_gset1
    0055 01A8      MOVW	R20,R16
(0036) }
(0037) 
(0038) void Delay_ms(unsigned int time)
(0039) {
    0056 C003      RJMP	0x005A
(0040) while(time--)
(0041) 	{
(0042) 	Delay_us(1000);
    0057 EE08      LDI	R16,0xE8
    0058 E013      LDI	R17,3
    0059 DFF1      RCALL	_Delay_us
    005A 011A      MOVW	R2,R20
    005B 5041      SUBI	R20,1
    005C 4050      SBCI	R21,0
    005D 2022      TST	R2
    005E F7C1      BNE	0x0057
    005F 2033      TST	R3
    0060 F7B1      BNE	0x0057
    0061 940E008E  CALL	pop_gset1
    0063 9508      RET
(0043) 	}
(0044) }
(0045) 
(0046) void INT0_Init()
(0047) {
(0048)  GIFR |=0X40;              //清楚标志位
_INT0_Init:
    0064 B78A      IN	R24,0x3A
    0065 6480      ORI	R24,0x40
    0066 BF8A      OUT	0x3A,R24
(0049)  //MCUCR|=0X03; 			   //上升沿触发中断	
(0050)  MCUCR|=0X02;MCUCR&=~0X01; //下降沿触发中断	
    0067 B785      IN	R24,0x35
    0068 6082      ORI	R24,2
    0069 BF85      OUT	0x35,R24
    006A B785      IN	R24,0x35
    006B 7F8E      ANDI	R24,0xFE
    006C BF85      OUT	0x35,R24
(0051)  GICR |=0X40;  			   //使能外部中断0
    006D B78B      IN	R24,0x3B
    006E 6480      ORI	R24,0x40
    006F BF8B      OUT	0x3B,R24
    0070 9508      RET
_int0_isr:
    0071 940E00A2  CALL	push_lset
(0052) }
(0053) 
(0054) #pragma interrupt_handler int0_isr:2
(0055) void int0_isr(void)
(0056) {
(0057)  PORTD&=~0X80;		//低电平驱动
    0073 9897      CBI	0x12,7
(0058)  Delay_ms(100); 	//延时0.1s
    0074 E604      LDI	R16,0x64
    0075 E010      LDI	R17,0
    0076 DFDC      RCALL	_Delay_ms
(0059)  PORTD|=0X80;		//高电平暂停
    0077 9A97      SBI	0x12,7
    0078 940E00B9  CALL	pop_lset
    007A 9518      RETI
(0060) }
(0061) 
(0062) void main(void)
(0063) {
(0064)   //蜂鸣器端口初始化
(0065)  DDRD |=0x80;	   	//设置PD7为输出   	   						
_main:
    007B 9A8F      SBI	0x11,7
(0066)  PORTD|=0x80;		//设置PD7为高电平
    007C 9A97      SBI	0x12,7
(0067)  
(0068)  //按键0端口初始化
(0069)  DDRD &=~0x04;	   	//设置PD2为输入   	   						
    007D 988A      CBI	0x11,2
(0070)  PORTD|=0x04;		//设置PD2为上拉
    007E 9A92      SBI	0x12,2
(0071)  
(0072)  INT0_Init();                 //TART初始化
    007F DFE4      RCALL	_INT0_Init
(0073)  SEI();                       //全局中断使能
    0080 9478      BSET	7
(0074)  while(1)
FILE: <library>
    0081 CFFF      RJMP	0x0081
    0082 9508      RET
push_gset5:
    0083 92FA      ST	R15,-Y
    0084 92EA      ST	R14,-Y
push_gset4:
    0085 92DA      ST	R13,-Y
    0086 92CA      ST	R12,-Y
push_gset3:
    0087 92BA      ST	R11,-Y
    0088 92AA      ST	R10,-Y
push_gset2:
    0089 937A      ST	R23,-Y
    008A 936A      ST	R22,-Y
push_gset1:
    008B 935A      ST	R21,-Y
    008C 934A      ST	R20,-Y
    008D 9508      RET
pop_gset1:
    008E E0E1      LDI	R30,1
pop:
    008F 9149      LD	R20,Y+
    0090 9159      LD	R21,Y+
    0091 FDE0      SBRC	R30,0
    0092 9508      RET
    0093 9169      LD	R22,Y+
    0094 9179      LD	R23,Y+
    0095 FDE1      SBRC	R30,1
    0096 9508      RET
    0097 90A9      LD	R10,Y+
    0098 90B9      LD	R11,Y+
    0099 FDE2      SBRC	R30,2
    009A 9508      RET
    009B 90C9      LD	R12,Y+
    009C 90D9      LD	R13,Y+
    009D FDE3      SBRC	R30,3
    009E 9508      RET
    009F 90E9      LD	R14,Y+
    00A0 90F9      LD	R15,Y+
    00A1 9508      RET
push_lset:
    00A2 93FA      ST	R31,-Y
    00A3 93EA      ST	R30,-Y
    00A4 93BA      ST	R27,-Y
    00A5 93AA      ST	R26,-Y
    00A6 939A      ST	R25,-Y
    00A7 938A      ST	R24,-Y
    00A8 933A      ST	R19,-Y
    00A9 932A      ST	R18,-Y
    00AA 931A      ST	R17,-Y
    00AB 930A      ST	R16,-Y
    00AC 929A      ST	R9,-Y
    00AD 928A      ST	R8,-Y
    00AE 927A      ST	R7,-Y
    00AF 926A      ST	R6,-Y
    00B0 925A      ST	R5,-Y
    00B1 924A      ST	R4,-Y
    00B2 923A      ST	R3,-Y
    00B3 922A      ST	R2,-Y
    00B4 921A      ST	R1,-Y
    00B5 920A      ST	R0,-Y
    00B6 B60F      IN	R0,0x3F
    00B7 920A      ST	R0,-Y
    00B8 9508      RET
pop_lset:
    00B9 9009      LD	R0,Y+
    00BA BE0F      OUT	0x3F,R0
    00BB 9009      LD	R0,Y+
    00BC 9019      LD	R1,Y+
    00BD 9029      LD	R2,Y+
    00BE 9039      LD	R3,Y+
    00BF 9049      LD	R4,Y+
    00C0 9059      LD	R5,Y+
    00C1 9069      LD	R6,Y+
    00C2 9079      LD	R7,Y+
    00C3 9089      LD	R8,Y+
    00C4 9099      LD	R9,Y+
    00C5 9109      LD	R16,Y+
    00C6 9119      LD	R17,Y+
    00C7 9129      LD	R18,Y+
    00C8 9139      LD	R19,Y+
    00C9 9189      LD	R24,Y+
    00CA 9199      LD	R25,Y+
    00CB 91A9      LD	R26,Y+
    00CC 91B9      LD	R27,Y+
    00CD 91E9      LD	R30,Y+
    00CE 91F9      LD	R31,Y+
    00CF 9508      RET

⌨️ 快捷键说明

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