#include<reg52.h>//调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#define ulong unsigned long
uint GapValue,GapValue1; //传感器参数
#include "eeprom52.h"
#include<intrins.h>
#include<string.h>
uchar code table_num[]="0123456789abcdefg";//无符号字符型数组
sbit rs=P2^5; //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit rw=P2^6; //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit e =P2^7; //片选信号 下降沿触发
sbit hx711_dout=P1^2;
sbit hx711_sck=P1^3;
sbit io = P1^4; //数据线
sbit rst = P1^5; //复位线
uchar i;
sbit beep = P1^0; //蜂鸣器
uchar menu_1,menu_2;
long weight;
ulong HX711_Buffer = 0;
ulong Weight_Maopi = 0;
uchar flag = 0;
bit Flag_ERROR = 0;
uint temp,qi_weight;
bit chaozhong_flag;
bit leiji_flag;
uchar flag_200ms ;
ulong price,z_price; //单价 总价
uchar flag_p;
/******1ms延时函数***12M晶振**************/
void delay_1ms(uint q)
{ uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{
SectorErase(0x1000);
GapValue1=GapValue&0x00ff; //低
byte_write(0x2000, GapValue1);
GapValue1=(GapValue&0xff00)>>8;//高
byte_write(0x2001, GapValue1);
byte_write(0x2060, a_a);
}
/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
GapValue = byte_read(0x2001);
GapValue = (GapValue<<8)|byte_read(0x2000);
a_a = byte_read(0x2060);
}
/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
read_eeprom();//先读
if(a_a != 1)//新的单片机初始单片机内问eeprom
{
GapValue = 3500;
a_a = 1;
write_eeprom(); //保存数据
}
}
/********************************************************************
* 名称 : delay_uint()
* 功能 : 小延时
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay_uint(uint q)
{
while(q--);
}
/*********************蜂鸣器函数************************************************/
void didi()
{
uchar i;
for(i=0;i<10;i++)
{
beep = 0;
delay_1ms(1);
beep = 1;
delay_1ms(1);
}
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
********************************************************************/
void write_com(uchar com)
{ e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
********************************************************************/
void write_data(uchar dat)
{ e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#define ulong unsigned long
uint GapValue,GapValue1; //传感器参数
#include "eeprom52.h"
#include<intrins.h>
#include<string.h>
uchar code table_num[]="0123456789abcdefg";//无符号字符型数组
sbit rs=P2^5; //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit rw=P2^6; //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit e =P2^7; //片选信号 下降沿触发
sbit hx711_dout=P1^2;
sbit hx711_sck=P1^3;
sbit io = P1^4; //数据线
sbit rst = P1^5; //复位线
uchar i;
sbit beep = P1^0; //蜂鸣器
uchar menu_1,menu_2;
long weight;
ulong HX711_Buffer = 0;
ulong Weight_Maopi = 0;
uchar flag = 0;
bit Flag_ERROR = 0;
uint temp,qi_weight;
bit chaozhong_flag;
bit leiji_flag;
uchar flag_200ms ;
ulong price,z_price; //单价 总价
uchar flag_p;
/******1ms延时函数***12M晶振**************/
void delay_1ms(uint q)
{ uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{
SectorErase(0x1000);
GapValue1=GapValue&0x00ff; //低
byte_write(0x2000, GapValue1);
GapValue1=(GapValue&0xff00)>>8;//高
byte_write(0x2001, GapValue1);
byte_write(0x2060, a_a);
}
/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
GapValue = byte_read(0x2001);
GapValue = (GapValue<<8)|byte_read(0x2000);
a_a = byte_read(0x2060);
}
/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
read_eeprom();//先读
if(a_a != 1)//新的单片机初始单片机内问eeprom
{
GapValue = 3500;
a_a = 1;
write_eeprom(); //保存数据
}
}
/********************************************************************
* 名称 : delay_uint()
* 功能 : 小延时
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay_uint(uint q)
{
while(q--);
}
/*********************蜂鸣器函数************************************************/
void didi()
{
uchar i;
for(i=0;i<10;i++)
{
beep = 0;
delay_1ms(1);
beep = 1;
delay_1ms(1);
}
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
********************************************************************/
void write_com(uchar com)
{ e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
********************************************************************/
void write_data(uchar dat)
{ e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}