你有89C52驱动hx711芯片用1602显示的程序了吗?可以发给我吗?但是我没有金币,想请你帮帮忙,感激不尽!! 下面这个程序是用液晶显示的,希望对你有帮助,里面的重量是我随便算的,要准确值需用天平标定 #include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char sbit ADDO=P1^0; sbit ADSK=P1^1; sbit lcdrs=P2^4; sbit lcdrw=P2^5; sbit lcden=P2^6; uchar code a[]="0"; uchar code b[]="24位高精度AD转换"; uchar code c[]="重量 g"; uchar code d[]=" Loading..."; uint x,y,num; unsigned long temp,temp1,temp2,temp3; void delay(uint z) { for(x=z;x>0;x--) for(y=110;y>0;y--); } void delay50us(uint z) { for(x=z;x>0;x--) for(y=19;y>0;y--); } unsigned long ReadCount(void) { unsigned long Count; uchar i; ADSK=0; Count=0; while(ADDO); for (i=0;i<24;i++) { ADSK=1; Count=Count<<1; ADSK=0; if(ADDO) Count++; } ADSK=1; Count=Count^0x; ADSK=0; return(Count); } void write_com(uchar com) { lcdrs=0; lcdrw=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_dat(uchar dat) { lcdrs=1; lcdrw=0; P0=dat; delay(5); lcden=1; delay(5); lcden=0; } void init() { delay(100); write_com(0x30); delay50us(4); write_com(0x30); delay50us(4); write_com(0x0c); //打开显示 delay50us(4); write_com(0x01); //清屏 delay(50); write_com(0x06); delay(10); write_com(0x90); for(num=0;num<12;num++) { write_dat(d[num]); delay(2); } delay(5000); write_com(0x00); } void display() { write_com(0x93); delay(2); write_dat(a[temp1%%%/]); delay(2); write_dat(a[temp1%%%%/1000]); delay(2); write_dat(a[temp1%%%%%1000/100]); delay(2); write_dat(a[temp1%%%%%1000%100/10]); delay(2); write_dat(a[temp1%10]); delay(2); } void display1() { write_com(0x8b); delay(2); write_dat(a[temp3/]); delay(2); write_dat(a[temp3%/]); delay(2); write_dat(a[temp3%%/1000]); delay(2); write_dat(a[temp3%%%1000/100]); delay(2); write_dat('.'); delay(2); write_dat(a[temp3%%%1000%100/10]); delay(2); write_dat(a[temp3%10]); delay(2); } void main() { init(); write_com(0x80); for(num=0;num<16;num++) { write_dat(b[num]); delay(2); } write_com(0x88); for(num=0;num<15;num++) { write_dat(c[num]); delay(2); } while(1) { temp=ReadCount(); temp1=temp>>8; temp2=temp1-0x84d4; if(temp1<=0x84d4) {temp1=0x84d4; temp2=0; } temp3=temp2*33; temp1=temp1-0x84d4; display(); delay(50); display1(); delay(50); } } (责任编辑:admin) |