411412 发表于 2011-8-11 11:47:18

51单片机读7135 BUSY 仿真,差别2个字

申请了2片美信的7135,一直没玩起来,前几天在论坛搜索7135的帖子,拼凑下电路,修改了下程序,单片机可以显示7135的电压,差别2个字。

参考这2个帖子
Protues仿真ICL7135
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4686786&bbs_page_no=1&search_mode=1&search_text=7135&bbs_id=9999
求助ICL7135做的20v/200v电压表驱动共阳数码管仿真成功,驱动共阴数码管不行有文件求解
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4890561&bbs_page_no=1&search_mode=4&search_text=411412&bbs_id=9999

http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_666466Q49NVC.jpg
(原文件名:7135-2.jpg)

仿真文件ourdev_666467H7MHGJ.rar(文件大小:57K) (原文件名:7135 C51.rar)

chess01 发表于 2011-8-11 12:46:56

这种AD不应该有差别的,用计数器门控计数方式一个字都不会差

huayuliang 发表于 2011-8-11 13:00:37

仿真的话,是不会有差别的,你的程序有问题。

411412 发表于 2011-8-11 14:08:56

void main ()
{      
       
    TMOD=0x09;//T0 16位计数器,门控方式
   
    TL0=0; //T0初值
    TH0=0;
               
       
    IT0=1;//int0 低电平触发
    TR0=1;//开始计时
    EX0=1;//int0 中断使能
    //ET0=1;
    EA=1;

    while(1)
    {        
      D = A;
      dis_buff = D/10000;
      D = D%10000;
      dis_buff = D/1000;
      D = D%1000;
      dis_buff = D/100;
      D = D%100;
      dis_buff = D/10;
      D = D%10;
      dis_buff = D;
      display();
    }
}

void int0con(void)interrupt 1
{
    TR0 = 0;

    A = TH0;       // A=TH0*256+TL0;
    A << =8;
    A |= TL0;
   
    A >>= 1;       // A/2-10001
    A = A-10001;

    TH0 = 0;
    TL0 = 0;
    TR0 = 1;
}
单片机时钟6M,7135时钟250K。
程序很简单,算法也没错,不知道怎么就差了2个字。

411412 发表于 2011-8-11 14:36:12

奇怪的很,输入电压是0.31968V,7135显示的是3.194。
http://cache.amobbs.com/bbs_upload782111/files_44/ourdev_666580FQDGJG.jpg
(原文件名:7135-3.jpg)

单片机计数的值是对的。
页: [1]
查看完整版本: 51单片机读7135 BUSY 仿真,差别2个字