STC系列单片机中的STC89LE516AD/X2提供了8路8位精度的高速A/D转换器,位于P1口上,从而省去了片外ADC的麻烦。这8路ADC为电压输入型,可做按键扫描,电池电压检测,频谱检测等。ADC转换过程需要17个机器周期。通过对相关功能寄存器的适当配置,就可以控制其工作。下面就对相关功能寄存器进行介绍。

A/D转换寄存器总表:

(1)       P1_ADC_EN:特殊功能寄存器

P1.x作为A/D转换输入通道来用允许特殊功能寄存器。相应位为“1”时,对应的P1.x口作为A/D转换使用,内部上拉电阻自动断开。

ADC_START是模拟/数字转换(ADC)启动控制位,设置为1时,开始转换。

ADC_FLAG是模拟/数字转换结束标志位,当A/D转换完成后,ADC_FLAG=1。

(3)       ADC_DATA: A/D转换结果特殊功能寄存器

模拟/数字转换结果计算公式为 结果=256×Vin/Vcc

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

内置ADC的使用例程:

STC_ADC.h:

sfr P1_ADC_EN=0x97;

sfr ADC_CONTR=0xc5;

sfr ADC_DATA=0xc6;

int GetAD(unsigned char channel)//channel为要取的通道号(0~7)

{

unsigned char AD_finished=0;

ADC_DATA=0;

ADC_CONTR=channel;

ADC_CONTR|=0x08;

while(!AD_finished)

AD_finished=(ADC_CONTR&0x10);

ADC_CONTR&=0xF7;

return (ADC_DATA);

}

void AD_Init(unsigned char ADin)// ADC 初始化,ADin为八位2进制数,分别对应AD7~0,置1代表打开此路

{

P1=P1|ADin;//要设置为A/D转换的P1.x口,先设为高

P1_ADC_EN=ADin;

}

_main.c:

#include

#include <stc_adc.h>

/*

-------------------------------------------------

此程序用以说明STC单片机ADC的使用方法

-------------------------------------------------

*/

void delay(unsigned time)

{

while(time--);

}

void main()

{

AD_Init(0x63);//0110,0011,要设置为A/D转换的P1.x口,先设置为高

//0110,0011,P1的P1.0,P1.1,P1.5,P1.6设置为A/D转换输入脚

//断开P1.0,P1.1,P1.5,P1.6内部上拉电阻

while(1)

{

P2=GetAD(0);

delay(10000);

P2=GetAD(1);

delay(10000);

P2=GetAD(5);

delay(10000);

P2=GetAD(6);

delay(10000);

}

}



STC12C5A60S2 AD 转换详解相关推荐

  1. UNICODE与UTF-8的转换详解

    UNICODE与UTF-8的转换详解 1 编码 在计算机中,各种信息都是以二进制编码的形式存在的,也就是说,不管是文字.图形.声音.动画,还是电影等各种信息,在计算机中都是以0和1组成的二进制代码表示 ...

  2. UNICODE与 UTF8的转换详解

    转载请注明出处: http://www.ins1000.cn/KnowledgeActionForReader?action=read&id=104 源文件下载地址:UTF- 8的转换详解(W ...

  3. UNICODE与 UTF-8 的转换详解

    UNICODE与 UTF-8的转换详解 unicode 只是一种编码方式,而utf-8是unicode的一种保存或传输方式. 1 编码  在计算机中,各种信息都是以二进制编码的形式存在的,也就是说,不 ...

  4. PHP中IP地址与整型数字互相转换详解

    这篇文章主要介绍了PHP中IP地址与整型数字互相转换详解,本文介绍了使用PHP函数ip2long与long2ip的使用,以及它们的BUG介绍,最后给出自己写的两个算法,需要的朋友可以参考下 IP转换成 ...

  5. VC常用数据类型使用转换详解

    VC常用数据类型使用转换详解 出  处:PCVC.NET 作  者:程佩君 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用. 我们先定义一些常见类型变量借以 ...

  6. python datetime to timestamp_python timestamp和datetime之间转换详解

    做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确 ...

  7. 直角坐标和求坐标的转换详解-关于球坐标转换为直角坐标正负号相反问题

    最近项目用到直角坐标转换到球坐标,处理后再转回直角坐标作为最后的结果输出,结果发现转回去的直接坐标有的符号是相反的,找到原因记录如下. 1.直角坐标和求坐标的转换详解 其中关于角度反正切的计算可直接用 ...

  8. C语言标准库里的获取时间函数及时间格式转换详解

    C语言标准库里的获取时间函数及时间格式转换详解 头文件: #include <time.h> 相关库函数(截图摘自:https://www.runoob.com/cprogramming/ ...

  9. 十进制与二进制之间转换详解

    文章目录 十进制与二进制之间转换详解 (一)十进制数转二进制数 1.1 十进制正整数转二进制 1.2 十进制负整数转二进制 1.3 十进制小数转二进制数 (二) 二进制数转成十进制数 2.1 二进制整 ...

最新文章

  1. CNN+CTC语音识别
  2. 原理:什么是Quadtrees?(转)
  3. 虚拟机ubuntu搭建ftp服务器配置,虚拟机VMware15 Ubuntu18.04 搭建FTP服务器
  4. 将Visual Studio Code设置为jshell中的默认编辑器
  5. centos找不到IFCONFIG命令
  6. linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF
  7. 用python和sympy库解决方程组问题_Python语言 SymPy库数学方程问题——线性方程组篇...
  8. 适合初学者的安卓开源项目_开源系列的初学者将从下周开始
  9. 计算机二级mysql程序设计题库_计算机二级MySQL数据程序设计模拟试题
  10. java .class 实例对象_通过Class类获取对象(实例讲解)
  11. 【转载】推荐系统的十大挑战
  12. eviews9.0详细安装步骤
  13. 多尺度卷积稀疏编码的无监督迁移学习
  14. html页面会出现浏览器崩溃,Chrome浏览器所有页面全部崩溃解决办法。
  15. c 语言 如何优化cpu占用率,C#程序优化-有效减少CPU占用率
  16. Java具有哪些语言特点
  17. PowerDesigner一键导出数据库设计表结构
  18. 二十九岁,刚读完了财富启蒙读物《小狗钱钱》
  19. CSS中的透明度设置
  20. 微信小程序跳转公众号(引导关注)之 使用公众号消息

热门文章

  1. 技嘉显卡测试用什么软件,独家揭秘评测微星和技嘉显卡区别是?哪个好?口碑反馈揭秘...
  2. python解压zip_用Python处理ZIP压缩包
  3. 小白学习:李航《统计学习方法》第二版第11章 条件随机场
  4. 计算机视觉中的MAP的理解(mean average precision)
  5. 2018-2019-2 《网络对抗技术》Exp7 网络欺诈防范 Week10 20165233
  6. 推荐3个网页设计在线配色网站
  7. ViewPager简单使用(四)实现图片轮播
  8. 学习Android系统
  9. matlab中绘制三维散点图scatter3函数的使用方法(附matlab代码)
  10. 护卫神mysql初始密码_护卫神MySQL密码重置器(MySQL密码重置工具)V1.3 最新免费版...