急 自己做的ADC0809信号采集系统
时间:10-02
整理:3721RD
点击:
为什么软件protues能仿真 实物上没法实现 希望大神能给说明一下
程序代码
#include<reg52.h>
#define uchar unsigned char
int KK;
sbit ST=P0^0;
sbit EOC=P0^1;
sbit LED=P2^0;
sbit OE=P0^2;
sbit CLK=P0^3;
uchar temp; //保存IN0经AD转换后的数据
/**********延时函数************/
void delay(uchar i)
{
uchar j;
while(i--)
{
for(j=125;j>0;j--){j=j;}
;
}
}
/*********系统初始化***********/
void init()
{
TMOD = 0x01; //设定定时器T0工作方式1
EA = 1; //开总中断
TH0=0xff; //利用T0中断产生CLK信号
TL0=0xfe;
ET0=1; //开定时器0中断
TR0=1; //启动定时器T0
}
/***********AD转换函数**********/
void AD()
{
EOC = 1;
OE=0;
// CLK = 0;
ST=0;
delay(5);
ST=1; //启动AD转换 delay(10);
delay(5);
ST=0;
delay(5);
//ST=0;
while(0==EOC);
OE=1;delay(5);
// CLK = 1;
temp=P1;
OE=0;
}
/*****************主函数**************/
void main()
{while(1)
{init();
LED = 0;
while(1)
{ ST = 1;
AD();
if(temp > 100)
{
LED = 1;
} else
LED = 0;
}}
}
/***********T0中断服务程序************/
void t0() interrupt 1 using 0
{
TH0=0xff; //利用T0中断产生CLK信号
TL0=0xfe;
//KK++;
CLK=~CLK;
}
程序代码
#include<reg52.h>
#define uchar unsigned char
int KK;
sbit ST=P0^0;
sbit EOC=P0^1;
sbit LED=P2^0;
sbit OE=P0^2;
sbit CLK=P0^3;
uchar temp; //保存IN0经AD转换后的数据
/**********延时函数************/
void delay(uchar i)
{
uchar j;
while(i--)
{
for(j=125;j>0;j--){j=j;}
;
}
}
/*********系统初始化***********/
void init()
{
TMOD = 0x01; //设定定时器T0工作方式1
EA = 1; //开总中断
TH0=0xff; //利用T0中断产生CLK信号
TL0=0xfe;
ET0=1; //开定时器0中断
TR0=1; //启动定时器T0
}
/***********AD转换函数**********/
void AD()
{
EOC = 1;
OE=0;
// CLK = 0;
ST=0;
delay(5);
ST=1; //启动AD转换 delay(10);
delay(5);
ST=0;
delay(5);
//ST=0;
while(0==EOC);
OE=1;delay(5);
// CLK = 1;
temp=P1;
OE=0;
}
/*****************主函数**************/
void main()
{while(1)
{init();
LED = 0;
while(1)
{ ST = 1;
AD();
if(temp > 100)
{
LED = 1;
} else
LED = 0;
}}
}
/***********T0中断服务程序************/
void t0() interrupt 1 using 0
{
TH0=0xff; //利用T0中断产生CLK信号
TL0=0xfe;
//KK++;
CLK=~CLK;
}
快来大神帮小弟解决一下