hx711称重程序

HDL语言及源代码

6人已加入

描述

  HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。

  HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A 或通道B,与其内部的低噪声可编程放大器相连。

  通道A 的可编程增益为128 或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B 则为固定的32 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。

  

  hx711称重程序详解

  #include《reg52.h》 //error: data not change

  typedef unsigned char uchar;

  typedef unsigned int uint;

  //管脚定义

  sbit ADDO=P2^1;

  sbit ADSK=P2^0;

  sbit dlock=P2^6; //数码管段锁

  sbit wlock=P2^7; //数码管位锁

  //常量

  uchar code number[10]={0x3f,0x06,0x5b,0x4f,

  0x66,0x6d,0x7d,0x07,

  0x7f,0x6f};

  uchar code position[7]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

  //变量

  unsigned long Data;

  uchar Data1,Data2;

  //延时函数

  void delay(uchar t)

  {

  uchar a,b,c;

  for(a=t;a》0;a--)

  for(b=50;b》0;b--)

  for(c=10;c》0;c--)

  {;}

  }

  //显示函数,显示数字和位置

  void display(uchar num,uchar i)

  {

  P0=number[num];

  dlock=1;

  dlock=0;

  P0=position[i];

  wlock=1;

  wlock=0;

  }

  //读取传感器输出数据,完全按照参考例程

  unsigned long ReadCount(void)

  {

  unsigned long Count;

  uchar i;

  //ADDO=1;

  ADSK=0;

  Count=0;

  while(ADDO);

  for (i=0;i《25;i++) //25

  {

  ADSK=1;

  Count=Count《《1;

  ADSK=0;

  if(ADDO) Count++;

  }

  ADSK=1;

  Count=Count^0x800000;

  ADSK=0;

  return(Count);

  }

  void main(void)

  {

  while(1)

  {

  Data=ReadCount();

  Data1=(uchar)(Data%10); //数据转换,不知道写的对不对

  Data2=(uchar)(Data/10);

  display(Data1,1); //送显

  delay(5);

  display(Data2,2);

  delay(5);

  }

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分