实物显示效果:
https://www.bilibili.com/video/BV1Wb4y1A7Aw/?vd_source=6ff7cd03af95cd504b60511ef9373a1d
功能介绍:
( 1 ) 用键盘设计单价;
(2)称重后同时显示该物品的重量、单价和总额;
(3)称重完之后有去皮功能;
(4)能够实现总额的累加功能;
(5)预存多种商品的单价并随意调出适用;
(6)该系统能实现电子秤的基本称重的功能,范围为0到10kg,重量误差在±0.001kg
(7)系统具备输入单价,计算总价以及语音报价的功能
(8)当称重的重量超过5kg时, led亮。(9)当 称重的 重量 超过 10 kg时,LED闪烁并报警。
( 10 )此次设计的电子秤在不称重的时候要能显示时钟日历(显示年月日及星期)
项目应用前景:
电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的提高。称重装置不仅是提供重量数据的单体仪表,而且作为工业控制系统和商业管理系统的一个组成部分,推进了工业生产的自动化和管理的现代化,它起到了缩短作业时间、改善操作条件、降低能源和材料的消耗、提高产品质量以及加强企业管理、改善经营管理等多方面的作用。称重装置的应用已遍及到国民经济各领域,取得了显著的经济效益。因此,称重技术的研究和衡器工业的发展各国都非常重视。
国内外现状及水平:
50年代中期电子技术的渗入推动了衡器制造业的发展。60年代初期出现机电结合式电子衡器以来,经过40多年的不断改进与完善,我国电子衡器从最初的机电结合型发展到现在的全电子型和数字智能型。现今电子衡器制造技术及应用得到了新发展。电子称重技术从静态称重向动态称重发展:计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展,特别是对快速称重和动态称重的研究与应用。通过分析近年来电子衡器产品的发展情况及国内外市场的需求,电子衡器总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的"智能化"功能;其应用性能趋向于综合性和组合性。电子秤是电子衡器中的一种,衡器是国家法定计量器具,是国计民生、国防建设、科学研究、内外贸易不可缺少的计量设备,衡器产品技术水平的高低,将直接影响各行各业的现代化水平和社会经济效益的。
近年来,电子秤已愈来愈多地参与到数据处理和过程控制中。现代称重技术和数据系统已经成为工艺技术、储运技术、预包装技术、收货业务及商业销售领域中不可缺少的组成部分。随着称重传感器各项性能的不断突破,为电子秤的发展奠定了其础,国外如美国、西欧等一些国家在2 0世纪6 0年代就出现了0 .1%称量准确度的电子秤,并在7 0年代中期约对75%的机械秤进行了机电结合式的电子化改造。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。采用单片机设计的电子称会越来越适应社会的发展,响应经济的要求。
按键定义:
系统主框图展示:
原理图设计(Atium Designer):
Proteus仿真图:
时间显示界面:
计算单价界面:
部分源码程序:
论文目录:
论文所需程序流程图:
主程序设计:
void main()
{
yyxp_rest=1;
yyxp_data=1;
init_eeprom(); //开始初始化保存的数据
Init_LCD1602(); //初始化LCD1602
EA = 0;
Data_Init();
Timer0_Init();
//初中始化完成,开断
EA = 1;
// Ds1302Init();
// Get_Maopi();
LCD1602_write_com(0x80); //指针设置
LCD1602_write_word(" Welcome To Use "); //
LCD1602_write_com(0x80+0x40); //指针设置
LCD1602_write_word("Electronic Scale");
Delay_ms(2000);
Get_Maopi();
LCD1602_write_com(0x80); //指针设置
LCD1602_write_word("WE:0.000 PR:00.0");
LCD1602_write_com(0x80+0x40); //指针设置
LCD1602_write_word("S: 0.0 T: 0.0");
Display_Price();
// Get_Maopi(); //称毛皮重量
// Weight_Shiwu = 9000;
while(1)
{
//每0.5秒称重一次
if (FlagTest==1&&keynum==0)
{
Get_Weight();
}
if(Weight_Shiwu<10)
{
keyscan();
if(keynum==0)
display();
if(key2==0)
{
Delay_ms(5);
if(key2==0)
{
speak(41);
if(qupi==0)
qupi=Weight_Shiwu;
else
qupi=0;
while(key2==0);
}
}
}
else
{
keycode = Getkeyboard();
if(K1==0)
{
Delay_ms(5);
if(K1==0)
{
total_money += money;
Display_Money();
bofang(1,total_money);
while(K1==0);
}
}
if(key1==0)
{
Delay_ms(5);
if(key1==0)
{
total_money = 0;
Display_Money();
bofang(1,total_money);
while(key1==0);
}
}
if(key3==0)
{
Delay_ms(5);
if(key3==0)
{
total_money = 0;
Display_Money();
bofang(2,price);
bofang_zhongliang(Weight_Shiwu);
bofang(1,money);
while(key3==0);
}
}
}
//有效键值0-15
if (keycode<16)
{
KeyPress(keycode);
Delay_ms(100);
while(keycode<16)
{
if(keycode==12||keycode==13)
{
Delay_ms(10);
KeyPress(keycode);
flag_key=1;
}
keycode = Getkeyboard();
}
write_eeprom(); //保存数据
}
}
}