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;
}
}
查查是不有一些大的值! 武力戡乱 发表于 2016-3-18 19:49
查查是不有一些大的值!
当改变电阻的值后,那么555振荡产生的方波的频率与湿度便没有了对应关系。无论是改变R1、R2、R3的值,都会影响输出频率值。
下图分别为hs1101湿度传感器datasheet,不同555所对应的电阻值以及方波的频率与湿度的对应关系
Mr叶 发表于 2016-3-18 20:36
当改变电阻的值后,那么555振荡产生的方波的频率与湿度便没有了对应关系。无论是改变R1、R2、R3的值,都会影响输出频率值。
下图分别为hs1101湿度传感器datasheet,不同555所对应的电阻值以及方波的频率与湿度的对应关系
是的,电阻值太大了!仿真失真! 还有以下几种方法可以尝试解决Proteus模拟速度过慢的问题:
1. 减小仿真时间:在仿真设置中减小仿真的时间范围,例如减小仿真时间至10ms,可以加快仿真速度。
2. 使用低分辨率的ADC模块:将ADC模块的分辨率调整为较低的值,比如10位而不是12位,可以减少仿真的计算量,从而提高仿真速度。
3. 禁用某些模块:根据你的仿真电路,你可以尝试禁用一些不必要的模块,比如一些与湿度传感器无关的模块,以减少仿真的计算量。
4. 优化电路图:优化电路图中的元件连接,以减少不必要的计算。
5. 使用更高性能的电脑:如果你的电脑配置较低,可能会影响Proteus的仿真速度。在较好的电脑上进行仿真可能会有更快的速度。
6. 更新Proteus版本:确保你使用的是最新版本的Proteus软件,新版本通常会有一些性能优化。
请注意,以上方法可能有一定的风险,可能会影响到你的仿真结果,请谨慎操作并做好备份。
页:
[1]