电子秤的c语言,电子秤上的C和T是什么意思

发布时间:2022-11-22

本文目录一览:

  1. 求讲解51单片机电子秤的程序,分模块详细点
  2. 求一个会编写关于电子秤的C语言源程序!!!!!!
  3. 高手,请问电子秤,置零是怎么样实现的,麻烦你提供个思路,急急!!,谢谢了。
  4. C语言题目,高分求解,最好带一点注释
  5. 问一段单片机的c语言程序。

求讲解51单片机电子秤的程序,分模块详细点

如果想知道更多的东西,建议看一本书:吴鉴鹰单片机实战精讲,网上能找到,代码我给你了。

/*******************************************************
*程序:吴鉴鹰基于单片机的电子秤的设计程序
** 这一讲的主要内容:
** 利用物体的重力作用来确定物体质量的测量仪器,也可用来确定与物体质量相关的其他量的大小,
参数,或特性用我们自己话讲就是测重量的。
** 功能描述:
** 输 入:
** 内容:
** 输 出:
** 全局变量:
** 调用模块:
**
** 作 者:     吴鉴鹰
** 日 期:     14.02.22
备注:有什么错误的地方,欢迎各大烧友指正
O(∩_∩)O~
*******************************************************/
#include reg51.h
#include intrins.h
#include stdlib.h
#include math.h
#define uchar unsigned char  //宏的定义变量类型 uchar 代替 unsigned char
#define uint  unsigned int   //宏的定义变量类型 uint  代替 unsigned int
#define delay_time_max   50  //按键去抖动延时阀值
sbit   RS = P2^0;
sbit   RW = P2^1;
sbit   SCLK = P2^2;
sbit   LCDRST = P2^3;
sbit    ST=P3^6;            //启动信号
sbit    EOC=P3^3;           //转换结束信号,连到外部中断1口,转换结束后进入外部中断
sbit    OE=P3^7;            //输出使能
uchar    KEY_VALUE;
uchar    key_data;
uchar    dis_buf;           //显示缓存
uchar    temp;
uchar    key;               //键顺序码
uchar    result;
uint     f;
void delay(uchar x);        //x*0.14MS
// 此表为 LED 的字模               0   1  2  3    4  5  6  7  8  9   a    b    c d    e    f
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};
unsigned char  ADC0809[],KONGBVAI[],DANJIA[];
void ADC0809_change();
/*************************************************************************************
** 函数名称: delayms
** 功能描述: 译码功能,将需要显示的数字转成相应的七段译码表
            如要显示的字符为“0”,则为7e ---0111 1111,就中间的一个LED不亮
** 输 入:   ms:需要延时的长度
**
** 输 出:
**
** 全局变量:
** 调用模块:
**
** 作 者:    吴鉴鹰
** 日 期:    14.02.22
**-----------------------------------------------------------------------------------
** 修改人:吴鉴鹰
** 日 期:
**----------------------------------------------------------------------------------
****************************************************************************************/
void delayms(uint ms)
{
    uchar i;
    while(ms--) for(i=0;i120;i++);
}
/*********************************************************************************
** 函数名称:  SendByte   
** 功能描述:  串口给液晶发送数据           
** 输 入: Dbyte
**
**
** 输 出:
**
** 全局变量:
** 调用模块:
**
** 作 者:   吴鉴鹰
** 日 期:   14.02.28
************************************************************************************/
void SendByte(uchar Dbyte)
{
    uchar i;
    for(i=0;i8;i++)
    {
        SCLK = 0;
        Dbyte=Dbyte1;        //左移一位
        RW = CY;             //移出的位给RW
        SCLK = 1;
        SCLK = 0;
    }
}
/***********************************************************************************
** 函数名称:  TransferCom   
** 功能描述:  串口给液晶发送命令           
** 输 入: data0
**
**
** 输 出:
**
** 全局变量:
** 调用模块:
**
** 作 者:   吴鉴鹰
** 日 期:   14.02.28
**********************************************************************************/
void    TransferCom(uchar data0)   
{
    RS=1;
    SendByte(0xf8);          //11111ABC,RW(0),RS(1),0
    SendByte(0xf0data0);    //高四位
    SendByte(0xf0data04);   //低四位(先执行)
    RS=0;                   
}
/*******************************************************************************
** 函数名称:  lcd_mesg   
** 功能描述: 写数据,
** 输 入: data1
**
**
** 输 出:
**
** 全局变量:
** 调用模块:
**
** 作 者:   吴鉴鹰
** 日 期:   14.02.28
*****************************************************************************/
void    TransferData(uchar data1)   
{
    RS=1;
    SendByte(0xfa);          //11111ABC,RW(0),RS(1),0
    SendByte(0xf0data1);    //高四位
    SendByte(0xf0data14);   //低四位(先执行)
    RS=0;
}

求一个会编写关于电子秤的C语言源程序!!!!!!

#include msp430x14x.h
#include "HX711.h"
//****************************************************
//延时函数
//****************************************************
void Delay_hx711_us(uint t)
{
    //_nop_();
    //_nop_();
    while(t--);
}
// I/O配置
void PORT_Init(void)
{
    P1SEL =~ (BIT1+BIT2);
    P1DIR =~ BIT2;//SDA
    P1DIR |= BIT1;//SCK
}
//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void) //增益128
{
    unsigned long count;
    unsigned char i;
    P1OUT |= BIT2; //SDA
    Delay_hx711_us(4);
    P1OUT =~ BIT1;//SCK
    count=0;
    while( P1INBIT2 ); //SDA
    for(i=0;i24;i++)
    {
        P1OUT |= BIT1; //SCK
        count=count1;
        P1OUT =~ BIT1;//SCK
        if(P1INBIT2)//SDA
            count++;
    }
    P1OUT |= BIT1; //SCK
    Delay_hx711_us(4);
    P1OUT =~ BIT1;//SCK
    return(count);
}

高手,请问电子秤,置零是怎么样实现的,麻烦你提供个思路,急急!!,谢谢了。

所谓的置零是给CPU一个基准信号 因为称的传感器的使用过程中可能要发生变化,以及秤在使用过程中也要有些操作:如去皮等会使秤有些时候不在零点上所以要置零 实现的手段就是给单片机一个脚一个电平信号,一般用微动开关

C语言题目,高分求解,最好带一点注释

#include bits/stdc++.h
using namespace std;
double num[35][35];
int main()
{
    for(int i=1;i=29;i++)
        for(int j=1;j=i;j++)
            cin >> num[i][j];
    for(int i=1;i=29;i++)
        for(int j=1;j=i;j++)
        {
            num[i+1][j] += num[i][j]/2;
            num[i+1][j+1] += num[i][j]/2;
        }
    double maxn=-1;
    double minn=0x3f3f3f;
    for(int i=1;i=30;i++)
    {
        if(maxn < num[30][i]) maxn=num[30][i];
        if(minn > num[30][i]) minn=num[30][i];
    }
    printf("%lf",maxn*2086458231/minn);
}

问一段单片机的c语言程序。

我也接触到了这段代码。是HX711ad转换读数函数用到的 我来解释两点:

  1. Count=Count^0x800000,最高位取反。把正负方向的电压转换ad全部变成正的数值。例如24位2进制可以表示的数值为-8388608~8388607,没有负载时为0; 最高位取反后表示数值为0~16777215,没有负载时候显示为8388608,这样做的目的是避免出现负数,方便计算。如果你做电子秤的话,我建议就不要这句了。一般不会有负数的。
  2. 有的代码后面还跟了一段
/* if((Count 0x800000) == 0x800000)
{
    Count = ~(Count - 1);
} */

表示负数补码还原成正值