合泰单片机AD转换Adc_Init.c
/*
A/D 转换步骤
下面概述实现A/D 转换过程的各个步骤。
● 步骤1
通过ADCR1 寄存器中的ADCK2~ADCK0 位,选择所需的A/D 转换时钟。
● 步骤2
清零ADCR0 寄存器中的ADOFF 位使能A/D。
● 步骤3
通过ADCR0 寄存器中的ACS2~ACS0 位和ADCR1 寄存器中的ACS4,选择
连接至内部A/D 转换器的通道。
● 步骤4
通过ACERL 寄存器中的ACE7~ACE0 位,选择哪些引脚规划为A/D 输入引脚。
● 步骤5
如果要使用中断,则中断控制寄存器需要正确地设置,以确保A/D 转换功能
是激活的。总中断控制位EMI 需要置位为“1”, 以及A/D 转换器中断位ADE
也需要置位为“1”。
● 步骤6
现在可以通过设定ADCR0 寄存器中的START 位从“0”到“1”再回到“0”,
开始模数转换的过程。注意,该位需初始化为“0”。
● 步骤7
可以轮询ADCR0 寄存器中的EOCB 位,检查模数转换过程是否完成。当此
位成为逻辑低时,表示转换过程已经完成。转换完成后,可读取A/D 数据寄
存器ADRL 和ADRH 获得转换后的值。另一种方法是,若中断使能且堆栈未
满,则程序等待A/D 中断发生。
*/
#include "global.h"
#define u8 unsigned char
#define u16 unsigned int
void Adc_Init(void)
{
_adck0 = 0;
_adck1 = 0;
_adck2 = 0;//000:fSYS
_adoff = 0;//0:ADC 模块电源开
_acs2 = 1;
_acs2 = 0;
_acs2 = 0;//AN4
_ace4 = 1;//1:A/D 输入,AN4
_vrefs = 1;//ADC 数据高字节是ADRH 的bit 3,低字节是ADRL 的bit 0
}
//获取通道
u16 GetAdcValue(u8 ch)
{
u8 i;
u16 temp,sum;
_adcr0&=0xf0;
_adcr0|=ch;
temp=0;
sum=0;
for(i=0;i<8;i++)
{
//start 0 → 1 → 0:启动
_start=0;
_start=1;
_start=0;
while(_eocb);
temp=_adrh;
temp<<=8;
temp|=_adrl;
sum+=temp;
}
return sum>>3;
}
合泰单片机AD转换Adc_Init.c相关推荐
- 单片机ad显示程序c语言,pic单片机ad转换c程序分享
A/D转换器是用来通过一定的电路将模拟量转变为数字量.模拟量可以是电压.电流等电信号,也可以是压力.温度.湿度.位移.声音等非电信号.但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各 ...
- 51单片机AD转换pcf8591+数码管显示+Proteus仿真二
51单片机AD转换pcf8591+数码管显示+Proteus仿真二
- 单片机ad转换测电压c语言,大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了...
大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了 [复制链接] #include"ADC电压表.H" #include uchar value; void adc_in ...
- 51单片机 AD转换
在数逻的课程中,已经学习过AD转换的概念:将模拟信号采样.量化.编码后转换为数字信号.但是未学习过通过单片机编程,显示结果. 编码分有舍有入.只舍不入两种,量化误差前者更小.=2Vm/(2^n+1 ...
- c语言p16f877a编译器,PIC16F877A单片机-AD转换经典C程序
#include #define HC595_SER RB7 #define HC595_SCK RB6 #define HC595_RCK RB5 #define key_164_data RB3 ...
- pic1路AD转换c语言,pic单片机的ad转换(实例解析)
描述 AD转换就是模数转换.顾名思义,就是把模拟信号转换成数字信号.主要包括积分型.逐次逼近型.并行比较型/串并行型.Σ-Δ调制型.电容阵列逐次比较型及压频变换型.A/D转换器是用来通过一定的电路将模 ...
- 单片机模数转换实验c语言程序,单片机实验AD转换实验
<单片机实验AD转换实验>由会员分享,可在线阅读,更多相关<单片机实验AD转换实验(5页珍藏版)>请在人人文库网上搜索. 1.实验报告课程名称: 单片机原理及应用 实验项目: ...
- c语言编程TLC2543AD采集,51单片机驱动12位AD转换TLC2543电路图+程序
51单片机驱动12位AD转换TLC2543电路图+程序 2015-06-18 16:51:15 来源:51hei void resultvolt() { volt=volt*5000.0/4334 ...
- 单片机c语言ad与da转换实验报告,单片机AD与DA转换实验报告.docx
单片机AD与DA转换实验报告.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...
最新文章
- python爬虫算法深度优先_爬虫课程(四)|深度优先和广度优先算法
- vb 变量赋值为当前选定单元格_第7篇:根据Excel选定行对Word模板填充数据(补充修改)...
- Linux上安装dotnetcore2.0
- 运算符的计算机制和原则
- Asp.Net Core 2.2.0-preview1已经发布
- 【渝粤教育】国家开放大学2018年春季 0089-22DInternet和Intranet应用 参考试题
- ssm框架解读oracle,分页查询显示action的笔记SSM框架分页oracle数据库
- html5中标签与类的区别,html5中section标签与div标签的区别是什么
- MiniUtilityFramework 九 CText和TEXT
- 国家电网与百度达成战略合作,在智慧能源领域掀起新基建热潮
- 轮子哥:回顾我走过的编程之路
- python使用moviepy包下的VideoFileClip时报错:OSError: [WinError 6] 句柄无效解决方法
- tomcat10 实例化servlet 500错误解决办法
- C语言数组比较相等memcmp,使用memcmp比较两个变量结果一定吗?
- 【笔记】Android APP 上架 Google Play 采坑记之「应用签名证书」
- 单反光圈、快门和感光度的关系
- 在.NET5 中读取Excel文件,评估下参加神秘献祭会的几位子民
- 危机管理应遵循哪些原则?
- CDH交换内存警告解决方法
- 三十六洞天 七十二福地
热门文章
- 单片机I/O开漏输出详解 “与逻辑” ,改变上拉电源的电压,提供TTL/CMOS电平输出,标准的开漏脚一般只有输出的能力添加其它的判断电路,才能具备双向输入、输出的能力
- 学python对数学要求吗_python 学习和数学知识 - 文章分类 - 风中小郎君 - 博客园...
- package.json 封装 vue模块_vue仿小米商城 -- 我知道的都在这里了
- 硬盘分类(HDD、HHD、SSD)简介
- 开发博客系统SpringBoot+Vue教程
- python 实现验证码识别
- 阿里本地生活一二三面
- 动态获取bind dns日志IP脚本
- [论文阅读]Using the Output Embedding to Improve Language Models
- 韩国梨花女子大学计算机类,韩国留学梨花女子大学院系设置详解