基于51单片机蓝牙电子秤

目录

概要

原理图

实物

部分程序

资料清单

资料下载地址:基于51单片机蓝牙电子秤

概要

首先是通过压力传感器采集到被测物体的重量并将其转换成电压信号。输出电压信号通常很小,需要通过前端信号处理电路进行准确的线性放大。放大后的模拟电压信号经V/F转换电路转换成数字量被送入到主控电路的单片机中,再经过单片机控制译码显示器,从而显示出被测物体的重量。按照设计的基本要求,系统可分为四大模块,数据采集模块、控制器模块、人机交互液晶显示界面模块、和手机蓝牙显示界面。其中数据采集模块由压力传感器、信号的前级处理和V/F转换部分组成。转换后的数字信号送给控制器处理,由控制器完成对该数字量的处理,驱动显示模块完成人机间的信息交换,并且还会通过蓝牙模块把数据传到手机上面。此部分对软件的设计要求比较高,系统的大部分功能都需要软件来控制。在扩展功能上,本设计增加了一个过载报警提示功能使本电子称的设计更人性化智能化

原理图

基于51单片机蓝牙电子秤_第1张图片

实物

基于51单片机蓝牙电子秤_第2张图片

部分程序

void main()
{
    Uart_Init();
  
        Init_LCD1602();
        LCD1602_write_com(0x80);
        LCD1602_write_word("Welcome to use!");
        Delay_ms(1000);                 //延时,等待传感器稳定

        Get_Maopi();                                //称毛皮重量
       
        while(1)
        {
                EA = 0;
                Get_Weight();                        //称重
                EA = 1;

                Scan_Key();

                //显示当前重量
                if( Flag_ERROR == 1)
                {
         
                       

                        LCD1602_write_com(0x80+0x40);
                        LCD1602_write_word("ERROR ");
                        beep=0;
                }               
                else
                {         
                        beep=1;
            Send_ASCII(0x82);
            Send_ASCII(0x4);
            Send_ASCII(Weight_Shiwu >> 8);
            Send_ASCII(Weight_Shiwu);
                       


                        LCD1602_write_com(0x80+0x40);
                        LCD1602_write_data(Weight_Shiwu/1000 + 0X30);
            LCD1602_write_data(Weight_Shiwu%1000/100 + 0X30);
            LCD1602_write_data(Weight_Shiwu%100/10 + 0X30);
            LCD1602_write_data(Weight_Shiwu%10 + 0X30);
                        LCD1602_write_word(" g");



                }

       

               
        }
}

//扫描按键
void Scan_Key()
{
        if(KEY1 == 0)
        {
                Delay_ms(5);
                if(KEY1 == 0)
                {
                        while(KEY1 == 0);
                        Get_Maopi();                        //去皮
                }       
        }
}

//****************************************************
//称重
//****************************************************
void Get_Weight()
{
        Weight_Shiwu = HX711_Read();
        Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                //获取净重
        if(Weight_Shiwu > 0)                       
        {       
                Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/GapValue);         //计算实物的实际重量
                                                                                                                                               
                                                                                                                                               
                if(Weight_Shiwu > 5000)                //超重报警
                {
                        Flag_ERROR = 1;       
                        Send_ASCII(0x82);
      Send_ASCII(0x4);
      Send_ASCII(5000 >> 8);

                }
                else
                {
                        Flag_ERROR = 0;
                }
        }
        else
        {
                Weight_Shiwu = 0;
    Send_ASCII(0x82);
    Send_ASCII(0x4);
    Send_ASCII(0 >> 8);


        }
       
}

资料清单

基于51单片机蓝牙电子秤_第3张图片

你可能感兴趣的:(51单片机,人工智能,嵌入式硬件)