Proteus8.9仿真ADC0832的问题

前言

Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是一种可视化的支持多种型号单片机(如51,Arduino,STM32,PIC,AVR,Motorola hcll等),并且支持当前流行的单片机开发环境(keil,MPLAB,IAR).是目前电子设计爱好者广泛是用的电子线路设计与仿真软件protel和Multisim功能的联合和进一步扩展。
proteus
ADC0832对模数转换电路进行构建,它是一种8位A/D转换芯片,最高可达256级分辨率。32μS的极速转换时间,双数据输出进行严格的数据校验,有效地降低了芯片数据误差,稳定性强。独立的使能输入方式,使挂载多器件和控制处理变得更为便捷。ADC0832单通道模拟信号输入状态下的电压范围需控制在0~5V之间,当其工作在8位分辨率的状态下,输出模拟信号精度可达19.53mV。
ADC0832

ADC083X.DLL文件找不着,或者ADC0832的元件无法仿真

Proteus报错

PROSPICE 8.08.00 (Build 27367) (C) Labcenter Electronics 1993-2019.

External model DLL “ADC083X.DLL” not found. GLE=0x000036B1.

Simulation FAILED due to fatal simulator errors.

Proteus仿真时报这个错误的主要原因是使用新版本Proeus8.7及以上的版本,需要使用老版本的ADC083X.DLL文件替换即可。

解决方法:

将ADC083X.DLL文件放到Proteus 8 Professional\DATA\MODELS文件夹中,替换原来的ADC083X.DLL文件。

下载地址:

链接:https://pan.baidu.com/s/1udm6DN939RxDwvuwbRDzEA
提取码:n0s7

ADC0832演示

可以正常进行Proteus的仿真,当接入电阻较大时,两端电压大。
ADC0832
当接入电阻较小时,两端电压较小。
dc1

其他方法

找到Proteus系统设置,在仿真器设置中添加模型的DLL的路径
system

附件:程序

//函数名:ADC0832_ReadAD
//形参变量:无
//返回值return:AD_value:转化之后的数字量

#include "reg52.h"
#include "Delay.h"

sbit ADC0832_CS=P3^5;//片选信号段
sbit ADC0832_CLK=P3^3;//时钟信号端
sbit ADC0832_DIN=P3^4;//串行数据输入端
sbit ADC0832_DOUT=P3^4;//串行数据输出端

void ADC0832_init(void)
{
    ADC0832_CS=1;//芯片不工作
    ADC0832_CLK=0;
    ADC0832_DIN=0;
}

unsigned char ADC0832_ReadAD(void)
{
    unsigned char i,AD_value1=0x00,AD_value2=0x00;
    ADC0832_CS=0;//芯片工作(初始cs信号为高电平)
    
    ADC0832_DIN=1;//起始信号S
    ADC0832_CLK=1;//上升沿将起始信号Start写入
    ADC0832_CLK=0;
    
//—————-通道地址设置—-0通道(单端模式)—————//    
    
    ADC0832_DIN=1;//mode状态位置1
    ADC0832_CLK=1;//将mode状态位写入
    ADC0832_CLK=0;
    
    ADC0832_DIN=0;//通道选择0通道
    ADC0832_CLK=1;//将通道选择位写入
    ADC0832_CLK=0;//第4个脉冲下降沿后,ADC0832_DIN端口失效,无作用
    
    ADC0832_DIN=1;//ADC0832_DIN转为改高阻状态(数据线拉高,等待下次接收数据)
    
//———————读取相对应的通道0的AD数据————————–//
    ADC0832_DOUT=1;//数据线拉高,等待接收数据
    
    for(i=0;i<8;i++)//MSB
    {
        ADC0832_CLK=1;
        ADC0832_CLK=0;
        if(ADC0832_DOUT){AD_value1=AD_value1 |(0x80>>i);}//优先读取最高位        MSB
    }
    
    for(i=0;i<8;i++)//LSB
    {
        if(ADC0832_DOUT){AD_value2=AD_value2 |(0x01<<i);}//优先读取最低位        LSB
        ADC0832_CLK=1;
        ADC0832_CLK=0;
    }    

    ADC0832_DOUT=1;//数据线拉高,等待接收数据
    ADC0832_CS=1;//芯片停止工作
    return (AD_value1==AD_value2)? AD_value1:0;//判断前后两次读取数据是否相同(前后两个字节数据校验)
}
  • 22
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
Proteus 8.9是一款功能强大的电路设计软件,能够进行各种电路仿真和PCB设计。STM32F407ZGT6是一款常用的STM32系列单片机,具有高性能和丰富的外设功能。 要在Proteus 8.9仿真STM32F407ZGT6,我们可以按照以下步骤进行操作: 1. 下载和安装Proteus 8.9软件,并确保已安装STM32F407ZGT6的仿真模型。 2. 打开Proteus 8.9,创建一个新的项目。 3. 在项目添加STM32F407ZGT6的仿真模型。可以通过在Proteus 8.9的设备库搜索STM32F407ZGT6来找到该模型,然后将其拖放到项目界面上。 4. 在项目添加所需的外围器件,例如LED、按钮、传感器等。这些器件可以通过在Proteus 8.9的设备库搜索并添加。 5. 连接这些器件和STM32F407ZGT6的引脚。可以使用连接线工具来连接它们,确保正确连接。 6. 编写STM32F407ZGT6的程序代码,并将其添加到项目。可以使用C语言来编写代码,并使用Proteus 8.9提供的编译器来进行编译。 7. 设置仿真参数,例如时钟频率和仿真持续时间。这些参数可以在Proteus 8.9仿真设置进行设置。 8. 启动仿真,观察STM32F407ZGT6与外围器件的交互和功能。可以通过仿真界面上的按钮和指示灯来检查程序的运行情况。 9. 调试并优化程序代码,使其达到预期的功能。 通过以上步骤,我们可以在Proteus 8.9成功仿真STM32F407ZGT6,实现所需的功能,并对程序进行调试和优化。这样可以在电路设计过程节省时间和成本,并提前发现和解决潜在问题,从而提高电路设计的效率和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诊断协议那些事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值