#include <reg52.h>
sbit ADD0=P1^4;
sbit ADSK=P1^5;
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="W: 00000";
sbit lcden=P2^5;
sbit lcdrs=P1^0;
char num;
int i,wan,qian,bai,shi,ge;
long int weight;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x12);
for(num=0;num<8;num++)
{
write_data(table[num]);
}
}
void readcount(void)
{
unsigned long count;
unsigned char;
ADD0=1;
ADSK=0;
count=0;
while(ADD0);
for(i=0;i<24;i++)
{
ADSK=1;
count=count<<1;
ADSK=0;
if(ADD0)count++;
}
ADSK=1;
count=count^0x800000;
ADSK=0;
weight=(int)(1280/1048576*count/0.128/2);
wan=weight/10000;
qian=(weight/1000)%10;
bai=(weight/100)%10;
shi= (weight/10)%10;
ge= weight%10;
write_com(0x80+0x40+8);
write_data(0x30+wan);
write_data(0x30+qian);
write_data(0x30+bai);
write_data(0x30+shi);
write_data(0x30+ge);
}
void main()
{
init();
while(1)
{ init();
readcount() ;
while(ADD0);
}
}
- 1
- 2
前往页