📄 cadc.c
字号:
/*********************************************************************************
**
** 文 件:CADC。C
** 功 能:ADC(差分输入方法)
** I / O :AIN0 、AIN1
**********************************************************************************/
#include<c8051f020.h>
void clock(void);
void xbrs(void);
void adcs(void);
void delay(long int);
//void yan50m(unsigned char);
void senddata(unsigned char,unsigned char);
void setoff(unsigned char);
unsigned int i=0;
unsigned long int d,c=0;
unsigned int c1,c2,c3,d1,d2;
void adc0int (void) interrupt 15
{
i++;
d1=(ADC0H&0x0F);
d2=ADC0L;
d=d1*256;
d=d+d2;
d=d*480;
d=d/4096;
c=c+d;
if(i>=10000)
{
i=0;
d=c/10000;
c3=d/100;
c2=(d%100)/10;
c1=d%10;
c3=c3+0x80;
senddata(1,c1);
senddata(2,c2);
senddata(3,c3);
c=0;
}
AD0BUSY=1;
AD0INT=0;
}
main()
{
clock();
xbrs();
adcs();
setoff(7);
EIE2|=0x02;
EA=1;
// TMOD=0x10;
AD0BUSY=1;
while(1);
}
void clock(void) //clock det
{
unsigned char e;
WDTCN=0xde; //CLOSE WDOG
WDTCN=0xad;
OSCXCN=0x67; //ENABLE EXTERNAL CLK
delay(10000);
delay(10000);
e=!OSCXCN&0x80;
while(e);
OSCICN|=0x08;
}
void xbrs(void) //XBR set
{
XBR2=0x40;
P1MDOUT=0xFF;
}
void adcs(void) //ADC0 set
{
AMX0SL=0x00; //use AIN0 as a input ADC port
AMX0CF=0x01;
ADC0CN=0x80;
ADC0CF=0x58;
REF0CN=0x03;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -