本帖最后由 makala 于 2018-5-21 11:46 编辑
ADC0808/9只有8位精度,太低了,所以用Proteus自带的MCP3208做了个AD电路,并且仿真成功。
代码如下:
//头文件:
#include "reg51.h"
#include "stdio.h"
//变量定义:
sbit ADCS = P1^3;
sbit DIN = P1^2;
sbit DOUT = P1^1;
sbit CLK = P1^0;
int getdata;
void Output_Control(char TempChar)
{
unsigned char Mask = 0x10;
unsigned char Count;
for(Count = 0;Count<5;Count++)//5次循环,第一次循环DIN为Start,第二次DIN为选择差分或单端,后3次DIN分别是0,0,0选择通道
{
DIN = 0;
if(TempChar&Mask)
{
DIN = 1;
}
CLK = 1;
Mask >>= 0x01;
CLK = 0;
}
}
int Input_Data(void)
{