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

发布者:幸福花开最新更新时间:2021-10-11 来源: eefocus关键字: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();    //保存数据

  }

}

}

关键字:51单片机 引用地址:基于51单片机的智能语音电子秤设计

上一篇:基于51单片机的PID水温控制系统
下一篇:基于51单片机的函数发生器设计

推荐阅读最新更新时间:2024-11-20 20:54

51单片机系列连载1——单片机概述
从今天开始,我会简单地对51单片机相关知识及一些模块进行总结,主要是从市场应用导入,然后分析一下用到的技术编程,最后说一下自己的想法,基本都是这个流程。这仅仅是一个开始,之后还会有STM32、安卓系统等系列,先从最简单的单片机开始。 我们先看看市场上有哪些产品会用到单片机,想想看,基本上周围所有的电子产品都会用到,确切的说,最基本的嵌入芯片都会有单片机的影子,它涉及到各个领域,所以单片机的应用非常广泛。先看看单片机的实物图: 实际上就是一个芯片,焊接嵌套到一些仪器里,通过c语言编程,通过stc-isp等仿真器的仿真,进而操作芯片实现
[单片机]
从零开始51单片机教程 —— 23 单片机串行口通信程序设计
单片机串行口通信程序设计范例及注释 1.串行口方式0应用编程 8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就能扩展一个并行口。 单片机串行口通信程序设计硬件连接图 例:用8051单片机串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水灯状态。 串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。串行发送时,能靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI为1就结束查询,发送下一帧数据。在串行接收时,则由RI引起
[单片机]
从零开始<font color='red'>51单片机</font>教程 —— 23 单片机串行口通信程序设计
VM7.1 下Ubuntu10.10 与 51单片机的串口通信实验
在VM7.1下给虚拟机增加一个串口(使用物理串口),注意此时在虚拟机中是串口1。 linux端程序(接收): #include stdio.h /*标准输入输出定义*/ #include stdlib.h /*标准函数库定义*/ #include unistd.h /*Unix 标准函数定义*/ #include sys/types.h #include sys/stat.h #include fcntl.h /*文件控制定义*/ #include termios.h /*PPSIX 终端控制定义*/ #include errno.h /*错误号定义*/ #d
[单片机]
Linux下构建stc51单片机开发环境
只是做几个软件的推荐。具体什么情况我也正在研究中。 开发环境(编译器):mcu 8051 ide ~$sudo apt-get install mcu8051ide 软件包大概有600多兆。总之我很坑的给下载下来了。这个编译器有一个问题,就是它的方式和keil不同。比如,你定义 sbit led=P0^0; 会提示有问题,因为引用的头文件不再是reg52.h,而是8052.h。这个软件自带hex转bin的功能,还是很全的。(压根不会用) 烧写器: 不要用gstcisp来烧写。写不上去的 。使用stcflash 下载界面:github.com/laborer/stcflash 下载下来有一个zip包。可以直接解压,进入解压目录 首
[单片机]
基于MCS51单片机的大屏幕LED显示屏高速控制方案
摘要:以MCS51系列单片机为例,介绍单片机对大屏幕LED显示屏的一种高速控制方案。单片机对LED显示屏的显示控制,一般是先从数据存储器读取数据,然后将数据写给LED点阵片。本方案的创新点是:用一条对外部数据存储器的读指令,同时完成对外部数据存储器读和对LED点阵片的写操作。本文详细介绍高速控制方案的电路设计,并简要提示软件编制的要点;最后介绍高速控制方案在大屏幕LED显示屏中的应用。 引言   LED显示屏的基本工作原理是动态扫描。显示控制的过程是先从数据存储器读得字模数据,再通过单片机的串行口或并行口将数据写给LED点阵片,然后再行扫描。   动态扫描方案和静态显示方案相比节省驱动元件,但要求刷新频率高于50 Hz
[单片机]
51单片机普通IO口模拟串口源程序
大家放心用,但是你们程序要好好看看,容易中断冲突,现在我们也在解决中,接收和发送字符串的程序有需要的邮箱给你们发送过去 东西是好东西,我们遇到了中断问题,有点麻烦,数据采集上来后用模拟串口挂到485总线,向一个控制单片机发送数据,用12864显示,但是控制单片机的串口通信的中断和模拟串口中断冲突,上位机和下位机没有办法通信,今天下午实在没有办法了,又做了一块单片机最小系统,让采集板上的数据之间和这块最小系统板进行通信12864上显示,现在还没有想到好的解决办法,等解决之后再告诉大家,还有就是接受字符串的时候,先进行解包,再进行标识位检测,这个程序发程序的方法是一个一个字符发送的,接收的时候要先放进数组里面,要是有需要的可以单独联系
[单片机]
51单片机定时器/计数器的结构及方式控制寄存器TMOD
1、定时器/ 计数器 的结构如图1所示。 图片1 2 、定时器/计数器方式控制寄存器TMOD TMOD用于控制定时器/汁数器的工作模式及工作方式,其字节地址为80H,格式如下。其中,低4位用于决定T0的工作方式,高4位用于决定T1的工作方式。 图片1 1)、M1和M0工作方式控制位 M0和M1为工作方式控制位,确定4种工作方式,如表1所示。 图片1 2)、C/T定时器/计数器方式选择位 C/T=0,设置为定时方式,对机器周期进行计数; C/T=1,设定为计数方式,对外部信号进行计数,外部信号接至T0(P3.4)或T1(P3.5)引脚。 3)、GATE门控位 GATE=0时,只要用软件使TR0(或TR1)置
[单片机]
<font color='red'>51单片机</font>定时器/计数器的结构及方式控制寄存器TMOD
基于AT89C51单片机设计的简易智能机器人
随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。 1 设计思想与总体方案 1.1 简易智能机器人的设计思想 本机器人能在任意区域内沿引导线行走,自动绕障,在有光源引导的条件下能沿光源行走。同时,能检测埋在地下的金属片,发出声光指示信息,并能实时存储、显示检测到的断点数目以及各断点至起跑线间的距离
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved