找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3393|回复: 2
收起左侧

分享一份最近做的基于51单片机的HX711电子秤,有需要的朋友可以作为参考

[复制链接]
ID:357526 发表于 2018-12-10 16:01 | 显示全部楼层 |阅读模式
0.png

电路原理图如下:
0.jpg

单片机源程序如下:
  1. #include "key.h"
  2. #include "led.h"
  3. #include "lcd12864.h"
  4. #include "HX711.h"
  5. #include "main.h"
  6. #include <intrins.h>
  7. #include <string.h>
  8. #include "eeprom52.h"

  9. #define uchar unsigned char
  10. #define uint unsigned int
  11. uchar temp;                                                //储存键值
  12. uint GapValue,GapValue1;                //修改除数
  13. /*-------------外部定义函数或变量-----------------*/
  14. extern unsigned char code image[];         
  15. extern void lcddisplay();
  16. extern unsigned long HX711_Read(void);
  17. extern void weight_get();
  18. extern void maopi_get();
  19. extern void display_price();
  20. extern void display_weight();
  21. extern void display_money();
  22. bit bdata flag_key;


  23. void delay1()
  24. {;;}                                                   //延时函数 大概10us

  25. void delay(uint x)
  26. {
  27.     uint a,b;
  28.         for(a=x;a>0;a--)
  29.           for(b=110;b>0;b--);           //延时时间函数 大概x=1000为1s
  30. }                        

  31. //定时器0以及lcd12864初始化
  32. void init()
  33. {
  34.         rw=0;
  35.         psb=1;
  36.         delay1();                  //根据时序图操作
  37.         write_com(0x30);  //基本指令操作
  38.         write_com(0x0c);  //开显示关光标,0x0e就是开显示开光标
  39.         write_com(0x06);  //写入一个字符,地址加1
  40.         write_com(0x01);  //清除LCD的显示内?
  41.         delay(5);
  42. }        
  43. void main()
  44. {        
  45.         init_eeprom();  //开始初始化保存的数据        
  46.     init();                //LCD初始化        
  47.         maopi_get();        //获取开机时候的毛重,所以开机时托盘上应该为零重量  这里是必须要注意的
  48.         start_lcd();    //开机动画及其应该初次显示的东西               
  49.         while(1)
  50.         {
  51.                   weight_get();    //循环地获取重量
  52.                   temp=keyscan();  //按键扫描
  53.                   //有效键值0-15
  54.                   if (temp<16)
  55.                   {
  56.                          key_select(temp);//循环地不停检查是否有按键按下,按下则立马执行相应动作
  57.                          while(temp<16)
  58.                          {
  59.                                 if(temp==10||temp==11) //这里是修改GapValue值得
  60.                                 {        
  61.                                          key_select(temp);//再次确认temp
  62.                                          weight_get();          //继续称重显示
  63.                                          flag_key=1;          //修改按键标志
  64.                                 }
  65.                         //        temp=keyscan();
  66.                           }
  67.                    }
  68.                   write_eeprom();//保存设定参数
  69.         }        
  70. }
  71.          
复制代码

所有资料51hei提供下载:
hx711.7z (2.24 MB, 下载次数: 86)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:489773 发表于 2019-4-1 20:24 | 显示全部楼层
下载试试,谢谢楼猪
回复

使用道具 举报

ID:823423 发表于 2020-9-26 10:38 | 显示全部楼层
楼主用的是什么单片机。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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