|
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar flag,a;
uchar x;uchar y;uchar z;
uchar code TAB[]="Voltage Current Power";
sbit SDO=P0^1;
sbit INT=P0^0;
sbit SCLK=P0^5;
sbit SDI=P0^3;
sbit CS=P0^4;
sbit RESET=P0^2;
void delay(uchar k)
{
uchar i,j;
for(i=0;i<k;i++)
for(j=0;j<100;j++)
;
}
void init_5463()
{ uchar n;
RESET=1;
delay(5);
RESET=0;
delay(5);
RESET=1;
SDI=0;
SCLK=0;
CS=0;
delay(5);
SDI=1;
for(n=0;n<32;n++)
{
SCLK=1;
delay(2);
SCLK=0;
delay(2);
}
SDI=0;
delay(2);
SCLK=1;
delay(2);
SCLK=0;
}
void write_5463(uchar com,uchar dat1,uchar dat2,uchar dat3)
{
uchar o,p,q,r;
SCLK=0;
for(o = 0; o < 8; o++)
{
SDI=(bit)(com&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
com<<=1;
}
for(p = 0; p < 8; p++)
{
SDI=(bit)(dat1&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
dat1<<=1;
}
for(q = 0; q < 8; q++)
{
SDI=(bit)(dat2&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
dat2<<=1;
}
for(r = 0; r < 8; r++)
{
SDI=(bit)(dat3&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
dat3<<=1;
}
}
uchar read_5463(uchar com1,uchar x,uchar y,uchar z)
{
uchar s,t,u,v,f=0xfe,g=0xfe,h=0xfe;
SCLK=0;
for(s = 0; s < 8; s++)
{
SDI=(bit)(com1&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
com1<<=1;
}
for(t = 0;t < 8; t++)
{
SDI=(bit)(f&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
f<<=1;
x<<=1;
x|=(unsigned char)SDO;
}
return(x);
for(u = 0;u < 8; u++)
{
SDI=(bit)(g&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
g<<=1;
y<<=1;
y|=(unsigned char)SDO;
}
return(y);
for(v = 0;v < 8; v++)
{
SDI=(bit)(h&0x80);
SCLK=0;
delay(2);
SCLK=1;
delay(2);
h<<=1;
z<<=1;
z|=(unsigned char)SDO;
}
return(z);
}
void com_init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SM0=0;
SM1=1;
TR1=1;
REN=1;
EA=1;
ES=1;
}
void send(uchar m,uchar b)
{ uchar l;
if(flag==1)
{
ES=0;
flag=0;
for(l=0;l<m;l++)
{
SBUF=TAB[l];
while(!TI);
TI=0;
}
SBUF=b;
while(!TI);
TI=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
}
void main()
{
while(1)
{
com_init();
init_5463();
write_5463(0x5e,0x80,0x00,0x00);
write_5463(0x40,0x00,0x00,0x01);
write_5463(0x4a,0x00,0x0f,0xa0);
write_5463(0x74,0x00,0x00,0x00);
write_5463(0x64,0x80,0x00,0x01);
read_5463(0xe8,x,y,z);
read_5463(0x10,x,y,z);
send(22,z);
send(22,y);
send(22,z);
}
}
void srei()interrupt 4
{
RI=0;
P1=SBUF;
a=SBUF;
flag=1;
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|