基于51单片机lcd1602直接实时显示HX711模块称重代码

时间: 2023-07-30 18:06:05 浏览: 48
以下是基于51单片机和HX711模块的称重代码,实时将重量显示在LCD1602上: ``` #include <reg51.h> #include <intrins.h> #define LCD_DB P0 sbit LCD_RS=P3^6; sbit LCD_RW=P3^5; sbit LCD_EN=P3^4; sbit DOUT=P2^7; // HX711模块的数据输出引脚 sbit PD_SCK=P2^6; // HX711模块的时钟引脚 void Delay1ms(unsigned int); void InitLcd1602(); void WriteCommand(unsigned char); void WriteData(unsigned char); void LcdDisplay(unsigned char,unsigned char,unsigned char); void main() { unsigned long weight = 0; unsigned char i = 0; unsigned char j = 0; unsigned char buff[16]; InitLcd1602(); // 初始化LCD1602 while(1) { // 读HX711模块的数据 while(DOUT); for(i=0;i<24;i++) { PD_SCK=1; weight=weight<<1; PD_SCK=0; if(DOUT) weight++; } for(j=0;j<1;j++) { PD_SCK=1; PD_SCK=0; } // 将重量显示在LCD1602上 sprintf(buff,"%lu",weight); LcdDisplay(2,1,'w'); LcdDisplay(2,2,'e'); LcdDisplay(2,3,'i'); LcdDisplay(2,4,'g'); LcdDisplay(2,5,'h'); LcdDisplay(2,6,'t'); LcdDisplay(2,7,':'); LcdDisplay(2,8,' '); LcdDisplay(2,9,buff[0]); LcdDisplay(2,10,buff[1]); LcdDisplay(2,11,buff[2]); LcdDisplay(2,12,buff[3]); LcdDisplay(2,13,buff[4]); LcdDisplay(2,14,buff[5]); LcdDisplay(2,15,'g'); LcdDisplay(2,16,0); weight = 0; // 清空重量 } } void Delay1ms(unsigned int i) { unsigned int j; for(;i>0;i--) { for(j=110;j>0;j--); } } void InitLcd1602() { WriteCommand(0x38); // 初始化LCD1602 WriteCommand(0x0c); WriteCommand(0x06); WriteCommand(0x01); Delay1ms(10); } void WriteCommand(unsigned char c) { LCD_RS = 0; LCD_RW = 0; LCD_DB = c; LCD_EN = 1; _nop_(); _nop_(); LCD_EN = 0; } void WriteData(unsigned char c) { LCD_RS = 1; LCD_RW = 0; LCD_DB = c; LCD_EN = 1; _nop_(); _nop_(); LCD_EN = 0; } void LcdDisplay(unsigned char y,unsigned char x,unsigned char c) { unsigned char address; if(y!=1) { address=0xc0+x-1; } else { address=0x80+x-1; } WriteCommand(address); WriteData(c); } ``` 注意:以上代码仅供参考,实际应用中需要根据具体硬件配置和需求进行修改。

相关推荐

最新推荐

recommend-type

基于FPGA的LCD1602动态显示---Verilog实现

FPGA驱动LCD1602,其实就是通过同步状态机模拟单片机驱动LCD1602,由并行模拟单步执行,状态过程就是先初始化LCD1602,然后写地址,最后写入显示数据。
recommend-type

基于AT89S52单片机的LCD12864液晶显示模块设计

本文介绍以AT89S52单片机为控制核心,利用四位按键输入,以LCD12864液晶作为屏幕的显示模块。该模块硬件结构结单、功能齐全,工作稳定,可完成目前绝大部分设备的显示工作。
recommend-type

基于51单片机的LCD1602显示键值设计.docx

本文是基于51单片机对矩阵键盘在LCD1602显示键值的设计,从硬件和软件方面对本设计进行了介绍。介绍了LCD1602显示模块,矩阵键盘控制模块以及蜂鸣器报警模块和软件对各模块的控制,总体上对本设计进行了描述和介绍,...
recommend-type

STM32单片机驱动LCD1602液晶程序

最近看到网上很多人都在找STM32单片机驱动LCD1602液晶程序,有的人写的比较复杂刚好自己最近也在搞STM32单片机。就花了点时间写出一份仅供参考和学习。单片机IO驱动能力弱这里用的是10K上拉电阻,也可以采用74HC245...
recommend-type

基于AT89C51单片机的LED汉字显示屏设计方案

研究了基于AT89C51单片机16×16 LED汉字滚动显示屏的设计与运用Proteus软件的仿真实现。主要介绍了LED汉字显示屏的硬件电路、汇编程序设计与调试、Proteus软件仿真等方面的内容,本显示屏的设计具有体积小、硬件少、...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。