找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4190|回复: 1
打印 上一主题 下一主题
收起左侧

HX711称重代码基于MSP430F5529

[复制链接]
跳转到指定楼层
楼主
ID:205371 发表于 2017-5-27 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "io430.h"

int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
P1SEL &=~ BIT2;
P1DIR &=~ BIT2;//SDA
P2DIR |= BIT2;//SCK

P2DIR |=BIT2;
P2SEL |=BIT2;
P2OUT |=BIT2;
//get_pizhong();
// LCD_init(); //初始化液晶
// LCD_clear();
//int a=8;

//j= sprintf( buffer,"%d",a);
// LCD_write_english_string(0,0,buffer);

while(1)
{
get_weight();//得到重量
// j= sprintf( buffer,"%d",weight);
// LCD_write_english_string(0,0,buffer);
}
return 0;}
#include <msp430f5529.h>
#include <HX711.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
unsigned long count;
int j;
int weight=0;
char buffer[200];
double money;
uint temp;
ulong a;
uint aa;
ulong hx711_dat;
uint get;


//延时函数
void delayus(uint t)
{
//_nop_();
//_nop_();
while(t--);
}
// I/O配置


//读取HX711
unsigned long ReadCount(void) //增益128
{
unsigned long count;
unsigned char i;
P1IN |= BIT2; //SDA
delayus(4);
P2OUT &= ~BIT2;//SCK
count=0;
while( P1IN&BIT2 ); //SDA
for(i=0;i<24;i++)
{
P2OUT |= BIT2; //SCK
count=count<<1;
P2OUT &=~ BIT2;//SCK
if(P1IN&BIT2)//SDA
count++;
}
P2OUT |= BIT2; //SCK
delayus(4);
count=count^0x800000;
P2OUT &=~ BIT2;//SCK
return(count);
}


void get_pizhong() //获取皮重,秤盘重量
{
uint j;
// ulong hx711_dat;
for(j=0;j<5;j++)
delayus(4);
hx711_dat=ReadCount(); //HX711AD转换数据处理
temp=(uint)(hx711_dat/100); //缩放long数据为int型,方便处理
}

void get_weight() //获取被测物体重量
{
ulong hx711_data;
uint j;
char buffer[200];
hx711_data=ReadCount(); //HX711AD转换数据处理
UART0_Sendint(weight);
get=(uint)(hx711_data/100);
if(get<(temp+4)) //判断是否有正向重量
{

while(get<(temp+56362))
{
weight=0;
weight_shuzhi(weight);//显示重量
j= sprintf( buffer,"%d",weight);
LCD_write_english_string(0,0,buffer);//显示重量
hx711_data=ReadCount(); //HX711AD输出数据处理
get=(uint)(hx711_data/100);
if(get>(temp+1))break;
}

}

a=ReadCount();
aa=(uint)(a/100)-temp;
weight=(uint)((float)aa/100);//重量转换函数,传感器型号不同此函数要适当修改
}

/*
#pragma vector = TIMERB0_VECTOR
__interrupt void TIMERB0_ISR(void)
{

}
*/


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:529182 发表于 2019-5-7 08:50 | 只看该作者
大佬你好&#128075;请问一下,得到的数据怎么样才能通过串口传到pc机上呀?
回复

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表