找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6342|回復(fù): 9
收起左側(cè)

求一個(gè)51單片機(jī)電子秤,基于hx711和12864顯示,謝謝了

[復(fù)制鏈接]
ID:170585 發(fā)表于 2017-5-22 01:29 | 顯示全部樓層 |閱讀模式
10黑幣
求一個(gè)51單片機(jī)電子秤,基于hx711和12864顯示,謝謝了

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2017-5-22 07:50 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:170585 發(fā)表于 2017-5-22 14:13 | 顯示全部樓層
cjjcjj1 發(fā)表于 2017-5-22 07:50
你好!12864帶不帶字庫(kù)的呢?HX711的硬件準(zhǔn)備好了嗎

帶字庫(kù)的,主要想看看大家的程序?qū)懛,自己寫的矩陣鍵盤用了之后導(dǎo)致12864顯示亂碼
回復(fù)

使用道具 舉報(bào)

ID:203942 發(fā)表于 2017-5-23 16:22 | 顯示全部樓層
看你程序,,我最近也在做這個(gè)!傳感器部分有點(diǎn)問題!
回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2017-5-23 21:07 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:204074 發(fā)表于 2017-5-23 21:55 | 顯示全部樓層
電子秤的程序這樣就可以搞到嗎
回復(fù)

使用道具 舉報(bào)

ID:194604 發(fā)表于 2018-4-4 15:33 | 顯示全部樓層
cjjcjj1 發(fā)表于 2017-5-22 07:50
你好!12864帶不帶字庫(kù)的呢?HX711的硬件準(zhǔn)備好了嗎
電子秤各種顯示方式  數(shù)碼管 1206 12864等資料索要
#include "main.h"
#include "LCD12864.h"
#include "HX711.h"

unsigned long HX711_Buffer = 0;
unsigned int Weight_Maopi = 0,Weight_Shiwu = 0;

//****************************************************
//主函數(shù)
//****************************************************
void main()
{
    LCD12864_Reset();                                //初始化液晶
    LCD12864_HAIZI_SET();                            //設(shè)置為普通模式

    LCD12864_NoWaitIdle_COM_Write(0x80);                        //指針設(shè)置
    LCD12864_write_word("※※※※※※※※");
    LCD12864_NoWaitIdle_COM_Write(0x90);                        //指針設(shè)置
    LCD12864_write_word("※※歡迎使用※※");            
                    
    Delay_ms(1000);         //延時(shí)1s,等待傳感器穩(wěn)定

    Get_Maopi();                //稱毛皮重量
    LCD12864_NoWaitIdle_COM_Write(0x01);            //清空
   
    while(1)
    {
        Get_Weight();            //稱重

        if(  Weight_Shiwu > 10000 )
        {
        LCD12864_NoWaitIdle_COM_Write(0x80);                        //指針設(shè)置
        LCD12864_write_word("※※※超重※※※");        
        }
        else if( Weight_Shiwu < 10000)
        {
        //顯示當(dāng)前重量
        LCD12864_NoWaitIdle_COM_Write(0x80);
        LCD12864_write_word("重量:");
        if( Weight_Shiwu/10000 != 0)
        {
            LCD12864_Data_Write(Weight_Shiwu/10000 + 0x30);
        }
        else
        {
            LCD12864_Data_Write(' ');   
        }
        LCD12864_Data_Write(Weight_Shiwu%10000/1000 + 0x30);
        LCD12864_Data_Write('.');
        LCD12864_Data_Write(Weight_Shiwu%1000/100 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu%100/10 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu%10 + 0x30);
        LCD12864_write_word(" Kg");

        LCD12864_NoWaitIdle_COM_Write(0x90);
        LCD12864_write_word("重量:");
        if( Weight_Shiwu*2/10000 != 0)
        {
            LCD12864_Data_Write(Weight_Shiwu*2/10000 + 0x30);
        }
        else
        {
            LCD12864_Data_Write(' ');   
        }
        LCD12864_Data_Write(Weight_Shiwu*2%10000/1000 + 0x30);
        LCD12864_Data_Write('.');
        LCD12864_Data_Write(Weight_Shiwu*2%1000/100 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu*2%100/10 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu*2%10 + 0x30);
        LCD12864_write_word(" ");

        }

    }
}

//****************************************************
//稱重
//****************************************************
void Get_Weight()
{
    HX711_Buffer = HX711_Read();
    HX711_Buffer = HX711_Buffer/100;
    if(HX711_Buffer > Weight_Maopi)            
    {
        Weight_Shiwu = HX711_Buffer;
        Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                //獲取實(shí)物的AD采樣數(shù)值。
   
        Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/2.09+0.05);     //計(jì)算實(shí)物的實(shí)際重量
                                                                        //因?yàn)椴煌膫鞲衅魈匦郧不一樣,因此,每一個(gè)傳感器需要矯正這里的2.15這個(gè)除數(shù)。
                                                                        //當(dāng)發(fā)現(xiàn)測(cè)試出來的重量偏大時(shí),增加該數(shù)值。
                                                                        //如果測(cè)試出來的重量偏小時(shí),減小改數(shù)值。
                                                                        //該數(shù)值一般在2.15附近調(diào)整之間。因傳感器不同而定。
                                                                        //+0.05是為了四舍五入百分位        
    Weight_Shiwu=Weight_Shiwu/2;   
   
    }
}

//****************************************************
//獲取毛皮重量
//****************************************************
void Get_Maopi()
{
    unsigned char i = 0;
    unsigned int Temp_Weight = 0;

    Weight_Maopi = 0;

    for( i = 0 ; i < 10 ; i++)
    {
        HX711_Buffer = HX711_Read();
        Temp_Weight = HX711_Buffer/100;

        if( Temp_Weight > Weight_Maopi)
        {
            Weight_Maopi = Temp_Weight;     
        }
    }        
}

//****************************************************
//MS延時(shí)函數(shù)(12M晶振下測(cè)試)
//****************************************************
void Delay_ms(unsigned int n)
{
    unsigned int  i,j;
    for(i=0;i<n;i++)
        for(j=0;j<123;j++);
}
回復(fù)

使用道具 舉報(bào)

ID:194604 發(fā)表于 2018-4-4 15:33 | 顯示全部樓層
zs3945 發(fā)表于 2017-5-22 14:13
帶字庫(kù)的,主要想看看大家的程序?qū)懛,自己寫的矩陣鍵盤用了之后導(dǎo)致12864顯示亂碼


#include "main.h"
#include "LCD12864.h"
#include "HX711.h"

unsigned long HX711_Buffer = 0;
unsigned int Weight_Maopi = 0,Weight_Shiwu = 0;

//****************************************************
//主函數(shù)
//****************************************************
void main()
{
    LCD12864_Reset();                                //初始化液晶
    LCD12864_HAIZI_SET();                            //設(shè)置為普通模式

    LCD12864_NoWaitIdle_COM_Write(0x80);                        //指針設(shè)置
   
    LCD12864_write_word("※※歡迎使用※※");            
                    
    Delay_ms(1000);         //延時(shí)1s,等待傳感器穩(wěn)定

    Get_Maopi();                //稱毛皮重量
    LCD12864_NoWaitIdle_COM_Write(0x01);            //清空
   
    while(1)
    {
        Get_Weight();            //稱重

        if(  Weight_Shiwu > 10000 )
        {
        LCD12864_NoWaitIdle_COM_Write(0x80);                        //指針設(shè)置
        LCD12864_write_word("※※※超重※※※");        
        }
        else if( Weight_Shiwu < 10000)
        {
        //顯示當(dāng)前重量
        LCD12864_NoWaitIdle_COM_Write(0x80);
        LCD12864_write_word("重量:");
        if( Weight_Shiwu/10000 != 0)
        {
            LCD12864_Data_Write(Weight_Shiwu/10000 + 0x30);
        }
        else
        {
            LCD12864_Data_Write(' ');   
        }
        LCD12864_Data_Write(Weight_Shiwu%10000/1000 + 0x30);
        LCD12864_Data_Write('.');
        LCD12864_Data_Write(Weight_Shiwu%1000/100 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu%100/10 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu%10 + 0x30);
        LCD12864_write_word(" Kg");

        LCD12864_NoWaitIdle_COM_Write(0x90);
        LCD12864_write_word("重量:");
        if( Weight_Shiwu*2/10000 != 0)
        {
            LCD12864_Data_Write(Weight_Shiwu*2/10000 + 0x30);
        }
        else
        {
            LCD12864_Data_Write(' ');   
        }
        LCD12864_Data_Write(Weight_Shiwu*2%10000/1000 + 0x30);
        LCD12864_Data_Write('.');
        LCD12864_Data_Write(Weight_Shiwu*2%1000/100 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu*2%100/10 + 0x30);
        LCD12864_Data_Write(Weight_Shiwu*2%10 + 0x30);
        LCD12864_write_word(" ");

        }

    }
}

//****************************************************
//稱重
//****************************************************
void Get_Weight()
{
    HX711_Buffer = HX711_Read();
    HX711_Buffer = HX711_Buffer/100;
    if(HX711_Buffer > Weight_Maopi)            
    {
        Weight_Shiwu = HX711_Buffer;
        Weight_Shiwu = Weight_Shiwu - Weight_Maopi;                //獲取實(shí)物的AD采樣數(shù)值。
   
        Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/2.09+0.05);     //計(jì)算實(shí)物的實(shí)際重量
                                                                        //因?yàn)椴煌膫鞲衅魈匦郧不一樣,因此,每一個(gè)傳感器需要矯正這里的2.15這個(gè)除數(shù)。
                                                                        //當(dāng)發(fā)現(xiàn)測(cè)試出來的重量偏大時(shí),增加該數(shù)值。
                                                                        //如果測(cè)試出來的重量偏小時(shí),減小改數(shù)值。
                                                                        //該數(shù)值一般在2.15附近調(diào)整之間。因傳感器不同而定。
                                                                        //+0.05是為了四舍五入百分位        
    Weight_Shiwu=Weight_Shiwu/2;   
   
    }
}

//****************************************************
//獲取毛皮重量
//****************************************************
void Get_Maopi()
{
    unsigned char i = 0;
    unsigned int Temp_Weight = 0;

    Weight_Maopi = 0;

    for( i = 0 ; i < 10 ; i++)
    {
        HX711_Buffer = HX711_Read();
        Temp_Weight = HX711_Buffer/100;

        if( Temp_Weight > Weight_Maopi)
        {
            Weight_Maopi = Temp_Weight;     
        }
    }        
}

//****************************************************
//MS延時(shí)函數(shù)(12M晶振下測(cè)試)
//****************************************************
void Delay_ms(unsigned int n)
{
    unsigned int  i,j;
    for(i=0;i<n;i++)
        for(j=0;j<123;j++);
}
回復(fù)

使用道具 舉報(bào)

ID:82765 發(fā)表于 2018-4-5 09:28 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:328054 發(fā)表于 2018-5-12 10:03 | 顯示全部樓層
HX711電子稱完整單片機(jī)程序和原理圖
http://www.torrancerestoration.com/bbs/dpj-79211-1.html
(出處: 單片機(jī)論壇)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表