
AD 芯片用的TLC2543,放大芯片INA128,1602液晶显示
下面是源程序
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P3^4;
sbit rs=P3^5;
sbit CS=P2^0;
sbit DO=P2^1;
sbit DI=P2^2;
sbit CLOCK=P2^3;
uchar ad,ad1;
uchar code table[]="WEIGHT:000.00KG";
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
rs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)
{
rs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
uchar num;
lcden=0;
ad=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{
write_date(table[num]);
delay(5);
}
}
uint read(uchar port)
{
uint ad=0;
uint i;
CLOCK=0;
delay(5);
CS=0;
port<<=4;
for(i=0;i<12;i++)
{
if(DO==1)
ad|=0x01;
DI=(bit)(port&0x80);
CLOCK=1;
delay(10);
CLOCK=0;
delay(10);
port<<=1;
ad<<=1;
}
CS=1;
ad>>=1;
delay(3);
return(ad);
}
void write(uchar add,uchar date)
{
uchar ge,shi,bai;
ad=read(0x00);
ad1=(ad*0.22);
date=ad1;
bai=date/100;
shi=date%100/10;
ge=date%10;
write_com(0x80+add);
write_date(0x30+bai);
write_date(0x30+shi);
write_date(0x30+ge);
}
void main()
{
init();
while(1)
{
write(7,ad);
}
}
