基于51单片机的智能语音电子秤设计

一.硬件方案

电子秤的测量原理是被称量物体的重量使传感器弹性体发生变形,输出与重量成正比的电信号,传感器输出信号经放大器放大后,输入转换器进行转换,转换成的频率信号直接送入微处理器中,其数字量由微机进行处理,而周边所需要的功能及各种接口电路也和微机连接应用,最后由显示屏幕以数字方式显示。。
本设计硬件主要由51单片机+最小系统+LCD1602液晶显示模块+HX711模块+DS1302时钟电路+LED模块+语音模块+矩阵按键模块+10kg压力传感器及秤座。

二.设计功能

(1)用键盘设计单价;
(2)称重后同时显示该物品的重量、单价和总额;
(3)称重完之后有去皮功能;
(4)能够实现总额的累加功能;
(5)预存多种商品的单价并随意调出适用;
(6)该系统能实现电子秤的基本称重的功能,范围为0到10kg,重量误差在±0.001kg
(7)系统具备输入单价,计算总价以及语音报价的功能
(8)当称重的重量超过5kg时, led亮。
(9)当称重的重量超过10kg时,LED闪烁并报警。
(10)此次设计的电子秤在不称重的时候要能显示时钟日历(显示年月日及星期)

三.设计原理图

原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

四.软件设计

主程序源码

//****************************************************
//主函数
//****************************************************
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);
//		 Buzzer=0;
		 Delay_ms(100);
//		 Buzzer=1;
		 while(keycode<16)
		 {
			if(keycode==12||keycode==13)
			{
//				Buzzer=0;
				 Delay_ms(10);
//				 Buzzer=1;
				 KeyPress(keycode);
			//	 Get_Weight();
				 flag_key=1;
			}
			keycode = Getkeyboard();
		 }
		 write_eeprom();			   //保存数据
	  }
	}
}

资料链接:https://pan.baidu.com/s/1fZxZGtyLoiptmHH-K057FA?pwd=j25d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值