微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > hx711驱动程序

hx711驱动程序

时间:09-19 来源:互联网 点击:

  HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A 或通道B,与其内部的低噪声可编程放大器相连。通道A 的可编程增益为128 或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B 则为固定的32 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。

  下面简单介绍一下hx711的参考驱动程序(汇编和C语言):

hx711的驱动程序(汇编)

  /*-------------------------------------------------------------------

  在ASM中调用: LCALL ReaAD

  可以在C中调用: extern unsigned long ReadAD(void); 。 。

  unsigned long data;

  data=ReadAD(); 。 。

  ----------------------------------------------------------------------*/

  PUBLIC ReadAD

  HX711ROM segment code

  rseg HX711ROM

  sbit ADDO = P1.5;

  sbit ADSK = P0.0;

  /*--------------------------------------------------

  OUT: R4, R5, R6, R7 R7=》LSB

  如果在C中调用,不能修改R4,R5,R6,R7。

  ---------------------------------------------------*/

  ReadAD:

  CLR ADSK //使能AD(PD_SCK置低)

  SETB ADDO //51CPU 准双向I/0输入使能

  JB ADDO,$ //判断AD转换是否结束,若未结束则等待否则开始读取

  MOV R4,#24

  ShiftOut:

  SETB ADSK //PD_SCK置高(发送脉冲

  ) NOP

  CLR ADSK //PD_SCK置低

  MOV C,ADDO //读取数据(每次一位)

  XCH A,R7 //移入数据

  RLC A

  XCH A,R7

  XCH A,R6

  RLC A

  XCH A,R6

  XCH A,R5

  RLC A

  XCH A,R5

  DJNZ R4,ShiftOut //判断是否移入24BIT

  SETB ADSK

  NOP

  CLR ADSK RET

  END

hx711的驱动程序(C语言)

  sbit ADDO = P1^5;

  sbit ADSK = P0^0;

  unsigned long ReadCount(void)

  {

  unsigned long Count;

  unsigned char i;

  ADDO=1; //非51类MCU,略去此行

  ADSK=0;

  Count=0;

  while(ADDO);

  for (i=0;i《24;i++)

     {

  ADSK=1;

  Count=Count《《1;

  ADSK=0;

  if(ADDO) Count++;

     }

  ADSK=1;

  Count=Count^0x800000;

  ADSK=0;

  return(Count);

  }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top