标题: proteus8.9仿真找不到ADC0832芯片external model ADC083X.DLL not found [打印本页]

作者: 青龙山码农    时间: 2021-4-26 19:22
标题: proteus8.9仿真找不到ADC0832芯片external model ADC083X.DLL not found
错误信息:external model ADC083X.DLL not found

#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char


sbit ADC_CLK = P1^6;
sbit ADC_DI = P1^5;
sbit ADC_DO = P1^5;
sbit ADC_CS  = P1^7;

sbit Light = P3^2;        //路灯控制位
sbit Voice = P1^0;        //声控信号输入
sbit IR = P1^1;        //红外人体热释电信号输入

unsigned char SunLux=0;
unsigned char fRun=0;
unsigned char SetSunLux=150;


void delayms(uint ms)                 //延时xx毫秒
{
         uchar i;
        while(ms--)
        {
                 for(i=0;i<120;i++);
        }
}
           
//*******************************************MQ2程序********************************//
uchar Get_AD_Result(void)
{
         uchar i;
        uchar DOUT=0;           //只需255,故使用uchar 0~255
        
    ADC_CS=0;
    ADC_DI=1;//第一个上升沿前为高,确认开始
    ADC_CLK=0;
            ADC_CLK=1;
    _nop_(); //启动信号

    ADC_DI=1; //第二个上升沿前为1
    ADC_CLK=0;
        ADC_CLK=1;
    _nop_(); //

    ADC_DI=0; //第三个上升沿前为0
    ADC_CLK=0;
        ADC_CLK=1;
    _nop_(); //

    ADC_CLK=1;
            ADC_CLK=0; //开始采样

    _nop_();
    _nop_();
    ADC_DO=1;//写全一,保证下面的读引脚正常
        for(i=8;i>0;i--)
        {
          ADC_CLK=1;
              ADC_CLK=0; //下降沿采样
          _nop_();
          DOUT=DOUT<<1;
          DOUT=DOUT|ADC_DO; //按位或,ADC_DO是转换后的输出,其实就是把ADC_DO传送到dig的低位
                            //因为ADC_DO是一位,这样左移位后获得的空位放置的就是ADC_DO
                            //第二个时钟下降沿获得就是最高位
        }
        ADC_CS=1;                          //转换结束
        return(DOUT);
}






void main()
{
        P1   = 0xff;
        Light = 1;
        while(1)
        {
                SunLux=Get_AD_Result();                 //读取当前阳光的勒克司值,日光的传感器在6通道
                if(SunLux>SetSunLux)        fRun=0;                 //当日光的勒克司对应的分压值比设定值大时,不允许路灯工作(路灯熄灭)
                else fRun=1;                         //当日光的勒克司对应的分压值比设定值小时,允许声音控制路灯点亮
               
                if(fRun==1)
                {
                        if((Voice==1)||(IR==0))
                        {
                                delayms(10);
                                if((Voice==1)||(IR==0))
                                {
                                        Light = 0;
                                        delayms(6000);
                                        Light = 1;
                                }
                        }
                }
                else  Light = 1;
               
        }
}



作者: wdgao    时间: 2021-6-14 12:59
这是PROTEUS8.9解问题,在MODEL文件夹下有ADC083X.DLL文件,但不能用,需要另外找ADC083X.DLL文件覆盖。
作者: MrAlready    时间: 2021-6-16 18:46
并不是程序问题,本站有这个文件缺失的帖子
http://www.51hei.com/bbs/forum.p ... 3D1&page=1&




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