基于单片机和ADC0809做的数字电压表,误差分析表如下,老师说误差太大,要修改程序中的公式,该怎么改

作者&投稿:富苏 (若有异议请与网页底部的电邮联系)
我用单片机跟ADC0809做个数字电压表0~5V显示,结果却是数码管显示的最大值为2.5V,而且是显示了2个2.5V~

result=temp*1.0/255*500;//这个式子有问题

这个式子里,当输入5V时,你得到的数就是255(当然运算完后会产生误差,其实根本不用运算,5V得到的就是FFH),所以显示2.5是正常的
你要是想与输入电压对应,只要再乘以2就可以了。

1ADC有一个IN0-IN7的模拟输入端,模拟输入多少多少电压开始测,但是等我做出来以后,要测量怎么把信号接进来呢,有八个脚呢,或者是其他接法??
你肯定要做一个板子吧,ADC0809的8路模拟量,能过导线连接到某个外部接线端子上面或者与某个电路连接。
2还有这种方法是不是只能测量直流电压,那要是交流信号电压的测量应该用什么方法?
这个ADC0809只能测直流电压0-5V,如果想测交流电压或者别的幅值的直流电压都得加电流,简单的话可以选一个变送器。

延时一段时间待电压稳定了再AD转换,多次读数求平均值


AVR atmega168单片机PC0如何设置成ADC0的复用功能
首先初始化ADC:void ADC_init(void){ \/\/作为 ADC 输入,PC0要设置成输入,其实初始默认就是0(输入)。DDRC &= 0xfe; \/\/#11111110 \/\/关闭PC0内部上拉电阻,(其实初始默认就是0.)PORTC &= 0xfe;\/\/选择 ADC 时钟 = 系统时钟128分频 ADCSRA = 0x07;\/\/设置参考电压为AVCC, AREF 引脚外...

一段C8051的ADC转换程序求帮忙分析一下
AMX0SL是一个寄存器,用来选择ADC转换的通道,而channel是函数传过来的通道号,ADC0INT是ADC0中断标志位,因为下边要用软件查询的方式进行判断转换完成,所以这里要清0。ADC0的软件启动方式有定时器启动和向ADC0BUSY位写1等方式启动,下边的就是等待ADC0转换结束,因为转换结束后ADC0INT会由硬件置1,当...

需要用51单片机做一个数据采集系统,但是要求采样频率达到至少每秒2000次...
当然要存储2000个数据还是问题,如果是8bit的结果,那需要2000字节,12bit结果要4000字节。所以要求单片机本身有很大的RAM或者要扩展RAM才行。但STC12内部才1024字节的RAM,肯定不够用,所以这时要用STC90C58AD了,4096字节的RAM。如果用C8051F单片机,那更简单。比如C8051F的ADC0是100ksps,就是说连续...

ADC或DAC在实际生活中应用
将REF0CN的位3置“1”时,允许使用温度传感器;置“0”时,温度传感器的输出为高阻态。温度传感器的值可用于修正参数的非线性或记录、调整与温度相关的数据。2 ADC的速率与启动 C8051F系列单片机中ADC的速率都是可用编程设置的,但最少要用16个系统时钟。一般在转换之前还自动加上3个系统时钟的跟踪\/...

单片机中ADC是什么
楼上瞎几把扯淡,还交流转直流,ADC是模拟信号转成数值信号,单片机只能识别TTL电平,要么1要么0,但是如果我们给他一个3.5V电压,单片机就无法识别,要他读出来的时候,他就必须把模拟量变成数字量,懂吗?

求一个单片机程序
ADMUX=0x00; \/\/选择第1通道ADC0;AVCC, AREF 引脚外加滤波电容电压 ADCSR=0xe6; \/\/125K转换速率,自由转换模式;启动AD转换器;}void init_devices(void){ port_init(); \/\/stop errant interrupts until set up\/\/ CLI(); \/\/disable all interruptsMCUCR = 0x00; GICR = 0x00; TIMSK = 0x00; \/\/time...

用单片机的一个引脚作为A\/d转换,求死循环主函数c语言,Adc_flag清0特别...
对于AD转换的一般性流程是这样的:1,首先初始化配置,将IO口配置为模拟输入 2,启动AD转换并延时 3,等待转换结束、对转换标志位清零 4,读取数据并发送数据 5,重新回到第二步。

如何将单片机AD采集的采集次数连续采集30次?并将采集到的AD值存放在AD...
首先,30次是0-29。否则超范围。第二。你可以采用一个for循环来实现啊。for(i=29;i--;i>=0){ ADC_RESULT1[i]=ADC0;} ADC_RESULT_SUM += ADC_RESULT1[i];按这样的格式来实现就行了。

单片机ADC是0-3,3v输入范围,运放正负15v供电,输出有正15v。ADC输入口...
建议你采用低压满幅运放,它们可以直接与ADC连接,这类运放常用的有:AD8051\/8052(这不是单片机)、OPA333\/2333,工作电压1.8-5V。输出电压接近电源电压。

单片机中ATD0DIEN是什么
应该是这个单片机的某个寄存器的控制位,照您所写的应该是什么功能的使能位。这个要看你说的这个是什么单片机。比如说C8051F021这个单片机中就有ADC0EN这样的使能控制位。

凌河区17299048987: 用单片机设计一个量程自动切换的数字电压表怎样用ADC0809和C
伍龙依诺: 参考资料: 摘要电学参数测量技术涉及范围广,特别是微电压、微电流、高电压以及... 本文介绍了一种基于AT89S52单片机的智能多用表. 该表能在单片机的控制下完成...

凌河区17299048987: 基于51单片机和ADC0809做的数字电压表,为什么测一节干电池的电压比1.5V大?有1.63V
伍龙依诺: 原因可能有两点:1. AD转换器的参考电压有偏差, 实际值比理论值要低, 也许就是参考电压低于5V2. 是电池电压比较高, 电池的特点是电量满时或无负载时电压比较高, 输出电压会随着放电时间而降低, 就像手机锂电池, 充满电时是4.2V, 放完电差不多在3.3V左右.你可以用电压表测试量一下AD转换器的参考电压和电池的实际电压, 如果不吻合,就修改一下电压计算公式

凌河区17299048987: 基于单片机的数字温度计设计 -
伍龙依诺: 按你的要求设计了程序并且通过ProteUS仿真 无偿提供原理图,ProteUS仿真工程(可运行),供参考运行效果,及原理图的设计. 推荐:01 基于单片机的数字报警温度计( http://ishare.iask.sina.com.cn/f/11655563.html ); 源程序为汇编 ; ...

凌河区17299048987: 我用51单片机和ADC0809设计的数字电压表只能测0到5V的电压.怎么才能扩大它的量程呢? -
伍龙依诺: 电阻分压. 比如说10V的电压.你接两个10K的电阻串联.中点就5V电压.倍率X2就行了

凌河区17299048987: 用51单片机和ADC0809制作数字电压表,ADC的输入怎么接??
伍龙依诺: 1ADC有一个IN0-IN7的模拟输入端,模拟输入多少多少电压开始测,但是等我做出来以后,要测量怎么把信号接进来呢,有八个脚呢,或者是其他接法?? 你肯定要做一个板子吧,ADC0809的8路模拟量,能过导线连接到某个外部接线端子上面或者与某个电路连接. 2还有这种方法是不是只能测量直流电压,那要是交流信号电压的测量应该用什么方法? 这个ADC0809只能测直流电压0-5V,如果想测交流电压或者别的幅值的直流电压都得加电流,简单的话可以选一个变送器.

凌河区17299048987: 8051单片机和ADC0809 连接的C语言编程 -
伍龙依诺: 启动ADC0809,ADC0809将开始将外部电压转换成数字,当转换完成时,转换完成信号引脚会输出一个电平(请查看datasheet).这时单片机就可以直接读取数据了.如果要不停采集,就继续启动采集,再查询ADC0809完成引脚.ADC0809芯片...

凌河区17299048987: 用ADC0809做A/D转换器,编制程序,将模拟量变成数字量,并用数码管显示其结果. -
伍龙依诺: 0809利用实验台上的ADC0809做A/D转换器,实验箱上的电位器提供模拟电压信号输入,编制程序,将模拟量转换成数字量,用数码管显示模拟量转换的结果.PORT EQU 0CFA0H CSEG AT 0000H LJMP START CSEG AT 4100H START: ...

凌河区17299048987: ADC0809输出给单片机的数据是什么类型的? -
伍龙依诺: ADC0809输出给单片机的数据类型是二进制的.ADC是8位模数转换器,以5V作参考电压(8位数字量表示0~255),则:5/255≈0.0196,这就是分辨率(即数字量没加1,电压值加0.0196V),放大10000倍为196,所以ss=196*s表示放大...

凌河区17299048987: 小弟我怎么在用51单片机和0809做一个数字电压表 -
伍龙依诺: 误差的问题 这最大可能性就是电路的问题,导线本身有电阻 万用表精确度问题 还有0809分辨率不够.

凌河区17299048987: 急!!用ADC0809做A/D转换器,编制C程序,将正弦信号转换成数字信号输送给单片机,出来电信号,是led灯亮 -
伍龙依诺: #include<reg52.h> //包含单片机寄存器的头文件#include<intrins.h> //包含_nop_()函数定义的头文件//AD端口定义 sbit CLK=P3^4; sbit start=P3^0; sbit oe=P3^1; sbit eoc=P3^2;#define uchar unsigned char#define uint unsigned int/*********初始...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网