电路原理图如下:
单片机源程序如下:
- #include "key.h"
- #include "led.h"
- #include "lcd12864.h"
- #include "HX711.h"
- #include "main.h"
- #include <intrins.h>
- #include <string.h>
- #include "eeprom52.h"
- #define uchar unsigned char
- #define uint unsigned int
- uchar temp; //储存键值
- uint GapValue,GapValue1; //修改除数
- /*-------------外部定义函数或变量-----------------*/
- extern unsigned char code image[];
- extern void lcddisplay();
- extern unsigned long HX711_Read(void);
- extern void weight_get();
- extern void maopi_get();
- extern void display_price();
- extern void display_weight();
- extern void display_money();
- bit bdata flag_key;
- void delay1()
- {;;} //延时函数 大概10us
- void delay(uint x)
- {
- uint a,b;
- for(a=x;a>0;a--)
- for(b=110;b>0;b--); //延时时间函数 大概x=1000为1s
- }
- //定时器0以及lcd12864初始化
- void init()
- {
- rw=0;
- psb=1;
- delay1(); //根据时序图操作
- write_com(0x30); //基本指令操作
- write_com(0x0c); //开显示关光标,0x0e就是开显示开光标
- write_com(0x06); //写入一个字符,地址加1
- write_com(0x01); //清除LCD的显示内?
- delay(5);
- }
- void main()
- {
- init_eeprom(); //开始初始化保存的数据
- init(); //LCD初始化
- maopi_get(); //获取开机时候的毛重,所以开机时托盘上应该为零重量 这里是必须要注意的
- start_lcd(); //开机动画及其应该初次显示的东西
- while(1)
- {
- weight_get(); //循环地获取重量
- temp=keyscan(); //按键扫描
- //有效键值0-15
- if (temp<16)
- {
- key_select(temp);//循环地不停检查是否有按键按下,按下则立马执行相应动作
- while(temp<16)
- {
- if(temp==10||temp==11) //这里是修改GapValue值得
- {
- key_select(temp);//再次确认temp
- weight_get(); //继续称重显示
- flag_key=1; //修改按键标志
- }
- // temp=keyscan();
- }
- }
- write_eeprom();//保存设定参数
- }
- }
-
复制代码
所有资料51hei提供下载:
hx711.7z
(2.24 MB, 下载次数: 86)
|