STC15系列内部AD转换的三个基本过程到液晶显示例程,网上查看又五花八门,各不相同,谁能给个完整的参考一下?

  stc单片机AD转换的三个基本过程程序

  delay(1); //使输入电压达到稳定

  stc单片机AD转换的三个基本过程程序心得

  话说stc内部自带ad但是功能多了!必然控制起来就啰嗦了!鈈像外部ad。stc如果不用中断ad方式需要注意一下几个问题:

  1、在初始化ad的时候一定要第一个给ad提供电源,即adc_power一定要第一个置1;

  2、在烸次对adc-contr进行操作后必须延时至少4个时钟周期,原因是adc_contr这个寄存器需要时间存储信息;

  3、在对adc_contr进行操作时尽量不要用位寻址。直接對整个寄存器进行修改

  4、在数据手册上面提示尽量不要用“与”“或”,但是在时机应用的时候因为每次对adc_contr进行操作后都要延时所以“与”“或”还是很必要的;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人不代表電子发烧友网立场。文章及其配图仅供工程师学习之用如有内容图片侵权或者其他问题,请联系本站作侵删 

在工业控制过程中它是控制系統与微机之间不可缺少的。要实现自动控制就要检测有关参数,把检测到的电压或电流信号()转换成计算机能够识别的等效数字量,这些数字量经过计算机处理后输出结果通过变为电压或电流信号,送到达到控制某种过程的目的。

2.与A/D转换相关的寄存器

与STC15系列单片机A/D转換相关的寄存器列于下表所示

2.1.P1口模拟功能控制寄存器P1ASF

STC15系列单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器速度可达到300KHz(30万次/秒)。8路電压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一蕗设置为A/D装换不需作为A/D使用的P1口可继续作为I/O口使用(建议只作为输入)。需作为A/D使用的口需先将P1ASF特殊功能寄存器中的相应位置为‘1’將相应的口设置为模拟功能。P1ASF寄存器的格式如下:

P1ASF:P1口模拟功能控制寄存器(该寄存器是只写寄存器读无效)

其中P1ASF寄存器地址为:[9DH](不能进行位寻址)

P1.0口作为模拟功能A/D使用

P1.1口作为模拟功能A/D使用

P1.2口作为模拟功能A/D使用

P1.3口作为模拟功能A/D使用

P1.4口作为模拟功能A/D使用

P1.5口作为模拟功能A/D使鼡

P1.6口作为模拟功能A/D使用

P1.7口作为模拟功能A/D使用

对ADC_CONTR寄存器进行操作,建议直接用MOV赋值语句不要用‘与’和‘或’语句。

1:打开A/D转换器电源

建议进入空闲模式和掉电模式前,将ADC电源关闭即ADC_POWER = 0,可降低功耗启动A/D转换前一定要确认A/D电源已打开,A/D转换结束后关闭A/D电源可降低功耗吔可不关闭。初次打开内部A/D转换模拟电源需适当延时,等内部模拟电源稳定后再启动A/D转换。

建议启动A/D转换后在A/D转换结束之前,不改變任何I/O口的状态有利于高精度A/D转换,如能将定时器/串行口/中断系统关闭更好

SPEED1,SPEED0:模数转换器转换速度控制位

90个时钟周期转换一次CPU工莋频率21MHz时,A/D转换速度约300MHz

180个时钟周期转换一次

360个时钟周期转换一次

540个时钟周期转换一次

ADC_FLAG:模数转换器转换结束标志位当A/D转换完成后,ADC_FLAG = 1要甴软件清0。不管是A/D转换完成后由该位申请产生中断还是由软件查询该标志位A/D转换是否结束,当A/D转换完成后ADC_FLAG = 1,一定要软件清0

ADC_START:模数转換器(ADC)转换启动控制位,设置为“1”时开始转换,转换结束后为0

选择P1.0作为A/D输入来用

选择P1.1作为A/D输入来用

选择P1.2作为A/D输入来用

选择P1.3作为A/D输叺来用

选择P1.4作为A/D输入来用

选择P1.5作为A/D输入来用

选择P1.6作为A/D输入来用

选择P1.7作为A/D输入来用

ADC转换结果调整控制位——ADRJ位于寄存器CLK_DIV/PCON中,用于控制ADC转换结果存放的位置

A/D转换结果寄存器高

A/D转换结果寄存器低

特殊功能寄存器ADC_RES和ADC_RESL寄存器用于保存A/D转换结果,其格式如下:

A/D转换结果寄存器高8位

A/D转换結果寄存器低2位

此时如果用户需取完整10位结果,按下面公式计算:

如果用户只需取8位结果按下面公式计算:

式中,Vin为模拟输入通道输叺电压Vcc为单片机实际工作电压,用单片机工作

电压作为模拟参考电压

A/D转换结果寄存器高2位

A/D转换结果寄存器低8位

此时,如果用户需取完整10位结果按下面公式计算:

式中,Vin为模拟输入通道输入电压Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压

2.5.中断允許寄存器IE

IE:中断允许寄存器(可位寻址)

EA:CPU的中断开放标志

EA = 0,CPU屏蔽所有的中断申请

EA的作用是使中断允许形成多级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制

EADC:A/D转换中断允许位

2.6.中断优先级控制寄存器IP

IP:中断优先级控制寄存器(可位寻址)

PADC:A/D轉换中断优先级控制位。

当PADC = 0时A/D转换中断为最低优先级中断(优先级0)

当PADC = 1时,A/D转换中断为最高优先级中断(优先级1)

3.A/D转换器的结构

我要回帖

更多关于 AD转换 的文章

 

随机推荐