Proteus实现电子秤仿真与称重检测显示

Proteus实现电子秤仿真与称重检测显示

测量原理(或设计方案)

数字电子秤总体框图如图所示:
在这里插入图片描述

  1. 金属箔式应变片工作原理
    电阻丝在外力作用下发生机械变形时,其电阻值发生变化,这就是电阻应变效应,描述
    电阻应变效应的关系式
    在这里插入图片描述
    金属箔式应变片就是通过光刻、腐蚀等工艺制成的应变敏感元件。如图所示,将四个金属箔应变片(R1、R2、R3、R4)分别贴在双杆式悬臂梁弹性体的上下两侧,弹性体受到压力发生形变,应变片随悬臂梁形变被拉伸或被压缩
    在这里插入图片描述
  2. 测量电路
    通过应变片转换悬臂梁被测部位受力状态变化,可将应变片串联或并联组成电桥。如
    图所示,全桥测量电路中,将受力性质相同的两只应变片接到电桥的对边,不同的接入邻边,当应变片初始阻值相等,变化量也相等时,其桥路输出在这里插入图片描述
    测量电路的功能是把电阻应变片的电阻变化转变为电压输出。因为惠斯登电桥具有很多优点,如可以抑制温度变化的影响,可以抑制侧向力干扰,可以比较方便的解决称重传感器的补偿问题等,所以惠斯登电桥在称重传感器中得到了广泛的应用。因为全桥式等臂电桥的灵敏度最高,各臂参数一致,各种干扰的影响容易相互抵销,所以称重传感器均采用全桥式等臂电桥。
    3.信号放大电路
    电子秤的信号放大电路采用三运放差分放大电路,其典型结构如图所示。它主要由两级差分放大器电路构成。其中,运放 A1,A2 为同相差分输入方式,同相输入可以大幅度提高电路的输入阻抗,减小电路对微弱输入信号的衰减;差分输入可以使电路只对差模信号放大,而对共模输入信号只起跟随作用,使得送到后级的差模信号与共模信号的幅值之比(即共模抑制比 CMRR)得到提高。这样在以运放 A3 为核心部件组成的差分放大电路中,在CMRR 要求不变情况下,可明显降低对电阻 R3 和 R4,Rf 和 R5 的精度匹配要求,从而使三运放差分放大电路比简单的差分放大电路具有更好的共模抑制能力。在 R1=R2,R3=R4,Rf=R5 的条件下,图 2-4 电路的增益为:G=(1+2R1/Rg)Rf/R3。由公式可见,电路增益的调节可以通过改变 Rg 阻值实现。
    在这里插入图片描述
    图中,A1、A2、A3 可选择 OP07 集成运算放大器,A1,A2 同相输入端接全桥测量电
    路的输出端
    4.A/D 转换电路
    TLC2543 是美国 TI 公司生产的多通道、低价格的 11 通道 12 位串行 A/D 转换器,具有输入通道多、性价比高、易于和单片机接口的特点,可广泛应用于各种数据采集系统。TLC2543 与外围电路的连线简单,三个控制输入端为 CS(片选)、输入/输出时钟(I/O CLOCK)以及串行数据输入端(DATA INPUT)。片内的 14 通道多路器可以选择 11 个输入中的任何一个或 3 个内部自测试电压中的一个,采样-保持是自动的,转换结束,EOC 输出变高。
    在这里插入图片描述
    TLC2543 的引脚排列如图所示。引脚功能说明如下:
    AIN0~AIN10:模拟输入端,由内部多路器选择。对 4.1MHz 的 I/O CLOCK,驱动源阻抗必须小于或等于 50Ω;CS:片选端,CS 由高到低变化将复位内部计数器,并控制和使能 DATA OUT、DATA INPUT 和 I/O CLOCK。CS 由低到高的变化将在一个设置时间内禁止
    DATA INPUT 和 I/O CLOCK;(低电平有效,不用时置 1,用时保持为 0) DATA INPUT:串行数据输入端,串行数据以 MSB 为前导并在 I/O CLOCK 的前 4 个上升沿移入 4 位地址,用来选择下一个要转换的模拟输入信号或测试电压,之后 I/O CLOCK将余下的几位依次输入;
    DATA OUT:A/D 转换结果三态输出端,在 CS 为高时,该引脚处于高阻状态;当 CS
    为低时,该引脚由前一次转换结果的 MSB 值置成相应的逻辑电平(10 位);
    EOC:转换结束端。在最后的 I/O CLOCK 下降沿之后,EOC 由高电平变为低电平并保
    持到转换完成及数据准备传输;
    VCC、GND:电源正端、地;
    REF+、REF-:正、负基准电压端。通常 REF+接 VCC(+5V), REF-接 GND。最
    大输入电压范围取决于两端电压差;
    I/O CLOCK:时钟输入/输出端。

原理图

两个数码管一个是用于对称重重量的显示,另外一个是对A/D转换结果的显示,可以在代码中加入对其显示,以方便我们调节放大电路中电阻阻值控制放大倍数
在这里插入图片描述

代码

/*  电子秤    
	要求:测量范围0~1KG,测量精度0.001KG	*/ 

#include<reg51.h>
#define uint unsigned int 
#define uchar unsigned char 

sbit SDO=P1^0;                                                        
sbit SDI=P1^1;
sbit CS=P1^2;
sbit CLK=P1^3;
sbit wei1=P2^0;
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;
sbit wei21=P2^4;
sbit wei22=P2^5;
sbit wei23=P2^6;
sbit wei24=P2^7;
  
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};	  //共阳极数码管0-9的段码
                                                                                
uint read2543(uchar con_word);
void delay(uchar n);

void main()
{
   uint ad0,ad1;
   uchar ge;
   uchar shi;
   uchar bai;
   uchar qian;  
   while(1)
    {
           ad0=read2543(0x00);//读入AD转换数据
		  //显示函数待补充;
		   ad1=ad0;
		   qian= ad1/1000;     //控制位数显示
		   bai=(ad1%1000)/100;
		   shi=(ad1%100)/10;
		   ge=ad1%10;
		   P2 = 0x10;
		   P3 =table[qian]+0x80;//小数点显示
		   delay(5);
		   P2 = 0x20;
		   P3 =table[bai];
		   delay(5);
		   P2 = 0x40;
		   P3 =table[shi];
		   delay(5);
		   P2 = 0x80;
		   P3 =table[ge];
		   delay(5);
	}
}
		                                                          
//向TLC2543写命令及读转换后的数据
uint read2543(uchar con_word)
{
  uint ad=0,i;
  CLK=0;                  //时钟首先置低
  CS=0;                   //片选为0,芯片工作
  for(i=0;i<12;i++)                                  
  {
    if(SDO)               //首先读TLC2543的一位数据
         ad=ad|0x01;
         SDI=(bit)(con_word&0x80);    //向TLC2543写一位数据
         CLK=1;            //时钟上升沿,TLC2543输出使能
         delay(3);
         CLK=0;            //时钟下降沿,TLC2543输入使能
         delay(3);
         con_word<<=1;
         ad<<=1;
   }
   CS=1;
   ad>>=1;
  return(ad);
}

//延时程序
void delay(uchar n)
{   
    uchar i,j;
       for(i=0;i<n;i++)
         for(j=0;j<125;j++);
}

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值