proteus自制元件实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自制元件例一- CSI24WC02
CSI24WC02是串行E2PROM,兼容400 kHz I2C 总线控制。一个元件可以只实现绘图模型或电气模型,也可以电气和绘图模型都实现。该例子我们只实现绘图模型。
详细信息见帮助的Styles :Component creation或Styes: Component creation部分。
管脚描述
CSI24WCXX系列E2PROM提供标准的8脚DIP封装和8脚表面安装的SOIC封装。
其管脚功能描述如下:
●SCL 串行时钟
这是一个输入管脚用于产生器件所有数据发送或接收的时钟
●SDA串行数据/地址
这是一个双向传输端用于传送地址和所有数据的发送或接收它是一个漏极开路端
因此要求接一个上拉电到Vcc 端典型值为100KHz 是为10K 400KHz 时为1K 对
于一般的数据传输仅在SCL为低期间SDA才允许变化在SCL为高期间变化留给
指示START开始和STOP停止条件
●A0 A1 A2 器件地址输入端
这些输入端用于多个器件级联时设置器件地址当这些脚悬空时默认值为0 CSI24WC01 除外
●WP 写保护
如果WP管脚连接到Vcc所有的内容都被写保护只能读当WP 管脚连接到Vss或悬空允许器件进行正常的读/写操作
绘制元件
●单击2D Graphics Box Mode > COMPONENT,画一个框。
●单击Device Pins Mode > DEFAULT,画管脚。
●右击引脚> Edit Properties,输入管脚名称,例如A0;输入默认管脚号,例如1,
确定。
●选择所设计的图形(翻红)> Library > Make Device…,在Device Name中输入器
件名,例如CSI24WC02;在Reference Prefix中输入引用前缀(放置器件时的默认
名称),例如U ,其他保持不变,Next>。
●单击ADD/Edit添加封装
●选择一个封装,例如DIL08,单击Assign Package(s),指派封装。
●Next
●组件属性与定义,保持默认,Next>。
●器件数据手册和帮助文件定义,没有手册和帮助,略过,Next>。
●索引和库选择,单击New,输入器件目录,例如My Device,OK,OK。
完成。现在就可以使用该元件了,从Pick Devices的目录My Device中也可以找到该元件。
自制元件例二– 7段数码管
我们也可以通过改造原有器件来创建新器件,这样我们就不必从头开始创建一个新器件。下面我们以7段共阳绿色数码管7SER-COM-AN-GRN为例创建一个新器件。这个数码管原来不带封装,我们通过改造给它加上封装,并重新命名为新器件。
●在设计图纸上防置一个7SER-COM-AN-GRN。
●右击该器件> Decompose,分解该器件。下面是分解后的器件。
●选择所设计的图形(翻红)> Library > Make Device…,保持Device Name中的器件名;
在Reference Prefix中输入引用前缀(放置器件时的默认名称),例如D,其他保持不变,Next>。
●单击ADD/Edit添加封装
1)先在Packabe Device对话框中的A列中随意输入管脚编号,例如1、2、3…(原
来没有管脚编号)。
2)单击Add,选择一个封装,例如7SEG.3+A。
3)依据封装重新输入管脚编号。
4)单击Assign Package(s),指派封装。
组件属性与定义,指定默认封装为7SEG.3+A,Next>。
●
器件数据手册和帮助文件定义,没有手册和帮助,略过,Next>。
● 索引和库选择,单击New ,输入器件目录,例如My Device ,OK ,OK 。
完成。现在就可以使用该元件了,从Pick Devices 的目录My Device 中也可以找到该元件。
●
如果以前图上有该器件,更新图中该器件的实例,OK 。
●
将以前器件的PCB Package 属性改为7SEG .3+A ,并添加组件引用名,例如:D1。注意:器件必须有引用名才能在ARES 中布局。
一、Proteus VSM仿真模型简介
在使用Proteus仿真单片机系统的过程中,经常找不到所需的元件,这就需要自己编写。Proteus VSM的一个主要特色是使用基于DLL组件模型的可扩展性。这些模型分为两类:电气模型(Electrical Model)和绘图模型(Graphical Model)。电气模型实现元件的电气特性,按规定的时序接收数据和输出数据;绘图模型实现仿真时与用户的交互,例如LCD 的显示。一个元件可以只实现电气模型,也可以都实现电气和绘图模型。
Proteus为VSM模型提供了一些C++抽象类接口,用户创建元件时需要在DLL中实现相应的抽象类。VSM模型和Proteus系统通信的原理如下图:
绘图模型接口抽象类:
ICOMPONENT――ISIS内部一个活动组件对象,为VSM模型提供在原理图上绘图和用户交互的服务。
IACTIVEMODEL――用户实现的VSM绘图模型要继承此类,并实现相应的绘图和键盘鼠标事件处理。
电气模型接口抽象类:
IINSTANCE――一个PROSPICE仿真原始模型,为VSM模型提供访问属性、模拟节点和
数据引脚的服务,还允许模型通过仿真日志发出警告和错误信息。
ISPICECKT(模拟)――SPICE拥有的模拟元件,提供的服务:访问、创建和删除节点,在稀疏矩阵上分配空间,同时还允许模型在给定时刻强制仿真时刻点的发生和挂起仿真。ISPICEMODEL(模拟)――用户实现的VSM模拟元件要继承此类,并实现相应的载入数据,在完成的时间点处理数据等。
IDSIMCKT(数字)――DSIM拥有的数字元件,提供的服务:访问数字系统的变量,创建回调函数和挂起仿真。
IDSIMMODEL(数字)――用户实现的VSM数字元件要继承此类,并实现相应的引脚状态变化的判断和回调事件的处理。
IDSIMPIN(数字)――数字组件的引脚,提供检测引脚状态和创建输出事务事件的服务。IDBUSPIN(数字)――数字组件的数据或地址总线,提供检测总线状态和创建总线输出事务事件的服务。
IMIXEDMODEL(混合)――同时继承了ISPICEMODEL 和IDSIMMODEL,元件既有模拟特性,又有数字特性。
为了让Proteus访问用户模型中的成员函数,必须创建用户模型的一个实例。这不能通过类的接口来实现,只能通过从DLL中导出几个C函数来实现,在用户模型中必须实现这些C函数,达到构造和析构用户模型实例的效果。
(1)构造和析构绘图模型实例:
IACTIVEMODEL *createactivemodel (CHAR *device, ILICENCESERVER *ils)
VOID deleteactivemodel (IACTIVEMODEL *model)
(2)构造和析构模拟电气模型实例:
ISPICEMODEL *createspicemodel (CHAR *device, ILICENCESERVER *ils)
VOID deletespicemodel (ISPICEMODEL *model)
(3)构造和析构数字电气模型实例:
IDSIMMODEL *createdsimmodel (CHAR *device, ILICENCESERVER *ils)
VOID deletedsimmodel (IDSIMMODEL *model)
(4)构造和析构混合电气模型实例:
IMIXEDMODEL *createmixedmodel (CHAR *device, ILICENCESERVER *ils)
VOID deletemixedmodel (IDSIMMODEL *model)
二、Proteus VSM仿真模型开发流程
1.绘制元件图形、引脚和相关符号。
2.制作元件,设置元件属性。
3.用C++编写元件,实现电气和绘图模型,编译生成DLL。
4.搭建电路仿真测试。
三、VSM模型开发实例
下面以TG19264A点阵式液晶显示元件的开发为实例详细讲解开发过程。
1.打开Proteus,选择菜单查看>>Snap 10 th,选择左边绘图工具栏的2D graphics box,绘制如图所示的三个图形。