AD转换实验

 

相信大家都知道单片机输出得是数字信号0或者1,那么想要测量模拟信号得大小该怎么测量呢?

各种模拟量都可以通过变送器或传感器变换成相应得数字量送给单片机。

C8051F020在片内继承了AD/DA转换电路

 

AMX0CF控制单端输入或双端输入

 

AMX0SL控制某一时刻外部模拟量和一个内部温度传感器那个通过多路选择器

ADC0CF来设置多路选择器出来得模拟量得转换速度和对模拟量得放大倍数

ADC0CN(把模拟量转换成数字量)对ADC进行模拟转换得启动,启动方式采样保持,转换结束,数字量格式进行设定

12位转换好得数字量存放在数据寄存器ADC0H,ADC0L

设定好以上以后cpu就按照设定好得模式在模拟量转换好时用指令读出数据寄存器中得数字量或在中断服务中读取数字量

3797487364ed440da24b45e68835dac2.png

 下面我们来仔细看一下各个寄存器

 1.选择差分输入  AMX0CF=0x01;

057a4762c62941c39c1ce9de789c9acf.png

 2.这里是用来选择是温度传感器使能还是,差分输入的,这里我们选择AMUX0SL=0x0f;

a70f24fae7594437af0fdfd71aea98be.png

3.这里选择SAR的时钟ADC0=(240/25)<<3;ADC0|=0x01;

注意下方的位0-2为可编程增益放大器PGA,也就是放大倍数 

77b3152f4cf44e3f909ac94212d70d2e.png

 4.ADC0CN=0x81;

 b9c6956554f44f9d9aba646295fb5aed.png

 

5. 允许温 度传感器,ADC0 电压基准取自 VREF0 引脚。REF0CN=0x07;33ed1b6080b44c0fb8c722090ec05a17.png

 这里我们都设置好了以后就完成基本的初始化,我们要实现按0为温度传感器的值,和按1为电压值(电压值是那个电压值)可以改变其中的AMX0SL来选择用不用温度传感器,和ADC0CF来配置放大增益,具体如下

4a658363078f4a4c84321cef33666592.png

 下面我们就可以启动转换,和等待转换完成,完成以后的结果就存在ADC0H和ADC0L中然后按照相对应的公式转换一下就可以啦

5e10b9265757478d8818c4559cb38f0d.png

 

 

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值