为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

AVR单片机的睡眠模式

2017-09-19 9页 doc 25KB 23阅读

用户头像

is_003124

暂无简介

举报
AVR单片机的睡眠模式AVR单片机电源管理及睡眠模式应用 AVR单片机电源管理及睡眠模式应用实例(含源代码)/*********************************************** **** AVR 电源管理_睡眠模式范例 *** **** *** **** 作者: HJJourAVR *** * AVR单片机电源管理及睡眠模式应用 AVR单片机电源管理及睡眠模式应用实例(含源代码) /*********************************************** **** AVR 电源管理_睡眠模式范例 ...
AVR单片机的睡眠模式
AVR单片机电源管理及睡眠模式应用 AVR单片机电源管理及睡眠模式应用实例(含源代码)/*********************************************** **** AVR 电源管理_睡眠模式范例 *** **** *** **** 作者: HJJourAVR *** * AVR单片机电源管理及睡眠模式应用 AVR单片机电源管理及睡眠模式应用实例(含源代码) /*********************************************** **** AVR 电源管理_睡眠模式范例 *** **** *** **** 作者: HJJourAVR *** **** 编译器:WINAVR20050214 *** **** *** ***********************************************/ /* 本程序简单的示范了如何令AVR ATMEGA16进入睡眠状态及唤醒 电源管理及睡眠模式的介绍 进入最低耗电的掉电模式 关闭各种模块 外部中断唤醒 M16掉电模式的耗电情况(看门狗关闭),时钟为内部RC 1MHz 0.9uA@Vcc=5.0V [手册的图约为1.1uA] 0.3uA@Vcc=3.3V [手册的图表约为0.4uA] //测量的数字万用表是FLUKE 15B,分辨率0.1uA 这个程序需要MCU进入休眠状态,为实现最低功耗,JTAG接口会被关闭,只能通过LED的变化来观察程序的运行。 这个实验里面,用STK500(AVRISP) ISP下载线来烧录更方便。 熔丝位设置 1 关断BOD功能 BODEN=1 2 如果用ISP方式烧录,就可以完全关闭JTAG口了 OCEEN=1,JTAGEN=1 */ #include #include #include #include //时钟定为内部RC 1MHz,F_CPU=1000000 也可以采用其他时钟 #include /* sleep.h里面定义的常数,对应各种睡眠模式 #define SLEEP_MODE_IDLE 0 空闲模式 #define SLEEP_MODE_ADC _BV(SM0) ADC 噪声抑制模式 #define SLEEP_MODE_PWR_DOWN _BV(SM1) 掉电模式 #define SLEEP_MODE_PWR_SAVE (_BV(SM0) | _BV(SM1)) 省电模式 #define SLEEP_MODE_STANDBY (_BV(SM1) | _BV(SM2)) Standby 模式 #define SLEEP_MODE_EXT_STANDBY (_BV(SM0) | _BV(SM1) | _BV(SM2)) 扩展Standby模式 函数 void set_sleep_mode (uint8_t mode); 设定睡眠模式 void sleep_mode (void); 进入睡眠状态 */ //管脚定义 #define LED 0 //PB0 驱动LED,低电平有效 #define KEY_INT2 0 //PB3 按键, 低电平有效 void delay_10ms(unsigned int t) { /* 由于内部函数_delay_ms() 最高延时较短 262.144mS@1MHz / 32.768ms@8MHz / 16.384ms@16MHz 故编写了这条函数,实现更长的延时,并能令程序能适应各种时钟频率 */ while(t--) _delay_ms(10); } int main(void) { unsigned char i; //上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻 PORTA=0xFF; //不用的管脚使能内部上拉电阻。 PORTC=0xFF; PORTD=0xFF; PORTB=0xFF; DDRB =(1<<方法
: 1 不编程OCDEN 2 不编程JTAGEN 3 置位MCUCSR 的JTD 当JTAG 接口使能而JTAG TAP 控制器没有进行数据交换时,引脚TDO 将悬空。 如果与TDO 引脚连接的硬件电路没有上拉电阻,功耗将增加。 器件的引脚TDI 包含一个上拉电阻,因此在扫描链中无需为下一个芯片的TDO 引脚设置上拉电阻。 通过置位MCUCSR寄存器的JTD 或不对JTAG 熔丝位编程可以禁止JTAG 接口。 JTD: 禁止JTAG 接口(MCU控制与状态寄存器MCUCSR Bit7) 此位为0 时,如果JTAGEN熔丝位被编程则JTAG 接口使能。 如果这位为1, JTAG接口禁止。 为了避免无意的禁止或使能JTAG接口,必须通过一个时间序列来改变JTD 位。 应用软件必须在四个时钟周期内将期望的数值两次写入JTD。 如果JTAG 接口没有与其他JTAG电路连接, JTD应该置位。这样做的原因是为了避免JTAG接口TDO引脚的静态电流。 在软件中关闭JTAG接口的方法 */ MCUCSR=(1< MCUCSR=(1<
/
本文档为【AVR单片机的睡眠模式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索