STC12C5A60S2 AD 转换详解
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 转换详解相关推荐
- UNICODE与UTF-8的转换详解
UNICODE与UTF-8的转换详解 1 编码 在计算机中,各种信息都是以二进制编码的形式存在的,也就是说,不管是文字.图形.声音.动画,还是电影等各种信息,在计算机中都是以0和1组成的二进制代码表示 ...
- UNICODE与 UTF8的转换详解
转载请注明出处: http://www.ins1000.cn/KnowledgeActionForReader?action=read&id=104 源文件下载地址:UTF- 8的转换详解(W ...
- UNICODE与 UTF-8 的转换详解
UNICODE与 UTF-8的转换详解 unicode 只是一种编码方式,而utf-8是unicode的一种保存或传输方式. 1 编码 在计算机中,各种信息都是以二进制编码的形式存在的,也就是说,不 ...
- PHP中IP地址与整型数字互相转换详解
这篇文章主要介绍了PHP中IP地址与整型数字互相转换详解,本文介绍了使用PHP函数ip2long与long2ip的使用,以及它们的BUG介绍,最后给出自己写的两个算法,需要的朋友可以参考下 IP转换成 ...
- VC常用数据类型使用转换详解
VC常用数据类型使用转换详解 出 处:PCVC.NET 作 者:程佩君 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用. 我们先定义一些常见类型变量借以 ...
- python datetime to timestamp_python timestamp和datetime之间转换详解
做开发中难免时间类型之间的转换, 最近就发现前端js和后端django经常要用到这个转换, 其中jsDate.now()精确到毫秒,而Python中Datetime.datetime.now()是精确 ...
- 直角坐标和求坐标的转换详解-关于球坐标转换为直角坐标正负号相反问题
最近项目用到直角坐标转换到球坐标,处理后再转回直角坐标作为最后的结果输出,结果发现转回去的直接坐标有的符号是相反的,找到原因记录如下. 1.直角坐标和求坐标的转换详解 其中关于角度反正切的计算可直接用 ...
- C语言标准库里的获取时间函数及时间格式转换详解
C语言标准库里的获取时间函数及时间格式转换详解 头文件: #include <time.h> 相关库函数(截图摘自:https://www.runoob.com/cprogramming/ ...
- 十进制与二进制之间转换详解
文章目录 十进制与二进制之间转换详解 (一)十进制数转二进制数 1.1 十进制正整数转二进制 1.2 十进制负整数转二进制 1.3 十进制小数转二进制数 (二) 二进制数转成十进制数 2.1 二进制整 ...
最新文章
- CNN+CTC语音识别
- 原理:什么是Quadtrees?(转)
- 虚拟机ubuntu搭建ftp服务器配置,虚拟机VMware15 Ubuntu18.04 搭建FTP服务器
- 将Visual Studio Code设置为jshell中的默认编辑器
- centos找不到IFCONFIG命令
- linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF
- 用python和sympy库解决方程组问题_Python语言 SymPy库数学方程问题——线性方程组篇...
- 适合初学者的安卓开源项目_开源系列的初学者将从下周开始
- 计算机二级mysql程序设计题库_计算机二级MySQL数据程序设计模拟试题
- java .class 实例对象_通过Class类获取对象(实例讲解)
- 【转载】推荐系统的十大挑战
- eviews9.0详细安装步骤
- 多尺度卷积稀疏编码的无监督迁移学习
- html页面会出现浏览器崩溃,Chrome浏览器所有页面全部崩溃解决办法。
- c 语言 如何优化cpu占用率,C#程序优化-有效减少CPU占用率
- Java具有哪些语言特点
- PowerDesigner一键导出数据库设计表结构
- 二十九岁,刚读完了财富启蒙读物《小狗钱钱》
- CSS中的透明度设置
- 微信小程序跳转公众号(引导关注)之 使用公众号消息
热门文章
- 技嘉显卡测试用什么软件,独家揭秘评测微星和技嘉显卡区别是?哪个好?口碑反馈揭秘...
- python解压zip_用Python处理ZIP压缩包
- 小白学习:李航《统计学习方法》第二版第11章 条件随机场
- 计算机视觉中的MAP的理解(mean average precision)
- 2018-2019-2 《网络对抗技术》Exp7 网络欺诈防范 Week10 20165233
- 推荐3个网页设计在线配色网站
- ViewPager简单使用(四)实现图片轮播
- 学习Android系统
- matlab中绘制三维散点图scatter3函数的使用方法(附matlab代码)
- 护卫神mysql初始密码_护卫神MySQL密码重置器(MySQL密码重置工具)V1.3 最新免费版...