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

📄 power.lst

📁 iccavr下
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0090) 	关闭程式如下  	
(0091) 	*/
(0092) 	ACSR=(1<<ACD);
    0081 E880      LDI	R24,0x80
    0082 B988      OUT	0x08,R24
(0093) 	/*
(0094) 	掉电检测BOD (由熔丝位BODEN控制)
(0095) 	如果系统没有利用掉电检测器BOD,这个模块也可以关闭。
(0096) 	如果熔丝位BODEN 被编程,从而使能了BOD 功能,它将在各种休眠模式下继续工作。
(0097) 	在深层次的休眠模式下,这个电流将占总电流的很大比重。
(0098) 	
(0099) 	设置熔丝位BODEN=1 关断BOD功能
(0100) 	*/
(0101) 	
(0102) 	/*
(0103) 	片内基准电压
(0104) 	使用BOD、模拟比较器和ADC 时可能需要内部电压基准源。
(0105) 	若这些模块都禁止了,则基准源也可以禁止。
(0106) 	重新使能后用户必须等待基准源稳定之后才可以使用它。
(0107) 	如果基准源在休眠过程中是使能的,其输出立即可以使用。
(0108) 	
(0109) 	当BOD、模拟比较器和ADC都禁止了,则基准源也自动禁止了。
(0110) 	*/
(0111) 	
(0112) 	/*
(0113) 	JTAG 接口与片上调试系统
(0114) 	如果通过熔丝位OCDEN使能了片上调试系统,当芯片进入掉电或省电模式时主时钟保持运行。
(0115) 	在休眠模式中这个电流占总电流的很大比重。
(0116) 	下面有三种替代方法:
(0117) 	1 不编程OCDEN
(0118)     2 不编程JTAGEN
(0119)     3 置位MCUCSR 的JTD
(0120) 	当JTAG 接口使能而JTAG TAP 控制器没有进行数据交换时,引脚TDO 将悬空。
(0121) 	如果与TDO 引脚连接的硬件电路没有上拉电阻,功耗将增加。
(0122) 	器件的引脚TDI 包含一个上拉电阻,因此在扫描链中无需为下一个芯片的TDO 引脚设置上拉电阻。
(0123) 	通过置位MCUCSR寄存器的JTD 或不对JTAG 熔丝位编程可以禁止JTAG 接口。
(0124) 	
(0125) 	JTD: 禁止JTAG 接口(MCU控制与状态寄存器MCUCSR Bit7)
(0126) 	此位为0 时,如果JTAGEN熔丝位被编程则JTAG 接口使能。
(0127) 	如果这位为1, JTAG接口禁止。
(0128) 	为了避免无意的禁止或使能JTAG接口,必须通过一个时间序列来改变JTD 位。
(0129) 		应用软件必须在四个时钟周期内将期望的数值两次写入JTD。
(0130) 	如果JTAG 接口没有与其他JTAG电路连接, JTD应该置位。这样做的原因是为了避免JTAG接口TDO引脚的静态电流。
(0131) 	
(0132) 	在软件中关闭JTAG接口的方法     
(0133) 	*/
(0134) 	MCUCSR=(1<<JTD);
    0083 BF84      OUT	0x34,R24
(0135) 	MCUCSR=(1<<JTD);	
    0084 BF84      OUT	0x34,R24
(0136) 	
(0137) 	/*
(0138) 	掉电模式
(0139) 	当SM2..0 为010 时, SLEEP 指令将使MCU 进入掉电模式。
(0140) 	在此模式下,外部晶体停振,而外部中断、两线接口地址匹配及看门狗(如果使能的话)继续工作。
(0141) 	只有外部复位、看门狗复位、BOD 复位、两线接口地址匹配中断、外部电平中断INT0 或INT1,或外部中断INT2 可以使MCU 脱离掉电模式。
(0142) 	这个睡眠模式停止了所有的时钟,只有异步模块可以继续工作。
(0143) 	当使用外部电平中断方式将MCU 从掉电模式唤醒时,必须保持外部电平一定的时间。
(0144) 	从施加掉电唤醒条件到真正唤醒有一个延迟时间,此时间用于时钟重新启动并稳定下来。
(0145) 	唤醒周期与由熔丝位CKSEL 定义的复位周期是一样的。
(0146) 	
(0147) 	如果在睡眠过程中发生了复位,则MCU 唤醒后从中断向量开始执行
(0148) 	使能的中断可以将进入睡眠模式的MCU 唤醒,	经过启动时间,外加4个时钟周期后,MCU就可以运行中断例程了。然后返回到SLEEP 的下一条指令。
(0149) 	*/
(0150) 	MCUCSR=(0<<ISC00);		//INT0 的下降沿激活中断(默认的,这句话可以不写)
    0085 BE24      OUT	0x34,R2
(0151) 	GICR=(1<<INT0); 		//使能外部中断INT0
    0086 E480      LDI	R24,0x40
    0087 BF8B      OUT	0x3B,R24
(0152) 	SEI();					//使能全局中断
    0088 9478      BSET	7
    0089 C010      RJMP	0x009A
(0153) 	while(1)
(0154) 	{
(0155) 		for (i=0;i<10;i++)  //LED闪动10次后进入掉电模式的睡眠状态
    008A 2744      CLR	R20
    008B C009      RJMP	0x0095
(0156) 		{
(0157) 			delay_nms(300);
    008C E20C      LDI	R16,0x2C
    008D E011      LDI	R17,1
    008E DFD7      RCALL	_delay_nms
(0158) 			PORTA&=~(1<<LED);   //点亮LED
    008F 98D8      CBI	0x1B,0
(0159) 			delay_nms(300);			
    0090 E20C      LDI	R16,0x2C
    0091 E011      LDI	R17,1
    0092 DFD3      RCALL	_delay_nms
(0160) 			PORTA|=(1<<LED);	//熄灭LED
    0093 9AD8      SBI	0x1B,0
    0094 9543      INC	R20
    0095 304A      CPI	R20,0xA
    0096 F3A8      BCS	0x008C
(0161) 		}
(0162) 		
(0163) 		
(0164) 		MCUCR=(1<<SE)|(0<<SM2)|(1<<SM1)|(0<<SM0);   	//设定为掉电模式
    0097 E680      LDI	R24,0x60
    0098 BF85      OUT	0x35,R24
(0165) 		asm("SLEEP");			//进入睡眠状态
    0099 9588      SLEEP
    009A CFEF      RJMP	0x008A
    009B 9508      RET
_int0pro:
    009C 940E00CB  CALL	push_lset
(0166) 	
(0167) 	}
(0168) }
(0169) 
(0170) 
(0171) #pragma interrupt_handler int0pro: iv_INT0
(0172) void int0pro(void) //外部中断0服务程序 唤醒源
(0173) {
(0174) 	PORTA&=~(1<<LED);   //点亮LED
    009E 98D8      CBI	0x1B,0
(0175) 	delay_nms(5000);
    009F E808      LDI	R16,0x88
    00A0 E113      LDI	R17,0x13
    00A1 DFC4      RCALL	_delay_nms
(0176) 	PORTA|=(1<<LED);	//熄灭LED
    00A2 9AD8      SBI	0x1B,0
(0177) 	delay_nms(1000);
FILE: <library>
    00A3 EE08      LDI	R16,0xE8
    00A4 E013      LDI	R17,3
    00A5 DFC0      RCALL	_delay_nms
    00A6 940E00E2  CALL	pop_lset
    00A8 9518      RETI
pop_gset2:
    00A9 E0E2      LDI	R30,2
    00AA 940C00B8  JMP	pop
push_gset5:
    00AC 92FA      ST	R15,-Y
    00AD 92EA      ST	R14,-Y
push_gset4:
    00AE 92DA      ST	R13,-Y
    00AF 92CA      ST	R12,-Y
push_gset3:
    00B0 92BA      ST	R11,-Y
    00B1 92AA      ST	R10,-Y
push_gset2:
    00B2 937A      ST	R23,-Y
    00B3 936A      ST	R22,-Y
push_gset1:
    00B4 935A      ST	R21,-Y
    00B5 934A      ST	R20,-Y
    00B6 9508      RET
pop_gset1:
    00B7 E0E1      LDI	R30,1
pop:
    00B8 9149      LD	R20,Y+
    00B9 9159      LD	R21,Y+
    00BA FDE0      SBRC	R30,0
    00BB 9508      RET
    00BC 9169      LD	R22,Y+
    00BD 9179      LD	R23,Y+
    00BE FDE1      SBRC	R30,1
    00BF 9508      RET
    00C0 90A9      LD	R10,Y+
    00C1 90B9      LD	R11,Y+
    00C2 FDE2      SBRC	R30,2
    00C3 9508      RET
    00C4 90C9      LD	R12,Y+
    00C5 90D9      LD	R13,Y+
    00C6 FDE3      SBRC	R30,3
    00C7 9508      RET
    00C8 90E9      LD	R14,Y+
    00C9 90F9      LD	R15,Y+
    00CA 9508      RET
push_lset:
    00CB 93FA      ST	R31,-Y
    00CC 93EA      ST	R30,-Y
    00CD 93BA      ST	R27,-Y
    00CE 93AA      ST	R26,-Y
    00CF 939A      ST	R25,-Y
    00D0 938A      ST	R24,-Y
    00D1 933A      ST	R19,-Y
    00D2 932A      ST	R18,-Y
    00D3 931A      ST	R17,-Y
    00D4 930A      ST	R16,-Y
    00D5 929A      ST	R9,-Y
    00D6 928A      ST	R8,-Y
    00D7 927A      ST	R7,-Y
    00D8 926A      ST	R6,-Y
    00D9 925A      ST	R5,-Y
    00DA 924A      ST	R4,-Y
    00DB 923A      ST	R3,-Y
    00DC 922A      ST	R2,-Y
    00DD 921A      ST	R1,-Y
    00DE 920A      ST	R0,-Y
    00DF B60F      IN	R0,0x3F
    00E0 920A      ST	R0,-Y
    00E1 9508      RET
pop_lset:
    00E2 9009      LD	R0,Y+
    00E3 BE0F      OUT	0x3F,R0
    00E4 9009      LD	R0,Y+
    00E5 9019      LD	R1,Y+
    00E6 9029      LD	R2,Y+
    00E7 9039      LD	R3,Y+
    00E8 9049      LD	R4,Y+
    00E9 9059      LD	R5,Y+
    00EA 9069      LD	R6,Y+
    00EB 9079      LD	R7,Y+
    00EC 9089      LD	R8,Y+
    00ED 9099      LD	R9,Y+
    00EE 9109      LD	R16,Y+
    00EF 9119      LD	R17,Y+
    00F0 9129      LD	R18,Y+
    00F1 9139      LD	R19,Y+
    00F2 9189      LD	R24,Y+
    00F3 9199      LD	R25,Y+
    00F4 91A9      LD	R26,Y+
    00F5 91B9      LD	R27,Y+
    00F6 91E9      LD	R30,Y+
    00F7 91F9      LD	R31,Y+
    00F8 9508      RET

⌨️ 快捷键说明

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