HDL语言及源代码
HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。
HX711是一款专为高精度电子秤而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A 或通道B,与其内部的低噪声可编程放大器相连。
通道A 的可编程增益为128 或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B 则为固定的32 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。
#include《reg52.h》 //error: data not change
typedef unsigned char uchar;
typedef unsigned int uint;
//管脚定义
sbit ADDO=P2^1;
sbit ADSK=P2^0;
sbit dlock=P2^6; //数码管段锁
sbit wlock=P2^7; //数码管位锁
//常量
uchar code number[10]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar code position[7]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
//变量
unsigned long Data;
uchar Data1,Data2;
//延时函数
void delay(uchar t)
{
uchar a,b,c;
for(a=t;a》0;a--)
for(b=50;b》0;b--)
for(c=10;c》0;c--)
{;}
}
//显示函数,显示数字和位置
void display(uchar num,uchar i)
{
P0=number[num];
dlock=1;
dlock=0;
P0=position[i];
wlock=1;
wlock=0;
}
//读取传感器输出数据,完全按照参考例程
unsigned long ReadCount(void)
{
unsigned long Count;
uchar i;
//ADDO=1;
ADSK=0;
Count=0;
while(ADDO);
for (i=0;i《25;i++) //25
{
ADSK=1;
Count=Count《《1;
ADSK=0;
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;
ADSK=0;
return(Count);
}
void main(void)
{
while(1)
{
Data=ReadCount();
Data1=(uchar)(Data%10); //数据转换,不知道写的对不对
Data2=(uchar)(Data/10);
display(Data1,1); //送显
delay(5);
display(Data2,2);
delay(5);
}
}
全部0条评论
快来发表一下你的评论吧 !