STC15W408读取HX711称重数据串口发送

#include "STC15Fxxxx.H"
#include <stdio.h>
#include <string.h>unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0;
long Weight_Shiwu = 0;unsigned char flag = 0;
bit Flag_ERROR = 0;
sbit HX711_DOUT=P1^1;
sbit HX711_SCK=P3^7; //校准参数
//因为不同的传感器特性曲线不是很一致,因此,每一个传感器需要矫正这里这个参数才能使测量值很准确。
//当发现测试出来的重量偏大时,增加该数值。
//如果测试出来的重量偏小时,减小改数值。
//该值可以为小数
#define GapValue 430//****************************************************
//延时函数
//****************************************************
void Delay__hx711_us(void)
{_nop_();_nop_();
}//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void)  //增益128
{unsigned long count; unsigned char i; HX711_DOUT=1; Delay__hx711_us();HX711_SCK=0; count=0;EA = 1; while(HX711_DOUT); EA = 0;for(i=0;i<24;i++){ HX711_SCK=1; count=count<<1; HX711_SCK=0; if(HX711_DOUT)count++; } HX711_SCK=1; count=count^0x800000;//第25个脉冲下降沿来时,转换数据Delay__hx711_us();HX711_SCK=0;  return(count);
}//****************************************************
//称重
//****************************************************
void Get_Weight()
{Weight_Shiwu = HX711_Read();Weight_Shiwu = Weight_Shiwu - Weight_Maopi;      //获取净重if(Weight_Shiwu > 0)           {   Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/GapValue);   //计算实物的实际重量if(Weight_Shiwu > 5000)       //超重报警{Flag_ERROR = 1; }else{Flag_ERROR = 0;}}else{Weight_Shiwu = 0;Flag_ERROR = 1;             //负重报警}}//****************************************************
//获取毛皮重量
//****************************************************
void Get_Maopi()
{Weight_Maopi = HX711_Read();
} //****************************************************
//MS延时函数(12M晶振下测试)
//****************************************************
void Delay_ms(unsigned int n)
{unsigned int  i,j;for(i=0;i<n;i++)for(j=0;j<123;j++);
}void Uart_Init()
{SCON = 0x50;      AUXR |= 0x01;      AUXR |= 0x04;  T2L = 0xE8;        T2H = 0xFF;        AUXR |= 0x10;      ES=1; EA=1; TI=1;
}void Send_Word(unsigned char *p)               //发送字符串
{   while(*p){SBUF=*(p++);while(TI==0){;;;};TI=0;}
}void Send_ASCII(unsigned char c)               //发送一个字符
{ TI=0;   SBUF=c;   while(TI==0);   TI=0;
}//****************************************************
//主函数
//****************************************************
void main()
{Uart_Init();Delay_ms(3000);         //延时,等待传感器稳定Get_Maopi();               //称毛皮重量while(1){EA = 0;Get_Weight();           //称重EA = 1;//显示当前重量if( Flag_ERROR == 1){Send_Word("ERROR\n");}else{Send_ASCII(Weight_Shiwu/1000 + 0X30);Send_ASCII(Weight_Shiwu%1000/100 + 0X30);Send_ASCII(Weight_Shiwu%100/10 + 0X30);Send_ASCII(Weight_Shiwu%10 + 0X30);Send_Word(" g\n");}}
}

STC15W408读取HX711称重数据串口发送相关推荐

  1. Linux下读取RFID卡号(C串口编程)

    由于项目需要用到RFID.GPRS.摄像头等模块所以便看了一下,整理了一下学习思路,本篇先是整理一下串口读取RFID卡号的程序思路,后面还会更其他的 RFID模块: 本次采用的是125K的RFID读卡 ...

  2. 串口发送和接受字符串,AD转换多通道读取

    困扰了我快一个学期的问题终于解决了-- 原来之前的想法是错的,PCF8591是可以连续工作的,不需要进行延时-- PCF8591每读出一次,就会启动一次的转换,而转换的结果,在下次才能读出,所以需要调 ...

  3. matlab实用小程序段 —— 串口发送和读取

    sr3 = serial('COM3');       % 使用默认设置创建串口sr3 fopen(sr3);                 %打开串口 fprintf(sr3,'xxx');   ...

  4. [ZigBee] 7、ZigBee之UART剖析(ONLY串口发送)

    综述:USART0和USART1是串行通信接口,它们能够分别运行于异步UART模式或者同步SPI 模式.两个USART具有同样的功能,可以设置在单独的I/O 引脚. 1.UART 模式 UART 模式 ...

  5. UART0串口编程(五):串口编程(UART0)之UC/OS(一)UC/OS下的串口发送任务编程

    UART0串口编程(五) 串口编程(UART0)之UC/OS(一) 一.在UC/OS中设计串口程序所要考虑的问题 1.     串口通信数据以帧为单位进行处理,如果需要接收大量数据,则帧缓冲区规模必然 ...

  6. 单片机实现环形队列_单片机模块化程序: 难道有环形队列串口发送数据就万事大吉了吗...

    1.问个问题,下面程序有没有BUG数组 2.环形队列虽然解决了一开始的中断发送数据覆盖问题,可是呢却引入了新的问题函数 3.而后看看中断发送测试 4.想没想明白是什么问题spa 5.发送数据1 和发送 ...

  7. stm32串口传输数据第一个数据被吞_stm32串口发送数据复位 第一个数据丢失

    http://blog.csdn.net/kevinhg/article/details/40991655 STM32串口发送必须先检测状态,否则第一个字节无法发出,发送完毕,必须检测发送状态是否完成 ...

  8. 串口发送接收浮点型数据

    转自:https://blog.csdn.net/liangwei88624/article/details/6885803 转自:https://blog.csdn.net/newstoy/arti ...

  9. STM8单片机串口发送引脚和接收引脚分开使用

    在使用STM8S003单片机时,需要用到ADC采样功能,STM8S003总共有5个ADC采样口,但是其中两个采样口是和串口复用的,如果当ADC口用,就不能用串口,如果当串口用,就不能用ADC口. 通过 ...

最新文章

  1. 无论你在学什么语言,都能有小姐姐来陪着你一起学习!
  2. [XSY] 树与图(树形DP、生成函数、分治NTT、重链剖分)
  3. 愚弄dnn_不要被泛型和向后兼容性所愚弄。 使用泛型类型
  4. Npm基本指令(转)
  5. [转]各种互斥量的总结
  6. Android 关机流程 从kernel到framework
  7. 怎么创建java项目?新建java项目的步骤
  8. 【ELAMN预测】基于遗传算法优化ELMAN神经网络实现电力符合数据回归预测附matlab代码
  9. linux 大黄蜂怎么安装视频教程,使用神舟K680E-G6D1在Deepin Linux系统下安装大黄蜂驱动的方法...
  10. php被挂马,近日报网站被挂马的解决方法
  11. 北京铁路安检全面升级 四大站特警持枪巡逻
  12. 从周易六十四卦看软件架构真好懂!女朋友这下不用担心我的学习了~【程序员编程】
  13. ArrayList vs LinkedList
  14. 骨传导耳机对听力有危害吗,骨传导耳机会不会伤害耳朵
  15. openpnp - Smoothieware project build
  16. idea本地项目push到远程仓库报错解决方法
  17. 快手老司机与抖音小姐姐 ,终有一战?
  18. CentOS7重置密码
  19. 最值得听的100首英文歌
  20. 《壹百度》- 百度员工内部培训资料

热门文章

  1. 计算及图形学——实验四
  2. visual studio code安装_Deepin系统中如何安装Visual Studio Code
  3. 开源资产管理系统_部署开源夜莺运维监控平台V3版本
  4. python的重点和难点_python知识点汇总-Go语言中文社区
  5. UE3 中文教程主页
  6. 30 行 Javascript 代码搞定智能家居系统
  7. BZOJ1026: [SCOI2009]windy数(数位dp)
  8. 不用去验血,一查就能知道自己缺啥,一定要收好
  9. 【xargs使用】查询包含某字符串的所有文件
  10. 实验二:SET-UID程序漏洞实验