搜索
bottom↓
回复: 5

各位高手 能有时间帮我看一下51单片机AD转换的问题吗

[复制链接]

出0入0汤圆

发表于 2012-8-29 17:06:54 | 显示全部楼层 |阅读模式
高手,单片机是AT89s53,AD芯片是ADS7844N, 三个输入信号,现在就是检测不到,输出数据老是0.急死人了,求高手相助

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-8-29 17:27:57 | 显示全部楼层
shang PP !

出0入0汤圆

 楼主| 发表于 2012-8-29 17:43:24 | 显示全部楼层
MINI2440 发表于 2012-8-29 17:27
shang PP !

告诉我你的QQ,我加你吧

出0入0汤圆

发表于 2012-8-30 09:23:52 | 显示全部楼层
干嘛不用自带AD@!

出0入0汤圆

发表于 2012-8-30 09:33:11 | 显示全部楼层
网上一段程序!!

/*********************************************************************  
** 功能描述:模数转换程序**  
*********************************************************************/   
#include "DSP28_Device.h"   
   
#define uint unsigned int   
#define DCLK GpioDataRegs.GPFDAT.bit.GPIOF13   
#define CS   GpioDataRegs.GPFDAT.bit.GPIOF12   
#define DIN  GpioDataRegs.GPFDAT.bit.GPIOF11   
#define DOUT GpioDataRegs.GPFDAT.bit.GPIOF9   
#define BUSY GpioDataRegs.GPFDAT.bit.GPIOF10   
   
void IOinit(void)   
{   
    EALLOW;   
    GpioMuxRegs.GPFDIR.bit.GPIOF13 = 1;   //GPIO F13为输出   
    GpioMuxRegs.GPFDIR.bit.GPIOF12 = 1;   //GPIO F12为输出   
    GpioMuxRegs.GPFDIR.bit.GPIOF11 = 1;   //GPIO F11为输出   
    CS=1;   DCLK=0;   
    EDIS;   
}   
   
uint ADS7844(void)   
{   
    uint temp,i;   
    CS=0;   
    temp=0x87;//控制字   
    temp<=8;   
    for(i=0;i<8;i++)   
        {   
            DCLK=0;   
            if((temp&0x8000)==0x8000)DIN=1;   
            else DIN=0;   
            temp<=1;   
            DCLK=1;   
        }   
    DCLK=0;   
    DCLK=1;   
    while(BUSY==0);   
    temp=0x00;   
    for(i=0;i<16;i++)   
        {   
            DCLK=0;   
            if(DOUT==1)temp|=0x01;   
            temp<=1;   
            DCLK=1;   
        }   
    DCLK=0;   
    CS=1;   
    temp>>=4;   
    return(temp);      
}   
   
void Spi_intial()   
{   
    SpiaRegs.SPICCR.all = 0x004F;    //  使SPI处于复位模式, 下降沿,16位数据     
    SpiaRegs.SPICTL.all = 0x000d;    // 主控模式, 一般时钟模式,使能talk, 关闭SPI中断 0x000D:表示有延时   
    SpiaRegs.SPIBRR = 0x007F;        //  配置波特率   
    SpiaRegs.SPICCR.all = SpiaRegs.SPICCR.all|0x0080; //  退出复位状态        
    EALLOW;   
    GpioMuxRegs.GPFMUX.all = 0x000F;      //  设置通用引脚为SPI引脚         
    EDIS;   
  }   
void main(void)   
{   
    unsigned int i20,temp11,d_a_data;   
    InitSysCtrl();   
    IOinit();   
    EALLOW;   
    SysCtrlRegs.HISPCP.all = 0x3;// 高速外设模块时钟HSPCLK=SYSCLKOUT/6=25Mhz   
    EDIS;   
    DINT;         // 关闭总中断   
    IER = 0x0000; // 关闭外设中断   
    IFR = 0x0000; // 清中断标志   
    Spi_intial();       // SPI初始化子程序   
    /*  
    SpiaRegs.SPITXBUF = 0xD002; // 初始化指令:DAC_A使能 内部参考,输出2.048  
    while(SpiaRegs.SPISTS.bit.INT_FLAG != 1);  
    SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;  
    d_a_data=100;  //(0--2047)  
    for(i20 = 0; i20<2; i20++);  
    SpiaRegs.SPITXBUF = 0xC000|d_a_data;  // DAC_A置数   
    while(SpiaRegs.SPISTS.bit.INT_FLAG != 1);  
    SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;  
    temp11= ADS7844();  
    */   
    d_a_data=2000;   
/*  GpioDataRegs.GPBDAT.bit.GPIOB9  = 0;                  */   
/*  //DSP28x_usDelay(20);                                 */   
/*  SpiaRegs.SPITXBUF = 0x5000|d_a_data; //  0101         */   
/*     while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){}         */   
/*     SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;             */   
/*     //DSP28x_usDelay(20);                              */   
/*     GpioDataRegs.GPBDAT.bit.GPIOB9  = 1;               */   
   
    //DSP28x_usDelay(20);   
    GpioDataRegs.GPBDAT.bit.GPIOB9  = 0;   
    //DSP28x_usDelay(20);   
    SpiaRegs.SPITXBUF = 0xc000|d_a_data;  // DAC_A置数   
    while(SpiaRegs.SPISTS.bit.INT_FLAG != 1){}   
    SpiaRegs.SPIRXBUF = SpiaRegs.SPIRXBUF;   
    //DSP28x_usDelay(20);   
    GpioDataRegs.GPBDAT.bit.GPIOB9  = 1;   
   
    while (1)   
    {   
      
    DSP28x_usDelay(205630);   
      
   
   
    };   
}   

出0入0汤圆

发表于 2012-8-30 13:32:57 | 显示全部楼层
妹纸。。。上图啊,没图没程序咋看
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 00:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表