找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6844|回复: 13
收起左侧

MCP3208 12位ADC与单片机的Proteus仿真

[复制链接]
ID:334753 发表于 2018-5-21 11:43 | 显示全部楼层 |阅读模式
本帖最后由 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

评分

参与人数 1黑币 +2 收起 理由
uiu + 2 很给力!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2018-5-21 16:54 | 显示全部楼层
楼主能分享个仿真工程吗?
回复

使用道具 举报

ID:334753 发表于 2018-5-21 18:22 | 显示全部楼层
以下是用这个程序做的PT100测温电路仿真文件和c文件程序。

LM324MCP3208.zip

21.75 KB, 下载次数: 96

回复

使用道具 举报

ID:334753 发表于 2018-5-21 18:23 | 显示全部楼层
附件是用以上程序做的PT100测温仿真模型和C程序 LM324MCP3208.zip (21.75 KB, 下载次数: 72)
回复

使用道具 举报

ID:382597 发表于 2018-8-3 21:56 | 显示全部楼层
请问楼主仿真图CH0通道给的模拟信号是交流还是直流呢
回复

使用道具 举报

ID:382597 发表于 2018-8-3 21:56 | 显示全部楼层
我按照这个仿真,虚拟终端完全没显示啊
回复

使用道具 举报

ID:382597 发表于 2018-8-3 21:58 | 显示全部楼层
请问楼主CH0输入的模拟信号是交流还是直流呢?
回复

使用道具 举报

ID:382597 发表于 2018-8-3 21:58 | 显示全部楼层
我按照这个仿真,虚拟终端完全没显示啊
回复

使用道具 举报

ID:443935 发表于 2018-12-11 11:31 | 显示全部楼层
厉害了 谢谢楼主
回复

使用道具 举报

ID:477534 发表于 2019-2-24 23:03 来自手机 | 显示全部楼层
什么显示也没有
回复

使用道具 举报

ID:160072 发表于 2020-2-21 10:12 | 显示全部楼层
厉害 厉害 我这个采集出来 精度不高
回复

使用道具 举报

ID:419391 发表于 2020-4-21 15:54 | 显示全部楼层
很好的资源,下载学习,多谢楼主分享
回复

使用道具 举报

ID:419391 发表于 2020-4-21 15:55 | 显示全部楼层
很好的资源,下载学习,多谢楼主分享
回复

使用道具 举报

ID:519089 发表于 2022-3-6 16:16 | 显示全部楼层
不能仿真。。。缺失文件、、、、
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表