精通Proteus仿真器件制作(3)DLL仿真模型创建
有些人可能会想:什么叫做“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仿真模型创建的更多相关文章
- Proteus 仿真运算放大器出现 GMIN 问题
Proteus 仿真运算放大器出现 GMIN 问题 为了仿真一个反相运算放大器,在仿真时出现 GMIN 问题,将 后面的 4.7UF 去掉就可以正常仿真. 初步检查是因为输入频率太低,输入时我用的是 ...
- proteus仿真 引脚显示电平变化但不能显示波形
proteus仿真 引脚显示电平变化但不能显示波形 原来是没有选择通道问题,proteus默认优先使用A通道才会显示波形,如果优先使用B,C,D通道,需要选择...
- Delphi中DLL的创建和使用(转)
Delphi中DLL的创建和使用 1.DLL简介: 2.调用DLL: 3.创建DLL: 4.两个技巧: 5.初始化: 6.例外处理. 1.DLL简介 ...
- 动态链接库DLL的创建生成及调用
一.背景 最近在做CANTOUSB底层驱动的调用,是调用别人已经封装好的库,看不到别人写的源程序.程序中调用的是隐式调用即 x.h+x.lib+x.dll,其中DLL即是动态链接库(Dynamic L ...
- simplest_dll 最简dll的创建与隐式调用(显式调用太麻烦,个人不建议使用)
首先需要有个头文件,名字随便写 假设test.h //test.h #ifndef _TEST_H #define _TEST_H #ifdef TEST_EXPORTS //通过宏定义控制是输入还 ...
- 关于DLL的创建与使用简单描述(C++、C#)
前言 前一段时间在学关于DLL的创建与调用,结果发现网络上一大堆别人分享的经验都有点问题.现在整理分享一下自己的方法. 工具 Microsoft Visual Studio 2017 depends ...
- Proteus仿真_01、 8086 IO译码仿真
最近在学习一些微机原理与接口技术方面的知识. 参考书籍<微机原理与接口技术---基于8086Proteus仿真> 顾晖 梁惺彦 编著 实验一.利用8086 芯片来实现对I/O设备的读取和控 ...
- 【硬核摄影2.0】用线性CCD器件制作扫描相机
本文参考资料:[1] (Strongly Recommend!) Fundamentals and Experiments of Line Scan Camera: http://www.elm-ch ...
- vc 制作图片资源dll
方法一: 使用纯WIN32 DLL方法封装纯资源第一步,通过VS2005建立WIN32 DLL 空工程第二步,设置配置属性->链接器->高级->无入口点(是/NOENTRY)设置配置 ...
随机推荐
- MongoDB评论管理
MongoDB简介 文章评论数据分析 相较于一般数据,文章评论一般有如下特点: 数据量巨大.通常评论量要比帖子.文章大很多 写入操作频繁. 价值较低.一般来说,我们的主要目标还是在帖子(文章)本身. ...
- 浅入浅出 MySQL 索引
简单了解索引 首先,索引(Index)是什么?如果我直接告诉你索引是数据库管理系统中的一个有序的数据结构,你可能会有点懵逼. 为了避免这种情况,我打算举几个例子来帮助你更容易的认识索引. 我们查询字典 ...
- 面试侃集合 | ArrayBlockingQueue篇
面试官:平常在工作中你都用过什么什么集合? Hydra:用过 ArrayList.HashMap,呃-没有了 面试官:好的,回家等通知吧- 不知道大家在面试中是否也有过这样的经历,工作中仅仅用过的那么 ...
- 如何通过Zoho Books门户管理供应商
作为一个企业,不管规模大小,都有自己的供应商来为业务提供相关的服务和配件.随着采购的频率和供应商数量的增加,采购的管理和付款的跟踪难度就会增加,进而影响到企业和供应商之间的关系. 为了解决这个问题,Z ...
- where优先级
select name from emply where id >5; 先找表from emply 再找条件 where id >5 最后打印 你想打印的字段 可以把select看成打印 ...
- [刷题] 235 Lowest Common Ancestor of a Binary Search Tree
要求 给定一棵二分搜索树和两个节点,寻找这两个节点的最近公共祖先 示例 2和8的最近公共祖先是6 2和4的最近公共祖先是2 思路 p q<node node<p q p<=node& ...
- addrinfo结构体原型-(转自 cxz2009)
addrinfo结构体原型 typedef struct addrinfo { int ai_flags; //AI_PASSIVE,AI_CANONNAME,AI_NUMERIC ...
- Jlink固件更新
故障:JLINK上的指示灯也不亮,无驱动等 文中所提工具和固件链接: 工具:http://pan.baidu.com/s/1c2z8nao 固件:http://pan.baidu.com/s/1jIB ...
- Java中生成唯一标识符的方法
有时候业务需要生成唯一标识符,但又不能依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,此时我们就需要用程序来生成一个唯一的全局ID. UUID UUID是指在一台机器上 ...
- SQL 语句大全(简化版)
1. SELECT * FROM 表名 WHERE 1 AND [ORDER BY DESC LIMIT] 2. INSERT INTO 表名 (字段列表) VALUES (值列表) 3. UPDAT ...