自编笔记本移动电源源程序.doc_第1页
自编笔记本移动电源源程序.doc_第2页
自编笔记本移动电源源程序.doc_第3页
自编笔记本移动电源源程序.doc_第4页
自编笔记本移动电源源程序.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

;=;AT8PC71A AD TEST CODE;= ;IC : AT8PC71A ;CPUCLK : 1 MHZ ;WDT : DISABLE ;- /* 修改记录:2019/9/12 电池组过充后,恢复电压为4.1V,将原充满后检测电压变更为4.0V,避开保护板恢复电压值。增加电池组不平衡故障显示。 2019/9/12电池组休眠后,记忆19V输出电压值。第一次上电和电池组过放后,默认输出电压为16V。2019/9/19 DC 19V过流电流改为5A。2019/9/19 USB 5V过流电流改为2.5A。2019/9/20 DC 19V过流保护后,直接进入SLEEP模式。2019/9/20电池组休眠后,记忆19V输出电压值。第一次上电和电池组过放后,默认输出电压为16V和19V随机。2019/9/20 电芯电压小于2.9V后,关闭输出。 */ #define KEYIN 2#define L80 4 /80% #define L60 5 /60% #define L40 3 /40% #define L20 1 /20%#define VOUT_SEL 0 #define CE 7 #define C_FULL 6 #define EXVIN 5 #define VOUTEN 0 #define DEV_KEY 0 #define DEV_OC 1 #define DEV_OV 2 #define DEV_CHG 3 #define DEV_SLEEP 4#define DEV_LKEY 5 #define DEV_NLD 6 #define DEV_DISP 7 /* V*VOUT*0.098*4096/2 要求实际测试值 */ #define V25H 5DH / #define V25L A0H #define V29H 72H /2.9V 关DC-DC #define V29L A0H #define V31H 74H / #define V31L A0H #define V30H 70H / #define V30L A0H #define V33H 7DH /3.3V 20% #define V33L A0H #define V35H 83H /3.5v 40% #define V35L A0H #define V37H 8BH / 3.7V 60% #define V37L A0H #define V39H 92H /3.9V 80% #define V39L A0H #define V40H 96H /4.0V 过压恢复电压4.0V #define V40L A0H #define V42H 9FH /4.2V #define V42L A0H #define V45H A8H /4.4V电池电压故障 #define V45L A0H /* V*VOUT*0.091*4096/2 */ #define VOUTUVH A8H / MIN =14.5V #define VOUTUVL A0H #define VOUTOVH F4H / MAX =21.5V #define VOUTOVL A0H /* V*0.02*IOUT*17.5*4096/2 VOUT电流判断 */ #define VOUTOCH DAH /4.9A电流 产生1.85V电压 #define VOUTOCL A0H #define VOUTCCH 21H /电路噪声为1D左右实际测试450mA #define VOUTCCL A0H #define VOUTCWH 24H /实际测试530mA#define VOUTCWL A0H /* V*0.02*IOUT*43.5*4096/2 V50电流判断 */ #define V50OCH EAH /2.3A电流 产生1.75V电压#define V50OCL A0H #define V50CCH 03H /实际测试50mA电流 #define V50CCL A0H #define V50CWH 06H /实际测试80mA#define V50CWL A0H #define PWMINTSEL 7#define PWMTMEN 2 #define PWMTMIE 1#define PWMTMIF 0 #define R 1#define A 0 /* 固定地址定义 */ INDF EQU 00H PCL EQU 02H STATUS EQU 03H FSR EQU 04H PORTA EQU 05H PA EQU 05HPB EQU 06HPORTB EQU 06HPAIE EQU 07H PBIE EQU 08HPACON EQU 09H PBCON EQU 0AH INTEN EQU 0BH INTFLAG EQU 0CH WDT EQU 11HPCON EQU 12HCLKCFG EQU 13H PWM0CON EQU 14H PWM0CR EQU 15HP0TMLB EQU 16HP0RDLB EQU 17HP0TRHB EQU 18HPWM1CON EQU 19HPWM1CR EQU 1AHP1TMLB EQU 1BHP1RDLB EQU 1CH P1TRHB EQU 1DHPWM2CON EQU 1EHPWM2CR EQU 1FHP2TMLB EQU 20HP2RDLB EQU 21HP2TRHB EQU 22HPWM3CON EQU 23HPWM3CR EQU 24HP3TMLB EQU 25HP3RDLB EQU 26HP3TRHB EQU 27HADCON_1 EQU 28HADCON_2 EQU 29H ADCHB EQU 30HADCLB EQU 31H ;*PAMODE0 EQU 08HPAMODE1 EQU 09HPBMODE0 EQU 0AH PBMODE1 EQU 0BHPADRVMD0 EQU 0CHPADRVMD1 EQU 0DHPBDRVMD0 EQU 0FHPBDRVMD1 EQU 10H ;*ADCEN EQU 7ADCST EQU 6ADCIE EQU 7ADCIF EQU 6 C EQU 0 Z EQU 2 BITEQ EQU 7 /ABTMP BIT7 1-相等 0-不相等 bit0 1-AB 0-A A MOVAR INTSTATMP /压缩当前状态及数据存储到41H BTRSC INTFLAG,6 GOTO PAITASK BTRSC INTFLAG,7 GOTO PBITASK BTRSC PWM1CR,0 GOTO PWM1ITASK INT_EXIT: SWAPR INTSTATMP,A /R的高低4位互换- A MOVAR STATUS /还原STATUS数据 SWAPR INTACCTMP,R SWAPR INTACCTMP,A /还原A数据 RETFIE ;= PAITASK: BCR INTFLAG,6 CALL KEY_SCAN GOTO INT_EXIT PBITASK: BCR INTFLAG,7 GOTO INT_EXIT PWM1ITASK: BCR PWM1CR,0 CALL TMR_CHECK GOTO INT_EXIT ;= TMR_CHECK: / 1/(16M/128)*4095 =32768US=32.768MS BSR ABTMP,CHG_EXIT /用于充电检测周期 BSR ABTMP,CHSW_EN /ad 周期 BTRSC ABTMP,CHG_OVER INCR CHG_COUNTER,R /* INCR LOOP_TIMER,R /充电显示间隔 MOVIA 30H XORAR LOOP_TIMER,A / BTRSC STATUS,Z /48*32.768MS=1.57S GOTO CLR_LOOPT GOTO NEXT_L CLR_LOOPT: BSR ABTMP,CHGTMR CLRR LOOP_TIMER */NEXT_L: MOVIA 00H XORAR DISP_TIMER,A /按键显示定时 92*.032=3S BTRSC STATUS,Z GOTO CLR_DISP DECRSZ DISP_TIMER,R GOTO TMRP1 CLR_DISP: BCR DEV_STATUS,DEV_DISP /清除显示 GOTO TMR1 TMRP1: BSR DEV_STATUS,DEV_DISP /设置显示 TMR1: BTRSS DEV_STATUS,DEV_NLD /是否有空载信号 GOTO REST_TIMER INCR NOLOAD_TIMER,R /49H BTRSS STATUS,Z GOTO END_TIMER INCR NOLOAD_TH,R MOVIA 03H /二次循环 XORAR NOLOAD_TH,A BTRSS STATUS,Z GOTO END_TIMER BSR DEV_STATUS,DEV_SLEEP /255*32.768MS*3=25S内都无电流 GOTO END_TIMER REST_TIMER: MOVIA 00H MOVAR NOLOAD_TIMER END_TIMER: RETURN /* 按键扫描 */KEY_SCAN: BTRSC PA,KEYIN GOTO END_KEY CALL DELAY_4MS BTRSC PA,KEYIN GOTO END_KEY SHORT_KEY: BCR ABTMP,CHG_OVER /状态清除 BCR DEV_STATUS,DEV_OV BCR DEV_STATUS,DEV_OC BSR DEV_STATUS,DEV_KEY /按键标示 BSR DEV_STATUS,DEV_DISP /显示标示LONG_KEY: BTRSC DEV_STATUS,DEV_CHG /充电标示 GOTO END_KEY BTRSS NLDBIT1,0 /放电标示 GOTO END_KEY BTRSC PA,KEYIN /外部电源标示 GOTO END_KEY CLRWDT /清除看门狗 CALL DELAY_100MS INCR KEY_TIMER,R MOVIA 29H XORAR KEY_TIMER,A /=0,L=0 ,Z=1 BTRSC STATUS,Z GOTO ACTION_LIGHT GOTO LONG_KEY ACTION_LIGHT: BCR DEV_STATUS,DEV_KEY /状态清除 BTRSS DEV_STATUS,DEV_LKEY GOTO CLR_LIGHT BSR PA,VOUT_SEL BCR DEV_STATUS,DEV_LKEY GOTO END_KEYCLR_LIGHT: BCR PA,VOUT_SEL BSR DEV_STATUS,DEV_LKEY GOTO END_KEY END_KEY: BTRSS DEV_STATUS,DEV_KEY GOTO NO_DISPKEY MOVIA 5CH /92*.032=3S 按键时间赋值 MOVAR DISP_TIMER NO_DISP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论