标题: MCP3208 12位ADC与单片机的Proteus仿真 [打印本页]

作者: makala    时间: 2018-5-21 11:43
标题: MCP3208 12位ADC与单片机的Proteus仿真
本帖最后由 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)   
{   
    unsigned char Count;   
    unsigned int Mask   = 0x8000;   
    unsigned int Result = 0x0000;   
    CLK = 1;   
    CLK = 0;   
    for(Count = 0;Count <13;Count++)   
    {   
        if(DOUT)   
        {   
            Result|=Mask;   
        }   
        CLK = 1;   
        Mask  >>= 0x01;   
        CLK = 0;   
    }   
    Result >>= 0x03;   
    Result &= 0x0FFF;   
    return(Result);   
}


void delay(unsigned int timer)
{  
while(timer--);
}


   float v;
//主函数,C语言的入口函数:
void main(void)  
{
TMOD=0X20;    //设置定时器1为模式2,做为波特率发生器
TL1=0xF3;    //2400波特率的初值,板子使用12M晶振,初值=256-12000000/32/12/2400
TH1=0xF3;    //
TR1=1;     //启动波特率发生
SCON=0x50;    //设置串口方式2
    ADCS = 1;   
   
    while(1)   
    {   
        ADCS = 0;   
        Output_Control((char)0x18);  
      getdata=Input_Data();
        ADCS = 1;   
    v=5.0*getdata/4096.0;//v即AD转换后获得的电压值

    }
}




mcp3208.jpg (192.91 KB, 下载次数: 64)

mcp3208.jpg

作者: admin    时间: 2018-5-21 16:54
楼主能分享个仿真工程吗?
作者: makala    时间: 2018-5-21 18:22
以下是用这个程序做的PT100测温电路仿真文件和c文件程序。

LM324MCP3208.zip

21.75 KB, 下载次数: 97


作者: makala    时间: 2018-5-21 18:23
附件是用以上程序做的PT100测温仿真模型和C程序 LM324MCP3208.zip (21.75 KB, 下载次数: 73)



作者: 杨杨young呀    时间: 2018-8-3 21:56
请问楼主仿真图CH0通道给的模拟信号是交流还是直流呢
作者: 杨杨young呀    时间: 2018-8-3 21:56
我按照这个仿真,虚拟终端完全没显示啊
作者: 杨杨young呀    时间: 2018-8-3 21:58
请问楼主CH0输入的模拟信号是交流还是直流呢?

作者: 杨杨young呀    时间: 2018-8-3 21:58
我按照这个仿真,虚拟终端完全没显示啊

作者: kevin666    时间: 2018-12-11 11:31
厉害了 谢谢楼主
作者: nsiec1995    时间: 2019-2-24 23:03
什么显示也没有
作者: wenqian    时间: 2020-2-21 10:12
厉害 厉害 我这个采集出来 精度不高
作者: jackyhuanglong    时间: 2020-4-21 15:54
很好的资源,下载学习,多谢楼主分享
作者: jackyhuanglong    时间: 2020-4-21 15:55
很好的资源,下载学习,多谢楼主分享
作者: 单片机爱好者223    时间: 2022-3-6 16:16
不能仿真。。。缺失文件、、、、




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1