历史上的今天
今天是:2025年02月05日(星期三)
2020年02月05日 | 基于ADC0831+LM358正负极电压测量
2020-02-05 来源:51hei
用358做一个加法器,通过ADC0831 AD转换,51单片机控制,可以测量正2.5V至负的2.5V电压值。可以扩展到大电压的测量 加分压电阻即可
电路原理图如下:
单片机源程序如下:
/*******************
程序功能:AD转换显示。被测电压范围-2.5V至+2.5V
版本:Vre1.0
*******************/
#include #include #define uchar unsigned char #define uint unsigned int sbit cs = P1^0; //IO定义 sbit clk = P1^1; sbit dat = P1^2; sbit dian= P2^7; uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff}; //数码管 uchar code bc[]={0x01,0x02,0x04,0x08}; //数码管位选(共阳) uint huancun[]={0,0,0,0}; //数据缓存 uchar adc0831(); //读取AD值 void display(); //数码管显示 void delay(uint time) //延时 { for(time;time>0;time--); } void main() { uint date,date1; uchar i; P1=0xff; P2=0xff; P3=0xff; while(1) { i++; if(i==100) { i=0; //P2=adc0831(); //测试用 date=adc0831(); //读取AD值 date*=2; //基准电压5.1V,乘以2刚好是测得的电压值的100倍(date=120,就是1.2V) if(date>250) //如果测得的值大于2.5V,说明加法器上的被测电压是正电压 { date-=250; //转换到2.5V电压范围内 huancun[0]=11; //符号位不显示,表示正电压 } else if(date==250) //如果测到的值是2.5V,说明加法器上的被测电压是0V { date=0; huancun[0]=11; } else //如果测得的值小于2.5V说明加法器上的电压是负电压 { date1=250-date;//250是加法器上的偏置电压,date是测到的电压 date=date1; //date1就是被测的电压值 huancun[0]=10; //显示负号 } //date=date/51; huancun[1]=date/100; huancun[2]=date%100/10; huancun[3]=date%10; } display(); //显示 } } void display() { uchar i; for(i=0;i<4;i++) { P3=bc[i]; P2=tab[huancun[i]]; if(i==1) //显示百位的小数点 dian=0; else dian=1; delay(100); } } uchar adc0831()//AD转换程序 就没什么说的了 网上大把 { uchar i,temp; dat=1; _nop_(); _nop_(); _nop_(); cs=0; _nop_(); _nop_(); _nop_(); clk=1; _nop_(); _nop_(); _nop_(); clk=0; _nop_(); _nop_(); _nop_(); clk=1; _nop_(); _nop_(); _nop_(); clk=0; for(i=0;i<8;i++) { temp<<=1; if(dat) { temp++; } clk=1; _nop_(); _nop_(); _nop_(); clk=0; _nop_(); _nop_(); _nop_(); } cs=1; _nop_(); _nop_(); return temp; }
史海拾趣
|
com.sys的完整代码: #include #define NTSTRSAFE_LIB #include #define COM_DRIVER_NAME L\"\\\\Device\\\\Serial0\" //要绑定的设备名 //延时用的 #define DELAY_ONE_MICROSECOND &nbs ...… 查看全部问答> |
|
我用的是TX-1C实验板,自己写的程序为什么读取温度时是一个不正确的数,而且不会随外界温度改变????[attach]74559 这是我的程序和正确程序对比,我看不出什么大差别……[/attach] [ 本帖最后由 sphs ...… 查看全部问答> |
|
今年夏季,举世瞩目的欧洲杯和奥运会在欧洲大陆举行。这是多少球迷和体育爱好者梦寐以求的时刻。 今年夏季亚太地区的电子元器件和分销市场,特别是各大电子元器件原厂和授权代理商举办的技术高峰论坛会传递哪些信息呢? ...… 查看全部问答> |
|
刚回来遇到这个事情,有点头疼,还好解决了 [ 本帖最后由 54chenjq 于 2012-12-25 16:41 编辑 ]… 查看全部问答> |
|
创荣发以设计、产品、规模、服务赢得了多家国际著名厂商的信赖,是行业中少有的通过多家国际著名厂商与品牌体系审核合格的企业,从而成为其研发与制造的战略合作伙伴,产品 70% 销往国外,服务于世界500强中70%的消费电子类企业。公司分别获得了 IS ...… 查看全部问答> |
|
利用STM32F429I开发板已有触摸屏的优势,参与了【手机DIY】活动,详情在: https://bbs.eeworld.com.cn/thread-438739-1-1.html 欢迎来拍砖~ https://bbs.eeworld.com.cn/thread-438739-1-1.html 拨打10086: 来电话了,我是接呢,还是不接 ...… 查看全部问答> |




