精通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)设置配置 ...
随机推荐
- Navicat操作MySQL简易教程
前言: 日常使用 MySQL 的过程中,我们可能会经常使用可视化工具来连接 MySQL ,其中比较常用的就是 Navicat 了.平时也会遇到某些同学问, Navicat 怎么安装,如何使用等问题.本 ...
- C++ primer plus读书笔记——第4章 复合类型
第4章 复合类型 1. 如果将sizeof运算符用于数组名,得到的将是整个数组中的字节数. 2. 如果对数组的一部分进行初始化,则编译器把其他元素设置为0.因此,将数组中的所有元素初始化为0,只要显式 ...
- 使用 CSS perfer-* 规范,提升网站的可访问性与健壮性
文本将介绍 CSS 媒体查询中新增的几个特性功能: prefers-reduced-motion prefers-color-scheme prefers-contrast prefers-reduc ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署
之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...
- Linux软件安装管理之——dpkg与apt-*详解
Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件安装管理之--源码安装详解> - -<Linux软件安装管 ...
- ScreenToGif: 屏幕录制神器
ScreenToGif:一款小众但很好用的屏幕录制神器 牛人干货 2020-01-07 00:23:08 今天干货君给大家介绍一款电脑屏幕录制神器-ScreenToGif . ScreenToGif ...
- 转载 https://www.cnblogs.com/bobo-pcb/p/11708459.html
https://www.cnblogs.com/bobo-pcb/p/11708459.html #### 1 用VMware 15.0+win10企业版 1次安装成功 20200124 2 不要用v ...
- Linux进阶之Linux破解密码、yum源配置、防火墙设置及源码包安装
一.老师语录: 所有要求笔试的公司都是垃圾公司 笔试(是考所有的涉及到的点) 要有自己的卖点.专长(给自己个标签)(至少一个) 生产环境中,尽量使用mv(mv到一个没用的目录下),少使用rm 二.防火 ...
- pre -regulator 前端稳压器
regulator
- 关于Ajax 的 cache 属性 (Day_34)
最近做项目,在某些页面显示,ajax刷新总是拿不到新内容,时常需要清除缓存,才能到达想要的效果. 经过再次查看文档,最后加了一行属性:cache:false 即可解决问题 我们先看下文档的说明: 可以 ...