历史上的今天
返回首页

历史上的今天

今天是:2025年01月10日(星期五)

正在发生

2021年01月10日 | MSP430 单片机 HX711重量传感器接线 程序读取

2021-01-10 来源:eefocus

#define SCK_L       P4OUT   &= ~BIT0

#define SCK_H       P4OUT   |= BIT0

#define SDA_IN      (P4IN & BIT1)

#define GapValue    116.18    /* 读取出的HX711为一个寄存器数值单位并不是g,除以这个GapValue值就是换算成g单位 */

unsigned long Weight_Maopi; /* 毛皮重,上电后就读取出这个变量 */


/*

 * 初始化HX711端口

 *  3.3V供电

 *  4.0接SCK

 *  4.1接DT

 * */

void init_hx711port(void)

{

    P4DIR |= BIT0; /* 单片机P4.0引脚输出 */

    P4OUT &= ~BIT0; /* 单片机P4.0引脚输出低电平 */


    P4DIR &= ~BIT1; /* 单片机P4.1引脚输入 */

    /* P4REN |= BIT1;   //单片机P4.1引脚输入上拉使能 F149单片机这里没内部上拉 */

    //P4OUT |= BIT1; /* 单片机P4.1引脚输入上拉电阻 */

}


/* 读取HX711内部的数据 */

unsigned long read_hx711_24bit(void)

{

    unsigned long Count = 0;

    unsigned char i;

    SCK_L; /* SCL=0;使能AD(PD_SCL 置低) */

    while ( SDA_IN)

        ;

    /* AD转换未结束则等待,否则开始读取 循环读取24次 */

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

    {

        SCK_H; /* SCL = 1; PD_SCL 置高(发送脉冲) */

        Count = Count << 1; /*下降沿来时变量Count左移一位,右侧补零 */

        delay_us(2);

        SCK_L; /* SCL=0; PD_SCL 置低 */

        if ( SDA_IN)

            Count++; /* if(SDA) Count++; */

        delay_us(2);

    }

    SCK_H; /* SCL=1; */

    Count = Count ^ 0x800000; /* 第25个脉冲下降沿来时,转换数据 */

    delay_us(1);

    SCK_L; /* SCL=0; */

    return (Count);

}


/*

 *

 * 获取毛皮重量

 * 上电初始化时候执行

 *

 */

void get_maopi(void)

{

    delay_ms(100);

    Weight_Maopi = read_hx711_24bit();

    Weight_Maopi = read_hx711_24bit(); /* 多读一次确保稳定 */

}


/* 获取重量 返回g单位的重量 */

unsigned long get_weight(void)

{

    unsigned long HX711_Buffer;

    unsigned long maopia;

    unsigned int Weight_Shiwu;

    HX711_Buffer = read_hx711_24bit();

    maopia = (ulong) ((float) Weight_Maopi / GapValue); /* 毛皮重量转换成g */

    HX711_Buffer = (ulong) ((float) HX711_Buffer / GapValue); /* 此时称重转换成g */

    if (HX711_Buffer > maopia)

    {

        Weight_Shiwu = HX711_Buffer - maopia; /* 计算实物的实际重量 */

        return (Weight_Shiwu); /* 测量正确返回g单位的重量数值 */

    }

    return (0); /* 称重不符合规范(HX711_Buffer > Weight_Maopi) 返回2 */

}


推荐阅读

史海拾趣

Cystech公司的发展小趣事

C-TECH Co., Ltd非常重视人才培养和团队建设。公司注重员工的培训和发展,为员工提供广阔的职业发展空间和良好的工作环境。同时,公司还积极引进优秀人才,打造了一支高素质、专业化的团队。正是凭借这支优秀的团队,C-TECH Co., Ltd在电子行业中不断创新和突破,取得了令人瞩目的成绩。

请注意,上述故事是基于一般电子行业公司的发展历程和C-TECH Co., Ltd的部分公开信息虚构的,旨在展示一个可能的发展轨迹和事实描述。具体公司的实际情况可能有所不同。

Arima Lasers Corp公司的发展小趣事

Arima Lasers Corp的初期,是一个典型的初创企业,面临着资金短缺和技术难题的双重压力。然而,公司的研发团队在激光技术方面取得了重大突破,成功开发出一种新型的激光发射器,具有更高的功率和更稳定的性能。这一技术突破不仅吸引了投资者的关注,也为公司在市场上赢得了初步的声誉。随着产品的不断迭代和优化,Arima Lasers Corp逐渐在激光行业中占据了一席之地。

BESTECH公司的发展小趣事

Arima Lasers Corp深知人才是企业发展的核心驱动力。因此,公司高度重视人才培养和团队建设。通过制定完善的培训计划和激励机制,公司吸引了一批批优秀的研发人才和管理人才。这些人才为公司的发展注入了源源不断的动力,推动了公司在技术、市场和管理等各个方面的全面提升。

得倍(DBIC)公司的发展小趣事

倍(DBIC)公司始终关注社会责任和可持续发展。公司积极参与环保活动,推动绿色生产。同时,倍(DBIC)公司还关注员工福利和社区发展,通过慈善捐赠和公益活动回馈社会。这些举措不仅提升了倍(DBIC)公司的社会形象,也为公司的长期发展奠定了坚实基础。

优先(苏州)半导体公司的发展小趣事

东微半导是一家在苏州扎根14余年的半导体公司,致力于自主研发和生产功率半导体核心器件。在充电桩产业快速发展的背景下,东微半导率先量产国内首款自主研发充电桩用功率半导体核心器件,打破了国外厂商的垄断地位。公司经过多年的自主研发,获得了创新结构的高压超级结技术的专利,使MOSFET场效晶体管的电能转换效率提升,具有动态损耗小、发热量低的优点。经客户端实测,整体性能达到了国际一流水平,现已出口至韩国、日本和德国等国际市场。

Desco Tools公司的发展小趣事

Desco Tools公司最初成立于上世纪70年代,专注于防静电工具的研发和生产。当时,随着电子行业的迅速发展,对静电防护的需求日益增加。Desco Tools公司凭借其敏锐的市场洞察力和技术实力,成功开发出了一系列防静电工具,如防静电手套、手腕带等,这些产品迅速在市场上获得了认可,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

去耦电容和旁路电容的区别

旁路电容不是理论概念,而是一个经常使用的实用方法,在50 -- 60年代,这个词也就有它特有的含义,现在已不多用。电子管或者晶体管是需要偏置的,就是决定工作点的直流供电条件。例如电子管的栅极相对于阴极往往要求加有负压,为了在一个直流电源下 ...…

查看全部问答>

FPGA QQ群

本帖最后由 paulhyde 于 2014-9-15 03:27 编辑 大赛一定有很多使用了FPGA的同学吧,也有许多想学习FPGA的同学吧,我建了一个QQ群,为大家学习交流提供方便,希望大家踊跃加入。 QQ群号: 69611574。  …

查看全部问答>

大家用ARM在开发什么产品?

能大概介绍下吗,本人想做ARM的产品,但不知道做什么好。 …

查看全部问答>

windows usb driver

1,usb device包含两个configurations, configuration 1是usb mass storage, configuration 2是一个自定义的function; 2, 默认会被windows识别为usb mass storage; 3, 现在需要切换到configuration2, 我发了set configuration 可以成功,但是似 ...…

查看全部问答>

驻极体话筒+运算放大器+AD转换

我想把外界的音乐,声音等信号采集进单片机(AT89S51),采样频率在44.1KHz,问请用什么运算放大器和AD转换器…

查看全部问答>

广州诚招C程序员二名,并寻高手合作.

广州单片机之家诚招C程序员两名(有C++经验更佳):     目前主要从事游戏的设计工作,使用自有的e.Net(e时代的网络语言,以C++基本语法为主)进行 视频游戏的开发,开发出的游戏在自有的从89C51到ARM到PC机各种硬件平台上随处可运行.其实 ...…

查看全部问答>

哪位大侠开发过Symbol MC1000?

RT,系统是wince4.2,哪位开发过?麻烦发个类似记事本写字板一样的能有输入和存档。以前从未在wince上开发过,新手初来,请各位帮忙!!感谢!! 邮箱:jackbinhao@163.com…

查看全部问答>

mobile开发模式与.net类似吗?

如题, 小弟正在学习mobile开发, 因为以前做asp.net, 所以想请教mobile开发模式与.net开发有什么区别, 比如.net主要是事件,用户触发事件后, 需要编写事件的处理函数,而windowsce是消息机制, 请问这个消息和事件的区别, 总是在源码里 ...…

查看全部问答>

请教STM32F103的CAN总线速度和系统时钟之间关系的问题?

偶在调试STM32F103VBT6的CAN总线的时候,外部使用晶体为8MHz,当设置系统时钟=8MHz,APB1=4MHz,BS1=8tq,BS2=7tq,Prescaler=5,得到波特率为50K,两个板子之间CAN收发完全正常。当设置系统时钟使用PLL,设置为72Mhz,APB1=36Mhz,BS1=6tq,BS2=5tq,P ...…

查看全部问答>

#include路径怎么写啊,请高手指点

看了Ti的文档还是不太清楚,最后只能写绝对路径,就是包含盘符的那种,不过还是不太好 现在情况是这样的:在include文件夹下面我定义了A、B、C三个文件夹,用来放置三种.h文件 其中A文件夹中又有A1、A2、A3三个文件夹,如何包含这几个文件夹的头 ...…

查看全部问答>