打印

请赐教MAX197的调试问题。。。

[复制链接]
2404|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linqhi|  楼主 | 2010-12-1 10:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在51上做MAX197的AD转换。。。。调了几天始终没有结果,还望各位帮帮忙咯。

电路是按照DATASHEET上连接的。

程序主体如下


#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
#include<math.h>

#define uchar unsigned char
#define uint unsigned int
#define PI 3.14159

sbit MAX197_CS=P2^0;
sbit MAX197_WR=P3^6;
sbit MAX197_RD=P3^7;
sbit MAX197_HBEN=P2^3;

void delay(int i)
{
for(i;i>0;i--);
}

void MAX197_Write(char temp)
{

  MAX197_WR=0;
  P0=temp;
  _nop_();
  MAX197_WR=1;
}

int MAX197_Read()
{
    int premp;
  uint TempL,TempH;  
    MAX197_RD=0;
    MAX197_HBEN=0;
  _nop_();_nop_();
  TempL=P0;
  _nop_();
  MAX197_HBEN=1;
  _nop_();_nop_();
  TempH=P0;
  _nop_();
  MAX197_RD=1;
  premp=TempH*256|TempL;
  if(premp>0x0800)
  {
    premp=premp|0xf000;
  }
  return premp;
}



void main()
{
   int pr;
   MAX197_CS=0;
while(1)
{
   LED=0;   
   MAX197_Write(0x40);
        delay(5);
   pr=MAX197_Read();
    }
}




用中断或者查询的方式都等不到INT输出0,所以就用了延时。但是输出的结果始终为0 。这是为虾米呢??

急啊 兄弟们,帮忙想想呢。

相关帖子

沙发
linqhi|  楼主 | 2010-12-1 11:11 | 只看该作者
咋个没人理我呢、、、

使用特权

评论回复
板凳
wubing1211| | 2010-12-1 13:05 | 只看该作者
电路也发过来阿

使用特权

评论回复
地板
linqhi|  楼主 | 2010-12-1 13:21 | 只看该作者
3# wubing1211


怎么上传本地图片?貌似没找到。。。


   51                       MAX197     
   P0----------------  D7~D0
  P2^0-----------------CS
  P2^4-----------------HBEN
  WR-------------------WR
  RD--------------------RD

另外的就是MAX自己的外部元器件了。都按照datasheet上连的

使用特权

评论回复
5
linqhi|  楼主 | 2010-12-1 14:03 | 只看该作者
给P0口加了上拉电阻后,发现读回来的值就是写进去的控制字值、、、这有时为虾米呢?

使用特权

评论回复
6
5880527| | 2010-12-1 15:57 | 只看该作者
以前用过一次,貌似写了以后要等一下什么的

使用特权

评论回复
7
linqhi|  楼主 | 2010-12-1 16:23 | 只看该作者
6# 5880527


等了,但不管等多长时间都没有用。。。

使用特权

评论回复
8
xing0902| | 2013-1-9 19:27 | 只看该作者
我的一样,INT引脚不会变低,不知道什么问题!哪位大哥帮忙帮忙!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

1

粉丝