74

帖子

0

TA的资源

一粒金砂(初级)

21
 
还有其它的,这个只是一部分!用usb传给主机。

回复

80

帖子

0

TA的资源

一粒金砂(初级)

22
 
这种情况是不太适合使用仿真器的,它和7135难于同步。
————————-————————————————
这句话是什么意思?不能用仿真器仿真?
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

23
 
#include
#include
#define ad_run   XBYTE[0x7fff]
#define ad_read  XBYTE[0xbfff]
#define uchar unsigned char
uchar collect[5]=0;
uchar aaa;
char i;
bit overrun;
bit underrun;
bit data_ready;   /* 增加一个标志 */
main()
{
   IT0=1;            // interrupt edge trigger
   EA=1;          //interrupt 0 enable
   EX0=1;
   i=4;
   ad_run=0x20;        //ad start
   while(1)
   {
      if (data_ready)
      {
       /* 处理采样的数据 */
       data_ready = 0;
       ad_run = 0x20;   /* 假定需要重复测量, 再次启动转换 */
       }
   }
}


void   ad_result() interrupt 0
{
    ad_run = 0;  /* 如果需要暂停它,在哪一个nSTROBE脉冲给出控制信号并无分别*/
                  /* 每个脉冲都重复给出给出同样的控制信号也没有问题 */
    aaa=ad_read;

    overrun = underrun = 0;   /* 先清0 */

    if(aaa&0x04==0x04)
    overrun=1;                   //过量程处理
    else if(aaa&0x01==0x01)
    underrun=1;                   //欠量程处理

    collect=aaa;  /* 我不知道 B1-B4 占 A 中的哪4个bit */
    i--;
    if (i<0)
    {
        data_ready = 1;
        i = 4;
     }
}
我最后把程序改成了上面这个样子!我通过人为产生中断的方式,运行了程序(因为strobe出来的电平一直为高5V上下,让int0接地,接通一次就能产生一次中断)并设了断点,由此可以知道程序是没问题的。可以确定是strobe负脉冲没有产生或者是ad转换没进行。可是电源+5V,-5V,clk in都没错呀!我也量了R/H的电压,它也是5V啊!busy在零到5V之间跳动,可是当采集的是一个恒定的信号的时候,它应该是一个周期信号啊! 我快崩溃了。会不会是芯片坏了,或是电路板坏了?
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

24
 
看ICL7135的PDF文档,应该很清楚。
参考电平?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

25
 
楼上的真不厚道!都没看,就来说......
给点实质性的建议啊
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

26
 
这种情况是不太适合使用仿真器的,它和7135难于同步。
————————-————————————————
这句话是什么意思?不能用仿真器仿真?
   ---------------------------------------------------
    当一个中断信号到来,MCU在你的断点上停下,你检查了某些东西后,
    7135都不知道干什么了,以后不论单步或全速都可能得到错误结果。

再提醒你,strobe的脉冲你用电压表是量不到的,因它只在几百毫秒中出现几微秒。

我很想问你,你怎样确定中断服务程序没有运行呢?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

27
 
把你的电路图发到seedundersnow@sina.com,我看看,行不行?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

28
 
我很想问你,你怎样确定中断服务程序没有运行呢?
—————————————————————————
我在中断服务程序中设了断点!
是不是要在strobe,和int0
引脚间加上一个门电路啊
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

29
 
/* 看我的吧 */
#include"reg51.h"
#include"absacc.h"
#define ad_run   XBYTE[0x7fff]
#define ad_read  XBYTE[0xbfff]
#define uchar unsigned char
uchar collect[5];
uchar var,n;
char index;

bit overrun;
bit underrun;
bit data_ready;   /* 增加一个标志 */
main()
{
   IT0=1;            // interrupt edge trigger
   IE=0x81;          //interrupt 0 enable
   ad_run=0x20;        //ad start
   index = 4;          /* "i" 做全局变量的名字,实在是很不好 */

   while (1)
   {
       if (data_ready)
       {
          /* 处理采样的数据 */
           EA=0;
           data_ready = 0;
           ad_run = 0x20;   /* 假定需要重复测量, 再次启动转换 */
       }
   }
}

void   ad_result() interrupt 0
{
    ad_run = 0;  /* 如果需要暂停它,在哪一个nSTROBE脉冲给出控制信号并无分别*/
                  /* 每个脉冲都重复给出给出同样的控制信号也没有问题 */
    var=ad_read;

    overrun = underrun = 0;   /* 先清0 */

    if(var&0x04==0x04)
    overrun=1;                   //过量程处理
    else if(var&0x01==0x01)
    underrun=1;                   //欠量程处理

    collect[index]=var;  /* 我不知道 B1-B4 占 A 中的哪4个bit */
    index--;
    if (index< 0)
    {
        data_ready = 1;
        index = 4;
    }
}
这是最后运行的结果,没加参考电压和采集电压得到的结果是0,问题出在硬件上,pcb画的不对,谢谢seedundersnow(想当英雄的懦夫)和lbing7(向青润老大学习!!!)
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

30
 
上面是好用的程序
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表