msp430一段有关AD数模转换参考电压设置的c程序高手请进

msp430一段有关AD数模转换参考电压设置的c程序高手请进,第1张

对这个就是设置的参考电压为2.5v

如果改成

ADC12CTL0=ADC12ON+REFON+SHT0_6//为1.5v参考电压

如果改成

ADC12CTL0=ADC12ON+SHT0_6//SetupADC12,ref.,samplingtime

ADC12CTL1=SHP//Usesamplingtimer

ADC12MCTL0=INCH_10+SREF_0//

则选择的为以电源电压为基准

有时内部的基准会不是很准在精确采集的时候一定要用万用表测一下参考电压的值用测的值计算2.5v只是理论上的值

这里我以 STC15 系列单片机介绍讲解

15 系列的 ADC 一般是使用P1口来实现的 P1.0 ~ P1.7 对应 AD1 ~ AD8

首先介绍一下结构,也是主要用单的寄存器

ADC_FLAG : 当 ad转换 完成之后,该标志位会变成 1 , 必须软件清零

ADC_START : ADC启动位 ,设置为 1 时开始转换,转换结束后为 0

ADRJ :用于控制 adc结果 存放位置

当 PADC 为 0 时, ad转换器 为最低优先级

当 PADC 为 1 是, ad转换器 为最高优先级

EADC 为 0 时,禁止 ad转换器 中断

EADC 为 1 时,允许 ad转换器 中断

ad转换器 ,转换完成之后会通知标志位 ADC_FLAG ,并且把结果储存 ADC_RES 和 ADC_RESL 中

根据配置的 ADRJ 的配置和公式获取结果

当 ADRJ = 0 如果取 10位结果 ,结果为: ADC_RES【7~0】,ADC_RESL【1~0】=1024xvin/vcc

当 ADRJ = 0 如果取 8位结果 ,结果为: ADC_RES【7~0】=256xvin/vcc

当 ADRJ = 1 如果取 8位结果 ,结果为: ADC_RES【1~0】,ADC_RESL【7~0】=1024xvin/vcc

CHS2~CHS0 来控制模拟通道的选择

如果电压是电池等不稳定电源,可以使用 TL431 可控精密电压源来作为参考基准。

TL431 是可控精密稳压源 可以精确控制 2.5v~36V 。

ADC 用于应用扫描按键,每 10ms 读取一次 ad 的值,但是只能检测单个按键, 多个组合按键无法识别

1. uchar 等同 byte,这段程式利用uchar来切掉不要的数值,假设val = 123:

(123 / 51) = 2 <- 这是数值

+'0' 表示将数值转换成 ascii码,所以 Voltage[2]='2'

依此类推

(123 % 51)*10 = 210 -->Voltage[1]='4'

...

2. 如果要把5V 转成180度,要先决定刻度,每V = 180/5 = 36度。

1V = 51 step,剩下的应该只是简单的算术了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存