adc0832测试电压0-15v 四位数码管显示 哪位能解释一下这段程序时如何处理小数部分的 小弟在此先感谢了啊

adc0832测试电压0-15v 四位数码管显示 哪位能解释一下这段程序时如何处理小数部分的 小弟在此先感谢了啊,第1张

你看这里

T=temp*15/256

U=(int)T

V=(T-U)*100

也就是说,T为真实电压值,棚液让而U为真链局实电压值的整数部分,T-U就是小数部分了。V=(T-U)*100把小数部分扩大了100倍,然后用处理整数的方法

dis[3]=LED[V%10]

dis[2]=LED[V/10]把十分位,百分位提取出来了埋皮。

您好,DC0832 为8位分辨率A/D转换芯片,其樱山最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯桥肆片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少敏颂轿数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。

ADC0832 数据读取程序流程: 为了高速有效的实现通信,我们采用汇编语言编写接口程序。由于ADC0832 的数据转换时间仅为32μS,所以A/D转换的数据采样频率可以很快,从而也保证的某些场合对A/D 转换数据实时性的要求。数据读取程序以子程序调用的形式出现,方便了程序的移植。

程序占用资源有累加器A,工作寄存器R7, 通用寄存器B 和特殊寄存器CY。通道功能寄存器和转换值共用寄存器B。在使用转换子程序之前必须确定通道功能寄存器B 的值,其赋值语句为“MOV B,#data”(00H~03H)。运行转换子程序后的转换数据值被放入B 中。子程序退出后即可以对B 中数据处理。

AD0832是8位逐次逼近模数转换器,可支持两个单端输入通道和一个差分输入通道。是8位逐次逼近模数转换器,可支持两个单端输入通道和一个差分输入通道。

当ADC0832未工作时其CS输入端应为高电平,此时芯判闷片禁用,当要进行A/D转换时,

须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能,

当此2位数据为“1”、“0”时,只对CH0进行单通道转换。

当2位数据为“1”、“1”时,只对CH1进行单通道转换。

当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。

当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。

在完成输入启动位、通道选择之后,就可以开始读出数据,转换得到的数据会被送出二次,一次高位在前传送,一次低位在前传送,连续送出。在程序读取二个数据后,我们可以加上检验来看看数据是否被正确读取。

由于ADC0832是8位分辨率,返回的数值在0~255之间,对应模拟数值为0~5V,因此每一档对应的电压值约为0.0196V。大家可以在通道输入端引入模拟信号(0~5V)进行测试,比如可以在通道脚和地之间接入电池来测试电池电压值。为使两位数码管显示电压值大小,在写余销程序是可将对应比值改位0.196,同理,如果想要显示精度更竖冲游高,可用三位或四位显示,那么响应的改一下比值为1.96或19.6,当然,需要注意你所得数据的大小是否超出数据类型的大小。

时序图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12543152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存