完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题,使用STC12LE5A60S2单片机的P1.0和P1.1口做两组电池的电压实时检测并显示,两组电池电压交替检测,如果A组电池电压低于46V时关闭LED0和LED1,然后继续检测B组电池电压,B组电池电压低于46V时关闭LED2和LED3;如果B组电池电压低于46V时关闭LED2和LED3,然后继续检测A组电池电压,A组电池电压低于46V时关闭LED0和LED1。但程序出现一个问题:A组电池电压为48V不变,B组电压由48V缓慢下降,当降到46V时,关闭LED2和LED3,然后单片机检测到A组的电压瞬间也变成46V导致LED0和LED1也关闭了,接着检测到的A组电池电压又恢复到48V,但使用示波器量测过A组电压全过程中并未发生变化,非常疑惑,请各位大神解答,非常感谢。
附上此部分的程序。 void discharge(void) interrupt 0 { unsigned char a,LED0,LED1,LED2,LED3; unsigned int ADDATA; LED0=1; LED1=1; LED2=1; LED3=1; a=0; LCD12864_clear(); //12864清屏 get_adc_result(a); //获取a通道电压值 ,返回的是temp discharge_buffer=(temp-3013)/0.27970; //精确计算实际电压值,discharge_buffer为实际的电压值的100000倍,便于12864显示小数部分 ADDATA=(uint)(discharge_buffer/100000); //对实际电压值取整,方便和46V进行比较 disp12864_fangdianya(a); //在12864上显示a通道的电压值 do { a=1-a; //对a进行取反,轮流检测P1.0和P1.1通道的电压 get_adc_result(a); //获取a通道电压值 ,返回的是temp discharge_buffer=(temp-3013)/0.05654;//精确计算实际电压值,discharge_buffer为实际的电压值的100000倍,便于12864显示小数部分 ADDATA=(uint)(discharge_buffer/100000);//对实际电压值取整,方便和46V进行比较 disp12864_fangdianya(a); //在12864上显示a通道的电压值 } while(46 if(a==1) //如果a=1,说明B组电池电压低于46V,关掉LED2和LED3 { LED2=0; LED3=0; } else //否则,说明A组电池电压低于46V,关掉LED0和LED1 { LED0=0; LED1=0; } a=1-a; //对a取反,下面要检测另一路电池电压 Delay100ms(); //延时100ms get_adc_result(a); //获取a通道电压值 ,返回的是temp discharge_buffer=(temp-3013)/0.05654; //精确计算实际电压值,discharge_buffer为实际的电压值的 //100000倍,便于12864显示小数部分 ADDATA=(uint)(discharge_buffer/100000); //对实际电压值取整,方便和46V进行比较 disp12864_fangdianya(a); //在12864上显示a通道的电压值 do { get_adc_result(a); //获取a通道电压值 ,返回的是temp discharge_buffer=(temp-3013)/0.05654;//精确计算实际电压值,discharge_buffer为实际的电压值的 //100000倍,便于12864显示小数部分 ADDATA=(uint)(discharge_buffer/100000);//对实际电压值取整,方便和46V进行比较 disp12864_fangdianya(a);//在12864上显示a通道的电压值 Delay100ms(); //延时100ms } while(46 if(a==0) { LED0=0; LED1=0; } else { LED2=0; LED3=0; } } |
|
相关推荐
4个回答
|
|
没有人能够解答这个问题吗?
|
|
|
|
感觉交替测压通道应该给个延时,毕竟AD采集有个反映时间;或者分别用两组通道采集试试看
|
|
|
|
|
|
|
|
两次检测之间要重新初始化AD,转换通道,希望能帮到你,可以在联系我
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
690 浏览 0 评论
735 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
624 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1099 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1092 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11793 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 04:59 , Processed in 0.815268 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号