传感器与电路板对接顺序: 红、白、黑、绿 四根线分别依次对应电路板上的 E+、E-、A-、A+ 。 系统供电5V,可使用手机充电器USB接口或电脑USB接口直接供电。
一、日历时间的设置 接通电源后,打开开关,开机默认处于“日历时间模式”。屏幕显示如下图: 在“日历时间模式”下,仅A、B、C、D四个按键有效。 A:设置;依次按下A键,年、月、日、时、分、秒的光标依次闪烁,可通过B、C键调节。 B:加键;按一下,数值加一。 C:减键;按一下,数值减一。 D:查看闹钟;进入“闹钟界面”。
二、闹铃的设置 在闹钟设置界面,依次按下A键,闹铃的:开/关、时、分、秒的光标依次闪烁。 然后可通过B、C键进行调节。 按D键则随时可退出“闹铃设置界面”返回到“日历时间界面”。
三、计价秤功能 在正常显示时间的情况下,按下C键,将切换到到“计价秤模式”,显示界面如下图: 第一行显示重量,单位是kg。 第二行显示“单价P”和“金额M”,单位都是元。 在“计价秤模式”下,16按键全部有效。 数字键介绍 1234567890数字键代表数字,可通过键盘设置P= 的值,数值可精确到0.1g。 设置单价后系统会自动计算出金额M。 A:清零、去皮 B:清除单价P C:切换到“日历时间模式” D:切换到“计数秤模式”
四、计数秤功能 在计价秤模式下,按下D键,即切换到“计数秤模式”,显示如下图: 第一行:重量值kg。 第二行:D=单个物品重量值,N=物品个数。
键盘说明: 1234567890数字键代表数字,可通过键盘设置D= 的值,数值可精确到0.1g。 设置单重后系统会自动计算出个数N。 A:清零/去皮 B:清除单重D C:切换到“日历时间模式” D:切换到“计数秤模式”
五、系统校准方法: 打开开关,等系统稳定后,在秤盘上放一个固定重量的物体(比如放100个一角硬币320g)。如果系统显示重量不等于这个固定重量(320g),就长按 # 键3秒,然后屏幕的第一行右边会显示出“校准系数”。 校准系数出现以后,可以通过C、D两个键对校准系数进行增大和较小,通过对“校准系数”的调节使得屏幕上重量显示的值正好等于物体的真实重量(320g)。 最后长按 # 键3秒,校准系数消失,校准完成。
电路原理图如下:
单片机源程序如下:
- #include<reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar naozhong_en; //闹钟开关位
- sbit bell = P2 ^ 7; //蜂鸣器,低电平响
- /*********************电子秤*******************************/
- unsigned long HX711_Buffer = 0;
- unsigned long Weight_Maopi = 0; //毛皮重量
- long Weight = 0;//重量
- long danjia = 0;//单价
- long zongjia = 0;//总价
- uint com1, com2, temp; //键盘用的到的变量
- uchar com, P_a = 0, P_b = 0, P_c = 0, P_d = 0, m = 0;
- bit a = 0;
- bit jia_shu = 0;
- bit Flag_ERROR = 0;
- void Delay_ms(unsigned int n);
- void Get_Weight();
- void Get_Maopi();
- void display_weight();//显示重量和校准参数
- void delay_3us();//3US的延时程序
- void keyscan_4x4();//矩阵键盘扫描函数
- //hx711 IO设置
- sbit HX711_DOUT = P2 ^ 0;
- sbit HX711_SCK = P2 ^ 1; //IO设置
- void Delay__hx711_us();
- unsigned long HX711_Read(void);
- uint GapValue;//校准参数:GapValue
- //不同的传感器特性曲线不是很一致,每个传感器需矫正这个参数才能测量准确。
- //当测试的重量偏大时,增加该数值。如果测试的重量偏小时,减小改数值。
- uchar flag_24c02;//和24C02通讯是否正常的标志
- sbit sda_24c02 = P1 ^ 7; //定义24C02串行数据线
- sbit scl_24c02 = P1 ^ 6; //定义24C02串行时钟线
- void delay_3us();
- void nack_24c02();//24C02非应答信号
- void stop_24c02();//停止通讯信号
- void star_24c02();//启动信号
- void cack_24c02();//检测应答信号
- void mack_24c02();//发送应答信号
- void w1byte_24c02(uchar byte1);//向24C02写入一字节的数据
- uchar rd1byte_24c02(void);
- void read_24c02();//读数据操作
- void write_24c02();//写入16字节的数据操作
复制代码
PCB:无
仿真: 无
代码:
代码.7z
(574.01 KB, 下载次数: 0)
|