刘勇 发表于 2016-3-18 15:21:07

proteus模拟湿度传感器(555定时器) 仿真速度过慢问题

本帖最后由 Mr叶 于 2024-3-11 22:37 编辑

在进行仿真的过程中,仿真速度过慢
采取的措施有:1.将模拟电阻变为数字电阻,采集的信息便会出错
                        2.去掉温度补偿电阻(与555控制电压端口CV相连的电阻)或减小温度补偿电阻,便无法采集信息
                        3.去掉虚拟示波器后,仿真速度任然过慢
不知道还有没有其他解决的方法?


附录程序:
#include

#define uint unsigned int
#define uchar unsigned char


***it WEIlatch = P2^1;
***it DUANlatch = P2^0;

uchar code DuanMa[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};
uchar code WeiMa[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar table[]={10,10,10,10,10,10,10,10};

uint num,i,cishu;
uint RH;
         
void Delay_50us(uint a)
{
    uint x,y;
    for(x=a; x>0; x--)
      for(y=19; y>0; y--);
}

void DisplaySeg(uchar *p)
{
    uchar i;
    for(i=0; i<8; i++)
    {
      WEIlatch = 1;
      P0 = WeiMa;
      WEIlatch = 0;

      DUANlatch = 1;
      P0 = DuanMa[*(p+i)];
      DUANlatch = 0;
      Delay_50us(20);

      DUANlatch = 1;
      P0 = 0xff;
      DUANlatch = 0;

    }
}

void Init(void)
{   
   
    EA = 1;
    TMOD = 0X10;   
    TH1 = (65536-50000)/256;
    TL1 = (65536-50000)%256;
    ET1 = 1;
    TR1 = 1;

    EX0 = 1;
    IT0 = 1;
   
}

void main()
{
    Init();
    while(1)
    {   

   DisplaySeg(table);

    }   
}

void extert0()interrupt 0
{
    num++;
}
void timet1()interrupt 3
{
    TH1 = (65536-50000)/256;
    TL1 = (65536-50000)%256;
    i++;
    if(i == 20)
    {   
      i = 0;
      cishu = num;
      RH = (7351-cishu)/12;
      table = RH/100;
      table = RH%100/10;
      table = RH%10;
      num = 0;
   
    }   
}


h1654155700.1797 发表于 2016-3-18 18:48:12

武力戡乱 发表于 2016-3-18 19:49:31

查查是不有一些大的值!

刘勇 发表于 2016-3-18 20:36:30

武力戡乱 发表于 2016-3-18 19:49
查查是不有一些大的值!

当改变电阻的值后,那么555振荡产生的方波的频率与湿度便没有了对应关系。无论是改变R1、R2、R3的值,都会影响输出频率值。
下图分别为hs1101湿度传感器datasheet,不同555所对应的电阻值以及方波的频率与湿度的对应关系

武力戡乱 发表于 2016-3-19 16:04:32

Mr叶 发表于 2016-3-18 20:36
当改变电阻的值后,那么555振荡产生的方波的频率与湿度便没有了对应关系。无论是改变R1、R2、R3的值,都会影响输出频率值。
下图分别为hs1101湿度传感器datasheet,不同555所对应的电阻值以及方波的频率与湿度的对应关系

是的,电阻值太大了!仿真失真!

费加罗 发表于 2024-3-27 16:47:32

还有以下几种方法可以尝试解决Proteus模拟速度过慢的问题:

1. 减小仿真时间:在仿真设置中减小仿真的时间范围,例如减小仿真时间至10ms,可以加快仿真速度。

2. 使用低分辨率的ADC模块:将ADC模块的分辨率调整为较低的值,比如10位而不是12位,可以减少仿真的计算量,从而提高仿真速度。

3. 禁用某些模块:根据你的仿真电路,你可以尝试禁用一些不必要的模块,比如一些与湿度传感器无关的模块,以减少仿真的计算量。

4. 优化电路图:优化电路图中的元件连接,以减少不必要的计算。

5. 使用更高性能的电脑:如果你的电脑配置较低,可能会影响Proteus的仿真速度。在较好的电脑上进行仿真可能会有更快的速度。

6. 更新Proteus版本:确保你使用的是最新版本的Proteus软件,新版本通常会有一些性能优化。

请注意,以上方法可能有一定的风险,可能会影响到你的仿真结果,请谨慎操作并做好备份。
页: [1]
查看完整版本: proteus模拟湿度传感器(555定时器) 仿真速度过慢问题