?? ads7822.c
字號:
#include <reg52.h>
#include "string.h"
#include <stdio.h>
char buffer[2]={0x00,0x00};
bit tempbit;
sbit cs = P2^7;
sbit dout= P2^6;
sbit dclk =P2^5;
typedef unsigned short int u_int;
typedef unsigned char u_char;
void delayms(u_int sec)
{
u_int j;
for(j=0;j<sec;j++)
{
j=j;
j=j;
}
}
void delayUs(char n)
{
n*=8;
for(;n>0;n--);
}
void wputs(char s[]);
xdata char s[20];
xdata int value_bak;
xdata long tt;
int GetAdc(void)
{
int value=0;
long int rt;
long int tx;
long k;
u_char i,j,num;
delayUs(100);
dout=1; //設置DOUT端口為輸入
buffer[1]=0x00;
buffer[0]=0x00;
value=0;
cs=1;
num=0;
dclk=0;
delayUs(10);
cs=0;
for(j=0;j<2;j++)
{
dclk=0;
delayUs(10);
dclk=1;
delayUs(10);
dclk=0;
}
delayUs(10);
//wputs("\n\rA/D : ");
//若DOUT值不是0,則AD出錯
if(dout!=0)
{
dclk=0;
strcpy(s,"AdcErr");
return(0);
}
//wputs("::");
for(j=0;j<12;j++)
{
dclk=1;
delayUs(20);
dclk=0;
delayUs(10);
value=value<<1;
if(dout) value |= 1;
delayUs(10);
}
value &=0xfff;
value_bak =(value_bak*5 + value)/6;
sprintf(s,"%d ",value_bak);
return(value_bak);
}
int Get_R_Str(void)
{
long int rt;
long k;
char sng=0;
rt=((long)(value_bak-82)*194L)/40L;
if( rt<0)
{
rt=-rt;
//sprintf(s,"-%d.%d ",(int)(rt/100L),(int)(rt%100L));
}
else ;//sprintf(s,"%d.%d ",(int)(rt/100L),(int)(rt%100L));
return(0);
}
struct t_R_table
{
int t;
long int R; //R=Rt X 100
} RtTab[15]=
{
-100,-390,
000,0,
100,390,
500,1950,
1000,3900,
1500,5840,
2000,7780,
2500,9730,
3000,11680,
3500,13610,
4000,15540,
4500,17470,
5000,19400,
6500,25150,
8000,30900
};
int Get_t_Str(void)
{
long int rt;
long k;
char i;
char sng=0;
rt=((long)(value_bak-82)*194L)/40L;
for(i=1;i<15;i++)
{
if( RtTab[i].R < rt ) continue;
else break;
}
if(i==14)
{
sprintf(s,"xxxxxx");
return(0);
}
k=(RtTab[i].t-RtTab[i-1].t)*1000L/(RtTab[i].R-RtTab[i-1].R);
tt=RtTab[i-1].t+( (rt-RtTab[i-1].R)*k)/1000L;
if(tt<0)
{
tt=-tt;
tt +=5;
sprintf(s,"-%d.%d",(int)(tt/100L),(int)((tt/10)%10L));
}
else
{
tt+=5;
sprintf(s,"%d.%d",(int)(tt/100L),(int)((tt/10)%10));
}
return(0);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -