有些人可能会想:什么叫做“DLL仿真模型之原理图符号”?我想学高级的C++创建DLL(动态链接库)仿真模型的方式,你别拦着我,不然,我可就人挡Kill人,佛挡Kill佛啦!原理图符号的创建之前已经学过了呀?不要试图用这些重复的内容阻挡我那迈向人生巅峰的坚定步伐!

好的,不拦你!你想做神仙我也管不着,但是要做神仙起码也得先引气入体筑基结丹什么的吧,对这个我不是很在行,然而即便你创建了一个超级DLL仿真模型,原理图符号也还得先创建,不过与之前介绍操作细节稍有不同,不知会你一声可能会影响修仙进度,你自己决定吧!

我决定为电子制作站做一块招牌元器件“LED_DZZZZCN”,它只有一个输入引脚,引脚名为“LED”,当输入为高电平时点亮,输入低电平时熄灭,仿真的效果如下图所示:

哈哈,我们的招牌绝对高端大气上档次、低调奢华有内涵、奔放洋气有深度、简约时尚国际范,迪拜的土豪们抢着要下订单呐,,,,,,,,,(此处省略一万字)。

下面我们先来创建原理图符号,如下图所示:

可以看到,我们创建了三个图形,但是只有第一个是有引脚的,这也是我们需要创建元器件的符号,我们称其为device吧!下面两个是图形符号(symbol),它们是没有引脚的。我们的招牌元器件的工作原理很简单:如果输入为低电平,就把第一个全黑的symbol贴到device对应位置上,那么招牌元器件就是全黑状态;如果输入为高电平,就把第二个显示“dzzzzcn”的symbol贴到device对应位置上,也就完成了状态的切换,简单吧!

注意:你自己动手做出什么形状并不重要,但是一定要给每一个图形增加一个定位标记(左上角那个带十字的方块),它决定了你把symbol贴到device的参考位置,所以必须是统一的,不然显示的位置会有偏差,如下图所示:

接下来我们需要保存创建的图形符号(makesymbol),选中第一个symbol(不是device)后右击,在弹出的菜单中选择“Make Symbol”选项,如下图所示:

在弹出的对话框中设置符号名为“LED_DZZZZCN_0”即可。

同样,我们将第二个图形符号保存为“LED_DZZZZCN_1”,这里需要特别提醒的是:符号的全名格式是“器件名称+下划线+数字”,这一点非常重要,在后续采用C++编写动态链接库时,就会以数字来调用相应的图形符号。例如,drawsymbol(0)表示绘制“LED_DZZZZCN_0”,drawsymbol(1)表示绘制“LED_DZZZZCN_1”,而drawsymbol(-1)表示绘制器件符号“LED_DZZZZCN”。

保存完symbol后再创建device,这个顺序也很重要。我们全选device后右击,在弹出的对话框中选择“Make Device”即可弹出下图所示的对话框:

对话框的通用属性(GeneralPropoerties)用来设置器件名称与位号,这一点我们已经介绍过,但为了使动态链接库模型能够调用刚才创建的两个symbol,我们还得设置活动的组件属性(Active Component Properties),其中Name Stem用来设置symbol名称的共同部分,对于我们刚才保存的“LED_DZZZZCN_0”与“LED_DZZZZCN_1”,共同的名称就是“LED_DZZZZCN”。No. of States表示有几个symbol,这里很明显是2。最后不要忘了把“Linkto DLL”勾上。

接下来我们一路点击Next到“器件属性与定义”页表项,我们新建了“PRIMITIVE”与“MODDLL”两个属性,PRIMITIVE属性如下图所示:

在默认值(DefaultValue)中,我们填入的是“DIGITAL,LED_DZZZZCN”,表示当前的元器件是一个数字器件,而第二个参数“LED_DZZZZCN”会传递到DLL,这样可以让多个不同的器件使用同一个DLL,我们后续创建的对应DLL只给招牌元器件使用(迪拜土豪应该很在意独一无二),其实不用传递也可以正常工作。

“MODDLL”属性如下图所示:

“MODDLL”属性与前面介绍过的“MODFILE”属性是等同的,只不过后者是原理图方式创建的模型,而前者是动态链接库创建的模型,所以请勿必记住你填入的DLL名称“LED_DZZZZCN.DLL”。

接下来的步骤已经介绍过了,我们就不再重复了,下面我们就来讨论一下如何使用Microsoft Visual Studio创建动态链接库仿真模型。

精通Proteus仿真器件制作(3)DLL仿真模型创建的更多相关文章

  1. Proteus 仿真运算放大器出现 GMIN 问题

    Proteus 仿真运算放大器出现 GMIN 问题 为了仿真一个反相运算放大器,在仿真时出现 GMIN 问题,将 后面的 4.7UF 去掉就可以正常仿真. 初步检查是因为输入频率太低,输入时我用的是 ...

  2. proteus仿真 引脚显示电平变化但不能显示波形

    proteus仿真 引脚显示电平变化但不能显示波形 原来是没有选择通道问题,proteus默认优先使用A通道才会显示波形,如果优先使用B,C,D通道,需要选择...

  3. Delphi中DLL的创建和使用(转)

    Delphi中DLL的创建和使用     1.DLL简介:   2.调用DLL:   3.创建DLL:   4.两个技巧:   5.初始化:   6.例外处理.            1.DLL简介  ...

  4. 动态链接库DLL的创建生成及调用

    一.背景 最近在做CANTOUSB底层驱动的调用,是调用别人已经封装好的库,看不到别人写的源程序.程序中调用的是隐式调用即 x.h+x.lib+x.dll,其中DLL即是动态链接库(Dynamic L ...

  5. simplest_dll 最简dll的创建与隐式调用(显式调用太麻烦,个人不建议使用)

    首先需要有个头文件,名字随便写  假设test.h //test.h #ifndef _TEST_H #define _TEST_H #ifdef TEST_EXPORTS //通过宏定义控制是输入还 ...

  6. 关于DLL的创建与使用简单描述(C++、C#)

    前言 前一段时间在学关于DLL的创建与调用,结果发现网络上一大堆别人分享的经验都有点问题.现在整理分享一下自己的方法. 工具 Microsoft Visual Studio 2017 depends ...

  7. Proteus仿真_01、 8086 IO译码仿真

    最近在学习一些微机原理与接口技术方面的知识. 参考书籍<微机原理与接口技术---基于8086Proteus仿真> 顾晖 梁惺彦 编著 实验一.利用8086 芯片来实现对I/O设备的读取和控 ...

  8. 【硬核摄影2.0】用线性CCD器件制作扫描相机

    本文参考资料:[1] (Strongly Recommend!) Fundamentals and Experiments of Line Scan Camera: http://www.elm-ch ...

  9. vc 制作图片资源dll

    方法一: 使用纯WIN32 DLL方法封装纯资源第一步,通过VS2005建立WIN32 DLL 空工程第二步,设置配置属性->链接器->高级->无入口点(是/NOENTRY)设置配置 ...

随机推荐

  1. Windows进程间通讯(IPC)----WM_COPYDATA

    WM_COPYDATA通讯思路 通过向其他进程的窗口过程发送WM_COPYDATA消息可以实现进程间通讯. 只能通过SendMessage发送WM_COPYDATA消息,而不能通过PostMessag ...

  2. C++ primer plus读书笔记——第11章 使用类

    第11章 使用类 1. 运算符重载是一种形式的C++多态. 2. 不要返回指向局部变量或临时对象的引用.函数执行完毕后,局部变量和临时对象将消失,引用将指向不存在的数据. 3. 运算符重载的格式如下: ...

  3. 进程Queue和线程Queue区别

    进程Queue from multiprocessing import Queue q=Queue() 线程Queue import queue q=queue.Queue()

  4. AOP随笔

    AOP: Aspect-Oriented Programming 面向切面编程. 首先明确一个点:AOP是一个概念.那么对于一个概念,其实现方式多种多样,分为静态AOP.动态AOP,而对于动态AOP的 ...

  5. [c++] 声明

    注意事项 变量定义时就会赋初值(如int是0),所以定义包含声明,单纯声明不定义的话,要加extern 同一个文件中,函数使用(调用)前必须定义(有{ }为定义),否则会报错:若先使用再定义,或定义和 ...

  6. 寻找CPU使用率高的进程方法

    寻找CPU使用率高的进程方法 发布时间:  2017-07-13 浏览次数:  1362 下载次数:  0 问题描述 节点报CPU使用率高,甚至出现"ALM-12016 CPU使用率超过阈值 ...

  7. 使用autotools工具用configure、make、make install编译安装linux工程的详细步骤

    使用autotools工具用configure.make.make install编译安装linux工程的详细步骤 转载tmxkwzy 最后发布于2016-11-24 10:20:15 阅读数 324 ...

  8. Could not open device at /dev/ipmi0

    Could not open device at /dev/ipmi0 分类: LINUX 2013-09-02 17:01:37   Could not open device at /dev/ip ...

  9. VMWare虚拟机显示模块“Disk”启动失败

    找到启动虚拟机的目录: 在此路径中找到.vmx文件,在文件中查找(Ctrl+F快速查找)vmci0.present,此时会看到"vmci0.present = "TRUE" ...

  10. 第8章 Shell函数的知识与实践

    shell 函数常见的语法格式 function 函数名(){          return n } 简化1 function 函数名{     ... } 简化2 函数名(){     ... } ...