• 大小: 9.1MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-23
  • 语言: 其他
  • 标签: STC51  Electr  hx711  Huygen  

资源简介

本代码是基于51单片机的电子称设计系统,使用应变片搭成惠更斯电桥,然后使用hx711对电阻应变变化进行放大,然后通过51单片机进行采集,然后实现标准电子称各种功能,精准度为0.1g

资源截图

代码片段和文件信息

#include 
#include   //
#define uint unsigned int
#define uchar unsigned char
sbit rs=P2^6;            //1602的数据/指令选择控制线
sbit rw=P2^5;           //1602的读写控制线
sbit en=P2^7;          //1602的使能控制线
sbit trig=P3^1;      //超声波测距模块Trig
sbit echo=P3^2;     //超声波测距模块Echo
bit flag1;         //触发信号标志位//
uchar count;           //中断累加变量
long int distance;    //测量所得距离
unsigned char code table[ ]={“0123456789“}; //定义字符数组显示数字

void delay(uint n)                          
{
    uint xy; 
    for(x=n;x>0;x--)
    for(y=110;y>0;y--);
}


void delayt(uint x)
{
    uchar j;
    while(x-- > 0)
    {
              for(j = 0;j < 125;j++)
        {
          ;
        }
    }
}


void lcd_wcom(uchar com)           
{
    rs=0;                //选择指令寄存器
    rw=0;               //选择写
    P0=com;            //把命令字送入P0
    delay(5);         //延时一小会儿,让1602准备接收数据
    en=1;            //使能线电平变化,命令送入1602的8位数据口这点非常重要
    en=0;
 }


void lcd_wdat(uchar dat)       
{
    rs=1;             //选择数据寄存器
    rw=0;            //选择写
    P0=dat;         //把要显示的数据送入P0
    delay(5);      //延时一小会儿,让1602准备接收数据也就是检测忙信号,这点非常重要。
    en=1;         //使能线电平变化,数据送入1602的8位数据口
    en=0;
  }


void lcd_init()             
{
    lcd_wcom(0x38);       //8位数据,双列,5*7字形  ,用到功能设定指令    
    lcd_wcom(0x0c);      //开启显示屏,关光标,光标不闪烁,用到显示开关控制指令
    lcd_wcom(0x06);     //显示地址递增,即写一个数据后,显示位置右移一位,用到了写入模式设置指令
    lcd_wcom(0x01);    //清屏,用到了清屏指令
}
 

void lcd_xianshi()             
{
    lcd_wcom(0x80+0x40);
        lcd_wdat(‘D‘);
        lcd_wdat(‘i‘);
        lcd_wdat(‘s‘);
        lcd_wdat(‘t‘);
        lcd_wdat(‘a‘);
           lcd_wdat(‘n‘);
        lcd_wdat(‘c‘);
        lcd_wdat(‘e‘);
        lcd_wdat(‘:‘);
        lcd_wcom(0x80+0x4c);
        lcd_wdat(‘.‘);
        lcd_wcom(0x80+0x4e);//单位是厘米//
        lcd_wdat(‘c‘);
        lcd_wdat(‘m‘);
}


void init_t0()
{
        TMOD=0x01;        
         TL0=0x66;
        TH0=0xfc;              //1ms
    ET0=1;            
        EA=1;                     
}


void trigger()
{
    trig=0;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
        trig=1;      
}


void init_measuring()
{
        trig=1;
        echo=1;
        count=0;
}


void measuring()
{
        uchar l;
        uint hy;
        TR0 = 1;
        while(echo==1)
    {
        ;
    }       
        TR0 = 0;
        l = TL0;
        h = TH0;
        y = (h << 8) + l;
        y = y - 0xfc66;//us部分
        distance = y + 1000 * count;//计算总时间单位是微秒
        TL0 = 0x66;
        TH0 = 0xfc;
        delayt(30);
        distance = 3453* distance / 20000;//原始为:(0.34毫米/us)*时间/2//       
}


void display(uint x)
{
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-23 22:04  17电设\
     目录           0  2017-06-03 13:25  17电设\1602显示\
     目录           0  2017-06-03 13:41  17电设\1602显示\超声波\
     文件       11106  2017-06-03 13:30  17电设\1602显示\超声波\main
     文件        4545  2017-06-03 13:30  17电设\1602显示\超声波\main.c
     文件        2932  2017-06-03 13:30  17电设\1602显示\超声波\main.hex
     文件          56  2017-06-03 13:30  17电设\1602显示\超声波\main.lnp
     文件        8490  2017-06-03 13:30  17电设\1602显示\超声波\main.LST
     文件       16349  2017-06-03 13:30  17电设\1602显示\超声波\main.M51
     文件       11468  2017-06-03 13:30  17电设\1602显示\超声波\main.OBJ
     文件         166  2017-06-03 13:41  17电设\1602显示\超声波\main.plg
     文件       55311  2017-06-03 13:41  17电设\1602显示\超声波\main.uvopt
     文件       13421  2017-06-03 13:35  17电设\1602显示\超声波\main.uvproj
     文件       55319  2017-06-03 13:35  17电设\1602显示\超声波\main_uvopt.bak
     文件           0  2017-06-03 13:26  17电设\1602显示\超声波\main_uvproj.bak
     文件        6376  2009-05-07 14:37  17电设\1602显示\超声波\STARTUP.A51
     文件       14049  2017-06-03 13:30  17电设\1602显示\超声波\STARTUP.LST
     文件         758  2017-06-03 13:30  17电设\1602显示\超声波\STARTUP.OBJ
     目录           0  2017-06-07 16:33  17电设\5110\
     目录           0  2017-06-05 23:02  17电设\5110\5110 HX711\
     文件       12649  2017-06-05 22:31  17电设\5110\5110 HX711\main
     文件        7737  2017-06-05 22:31  17电设\5110\5110 HX711\main.c
     文件        6109  2017-06-05 22:31  17电设\5110\5110 HX711\main.hex
     文件          56  2017-06-05 22:31  17电设\5110\5110 HX711\main.lnp
     文件       14673  2017-06-05 22:31  17电设\5110\5110 HX711\main.LST
     文件       18143  2017-06-05 22:31  17电设\5110\5110 HX711\main.M51
     文件       14393  2017-06-05 22:31  17电设\5110\5110 HX711\main.OBJ
     文件         166  2017-06-05 23:02  17电设\5110\5110 HX711\main.plg
     文件       55317  2017-06-05 23:02  17电设\5110\5110 HX711\main.uvopt
     文件       13421  2017-06-04 23:10  17电设\5110\5110 HX711\main.uvproj
     文件       55317  2017-06-05 22:39  17电设\5110\5110 HX711\main_uvopt.bak
............此处省略275个文件信息

评论

共有 条评论