基于ATmega48的微功耗电刺激器的设计
[10-10 20:39:48] 来源:http://www.88dzw.com 电源电路 阅读:8999次
文章摘要:电刺激器在工作的间歇期进入休眠状态。ATmega48有6种休眠方式,每一种方式休眠的部件不相同,休眠后单片机的功耗也不同。由于电刺激器在休眠时要求定时重新唤醒进行工作,必须保留一个定时器的工作。因此选用的休眠方式为IDLE,在IDLE方式下定时器2仍然可以工作。以下是休眠部分的程序。set_sleep_mode(SLEEP_MODE_IDLE); //设置休眠方式为IDLESMCR |= _BV(SE); //允许休眠_asm_ _volatile_ ('sleep' 'nt' :: ); //进入休眠SMCR &= ~_BV(SE); //从休眠中唤醒,进入工
基于ATmega48的微功耗电刺激器的设计,标签:电源电路,电路设计,http://www.88dzw.com电刺激器在工作的间歇期进入休眠状态。ATmega48有6种休眠方式,每一种方式休眠的部件不相同,休眠后单片机的功耗也不同。由于电刺激器在休眠时要求定时重新唤醒进行工作,必须保留一个定时器的工作。因此选用的休眠方式为IDLE,在IDLE方式下定时器2仍然可以工作。以下是休眠部分的程序。
set_sleep_mode(SLEEP_MODE_IDLE); //设置休眠方式为IDLE
SMCR |= _BV(SE); //允许休眠
_asm_ _volatile_ ('sleep' 'nt' :: ); //进入休眠
SMCR &= ~_BV(SE); //从休眠中唤醒,进入工作状态,不允许休眠
定时器2用于对休眠期的时间间隔计时。t2_init_idle(void) 是进入休眠状态前初始定时器2的程序,SIGNAL(SIG_OVERFLOW2)是休眠状态下定时器2的中断服务程序。每1分钟定时器2将会产生溢出中断,唤醒单片机。
void t2_init_idle(void){ //定时器2进入休眠状态前的初始化
CLKPR=(1<<CLKPCE); //允许改变系统时钟;进入休眠状态前改变系统时钟
CLKPR=0x05; //系统时钟的分频比例为32,系统时钟为4kHz
TCCR2A=0; //定时器/计数器2工作于定时器方式
TIMSK2=(1<<TOIE2); //允许定时器2溢出中断
TCCR2B=0x07; //定时器2时钟分频比例为1024
TCNT2=32; //定时器2产生1分钟定时的初始值
}
SIGNAL(SIG_OVERFLOW2){ //定时器2溢出的中断服务程序
TCNT2=32; //重置定时器2产生1分钟定时的初始值
min++; //分钟计数
}
当唤醒5次,即休眠5分钟后,单片机重新进入唤醒工作状态。在唤醒工作状态下,使用定时器2控制脉冲的宽度和频率,需要定时器2重新初始化,并将系统时钟恢复到128kHz(程序略)。
设置定时器0工作于PWM输出方式,用于控制刺激强度。
void t0_init(void){ //定时器0初始化为PWM输出
TCCR0B=(1<<CS01); //定时器0时钟分频比例为8
TCCR0A=(1<<WGM00)|(1<<WGM01); //快速PWM方式
TCCR0A|=(1<<COM0B1); //符合时为低电平,峰值变高
OCR0B=outv; //输出电平用OCR0B控制
}
系统总程序流程如图4所示。
电刺激实验器的开发是为了植入大鼠体内,研究电刺激对癫痫抑制的机理。本研究开发的电刺激实验器整体结构尺寸为Φ17mm(直径) x 7mm(厚)。脉冲发生放大电路用开关方式实现,大大降低了系统的功耗。采用ATmega48单片机控制输出脉冲,精度高、功耗小、工作可靠、可以连续工作一个月以上,满足了实验的要求。
《基于ATmega48的微功耗电刺激器的设计》相关文章
- › 基于ATmega48的微功耗电刺激器的设计
- › 基于AT90S2313-4PC的MP3无线遥控自动点播机
- › 基于AT91M40800的音频视频处理系统设计
- › 基于AT90S8515的串行通信及其应用
- › 基于AT89S51单片机的出租车计价器系统设计
- › 基于ATmega128的智能安全帽特性检测仪设计
- 在百度中搜索相关文章:基于ATmega48的微功耗电刺激器的设计
- 在谷歌中搜索相关文章:基于ATmega48的微功耗电刺激器的设计
- 在soso中搜索相关文章:基于ATmega48的微功耗电刺激器的设计
- 在搜狗中搜索相关文章:基于ATmega48的微功耗电刺激器的设计