51单片机和PLD的PROTEUS电路仿真

更新时间:2023-07-25 02:23:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

51单片机和PLD的PROTEUS电路仿真

开发研究与设计技术

本栏目责任编辑:谢媛媛

51单片机和PLD的PROTEUS电路仿真

邓力,卢勇,聂雄

(桂林电子科技大学,广西桂林541004)

摘要:本文通过跑马灯的实例介绍了PROTEUS的单片机仿真应用,提出了将PROTEUS和Keil进行关联调试的方法,并通过

PROTEUS对PLD的仿真,提出了用PROTEUS进行PLD仿真的思路。

关键词:PROTEUS;Keil;PLD仿真中图分类号:TP182文献标识码:A文章编号:1009-3044(2007)02-10418-02

SimulateofPLDandMPUforUsingPROTEUS

DENGLi,LUYong,NIEXiong

(GuilinElectricityUniversity,Guilin541004,China)

Abstract:Inthispaper,WeintroducedtheapplicationofPROTEUSthroughtheexampleofthelightofhorserace,puttingforwardtocarryonPROTEUSandKeilstheconnectionadjuststotrythemethod,andreallypassthePROTEUStoimitatetothePLD,putforwardthePROTEUStocarryonthePLDtoimitatethetruewayofthinking.

Keywords:PROTEUS;Keil;PLD

simulation(simulate)

1引言

单片机系统设计其调试过程一般分为软件调试、硬件测试、系统调试3个过程。软件调试较容易进行,但硬件电路测试和系统调试这两个过程必须在电路板制作完成、元器件焊接完毕之后进行。如果采用作为单片机系统的仿真工具PROTEUS,则不用制作具体的电路板也能够完成以上工作。在使用PROTEUS进行系提高统仿真开发成功之后再进行实际制作,可以降低开发成本、开发速度。

启动Proteus,画好电路图如图1(注意单片机的晶振和RST可以不用接)所示。

2PROTEUS软件简介

PROTEUS是一种混合电路仿真工具,既可以仿真模拟电路又可以仿真数字电路以及数字、模拟混合电路,这款软件的最大特点就在于它能够模拟单片机。该软件的库里有:51系列、AVR系列和PIC系列,每个系列又有很多种不同的型号可供选择。除了单片机模型,PROTEUS中提供了诸如基于HD44780芯片的字符LCD,基于T6963C芯片的点阵LCD、I2C存储器、RAM、PLD等,这些丰富的元器件使得PROTEUS不仅适合单片机入门,也同

样可以用于单片机开发。其最大的特色在于它能够仿真基于微控制器的设计系统。PROTEUS可以很方便地与KeilC51集成开发环境连接,程序编译好之后,立即可以进行软、硬件结合的系统仿真。

图1

跑马灯电路

在电路中将程序编译的代码加入:

将鼠标移到U1中的AT89C52右击,选择元件,然后左击,调出元件的属性对话框:

PROTEUS还能够进行PLD的电路仿真。一般的PLD设计软件只能进行PLD芯片的时序逻辑仿真,而PROTEUS能进行PLD的电路仿真,可以模拟设计的PLD芯片在电路中实际运行的情

况。

PROTEUS的功能强大,不断推出新版本和新元件,同时使用

者要是自己有能力,也可以设计自己的元件。

3PROTEUS仿真

3.1PROTEUS的单片机仿真

下面以单片机常用的跑马灯程序为例说明如何进行PRO-

TEUS的电路仿真。

首先用KeilC51编写一段跑马灯的程序(见附注,读者如有需要,可跟作者联系),程序中用P1口作为输出口,每个口的灯依次点亮、熄灭,循环进行。然后生成.hex文件。

收稿日期:2006-08-30

图2AT89C52元件属件

作者简介:邓力(1971-),男,广西梧州人,工程师,工程硕士研究生,研究方向为电路系统的EDA技术;卢勇,男,广西恒都输变电工程有限公司工程师;聂雄,男,广西大学计算机与电子信息学院教师。

51单片机和PLD的PROTEUS电路仿真

在属性对话框中,在窗口中的ProgramFile中双击“打开文件图标”:

选择要加入.hex的文件。

将在KeilC51中编译好的.hex文件加入电路中的AT89C52元件模型中。点击Play键观看电路仿真结果:D1-D8灯依次点亮、熄灭,循环进行。电路仿真与程序设计的结果一致。

开发研究与设计技术

为1,接地时为0,输出端口为LED灯亮时端口输出高电平,熄灭时为低电平。

3.2Keil与Proteus的关联调试:

Keil还可以与Proteus的关联调试,Keil作为软件调试界面,Proteus作为硬件仿真和调试界面,下面说一下如何关联keil与proteus:

(1)把安装proteus\MODELS目录下VDM51.dll文件复制到Keil安装目录的\C51\BIN目录中。

(2)修改keil安装目录下Tools.ini文件,在C51字段加入

),保存。TDRV5=BIN\VDM51.DLL“(ProteusDriver”

注意:不一定要用TDRV5,根据原来字段选用一个不重复的

数值就可以了。引号内的名字随意。

(3)打开proteus,画出相应电路,在proteus的debug菜单中选中useremotedebugmonitor。

(4)进入KEIL的project菜单optionfortarget‘工程名’。在

画好的PLD原理图

DEBUG选项中右栏上部的下拉菜单选中ProteusDriver。在进入seting,机子IP设为127.0.0.1,端口号为8000。

(5)在keil中进行debug,同时在proteus中查看直观的结果(LED显示)。

这样就可以像使用仿真器一样调试程序。

为了观察Keil与Proteus的关联调试与前面只单独运行Pro-的程序行中插入一个断点,在Keil“P1_4=0;”teus的不同,可以在

中运行程序,当程序运行至断点处时,Keil中的程序停止在断点处,而Proteus中的电路仿真也对应的在P1—3点亮后停止,如图所示:

图5Proteus仿真电路图

为了使PLD

元件能仿真,还必须在电路中将编译的.jed文件加入PLD元件中:将鼠标移到

U1(16V8)中,右击,选择元件,然后对话框,在属性对话框中,在窗口中的左击,调出“元件的属性”中加入.jed文件:双击“JEDECFuseMapFile:”“打开文件图标”:

,选择在Protel中输出的.jed的文件:

图3程序断点

当在Keil中继续运行程序时,Proteus中的电路也对应的继续运行。

4Proteus对PLD的仿真

首先用Protel99SE完成PLD的设计。完成后的PLD原理图如图4所示。

这是一个3-8译码器的PLD文件。输入信号为目标元件的

2、3、4三个脚,输出信号为目标元件的12-19脚,6-8脚为使能控

制端。

4.1Proteus对PLD的仿真

启动Proteus,绘制好电路图。

电路中I1-I3为输入端口,IO0-IO7为输出端口,端口为高电平时为1,低电平时为0,对应输入端口就是开关打到电源正极时

图616V8元件属性

由前面PLD的设计可得3-8译码器的真值表。

(下转第537页)

51单片机和PLD的PROTEUS电路仿真

是否完全接收无法保证,把得到第一个码丢弃,把第二码中接收到的高、低电平的记数值进行比较,取较小的那个作为波特率的标准,把该记数值乘

人工智能及识别技术

计算,要保证能够接收到一个完整的编码必须要63T,所以在程序中要给出一个宽度为63T的时间窗口来保证正确解码。

4键识别

在遥控使用的过程中常常有短按键和长按键以及双击的情况。短按键处理很简单,可以直接使用前面的流程来编写程序。下面来分析下长按键和双击的识别方法。

4,得到的结果就是1个T对应计数值C_BAUD,这个C_BAUD是用来捕捉编码中

同步头的关键。

本文的解码方法中把同步头的捕捉放到了解码程序中,图4是解码的流程。在每次进行计数加一后都把

4.1长按键

使用2260编码芯片的遥控器,只要按键引脚上有高电平就会持续发码。利用这一点,只要在N个连续的63T时间窗口内都接收到了同一个码便可以识别为是一个长按键动作。N值的大小

决定了长按键的时间阀值。

4.2双击

双击动作实际就是一个的过程。在正确接收到了“通-断-通”一组编码后等待键释放,键释放就是在一个64T的窗口中没有成功解码,检测到按键键释动作放后再给N个连续的64T的时间窗口进行解码,在这N个64T的时间窗口中只要出现一次解码成功则识别为双击,否则识别为普通的短按键,N值的大小决定了双击的最大时间间隔。

C_HBIT或C_LBIT与

C_BAUD进行了一次比较,因

为同步头的低电平时间宽度为7.75T远大于一个码的周期

T,若C_LBIT大于C_BAUD

则说明接收到的是同步头,而

5结束语

文中提出的2260编码芯片的软件解码方法,长键及双击按键的识别方法在笔者近期开发的一个项目得到了应用,实际效果非常好,解码距离不逊于专用解码芯片2272。另外本解码方式还可以对1527、527、2240等同类型的编码芯片进行解码。

参考文献:

C_HBIT大于C_BAUD则说明

接收到的是误码,都必须重新开始解码。在接收到同步头后解码的正确率可达百分之百。

需要注意的是在对2260进行解码时必须要保证解码的时间窗口要大于一组完整的编码的时间。这个时间窗口可以根据前面得到的波特率的记数值C_BAUD来计算,一个完整的编码要接收24码和一个同步头,既32T,按照最坏

图4

软件解码流程

[1]李广弟,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001.

[2]邬伟奇.PT2262编码芯片的软件解码[J].微计算机信息,2004.07.

[3]PT2262、PT2272和P87LPC764单片机的接口设计[EB/OL].http://www.zlgmcu.com/philips/yingrong/51lpc/PT2262-PT2272-

764jiekou.pdf

情况接收是从第二码开始来

(上接第417页)

表1

3-8译码器真值表

在Proteus中点击Play键观看电路仿真结果:当改变输入端的值时,输出端对应的值按真值表中的对应关系改变。

5结语

利用Proteus做单片机仿真实验有如下特点:

编译后马上就可以看到效果,提高效率。(1)速度快。程序修改、

直观形象。硬件电路随时可进行更改,电路修改非(2)方便、常容易。

科学、有效地培养设(3)可自主设计和验证方案,有利于系统、计者的专业实践能力和创新能力。

图7

译码电路对应输入/输出截图

程宝典[M].北京航空航天大学出版社.2003(6).

——一种集单片机模拟和SPICE分析[2]倪升跃.PROTEUS—

于一身的软件.电子世界.2004(12).

[3]房泽平,赵淑霞.用PROTEL99设计开发GAL器件[J].中原工学院学报增刊:167126906(2002)增刊

20068203.

(4)使用Proteus对PLD进行电路仿真,可以直观得观察电路

的运行情况,提前发现设计的错误,可以极大的提高开发效率。

参考文献:

[1]马忠梅,刘滨,戚军,马岩.单片机C语言Windows环境编

本文来源:https://www.bwwdw.com/article/svlm.html

Top