一个proteus制作元件的例子

上传人:mg****85 文档编号:36623680 上传时间:2018-03-31 格式:DOC 页数:28 大小:1.05MB
返回 下载 相关 举报
一个proteus制作元件的例子_第1页
第1页 / 共28页
一个proteus制作元件的例子_第2页
第2页 / 共28页
一个proteus制作元件的例子_第3页
第3页 / 共28页
一个proteus制作元件的例子_第4页
第4页 / 共28页
一个proteus制作元件的例子_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《一个proteus制作元件的例子》由会员分享,可在线阅读,更多相关《一个proteus制作元件的例子(28页珍藏版)》请在金锄头文库上搜索。

1、最近发现 Proteus 确实是个好东西,于是准备拿它来设计一些东西.不过毕竟元件库不是很全,一些新的器件还是没有,比如说:LBC184.恰巧我要做关于它的东西,只能自己动手做元件了.(只是做图形而已,还没有Model,那个据说要用 VC+写一段程序,改天我研究一下,再写一篇文章)摸索了一下,发现过程很简单,主要分以下几步:1.画元件的外形,添加注释2.定义元件的针脚3.定义元件的 PCB 封装为了保证像我一样的初学者能够看懂,所以俺尽量多放图首先启动 ISIS,如图一所示.利用左边的矩形工具画一个元件的外形,并且调整好大小.然后利用文字工具,在元件的内部添上元件型号,以及简单注释,如图二所示

2、.注意尽量别写中文,因为有的时候会是乱码.然后利用针脚工具,画上一个针脚.单击已经画好的针脚,弹出针脚定义框,填写针脚的名称等内容.如图三所示.把所有的针脚都添加进去,然后右键选中所有的内容,(这一步可是很重要,否则会有错误提示,无法继续进行)然后选择 Libary 菜单下的 Make Symbol在弹出的对话框内填写好 Symbol Name ,Libary ,Type 等内容.注意 Type 选 Graphic 啦.单击 OK,对话框消失,什么反映也没有.如果刚才你没有右键选中整个元件,这会儿会有错误提示. Make Device会弹出个对话框,填写对话框的内容,主要就是 Device N

3、ame 了,其他的不懂可以不添,Next.然后出现定义元件封装类型的对话框,Add再 Add,选择一种封装类型, 比如俺这个件选的是 DIP8,双击, 一个元件可以定义多种封装类型.回到前一窗口,这会儿你可以把原理图上没有画的针脚定义上,比如 Vcc,GND 什么的.然后一路 NEXT,写好元件的名称和注释,最后选择元件类别.一路 NEXT,OK 完成.最后,我们自己画的元件就出现在元件库啦.Proteus 自建元件库一、一、Proteus VSM 仿真模型简介仿真模型简介在使用 Proteus 仿真单片机系统的过程中,经常找不到所需的元件,这就需 要自己编写。Proteus VSM 的一个主

4、要特色是使用基于 DLL 组件模型的可扩 展性。这些模型分为两类:电气模型(Electrical Model)和绘图模型(Graphi cal Model)。电气模型实现元件的电气特性,按规定的时序接收数据和输出数 据;绘图模型实现仿真时与用户的交互,例如 LCD 的显示。一个元件可以只实 现电气模型,也可以都实现电气和绘图模型。Proteus 为 VSM 模型提供了一些 C+抽象类接口,用户创建元件时需要在 DLL 中实现相应的抽象类。VSM 模型和 Proteus 系统通信的原理如下图: 绘图模型接口抽象类:ICOMPONENTISIS 内部一个活动组件对象,为 VSM 模型提供在原理图上

5、 绘图和用户交互的服务。 IACTIVEMODEL用户实现的 VSM 绘图模型要继承此类,并实现相应的绘 图和键盘鼠标事件处理。电气模型接口抽象类:IINSTANCE一个 PROSPICE 仿真原始模型,为 VSM 模型提供访问属性 、模拟节点和数据引脚的服务,还允许模型通过仿真日志发出警告和错误信息 。 ISPICECKT(模拟)SPICE 拥有的模拟元件,提供的服务:访问、创建和删除节点,在稀疏矩阵上分配空间,同时还允许模型在给定时刻强制仿真时刻 点的发生和挂起仿真。 ISPICEMODEL(模拟)用户实现的 VSM 模拟元件要继承此类,并实现相 应的载入数据,在完成的时间点处理数据等。

6、IDSIMCKT(数字)DSIM 拥有的数字元件,提供的服务:访问数字系统的 变量,创建回调函数和挂起仿真。 IDSIMMODEL(数字)用户实现的 VSM 数字元件要继承此类,并实现相 应的引脚状态变化的判断和回调事件的处理。 IDSIMPIN(数字)数字组件的引脚,提供检测引脚状态和创建输出事务事 件的服务。 IDBUSPIN(数字)数字组件的数据或地址总线,提供检测总线状态和创 建总线输出事务事件的服务。 IMIXEDMODEL(混合)同时继承了 ISPICEMODEL 和 IDSIMMODEL, 元件既有模拟特性,又有数字特性。为了让 Proteus 访问用户模型中的成员函数,必须创建

7、用户模型的一个实 例。这不能通过类的接口来实现,只能通过从 DLL 中导出几个 C 函数来实现, 在用户模型中必须实现这些 C 函数,达到构造和析构用户模型实例的效果。(1)构造和析构绘图模型实例: IACTIVEMODEL *createactivemodel (CHAR *device, ILICENCESERVER *i ls) VOID deleteactivemodel (IACTIVEMODEL *model)(2)构造和析构模拟电气模型实例: ISPICEMODEL *createspicemodel (CHAR *device, ILICENCESERVER *ils) VOI

8、D deletespicemodel (ISPICEMODEL *model)(3)构造和析构数字电气模型实例: IDSIMMODEL *createdsimmodel (CHAR *device, ILICENCESERVER *ils) VOID deletedsimmodel (IDSIMMODEL *model)(4)构造和析构混合电气模型实例: IMIXEDMODEL *createmixedmodel (CHAR *device, ILICENCESERVER *il s) VOID deletemixedmodel (IDSIMMODEL *model)二、二、Proteus V

9、SM 仿真模型开发流程仿真模型开发流程 1绘制元件图形、引脚和相关符号。 2制作元件,设置元件属性。 3用 C+编写元件,实现电气和绘图模型,编译生成 DLL。 4搭建电路仿真测试。三、三、VSM 模型开发实例模型开发实例 下面以 TG19264A 点阵式液晶显示元件的开发为实例详细讲解开发过程。1打开 Proteus,选择菜单 查看Snap 10 th,选择左边绘图工具栏的 2D graphics box,绘制如图所示的三个图形。2选择 2D graphics line,给出两条直线,设置 width 为 36th,颜色为灰色。 选择 2D graphics circle,给四个角绘制安装孔

10、。选择 Markers for componen t origin,给三个图形分别绘图符号原点(图中红色部分)。3选择 Device pin,顺时针旋转 90 度,放置 20 个引脚,如图所示。GND、 VCC、V0、Vee、LED+的电气类型选择 PP-Power Pin,D/I、R/W、E、CS1 、RET、CS2、CS3 的电气类型选择 IP-Input,D0D7 的电气类型选择 IO- Bi directional。4右键拖出选择框选择第一个符号,选择菜单库制作符号,命名为 LCD19 264A_C,确定。同理,第二和第三个分别命名为 LCD19264A_1 和 LCD1926 4A_

11、0。当用户调用 drawsymbol (-1),将绘制 LCD19264A_C,调用 drawsym bol (1),将绘制 LCD19264A_1,调用 drawsymbol (0),将绘制 LCD19264A_ 0。5右键拖出选择框选择符号 LCD19264A_C,选择菜单库制作元件,Devic e Properties 设置如图,点击 Next。跳过封装设置,点击 Next。组件属性设置如图,点击 Next。选择数据手册(可选),点击 Next。选择器件库,点击 OK。 6打开 VC,新建工程,选择 Win32 Dynamic-Link Library,给工程命名,建 立空的 DLL 工

12、程。从 Proteus 安装目录的 INCLUDE 文件夹中将 VSM.HPP 复 制到当前工程目录,新建文件 LCD19264A.H 和 LCD19264A.CPP,编写如下 代码。CODE:/* * 文件:LCD19264A.H * 说明:不支持以下特性 * (1) 不支持显示开关控制 * (2) 不支持设置显示起始行 */ i nclude “vsm.hpp“/LCD 常量 #define LCD_BLK_NUM 3 /lcd block number #define LCD_BLK_LEN 64 /lcd block length #define LCD_LINE_NUM 8 /lcd

13、 line number#define LCD_LENGTH (LCD_BLK_LEN*LCD_BLK_NUM) /lcd length #define LCD_WIDTH 64 /lcd width #define BLANK_WIDTH 50 /the width of blank #define SYM_LINEWIDTH 28 /the width of symbol line /LCD 命令掩码 #define CMD_MASK 0xc0 /LCD 命令 #define DISP_ONOFF 0x00 /开关背光 #define SET_STARTLINE 0xc0 /设置起始行 #

14、define SET_XADDRESS 0x80 /设置 X 地址 #define SET_YADDRESS 0x40 /设置 Y 地址 /延时常量 #define DELAY_1s 1000000000000 #define DELAY_1ms 1000000000 #define DELAY_1us 1000000 #define DELAY_1ns 1000 #define DELAY_1ps 1/* LCD 元件既有数字电气特性,也有绘图特性,所以要继承 IACTIVEMODEL 和 IDSIMMODEL */ class LCD19264A : public IACTIVEMODEL

15、,public IDSIMMODEL public: /* 电气模型成员函数 */ /数字电路总是返回 TRUE INT isdigital (CHAR *pinname); /当创建模型实例时被调用,做初始化工作 VOID setup (IINSTANCE *inst, IDSIMCKT *dsim); /仿真运行模式控制,交互仿真中每帧开始时被调用 VOID runctrl (RUNMODES mode);/交互仿真时用户改变按键等的状态时被调用 VOID actuate (REALTIME time, ACTIVESTATE newstate); /交互仿真时每帧结束时被调用,通过传递 ACTIVEDATA 数据与绘图模型通信 ,从而调用 animate()进行绘图 BOOL indicate (REALTIME time, ACTIVEDATA *data); /当引脚状态变化时被调用,主要用来处理数据输入和输出 VOID simulate (ABSTIME time, DSIMMODES mode); /可通过 setcallback()设置在给定时间调用的回调函数 VOID callback (ABSTIME time, EVENTID eventid);/* 绘图模型成员函数 */ /当创建模型实例时被调用,做初始化工作VOID init

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号