/*
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相关推荐

  1. 单片机ad显示程序c语言,pic单片机ad转换c程序分享

    A/D转换器是用来通过一定的电路将模拟量转变为数字量.模拟量可以是电压.电流等电信号,也可以是压力.温度.湿度.位移.声音等非电信号.但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各 ...

  2. 51单片机AD转换pcf8591+数码管显示+Proteus仿真二

    51单片机AD转换pcf8591+数码管显示+Proteus仿真二

  3. 单片机ad转换测电压c语言,大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了...

    大家帮我看下这个STC AD转换 测电压程序错在哪里,谢谢了 [复制链接] #include"ADC电压表.H" #include uchar value; void adc_in ...

  4. 51单片机 AD转换

    在数逻的课程中,已经学习过AD转换的概念:将模拟信号采样.量化.编码后转换为数字信号.但是未学习过通过单片机编程,显示结果. 编码分有舍有入.只舍不入两种,量化误差前者更小.=2Vm/(2^n+1   ...

  5. c语言p16f877a编译器,PIC16F877A单片机-AD转换经典C程序

    #include #define HC595_SER RB7 #define HC595_SCK RB6 #define HC595_RCK RB5 #define key_164_data RB3 ...

  6. pic1路AD转换c语言,pic单片机的ad转换(实例解析)

    描述 AD转换就是模数转换.顾名思义,就是把模拟信号转换成数字信号.主要包括积分型.逐次逼近型.并行比较型/串并行型.Σ-Δ调制型.电容阵列逐次比较型及压频变换型.A/D转换器是用来通过一定的电路将模 ...

  7. 单片机模数转换实验c语言程序,单片机实验AD转换实验

    <单片机实验AD转换实验>由会员分享,可在线阅读,更多相关<单片机实验AD转换实验(5页珍藏版)>请在人人文库网上搜索. 1.实验报告课程名称: 单片机原理及应用 实验项目: ...

  8. c语言编程TLC2543AD采集,51单片机驱动12位AD转换TLC2543电路图+程序

    51单片机驱动12位AD转换TLC2543电路图+程序 2015-06-18 16:51:15   来源:51hei void resultvolt() { volt=volt*5000.0/4334 ...

  9. 单片机c语言ad与da转换实验报告,单片机AD与DA转换实验报告.docx

    单片机AD与DA转换实验报告.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...

最新文章

  1. python爬虫算法深度优先_爬虫课程(四)|深度优先和广度优先算法
  2. vb 变量赋值为当前选定单元格_第7篇:根据Excel选定行对Word模板填充数据(补充修改)...
  3. Linux上安装dotnetcore2.0
  4. 运算符的计算机制和原则
  5. Asp.Net Core 2.2.0-preview1已经发布
  6. 【渝粤教育】国家开放大学2018年春季 0089-22DInternet和Intranet应用 参考试题
  7. ssm框架解读oracle,分页查询显示action的笔记SSM框架分页oracle数据库
  8. html5中标签与类的区别,html5中section标签与div标签的区别是什么
  9. MiniUtilityFramework 九 CText和TEXT
  10. 国家电网与百度达成战略合作,在智慧能源领域掀起新基建热潮
  11. 轮子哥:回顾我走过的编程之路
  12. python使用moviepy包下的VideoFileClip时报错:OSError: [WinError 6] 句柄无效解决方法
  13. tomcat10 实例化servlet 500错误解决办法
  14. C语言数组比较相等memcmp,使用memcmp比较两个变量结果一定吗?
  15. 【笔记】Android APP 上架 Google Play 采坑记之「应用签名证书」
  16. 单反光圈、快门和感光度的关系
  17. 在.NET5 中读取Excel文件,评估下参加神秘献祭会的几位子民
  18. 危机管理应遵循哪些原则?
  19. CDH交换内存警告解决方法
  20. 三十六洞天 七十二福地

热门文章

  1. 单片机I/O开漏输出详解 “与逻辑” ,改变上拉电源的电压,提供TTL/CMOS电平输出,标准的开漏脚一般只有输出的能力添加其它的判断电路,才能具备双向输入、输出的能力
  2. 学python对数学要求吗_python 学习和数学知识 - 文章分类 - 风中小郎君 - 博客园...
  3. package.json 封装 vue模块_vue仿小米商城 -- 我知道的都在这里了
  4. 硬盘分类(HDD、HHD、SSD)简介
  5. 开发博客系统SpringBoot+Vue教程
  6. python 实现验证码识别
  7. 阿里本地生活一二三面
  8. 动态获取bind dns日志IP脚本
  9. [论文阅读]Using the Output Embedding to Improve Language Models
  10. 韩国梨花女子大学计算机类,韩国留学梨花女子大学院系设置详解