一 C5513

u32 ADC5513_GetValue(void)
{
  u32 ADValue,i;
  bool data_bit = false;
  C5513_SCK=0;
  C5513_CS=0;
  if(GPIO_BitRead(C5513_SDO)==0u)
  {
    for (i = 0; i < 24; i++)
        {
          C5513_SCK = 1;
          data_bit = GPIO_BitRead(C5513_SDO);
          C5513_SCK=0;
          ADValue <<= 1;
          if(data_bit > 0)
            {
                ADValue|=0x00000001;
            }
            else
            {
                ADValue&=~0x00000001;
            }
    } 

ADValue &=~(1<<20)  ;/*有效位数为19位*/

Vout=ADValue*2.0*10000/2^19   /*有效电压是2.0,不是2.5V因为内部放大了0.8倍*/
    return ADValue;
  }
  else
  {
    return (0xffffffff);
  }
}

  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit ADCS=P2^0;
  6. sbit ADCLK=P2^1;
  7. sbit ADDO=P2^2;
  8. unsigned long int ADConv(void)
  9. {
  10. uchar i;
  11. unsigned long int Result=0;
  12. ADCLK=0;
  13. ADCS=0;
  14. _nop_();
  15. _nop_();
  16. _nop_();
  17. ADCLK=0;
  18. while(ADDO);
  19. ADCLK=1;
  20. _nop_();
  21. for(i=0;i<3;i++){
  22. ADCLK=0;
  23. _nop_();
  24. ADCLK=1;
  25. }
  26. for (i=0;i<20;i++){
  27. ADCLK=0;
  28. Result=Result<<1;
  29. if (ADDO)
  30. Result=Result+1;
  31. ADCLK=1;
  32. }
  33. ADCS=1;
  34. Result &=~(1<<20)  ;/*有效位数为19位*/
  35. Vout=Result*2.0*10000/2^19   /*有效电压是2.0,不是2.5V因为内部放大了0.8倍*/
  36. return Result;
  37. }

ADC5513的更多相关文章

随机推荐

  1. 从TS流到PAT和PMT

    转自:https://blog.csdn.net/rongdeguoqian/article/details/18214627 一 从TS流开始 最近开始学习数字电视机顶盒的开发,从MPEG-2到DV ...

  2. AtCoder Beginner Contest 103

    https://beta.atcoder.jp/contests/abc103 A - Task Scheduling Problem Time Limit: 2 sec / Memory Limit ...

  3. liunx让命令窗口显示段路径的方法

    平时我们使用linux终端命令行的时候,常常会被一个问题困扰,那就是文件路径过长,有时候甚至超过了一行,这样看起来非常别扭,其实只要两步就可以解决这个问题: 1,修改.bashrc文件(用户根目录下) ...

  4. 使用msiexec提取msi包里的文件

    核心:如需把d盘下abc.msi文件解包到目录d:\abc,操作如下:打开命令提示符,输入msiexec /a "d:\abc.msi" /qb TARGETDIR="D ...

  5. Restore Points 制定回退方案

    Restore Points 制定回退方案 背景:Flashback Database 和 restore points 都可以提供一个基于时间点的回滚. 理论:1) Normal Restore P ...

  6. bzoj 3796 Mushroom追妹纸 —— 后缀数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3796 先把三个串拼在一起,KMP 求 s1 , s2 中每个位置和 s3 的匹配情况: 注意 ...

  7. 创建自己的YUM仓库

    1. 首先,假定我们应用的名字叫helloworld(可以参考简单 RPM 包制作来创建两个版本helloworld安装RPM包,helloworld-1.0.0-1.el6.x86_64.rpm和h ...

  8. zk 01之 ZooKeeper概述

    Zookeeper产生的背景 ZooKeeper---译名为“动物园管理员”.动物园里当然有好多的动物,游客可以根据动物园提供的向导图到不同的场馆观赏各种类型的动物,而不是像走在原始丛林里,心惊胆颤的 ...

  9. 水题 等差数列HDU 5400 Arithmetic Sequence

    主要是要知道它对于等差数列的定义,单个数也可以作为等差数列且一定满足题意,另外就是要算清楚区间与区间的关系,考虑两大类情况,一种是d1区间和d2区间连在一起,另外一种情况就是其余情况. #includ ...

  10. 【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整

    今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对 ...