#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
sbit rd=P3^7;
sbit cs=P2^5;
sbit con=P2^6; //通道选择用P34口
sbit a0=P2^4;
void seril_init(void) //串口初始化
{
a0=0;
TMOD=0x20; //设置波特率为9600的定时器1方式合初始化值
TL1=0xfd;
TH1=0xfd;
SM0=0; //串行通信方式1
SM1=1;
TR1=1; //开定时器1
IT1=1; //设置INT1为边沿触发
EX1=1; //开外部中断1
EA=1; //开总中断
}
/*****************************AD7862 转换初始化***********************/
void AD7862_init(void)
{
rd=1;
cs=1;
con=1;
}
/*****************************AD7862 转换***************************/
void AD_switch(void)
{
con=0;
con=1;
}
void INT1_adrd(void) interrupt 2
{
cs = 0;
rd = 0;
SBUF=P0; //读取高8位
while(TI==0);
TI=0;
SBUF=P2&0x0f; //读取低4位
while(TI==0);
TI=0;
rd=1;
rd=0;
delay(5);
}
void main(void)
{
seril_init();
AD7862_init();
while(1)
{
AD_switch();
}
}