版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、這是以前看一網(wǎng)友做的小玩意,看到現(xiàn)在有人發(fā)LED燈的電路就拿出來給需要的 參考一下。電路功能:單鋰3WLE恒流驅(qū)動(dòng),3.0V-4.2V全程恒流,最大可輸出700mA實(shí)際 可達(dá) 1000mA)四種檔位模式:1三檔調(diào)光+暴閃+慢閃+SOS信標(biāo);2. 三檔調(diào)光+暴閃+SOS;3. 二檔調(diào)光;4. 六檔調(diào)光+暴閃+慢閃+SOS信標(biāo);有記憶功能;只有一個(gè)電源開關(guān)控制,關(guān)機(jī)關(guān)電源,完全不耗電電池過放保護(hù),電壓低于3V進(jìn)入應(yīng)急模式自動(dòng)切換到30 mA,電壓低于2.7V進(jìn)入休眠模式。GND問LI小僅用開機(jī)笹狽|是否記憶功艇吋岐OluF,便用關(guān)機(jī)程測農(nóng)費(fèi)記憶収1uF(原文件名:3454.jpg)引用圖片有兩種不
2、同的代碼,開機(jī)記憶或關(guān)機(jī)記憶Chip typeClock freque ncyMemory modelExternal SRAM sizeATti ny134.800000 MHzTi ny0Data Stack size:16四組檔位模式,關(guān)閉2秒記憶#defi neDEBUG2#defi nedebug#i nclude#include #define CHANGE_WAITING 62#define MAX_CURRENT 920#define VOLTAGE_LIMIT_TO_30mA 5233 /5233=3.2V 4812=3.0V#define VOLTAGE_OUT_OFF 4
3、331 /4331=2.7V#define VOLTAGE_CHANGE 1000 / 定義開機(jī)后是否變 換檔位的電壓值,如大于此值則變換檔位,否則用上次關(guān)機(jī)時(shí)的檔位#define K1 318682 / 由于 3454 在壓控恒流模式工作時(shí)輸出電流會隨電池電壓降低而升高, 為了做到真正的 恒流,引入 K1、 K2 根據(jù)電池電壓對控制電壓進(jìn)行修正。#define K2 341#define XINGBIAO 3#define MAX_DANGWEI 9#define ADEN ADCSRA.7#define ADSC ADCSRA.6#define EN_30mA PORTB.5#define
4、EN_PWMPORTB.1#defineWDCE 4#defineWDE 3eepromunsignedcharnull;eepromunsignedcharcircle=2;flashunsigned chartime_set3181,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, o frash/ ba16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, / flash4,8,4,8,4,25,12,8,12,8,12,25,4,8,4,8,4,50 / so s亮(0.5 秒)-暗(1 秒) - 亮( 0.5
5、秒) - 暗( 1秒) - 亮( 0.5 秒)- 暗(3.5 秒)-亮(1.5 秒)- 暗(1秒) - 亮( 1.5 秒)-暗(1 秒)- 亮(1.5 秒)-暗(3.5 秒) - 亮( 0.5 秒)-暗(1 秒) - 亮(0.5 秒)- 暗(1 秒) - 亮( 0.5 秒) - 暗( 3.5 秒);flash unsigned int i_setMAX_DANGWEI+1=920,700,700,50, /xingbiao920,700,480,348,135,20;bit flashing_on_off;bit adc_busy;bit check_change_circle;unsigne
6、d char temp;unsigned char lower_times;unsigned char time_flash,frash_count;/ Watchdog timeout interrupt service routine interrupt WDT void wdt_timeout_isr(void) if( temp!=XINGBIAO)time_flash+;WDTCR|=0x40;if( temptime_settempfrash_count) time_flash=0;frash_count+;if(frash_count17)frash_count=0; flash
7、ing_on_off=1;elseflashing_on_off=flashing_on_off;#ifndef DEBUG2/ ADC interrupt service routineinterrupt ADC_INT void adc_isr(void)unsigned int adc_result;adc_result=10*ADCW;if(check_change_circle=1)check_change_circle=0;if(adc_resultVOLTAGE_CHANGE)temp+;switch (PINB&0x18)case 0x08: /PB4 接地,三檔調(diào)光+暴閃+慢
8、閃+SOS信標(biāo)if(temp4)temp+;break;case 0x10: /PB3 接地 , 三檔調(diào)光+暴閃+SOS temp+;break;case 0x00:/PB3 、PB4 接地 ,二檔調(diào)光temp=temp=5?7:4;break;default:break;/ 沒有連接,六檔調(diào)光 +暴閃+慢閃+SOS信標(biāo)if(tempMAX_DANGWEI)temp=0; circle=temp;if(adc_resultVOLTAGE_OUT_OFF)EN_PWM=0;#ifndef debugEN_30mA=0;#endif elseif(adc_result10)TCCR0B=0x00;
9、EN_PWM=0;#ifndef debugEN_30mA=flashing_on_off; #endifelselower_times=0;EN_PWM=flashing_on_off;#ifndef debugEN_30mA=0;long)K2*i_sett#endifOCR0A=(unsigned char)(K1-(unsigned emp)/(adc_result);adc_busy=0;#endifroutine/ Timer 0 output compare A interrupt service interrupt TIM0_COMPA void timer0_compa_is
10、r(void) if(adc_busy=0) ADSC=1; adc_busy=1; void main(void) #pragma optsize-#ifdef _OPTIMIZE_SIZE_#pragma optsize+#endif /PORTB=0x19;/DDRB=0x23;flashing_on_off=1;lower_times=0; time_flash=0; frash_count=0; #asm(sei) temp=circle;TIMSK0=0x04;DIDR0=0x0F;ADMUX=0x41;ADCSRA=0x8D;#pragma optsize-WDTCR|= (1W
11、DCE) | (1WDE); WDTCR=0x41; /64ms#ifdef _OPTIMIZE_SIZE_#pragma optsize+#endifOCR0A=200;TCCR0A=0x83;TCCR0B=0x01;check_change_circle=1;ADSC=1;adc_busy=1;while(check_change_circle=1)Jdelay_ms(1);while (1)if(temp=XINGBIAO)EN_30mA=1;delay_ms(50);EN_30mA=0;#pragma optsize-WDTCR|= (1WDCE) | (1WDE);WDTCR=0x6
12、0; /4s#ifdef _OPTIMIZE_SIZE_#pragma optsize+#endifMCUCR=0x20;#asm(sleep);#asm(NOP);Chip typeClock frequencyMemory model External SRAM size: ATtiny13 4.800000 MHz : Tiny0Data Stack size : 16四組檔位模式,兩秒連續(xù)內(nèi)按開關(guān)換檔,點(diǎn)亮超過 2 秒記憶當(dāng)前檔,/#define DEBUG2/#define debug#include #include #define CHANGE_WAITING 62#define
13、 MAX_CURRENT 920#define VOLTAGE_LIMIT_TO_30mA 5233 /5233=3.2V 4812=3.0V#define VOLTAGE_OUT_OFF 4331 /4331=2.7V#define K1 333167 / 由于 3454 在壓控恒流模式工作時(shí)輸出 電流會隨電池電壓降低而升高,為了做到真正的恒流,引入K1、K2 根據(jù)電池電壓對控制電壓進(jìn)行修正。#define K2 292#define XINGBIAO 3#define MAX_DANGWEI 9#define ADEN ADCSRA.7#define ADSC ADCSRA.6#defin
14、e EN_30mA PORTB.5#defineEN_PWMPORTB.1#defineWDCE 4#defineWDE 3eepromunsignedcharnull;eepromunsignedcharchange_needed=0;eepromunsignedcharcircle=2;flashunsigned chartime_set318=/ ba1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, o frash16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, / flash4,8,4,8,4,25,1
15、2,8,12,8,12,25,4,8,4,8,4,50 / so s亮(0.5 秒)-暗(1 秒) - 亮( 0.5 秒) - 暗( 1秒) - 亮( 0.5 秒)- 暗(3.5 秒)-亮(1.5 秒)- 暗(1秒) - 亮( 1.5 秒)-暗(1 秒)- 亮(1.5 秒)-暗(3.5 秒) - 亮( 0.5 秒)-暗(1 秒) - 亮(0.5 秒)- 暗(1 秒) - 亮( 0.5 秒) - 暗( 3.5 秒);flash unsigned int i_setMAX_DANGWEI+1=650,650,650,50, /xingbiao1000,750,520,350,180,50;bit
16、flashing_on_off;bit adc_busy;unsigned char temp;unsigned char time,lower_times;unsigned char time_flash,frash_count;routine/ Watchdog timeout interrupt service interrupt WDT void wdt_timeout_isr(void) if( temp!=XINGBIAO)time_flash+;WDTCR|=0x40; if(timeCHANGE_WAITING)time+;elseif(change_needed!=0) ch
17、ange_needed=0;if( temptime_settempfrash_count)time_flash=0;frash_count+; if(frash_count17)frash_count=0;flashing_on_off=1;elseflashing_on_off=flashing_on_off;#ifndef DEBUG2/ ADC interrupt service routineinterrupt ADC_INT void adc_isr(void)unsigned int adc_result;adc_result=10*ADCW;if(adc_resultVOLTA
18、GE_OUT_OFF)EN_PWM=0;#ifndef debugEN_30mA=0;#endifelse if(adc_result10)TCCR0B=0x00;EN_PWM=0;#ifndef debug EN_30mA=flashing_on_off; #endif else lower_times=0;EN_PWM=flashing_on_off;#ifndef debugEN_30mA=0;#endif if(flashing_on_off=0)OCR0A=200;else*i_settemp)/(adc_result);long)K2OCR0A=(unsigned char)(K1
19、-(unsignedadc_busy=0;#endif/ Timer interrupt0 output compareTIM0_COMPA voidA interrupt service timer0_compa_isr(void)routineif(adc_busy=0) ADSC=1; adc_busy=1; void main(void)#pragma optsize-#ifdef _OPTIMIZE_SIZE_#pragma optsize+#endif/PORTB=0x19;/DDRB=0x23;TCCR0A=0x83;flashing_on_off=1;time=0;lower_
20、times=0;time_flash=0;frash_count=0;#asm(sei) temp=circle;if(change_needed=0)change_needed=1;elsetemp+;switch (PINB&0x18) case 0x08: 光+暴閃+慢閃+SOS信標(biāo)/PB4 接地,三檔調(diào)caseif(temp4) temp+;break;0x10:/PB3 接地 , 三檔調(diào)光 +暴閃 +SOScase調(diào)光 temp+;break;0x00: temp=temp=5?7:4;break;/PB3 、PB4 接地 , 二檔default:break;/ 沒有連接,六檔調(diào)光
21、+暴閃 +慢閃+SOS信標(biāo)if(tempMAX_DANGWEI) temp=0;circle=temp;if(temp!=XINGBIAO)/GIMSK=0x20;/PCMSK=0x10;/GIFR=0x20;TIMSK0=0x04;DIDR0=0x0F;ADMUX=0x41;ADCSRA=0x8D;#pragma optsize-WDTCR|= (1WDCE) | (1WDE); WDTCR=0x41; /64ms #ifdef _OPTIMIZE_SIZE_#pragma optsize+#endifOCR0A=250;TCCR0B=0x01;delay_ms(5);adc_busy=0;
22、while (1) if(temp=XINGBIAO)EN_30mA=1; delay_ms(100);EN_30mA=0;#pragma optsize-WDTCR|= (1WDCE) | (1WDE);WDTCR=0x60;4s#ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #en difMCUCR=0x20;#asm(sleep); #asm(NOP);程序中系數(shù)K1、K2計(jì)算:(原文件名:1.jpg)引用圖片再來一個(gè)應(yīng)急充, 功能:手機(jī)充電,1.0V到4.5V電池通吃可以電池過放保護(hù),也可以取消保護(hù)榨干干電池 還可以測量電池電壓并顯示。不計(jì)成本,效果絕非
23、地?cái)偵夏苜I到的可比。| 二8*11a j丄CLKIC1CKAi MMomFt5.11OUTREFPGMDPGI4T:PONT:-O 口-4 i匚!TJE1(原文件名:sch.jpg)引用圖片源碼,讀以下就可以知道操作方法了 /* This program was produced by the CodeWizardAVR V2.03.9 StandardAutomaticProgram Generator?Copyright1998-2008 Pavel Haiduc, HP InfoTechProject :Version :Date: 2009-4-3AuthoruserCompany :
24、DellComments:Chip type: ATtiny13AVR Core Clock frequency:4.800000 MHzMemory model: TinyExternal RAM size: 0Data Stack size: 24REF=1.07V#include #include #define DEBUG 0#define OUT_ENABLEPORTB.0#define KEY_CHECKPINB.2#define BOOST_ENABLE PORTB.3#defineOUTPUT_VOLTAGE_SELEPCOTRTB.1#if !DEBUGPORTB.501#d
25、efine LED_OUT#define LED_ON#define LED_OFF #endif #define WDCE 4#define WDE 3#define ADEN ADCSRA.7#define ADSC ADCSRA.6volatileunsignedchartemp_v16;volatileunsignedcharCount;volatileunsignedcharReal_voltage;volatileunsignedcharSystem_states;unsigned char Shut_up_voltage;unsigned int Worked_timer_cou
26、nt;bit adc_busy;bit enable_lower_voltage_protect;unsigned char Lower_voltage_checked_times;interrupt PCINT0 void pin_change_isr(void) unsigned char i=0;while(KEY_CHECK=0)i+;delay_ms(10);if(i=250)/if(KEY_CHECK=1|i=250) break;啟動(dòng)或關(guān)閉輸出if(i=200) / 按鈕按下時(shí)間大于 2 秒 if(System_states!=2) System_states=2;Worked_
27、timer_count=0;else System_states=0;,啟動(dòng)或關(guān)閉放電低else / 按鈕按下時(shí)間小于 2 秒 電壓保護(hù),并顯示空載電壓值及低電壓保護(hù)值if(i=5)if(System_states!=2)System_states=1;lower_voltage_routineenable_lower_voltage_protect=enable protect;/ Watchdog timeout interrupt service routine /interrupt WDT void wdt_timeout_isr(void)/ Timer 0 output compa
28、re A interrupt service interrupt TIM0_COMPA void timer0_compa_isr(void) if(adc_busy=0)ADSC=1;adc_busy=1;/ ADC interrupt service routine interrupt ADC_INT void adc_isr(void) unsigned char i;unsigned int temp;temp_vCount=ADCH;Count+;if(Count15)Worked_timer_count+;Count=0;temp=0; for(i=0;i16;i+)temp+=(unsigned int)temp_vi;Real_voltage=(unsigned char)(unsigned long )temp*1531)/100 000);if(Real_voltage=22500) / 電池電壓低或約一小時(shí)后關(guān)閉輸出Lower_voltage_checked_times+;if(Lower_voltage_checked_times3)/ 連續(xù)三次采樣都低于保護(hù)值System_states=0;BOOST_ENABLE=0;OUT_ENABLE=1;#if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度海洋資源開發(fā)與保護(hù)合作協(xié)議5篇
- 設(shè)計(jì)院在醫(yī)療領(lǐng)域的科技創(chuàng)新實(shí)踐
- 2025版無產(chǎn)權(quán)儲藏室買賣及售后服務(wù)保障協(xié)議3篇
- 2025年度個(gè)人設(shè)備抵押貸款業(yè)務(wù)合同
- 未來教育趨勢下的學(xué)生心理素質(zhì)培養(yǎng)方向
- 2025年度個(gè)人網(wǎng)絡(luò)借貸平臺合作協(xié)議書4篇
- 二零二五年度車牌租賃代理服務(wù)合作協(xié)議4篇
- 二零二五年度車位使用權(quán)及物業(yè)管理服務(wù)轉(zhuǎn)讓協(xié)議3篇
- 二零二五年度蟲草市場推廣與銷售支持合同2篇
- 2025年度文化旅游資源承包轉(zhuǎn)讓合同范本3篇
- 人教版四年級上冊加減乘除四則混合運(yùn)算300題及答案
- 時(shí)間的重要性英文版
- 2024老舊小區(qū)停車設(shè)施改造案例
- 合成生物學(xué)技術(shù)在生物制藥中的應(yīng)用
- 消化系統(tǒng)疾病的負(fù)性情緒與心理護(hù)理
- 高考語文文學(xué)類閱讀分類訓(xùn)練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報(bào)告大全(12篇)
- 灰壩施工組織設(shè)計(jì)
- WS-T 813-2023 手術(shù)部位標(biāo)識標(biāo)準(zhǔn)
- 同意更改小孩名字協(xié)議書
- 隱患排查治理資金使用專項(xiàng)制度
評論
0/150
提交評論