Công năng yêu cầu:
Căn cứ vào51 đơn phiến cơHX711Truyền cảm khíCân điện tử thiết kế,
Sử dụngLCD1602Biểu hiện tương quan tin tức, HX711 truyền cảm khí thí nghiệm vật thể trọng lượng,
Thông qua ấn phím đưa vào đối ứng trị số, có xóa bỏ kiện, đi da, giá cả thanh linh, siêu trọng cảnh báo chờ công năng.
#define uchar unsigned char // vô ký hiệu tự phù hình hoành định nghĩa lượng biến đổi phạm vi 0~255
#define uint unsigned int // vô ký hiệu chỉnh hình hoành định nghĩa lượng biến đổi phạm vi 0~65535
#define ulong unsigned long
#include<intrins.h>
uchar code table_num[]= "0123456789abcdefg";
sbit rs=P1^0; //Gởi lại khíLựa chọn tín hiệu H:Số liệu gởi lại khíL:Mệnh lệnh gởi lại khí
sbit rw=P1^1; // gởi lại khí lựa chọn tín hiệu H: Số liệu gởi lại khí L: Mệnh lệnh gởi lại khí
sbit e =P1^2; // phiến tuyển tín hiệu giảm xuống duyên kích phát
sbit hx711_dout=P2^1;
sbit hx711_sck=P2^0;
sbit beep = P1^3; //Ong minh khí
long weight;
uint temp,qi_weight;
bit chaozhong_flag;
bit leiji_flag;
bit flag_300ms;
ulong price,z_price; // đơn giá tổng giá trị
uchar flag_p;
/***************
Xóa bỏ kiện
Đi da
Giá cả thanh linh
***************/
/******1msDuyên khi hàm số***12MTinh chấn**************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/********************************************************************
* tên: delay_uint()
* công năng: Tiểu duyên khi.
* đưa vào: Vô
* phát ra: Vô
***********************************************************************/
void delay_uint(uint q)
{
while(q--);
}
/********************************************************************
* tên: write_com(uchar com)
* công năng: 1602 mệnh lệnh hàm số
* đưa vào: Đưa vào mệnh lệnh giá trị
* phát ra: Vô
***********************************************************************/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
/********************************************************************
* tên: write_data(uchar dat)
* công năng: 1602 viết số liệu hàm số
* đưa vào: Yêu cầu viết nhập 1602 số liệu
* phát ra: Vô
***********************************************************************/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
/***********************lcd1602 thượng biểu hiện này tự phù hàm số ************************/
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == '�') break;
write_data(*p);
p++;
}
}
/***********************lcd1602 khởi động lại thiết trí ************************/
void init_1602() //lcd1602 khởi động lại thiết trí
{
write_com(0x38); //
write_com(0x0c);
write_com(0x06);
delay_uint(1000);
}
Ở chỉ định vị trí biểu hiện chỉ định tự phù //
void write_zifu(uchar hang,uchar add,uchar dat)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
write_data(dat);
}
/********************************************************************
* tên: write_sfm4_price(uchar hang,uchar add,uchar date)
* công năng: Biểu hiện giá cả
* đưa vào: Hành, liệt, yêu cầu đưa vào 1602 số liệu