搜索
bottom↓
回复: 59

转帖手电论坛littleboy: atiny13+AN9926,10段可调带闪,电池电压检测

[复制链接]

出0入0汤圆

发表于 2010-6-28 00:30:56 | 显示全部楼层 |阅读模式
atiny13+AN9926,10段可调带闪,电池电压检测http://www.shoudian.com/viewthread.php?tid=34562&highlight=tiny13

pcb (原文件名:111.jpg)
程序如下:

#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
#include <avr/eeprom.h>

#define key1 PB1
#define key2 PB4

#define set_led_ddrDDRB|=_BV(PB0)
#define clr_led_ddrDDRB&=~_BV(PB0)
#define led_offPORTB&=~_BV(PB0)
#define led_onPORTB|=_BV(PB0)

#define uchar unsigned char
#define uint unsigned int
#define uint8 uint8_t

/* 定义全局变量 */
int light=205;
int inter_count=0;
uchar adc_val;
uint8 power=0,cpu_sta=0x20,flash_sign=0,flash_count=0;

//********** 按键检测 *******************

void check_key(void)
{
if(!(PINB&0X10))
{
power=0;
while(!(PINB&0X10)) ;//按住按键2s进入闪烁模式,以4Hz的频率闪烁
_delay_ms(5);
}
}

//****** 电池电压检测 *****************

void adc_check(void)
{
adc_val=ADCH;
if(adc_val<0x7A)
{
light=0;
DDRB=0X00;
MCUCR=0X20;
inter_count=0;
PORTB=0X02;
}
}

//********** 开灯和关灯 **************

SIGNAL(SIG_INTERRUPT0)
{
inter_count++;
flash_sign=0;
flash_count=0;
if(inter_count==1)//开灯,配置寄存器
{
PORTB=0X13;
power=1;
cpu_sta=0;
set_led_ddr;
light=eeprom_read_byte(0);
_delay_ms(1);
OCR0A=light;//比较匹配值,ledl亮度
TCNT0=0;
TCCR0A=0Xc3;//比较匹配模式,快速PWM模式
TCCR0B=0X01;//64分频,输出频率f=70Hz
TIMSK0=0X02;//开比较匹配中断

ADMUX=0X63;
DIDR0=0X08;
ADCSRB=0X00;
ADCSRA=0Xe3;

while(!(PINB&0X02));
_delay_ms(20);
}
if(inter_count>=2)
{
light+=30;
if(light>250) light=1;
while(!(PINB&0X02));
_delay_ms(5);
}
if(power==0)
{
eeprom_write_byte(0,light);
_delay_ms(1);
cpu_sta=0x20;
clr_led_ddr;
led_off;
TCCR0B=0;
DDRB=0X00;
PORTB=0X02;
flash_count=0;
inter_count=0;
}
}

//*********** 电池电压检测 ***********

SIGNAL(SIG_OVERFLOW0)
{

if(ADCSRA&0X10) adc_check();
if(!(PINB&0X10))
{
flash_count++;
if(flash_count>254) flash_sign=1;
}
else ;

if(flash_sign==1)
{
TCCR0B=0X04;
OCR0A=205;
}
else
{
TCCR0B=0X01;
OCR0A=light;
}
}


//******* 主程序 **************
int main(void)
{
GIMSK=0X40;
PORTB=0x02;
CLKPR=0X80;
CLKPR=0X06;
eeprom_write_byte(0,light);
_delay_ms(1);
sei();
while(1)
{
check_key();
MCUCR=cpu_sta;
if(power==0) asm("sleep");
}
}


功能:按键1为开机加调光,关机时,按下按键1,灯亮,然后按按键1调节亮度,先由亮至暗,然后至亮,循环.

此时按下按键2,然后再按下按键1,关灯.关灯时记录上一次灯的亮度,开灯自动读取..

若在开灯后长按按键2,灯爆闪...频率大概是2Hz.爆闪时按下按键1关灯

功耗(用万用表测量的,不是很准确,不过差不了很远):关灯电流:170uA,按此计算,1天放电=170uA*24=4mAH,10天放电=4*10=40mAH

软件设定锂电保护电压是3.2V左右.档数由软件设定,可更改..


原理图 (原文件名:222.jpg)
头像被屏蔽

出0入0汤圆

发表于 2010-6-28 01:11:40 | 显示全部楼层
Cool !

出0入0汤圆

发表于 2010-6-28 01:18:26 | 显示全部楼层
好东西!

出0入0汤圆

 楼主| 发表于 2010-6-28 01:27:36 | 显示全部楼层
谢谢置酷!这是真的吗?难以置信。

出0入96汤圆

发表于 2010-6-28 08:35:40 | 显示全部楼层
好,

出0入0汤圆

发表于 2010-6-28 09:34:32 | 显示全部楼层
不错不错,mark

出0入0汤圆

发表于 2010-6-28 10:57:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 11:28:01 | 显示全部楼层
不错不错。mark,学习。

出0入0汤圆

发表于 2010-6-28 14:32:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 14:46:08 | 显示全部楼层
不错。。。。。。。。。

出0入0汤圆

发表于 2010-6-28 15:43:29 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-6-28 16:41:42 | 显示全部楼层
好东西!

出0入0汤圆

发表于 2010-6-28 19:49:23 | 显示全部楼层
好东西!  学习ing

出0入0汤圆

发表于 2010-6-28 19:58:16 | 显示全部楼层
MARK

出0入4汤圆

发表于 2010-6-28 20:24:23 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-6-28 20:59:59 | 显示全部楼层
马克下

出0入0汤圆

发表于 2010-6-28 23:48:06 | 显示全部楼层

出0入0汤圆

发表于 2010-7-2 14:50:27 | 显示全部楼层
好东西啊

出0入0汤圆

发表于 2010-7-9 13:54:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-13 15:32:41 | 显示全部楼层
好东西,MARK

出0入0汤圆

发表于 2010-7-13 16:24:34 | 显示全部楼层
真的不错~~~

出0入0汤圆

发表于 2010-7-13 20:08:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-9 16:56:01 | 显示全部楼层
极好,留记号

出50入4汤圆

发表于 2010-9-25 22:11:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-26 16:20:00 | 显示全部楼层
好东西

出0入0汤圆

发表于 2010-10-16 21:51:43 | 显示全部楼层
好东东

出0入0汤圆

发表于 2010-10-17 23:30:29 | 显示全部楼层
我也有个这样的板子,,有时间我也调试下程序  肯定好玩

出0入0汤圆

发表于 2010-10-18 01:50:04 | 显示全部楼层
收下,说不准那天真能派上用场

出0入0汤圆

发表于 2010-10-21 18:58:28 | 显示全部楼层
顶~

出0入0汤圆

发表于 2010-10-28 20:56:31 | 显示全部楼层
pl

出0入0汤圆

发表于 2010-12-13 10:25:17 | 显示全部楼层
MARK TOO

出0入0汤圆

发表于 2010-12-27 19:18:52 | 显示全部楼层
编译了下程序,3.5K,tiny13怎么放的下,GCC 已经s优化了,哪里有问题?谁有试过吗

出0入0汤圆

发表于 2010-12-31 20:59:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-31 21:42:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-31 21:56:00 | 显示全部楼层

出0入0汤圆

发表于 2010-12-31 23:52:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-1 00:02:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-1 00:16:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-20 17:46:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-20 18:38:57 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2011-2-20 19:22:36 | 显示全部楼层
按个爪印

出0入0汤圆

发表于 2011-2-20 21:39:05 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2011-6-5 04:03:31 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2011-7-17 21:56:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-18 18:08:58 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-8-10 17:35:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-10 18:01:55 | 显示全部楼层
m

出0入0汤圆

发表于 2011-9-15 18:01:03 | 显示全部楼层
好东西!mark

出0入0汤圆

发表于 2011-9-15 19:44:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-30 11:40:08 | 显示全部楼层
收下了谢谢,

出0入0汤圆

发表于 2011-10-31 14:24:17 | 显示全部楼层
mark,有空做一个.

出0入0汤圆

发表于 2011-11-25 13:30:07 | 显示全部楼层
我在找这个littleboy, 有哪位知道的转告一下,谢谢啦

出0入0汤圆

发表于 2012-1-5 14:28:25 | 显示全部楼层
先记下来,在学习。谢谢楼主!

出0入0汤圆

发表于 2012-1-19 17:10:16 | 显示全部楼层
回复【楼主位】zhangmm  
-----------------------------------------------------------------------

MARK

出0入0汤圆

发表于 2012-5-22 22:23:06 | 显示全部楼层
mark 收藏

出0入0汤圆

发表于 2012-5-23 00:42:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-5-23 10:44:23 | 显示全部楼层
好东西,学习学习。。。。

出0入0汤圆

发表于 2013-7-12 18:00:15 | 显示全部楼层
mark 一下

出0入0汤圆

发表于 2013-7-13 08:23:00 | 显示全部楼层
mark 谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 11:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表