微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > HX711做电子称,不明白下面的程序和芯片什么关系,求指点...

HX711做电子称,不明白下面的程序和芯片什么关系,求指点...

时间:10-02 整理:3721RD 点击:
#ifndef _shizhong_h_
#define _shizhong_h_
#include <reg51.H>
#include <key.H>
#include<hx711.h>
#include <lcd_1602.H>
#define uint unsigned int
#define uchar unsigned char
sbit buzz=P1^0;
sbit clock=P2^1;
uchar clock_flag;
uint clock_count1;
uchar clock_count;
///////////////////////////////////////////////////////////////////////
//电子秤
uchar idata pricetable[3]={0,0,0};
int weight;
uint price,money;
uint temp,qi_weight;
bit chaozhong_flag;
/////////////////////////////////////////////////////////////////////////
void Delay10ms(void)           //延时10ms
{
        uint i,j,k;
        for(i=5;i>0;i--)
        for(j=4;j>0;j--)
        for(k=248;k>0;k--);
}                  
void init()                //
{
        TMOD=0x11;
        TH0=0x3c;
        TL0=0xb0;        //定时50ms        11.0592
        TH1=0x3c;
        TL1=0xb0;        //定时50ms        11.0592
        TR0=1;
        TR1=1;
        ET0=1;
        ET1=1;
        EA=1;
}
void t0() interrupt 1 using 0
{
        TH0=0x3c;
        TL0=0xb0;        //定时50ms
        if((weight>5000)&&(chaozhong_flag==1))
        {
                clock=0;
        }
        else
        {chaozhong_flag=0;TR0=0;clock=1;}
}
void t1() interrupt 3
{
        TH1=0x3c;
        TL1=0xb0;        //定时50ms             //主要是这不明白
        if(clock_flag==1)
        {
                clock_count++;
                clock_count1++;
                if(clock_count1==6000)
                {
                        clock_flag=0;
                        clock_count1=0;
                        clock=1;
                        TR1=0;                       
                }
                if(clock_count<4)
                {
                        clock=0;       
                }
                else if(clock_count<11)
                {
                        clock=1;               
                }
                else if(clock_count<13)
                {
                        clock=0;               
                }
                else if(clock_count<16)
                {
                        clock=1;               
                }       
                else if(clock_count<18)
                {
                        clock=0;               
                }
                else if(clock_count<27)
                {
                        clock=1;               
                }
                if(clock_count==27)                       
                {clock_count=0;}       
        }
}
#endif       

定时器应该是起到延时的作用

这就是重置定时时间呀,他用了16位模式,不能自动装置的

能不能详细一点,HX711用的是外部时钟,请问时钟函数中sbit clock=P2^1;这个与单片机的I/O口有关么?还有就是,我查资料说这个是HX711输入时钟脉冲用来转换采集的信号:
当数据输出管脚DOUT 为高电平时,表明
A/D 转换器还未准备好输出数据,此时串口时
钟输入信号PD_SCK 应为低电平。当DOUT 从高
电平变低电平后,PD_SCK 应输入25 至27 个不
等的时钟脉冲(图二)。其中第一个时钟脉冲
的上升沿将读出输出24 位数据的最高位
(MSB),直至第24 个时钟脉冲完成,24 位输
出数据从最高位至最低位逐位输出完成。第25
至27 个时钟脉冲用来选择下一次A/D 转换的
输入通道和增益,
PD_SCK 脉冲数输入通道 增益
25 A 128
26 B 32
27 A 64
表三 输入通道和增益选择
PD_SCK 的输入时钟脉冲数不应少于25 或多
于27,否则会造成串口通讯错误。
当A/D 转换器的输入通道或增益改变时,
A/D 转换器需要4 个数据输出周期才能稳定。
DOUT 在4 个数据输出周期后才会从高电平变低电平,输出有效数据

定时器的初值重载呀!~

我想问的是11,13,16这几行怎么确定这几个数字,有什么依据?

LZ你也做电子称啊~我毕业设计都在做好了,在想怎么创新基于单片机控制的电子称~~~~

能加我QQ告诉我一些关于HX711芯片需要掌握的知识点嘛

我的QQ是835651138。

求小编电子称资料,谢谢

跪求电子称资料,

求资料,小编,学习学习

求资料,小编

跪求电子秤资料

能发proteus仿真给我吗?QQ1490455574

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top