EDN首页   博客首页

日志档案

发表于 2007-3-6 20:54:20

8

标签: max197  

max197调试记录

刚刚 又重新测试了一下 max197 这款我最喜欢的AD 采集芯片,我05年比赛的时候,我就用它,可以说是十分的喜欢,它的芯片性能真的是太好了.由于项目需要,所以从新测试了一下,电路是最简单的测试电路.只用到了一路模拟量输入.

把源程序 及电路连接 发上来(由于是用仿真器调试的,没有建立keil工程文件)

点击看大图


/*
 max197 最小系统测试 测试环境 51单片机,总线方式读写
 线路连接:
 
 共有15根线需要连接,数据线8位(12位精度,4位复用)、电源、地
 控制线:HBEN 控制读写的高低位
  INT  转换完成标志位
  CS   芯片片外地址 选择
  WR   接到单片机WR 脚
  RD   接到单片机RD 脚
  
 共有8路模拟量输入,这里只用了ch0 通道
 
*/

#include
#include

#define adch XBYTE[0x8000]  // CS 片选线拉低即可 ,随便定义地址

sbit HBEN="P1"^7;   /* When high, the 4 MSBs are multiplexed on the data bus */
    /* when low, the 8 LSBs are available on the bus */
sbit INT="P1"^6;   /* goes low when conversion is complete and output data is ready */

 

void readtemp(void);
unsigned int Data_process(void);
unsigned char datah,datal;

unsigned int read_data;

void main(void)
{
 adch=0x40; //ch0 通道的地址

 while(1)
 {
  read_data = Data_process();
 }
}

 

void readtemp(void)                       
{
 
 while(INT!=0)
 {
  HBEN=0;
 }
 datal=adch;   /* get the 4 MSBs */ 
 HBEN=1;
 datah=adch;   /* get the 8 LSBs */
 HBEN=0;
}
 
unsigned int Data_process(void)
{
 unsigned int data_temp;
 
 readtemp();
 data_temp=datah*256+datal;
 data_temp*=1.2207;
 
 return (data_temp);
}

 

系统分类: 单片机   |   用户分类: 电子技术   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(2228)    回复(5)  

投一票您将和博主都有获奖机会!

  • 过路的

    2007-8-3 12:02:29

    能不能写个模拟时序的程序看看,我用的是AVR,只能采用写模拟时许的,能不能帮帮忙呀?

    急切等待你的答复

  • zl0801

    2007-7-31 19:31:31

    输入范围在-10~10内又该怎么搞

    也是看芯片手册,改写一个控制字就ok了

  • 过路的

    2007-7-31 17:40:31

    为什么要乘以1.2207呀?

    我想做双极性的采样,输入范围在-10~10内又该怎么搞?

  • zhaoming

    2008-3-4 14:54:02

    朋友怎么联系你啊?

  • junjietianya

    2008-9-4 11:14:21

    我按照你的接法为什么不行?你的数据端D0-D7接的那个IO口呀?是不是#define adch XBYTE[0x8000] 不能随便赋值? 我的其他的接法和你一样,就好似D0-D7接的P2口,程序也一样,但运行不成功,不管从CH0输入什么值,D0-D7输出的都是高电平。 希望你帮我解答一下,谢谢!!!!