【51单片机】【protues仿真】基于51单片机多功能电子秤框架

目录

一、主要功能

二、运用步骤

三、硬件资源

四、软件设计

五、实验现象

一、核心功能

1、LCD1602液晶显示
2、矩阵键盘输入单价和计算价格
通过3、能够去皮,校准,累计价格,清除,清零
4、称重范围为0~50Kg,超重报警

二、使用步骤

基于51单片机的多功能电子秤设计过压力传感器采集重量数据,支持单价输入、总价计算及去皮功能‌。LCD1602显示重量、单价、总价等信息。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、称重传感器传感器、数模转换模块
4、蜂鸣器模块
5、继电器模块
6、LCD1602显示模块

四、软件设计

#include <reg52.h>
#include "function.h"
#include "setting.h"
#include "lcd.h"
#include "key.h"
#include "adc0804.h"

sbit Beep=P2^6; //IO口定义
sbit LED=P2^7; //IO口定义


uchar quantity_analog=0; //存放物体质量数据_ADC读取的模拟量
float quantity_digital=0; //存放物体质量资料_ADC转换后的数字量
float price=0; //存放价格参数

float leiji[6]; //定义第1,2组数据

float all=0;
char code str[] = "Wd:";
uint t=0,s=0;

void main(void)
{
Beep=1; //IO口定义
LED=1; //IO口定
lcd_init(); //初始化lcd
init_interrupt(); //中断打开、选择函数
write_com(0x80); //材料指针定位到第一行第一个字处
write_com(0x80+8); //将光标移到 距离数字的位置
delay_ms(100);

// print_string_location(0,2,string); //显示Price 字符串
print_string_location(0,2,"Total:"); //表现Price 字符串
while(1)
{
key_scan(); //扫描按键函数

if(key == '-')
{
for(t=0;t<6;t++ )
{
leiji[t]=0;
}
system_init(); //框架复位函数
key_operator=0;
number_count=0; //清零
all=0;
}



if(key == ' ')
{
for(t=0;t<6;t++ )
{
number_1[t]=0;
}
system_init(); //平台复位函数
key_operator=0;
number_count=0; //清零
}


quantity_digital=quantity_count()-qupi; //获取物体质量———————————————浮点型(float)
if(quantity_count()>45)
{
Beep=0; //IO口定义
LED=0; //IO口定
}
else
{
Beep=1; //IO口定义
LED=1; //IO口定
}


price=price_count(); //获取键盘输入,计算后的价格——浮点型(float)

print_weight(0,1); //显示质量

if(price>0) //大于0时呈现价格
{
print_price(0,2); //显示价格
while(1) //计算结束,等待清零键按下
{
key_scan();


if(key == ' ')
{
for(t=0;t<6;t++ )
{
number_1[t]=0;
}
price=0;
key_operator=0;
number_count=0; //清零
system_init(); //系统复位函数
break;
}

if(key == '-')
{
for(t=0;t<6;t++ )
{
leiji[t]=0;
}
system_init(); //系统复位函数
key_operator=0;
number_count=0; //清零
all=0;
}


if(key == '+')
{
leiji[s]=price;
all=0;
price=0;
key_operator=0;
number_count=0; //清零
system_init(); //体系复位函数
s++;
if(s==5) s=0;

for(t=0;t<6;t++ )
{
all=all+leiji[t];
}

print_all(0,2); //显示价格

}

}
}

if(key == ' ')
{
for(t=0;t<6;t++ )
{
number_1[t]=0;
}

price=0;
key_operator=0;
number_count=0; //清零
system_init(); //系统复位函数
}

}
}

五、实验现象

演示视频:

posted @ 2025-09-14 10:01  yjbjingcha  阅读(5)  评论(0)    收藏  举报