📄 atmel89c51与ad7107配合上位机进行电压数据采集源程序.c
字号:
#include<at89x51.h>
sfr cm = 0x98;
sfr tim=0x89;
sfr h=0x8d;
sbit control=P3^7;
int i,i1,i2,display1,i3,display2,i4,display3,i5,i12,i13,i14,ii,iii;
char table[11]={'0','1','2','3','4','5','6','7','8','9'};
char *pointer,*pointer1;
start();
send();
readdata();
conv();
delay();
char table1[11];
sbit mil=P3^6;
sbit pos=P3^5;
delay()
{
for (ii=0;ii<30000;ii++)
{
}
}
send()
{
while (control==0)
{
delay();
if (control==1)
{
for (;i5<9;i5++)
{
while (!TI);
TI=0;
if(i5==5)
{
if(pos==0)
{
SBUF='-';
while (!TI);
TI=0;
}
if(mil==0)
{
SBUF='1';
while (!TI);
TI=0;
}
}
SBUF=*(pointer1+i5);
//P1=*(pointer1+i5);
//P2=i5;
}
}
}
}
readdata()
{
i1=~P1;
i2=~P2;
i12=~P1;
}
void main()
{
P0=0xff;
P1=0xff;
P2=0xff;
i=0;
i13=1;
i14=0;
control=1;
pointer=&table;display1=P0;display2=P1;display3=P2;
pointer1=&table1;
start();
loop:
i5=0;
readdata();
conv();
send();
send();
goto loop;
}
start()
{
cm=0x50;
tim=0x20;
TH1=0xfd;
TR1=1;
TI=1;
}
conv()
{
*(pointer1+i)='A';i++;
*(pointer1+i)='B';i++;
*(pointer1+i)='8';i++;
*(pointer1+i)='F';i++;
*(pointer1+i)='S';i++;
switch (display1)
{
case 0xff:
*(pointer1+i)=*(0+pointer);
break;
case 0xf9:
*(pointer1+i)=*(1+pointer);
break;
case 0xa4:
*(pointer1+i)=*(2+pointer);
break;
case 0xb0:
*(pointer1+i)=*(3+pointer);
break;
case 0x99:
*(pointer1+i)=*(4+pointer);
break;
case 0x92:
*(pointer1+i)=*(5+pointer);
break;
case 0xfd:
*(pointer1+i)=*(6+pointer);
break;
case 0xf8:
*(pointer1+i)=*(7+pointer);
break;
case 0x80:
*(pointer1+i)=*(8+pointer);
break;
case 0x90:
*(pointer1+i)=*(9+pointer);
break;
}
i++;
*(pointer1+i)='.';
i++;
switch (display2)
{
case 0xff:
*(pointer1+i)=*(0+pointer);
break;
case 0xf9:
*(pointer1+i)=*(1+pointer);
break;
case 0xa4:
*(pointer1+i)=*(2+pointer);
break;
case 0xb0:
*(pointer1+i)=*(3+pointer);
break;
case 0x99:
*(pointer1+i)=*(4+pointer);
break;
case 0x92:
*(pointer1+i)=*(5+pointer);
break;
case 0xfd:
*(pointer1+i)=*(6+pointer);
break;
case 0xf8:
*(pointer1+i)=*(7+pointer);
break;
case 0x80:
*(pointer1+i)=*(8+pointer);
break;
case 0x90:
*(pointer1+i)=*(9+pointer);
break;
}
i++;
switch (display3)
{
case 0xff:
*(pointer1+i)=*(0+pointer);
break;
case 0xf9:
*(pointer1+i)=*(1+pointer);
break;
case 0xa4:
*(pointer1+i)=*(2+pointer);
break;
case 0xb0:
*(pointer1+i)=*(3+pointer);
break;
case 0x99:
*(pointer1+i)=*(4+pointer);
break;
case 0x92:
*(pointer1+i)=*(5+pointer);
break;
case 0xfd:
*(pointer1+i)=*(6+pointer);
break;
case 0xf8:
*(pointer1+i)=*(7+pointer);
break;
case 0x80:
*(pointer1+i)=*(8+pointer);
break;
case 0x90:
*(pointer1+i)=*(9+pointer);
break;
}
i=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -