zoukankan      html  css  js  c++  java
  • AD转换 XPT2046

    应用电路
    应用电路

    引脚功能描述
    引脚

    控制位命令
    控制位命令

    控制字节各位描述
    控制字节

    单端模式输入配置
    单端模式

    差分模式输入配置
    差分模式

    掉电和内部参考电压选择
    掉电和内部参考电压

    应用电路
    应用电路

    AIN0:检测转换电位器模拟信号,控制字命令寄存器值为0x94或者0xB4
    AIN1:检测转换热敏电阻模拟信号,控制字命令寄存器值为0xD4
    AIN2:要检测转换光敏电阻模拟信号,控制字命令寄存器值为0xA4
    AIN3:要检测转换AIN3通道上模拟信号,控制字命令寄存器值为0xE4

    数字接口
    数字接口

    前 8 个时钟用来通过DIN引脚输入控制字节,接着的 12 个时钟周期将完成真正的模数转换,剩下的 3 个多时钟周期将用来完成被转换器忽略的最后字节(DOUT置低)

    举例

    sbit DOUT = P3 ^ 7;   //输出
    sbit CLK  = P3 ^ 6;   //时钟
    sbit DIN  = P3 ^ 4;   //输入
    sbit CS   = P3 ^ 5;   //片选
    
    void SPI_Write(uchar dat)
    {
        uchar i;
        CLK = 0;
        for(i=0; i<8; i++)
        {
            DIN = dat >> 7;     //放置最高位
            dat <<= 1;
            CLK = 0;            //上升沿放置数据
    
            CLK = 1;
        }
    }
    
    uint SPI_Read(void)
    {
        uint i, dat = 0;
        CLK = 0;
        for(i = 0; i < 12; i++)     //接收12位数据
        {
            dat <<= 1;
    
            CLK = 1;
            CLK = 0;
    
            dat |= DOUT;
        }
        return dat; 
    }
    
    uint Read_AD_Data(uchar cmd)
    {
        uchar i;
        uint AD_Value;
        CLK = 0;
        CS  = 0;
        SPI_Write(cmd);
        for(i = 6; i > 0; i--);     //延时等待转换结果
        CLK = 1;      //发送一个时钟周期,清除BUSY
        _nop_();
        _nop_();
        CLK = 0;
        _nop_();
        _nop_();
        AD_Value = SPI_Read();
        CS = 1;
        return AD_Value;    
    }
  • 相关阅读:
    团队绩效打分
    软件对标分析
    目前校园百晓生APP与CSDN软件的对比
    Alpha版
    团队项目第一阶段成果展示
    意见汇总
    团队第一阶段冲刺评价
    冲刺(十)
    【WPF学习】第五十八章 理解逻辑树和可视化树
    【WPF学习】第五十七章 使用代码创建故事板
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709620.html
Copyright © 2011-2022 走看看