标题: 分享一份最近做的基于51单片机的HX711电子秤,有需要的朋友可以作为参考 [打印本页]

作者: 18925405284    时间: 2018-12-10 16:01
标题: 分享一份最近做的基于51单片机的HX711电子秤,有需要的朋友可以作为参考


电路原理图如下:


单片机源程序如下:
  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)



作者: 123大师兄    时间: 2019-4-1 20:24
下载试试,谢谢楼猪

作者: LIO552    时间: 2020-9-26 10:38
楼主用的是什么单片机。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1