有些人可能会想:什么叫做“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. C++ primer plus读书笔记——第10章 对象和类

    第10章 对象和类 1. 基本类型完成了三项工作: 决定数据对象需要的内存数量: 决定如何解释内存中的位: 决定可使用数据对象执行的操作或方法. 2. 不必在类声明中使用关键字private,因为这是 ...

  2. 匿名函数lambda / map()方法

    lambda一般配合其他方法使用,一般使用在只用过一次就不用的函数,那就没必要特意去定义 lambda能支持的最复杂的语句就是三元运算 例如: lambda x,y: x*y if x < y ...

  3. [刷题] PTA 04-树4 是否同一棵二叉搜索树

    程序: 1 #include <stdio.h> 2 #include <stdlib.h> 3 typedef struct TreeNode *Tree; 4 struct ...

  4. [OS] 操作系统课程(三)

    工具 源码阅读:understand 源码文档自动生成工具:Doxygen 编译环境:gcc 运行环境:x86机器或QEMU 调试工具:QEMU+(GDB or IDE) IDE:Eclipse-CD ...

  5. tuple必须加上逗号

    tuple支持  空 元组 不加逗号 >>> tup4 = () tuple非空的元组必须加上逗号>>> tup4 = (55,)>>> tup4 ...

  6. CPU缓存是位于CPU与内存之间的临时数据交换器,它的容量比内存小的多但是交换速度却比内存要快得多。CPU缓存一般直接跟CPU芯片集成或位于主板总线互连的独立芯片上

    一.什么是CPU缓存 1. CPU缓存的来历 众所周知,CPU是计算机的大脑,它负责执行程序的指令,而内存负责存数据, 包括程序自身的数据.在很多年前,CPU的频率与内存总线的频率在同一层面上.内存的 ...

  7. Ansible_主机变量和主机组变量的演示

    一.主机变量和主机组变量的演示 1.主机变量和主机组变量的基本语法和规则 请访问:https://www.cnblogs.com/itwangqiang/p/13592362.html 2.首先在/e ...

  8. H5开发基础之像素、分辨率、DPI、PPI

    H5开发基础之像素.分辨率.DPI.PPI  html5  阅读约 4 分钟 ​2016-09-03于坝上草原 背景知识: 目前绝大部分显示器都是基于点阵的,通过一系列的小点排成一个大矩形,通过每个小 ...

  9. centos7 安装Anaconda3及使用

    centos7 安装Anaconda3及使用原创wangshu_liang 最后发布于2019-01-31 14:08:23 阅读数 1046 收藏展开最近在服务器上安装了anaconda3,先简单说 ...

  10. LNAMP架构项目一

    一.第一阶段 假设:公司初期只有一台web服务器,搭建Web服务器的脚本如下: 1 #检查环境 2 setenforce 0 &> /dev/null 3 sed -i s/=enfor ...