毕业设计单片机系统的仿真.docx
《毕业设计单片机系统的仿真.docx》由会员分享,可在线阅读,更多相关《毕业设计单片机系统的仿真.docx(17页珍藏版)》请在冰豆网上搜索。
![毕业设计单片机系统的仿真.docx](https://file1.bdocx.com/fileroot1/2023-2/9/7537b893-60c1-4152-b7af-5aa580fad525/7537b893-60c1-4152-b7af-5aa580fad5251.gif)
毕业设计单片机系统的仿真
目录
1引言1
2.Protues软件介绍及其功能特点2
2.1Protues软件介绍2
2.2Proteus仿真软件组成3
2.3Proteus的特点3
3.Protues软件与KeiluVision的结合4
3.1Proteus与Keil介绍4
3.1.1Proteus4
3.1.2Keil4
3.2proteus的工作过程5
3.3Proteus软件所提供的调试手段5
3.4Proteus和KEILuVision3软件结合的实例6
4 基于Proteus的51系列单片机的仿真7
4.1Proteus对89C51单片机的仿真7
4.2Proteus在单片机仿真方面的优势8
4.3单片机的仿真10
4.3.1电子闹钟的系统设计10
4.3.2硬件系统的仿真11
4.4实验结果12
5.结语12
参考文献12
致谢12
利用proteus实现单片机系统的仿真
()
摘要:
本文介绍了用Proteus软件进行单片机仿真的制作和演示过程,总结了用Proteus软件进行单片机仿真的优点和不足,论述了与KEIL编程软件结合进行编程仿真调试的详细过程。
关键词:
单片机;Proteus软件;Keil软件;仿真
TheSimulationofSingleChipUsingProteus
(CollegeofPhysicsandElectronicEngineering,ElectricalEngineeringandItsAutomation,
Class1Grade2003,0323110106)
Abstract:
ThepaperintroducetheprocessofsimulationofsinglechipbyusingProteussoftware,andsumsupthemeritsanddemeritsofsimulationbyusingProteusandtechniqueofprogrammingsimulationdebuggingwiththecombinationofKeilprogrammingsoftwarearedescribed.
KeyWords:
singlechip,Proteussoftware,Keilsoftware,simulation
1引言
近年来,随着计算机应用技术的发展,单片机仿真技术有了很大提高,仿真工具的出现为单片机初学者提供了一个很好的学习平台。
目前,用于单片机仿真的工具很多,有些主要用于软件仿真,侧重于算法的验证,使用这类软件初学者无法获得类似于直接用硬件开发的经验,而有些仿真软件虽然能用于硬件仿真,但仿真能力有限,特别是对CPU外围的硬件仿真,Proteus是英国Labcenter公司开发的电路分析与实物仿真软件,[1]它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,在单片机CPU和外围器件方面表现出的卓越的仿真能力使其成为目前应用最为广泛的仿真工具之一。
Proteus不仅可以仿真8051系列、AVR系列、PIC系列等主要常见系列单片机及其外围电路,同时Proteus提供了数目庞大,门类齐全的各类常见器件库,具有较强的PCB设计功能,Proteus的操作灵活、自动连线等优点为设计人员提供了一个非常友好的开发界面。
Proteus不断完善的功能和强大的仿真能力被越来越多的设计人员所喜爱,在实践中的应用也越来越广泛。
2.Protues软件介绍及其功能特点
2.1Protues软件介绍
Proteus软件已有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!
Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。
此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“TheRoutetoPCBCAD”。
[2]Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。
用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
其功能模块:
—个易用而又功能强大的ISIS原理布图工具;Proteus混合模型SPICE仿真;ARESPCB设计.
PROSPICE仿真器的一个扩展ProteusVSM:
便于包括所有相关器件的基于微处理器设计的协同仿真。
此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型。
》支持许多通用的微控制器,如PIC,AVR,HC11以及8051;
》交互的装置模型包括:
LED和LCD显示,RS232终端,通用键盘;
》强大的调试工具,包括寄存器和存储器,断点和单步模式;
》IARC-SPY和KeiluVision2等开发工具的源层调试;
》应用特殊模型的DLL界面提供有关元件库的全部文件。
Proteus是目前最好的模拟单片机外围器件的工具,[3]它可以仿真8051系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件)。
当然,软件仿真精度有限,因而不可能所有的器件都找得到相应的仿真模型。
用开发板和仿真器当然是最好选择,可是对于单片机爱好者,或许简单的开发应该是比较好的选择。
Proteus是一种混合电路仿真工具,既可以仿真模拟电路又可以仿真数字电路以及数字、模拟混合电路,这款软件的最大特点就在于它能够模拟单片机。
该软件的库里有:
51系列、AVR系列和PIC系列,每个系列又有很多种不同的型号可供选择。
除了单片机模型,Proteus中提供了诸如基于HD44780芯片的字符LCD,基于T6963C芯片的点阵LCD、I2C存储器、RAM、PLD等,这些丰富的元器件使得Proteus不仅适合单片机入门,也同样可以用于单片机开发。
其最大的特色在于它能够仿真基于微控制器的设计系统。
Proteus可以很方便地与KeilC51集成开发环境连接,程序编译好之后,立即可以进行软、硬件结合的系统仿真。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,我们关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,弥补了实验和工程应用间脱节的矛盾。
2.2Proteus仿真软件组成
Proteus仿真软件包含两个应用程序,一个是ProteusISIS:
它是Proteus系统的中心。
ISIS拥有超过8000元件的大型元件库,包含几千个模拟和数字电路中常用的Spice模型及各种动态元件,如三极管、555定时器等基本元件,[4]74LS00等常用TTL和CMOS集成块,完全适合于仿真模型;ISIS为用户提供了非常友好的作图界面,元件之间的连线方便、灵活、高效率,剪切、移动等操作借助鼠标可简单地实现;ISIS还支持层次图设计,支持WMF、BNP、DXF等多种图形输出格式。
Proteus的另外一个应用程序就是Proteusares,用于直接将ProteusISIS得到的仿真原理图生成PCB版图。
2.3Proteus的特点
Proteus可以完成质量精美可以达到直接出版水平的原理图和PCB版图,和其它仿真软件相比,其功能上最卓越的改进是可以直接仿真CPU及外围电路,这种仿真能力是Multisim等仿真软件望尘莫及的。
同时Proteus还提供了丰富的虚拟工具,如示波器、逻辑分析仪等,用户借助这些虚拟工具可以直接观察电路系统的硬件结果,尽管虚拟仪器的精度有限,但整个操作过程如同利用硬件仿真器和其他测试仪器直接进行硬件开发,还可以根据虚拟仪器的结果直接进行源代码的调试,以上过程不同于纯粹的软件仿真侧重于算法的验证,这种仿真过程是可以给用户带来直接的硬件开发经验。
Proteus的显著的特点如下:
(1)全部满足单片机软件仿真系统的标准,并在同类产品中具有明显的优势;
(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能,有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等;
(3)目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片;
(4)支持大量的存储器和外围芯片。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,是其他任何一款软件不能相比的。
3.Protues软件与KeiluVision的结合
3.1Proteus与Keil介绍
3.1.1Proteus
Proteus是一种电子设计自动化软件,提供SchematicDrawing,Spice仿真与PCB设计功能,这一点Proteus与Multisim比较类似,只不过Proteus可以仿真单片机和周边设备,还可以仿真51系列、AVR,PIC等常用的MCU。
与Keil和Mplab不同的是它还提供了周边设备的仿真,只要给出电路图就可以仿真,例如74系列、40系列、LED、示波器、逻辑分析仪等各种常用的元器件及测试设备;Proteus还提供了大量的元件库,有RAM,ROM,键盘、马达、LED,LCD,AD/DA,部分SPI器件、部分IIC器件等;编译方面支持Keil和Mplab,里面附带有大量的参考实例:
[5]
(1)Proteus可提供的仿真元件资源
Proteus软件提供了可仿真数字和模拟、交流和直流等数千种元器件,达30多个元件库。
(2)Proteus可提供的仿真仪表资源
虚拟仪器仪表的数量、类型和质量,是衡量仿真软件实验室是否合格的一个关键因素。
在Proteus软件中,理论上同一种仪器可以在一个电路中随意调用。
除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。
这些都尽可能减少了仪器对测量结果的影响。
(3)Proteus可提供的调试手段
Proteus提供了比较丰富的测试信号用于电路的测试,这些测试信号包括模拟信号和数字信号。
3.1.2Keil
Keil软件是德国开发的一个51单片机开发软件平台,最初只是一个支持C语言和汇编语言的编译器软件。
后来随着开发人员的不断努力地改进以及版本的不断升级,现在已经成为一个重要的单片机开发平台。
不过Keil的界面并不是非常复杂,操作也不是非常困难,很多工程师开发的优秀程序都是在Keil的平台上编写出来的。
可以说它在EDA领域是一个比较重要的软件。
(1)Keil的uVision2可以进行纯粹的软件仿真(仿真软件程序,不接硬件电路);也可以利用硬件仿真器,搭接上单片机硬件系统,在仿真器中载入项目程序后进行实时仿真;还可以使用uVision2的内嵌模块KeilMonitor51,在不需要额外的硬件仿真器的条件下,搭接单片机硬件系统对项目程序进行实时仿真。
(2)uVision2调试器具备所有常规源及调试,符号调试特性以及历史跟踪、代码覆盖、复杂断点等功能。
DDE界面和shift语言支持自动程序测试。
对于初次使用Protues软件的人可能还不知道如何设置,现在把设置步骤如下:
(1)把Proteus安装目录下VDM51.dll文件复制到Keil安装目录的\C51\BIN目录中;
(2)编辑C51里tools.ini文件,加入:
TDRV1=BIN\VDM51.DLL("PROTEUSVSMMONITOR-51DRIVER");
(3)KeiluVision里设置:
project-->optionsforproject-->debugtab;
(4)选中useProteusVSMmonitor51(如果想用两台电脑仿真,双击setting,输入IP地址或者DNSname);
(5)载入Proteus文件;
(6)Proteus里选择DEBUG-->useremotedebugmonitor;
进入KEIL的project菜单optionfortarget'工程名'。
在DEBUG选项中右栏上部的下拉菜选中ProteusVSMMonitor-51Driver。
在进入seting,如果同一台机IP名为127.0.0.1,如不是同一台机则填另一台的IP地址。
端口号一定为8000注意:
可以在一台机器上运行keil,另一台中运行Proteus进行远程仿真;
(7)打开KEILuVision,按F5开始仿真。
3.2proteus的工作过程
运行Proteus的ISIS程序后,进入该仿真软件的主界面。
在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。
通过工具栏中的p(从库中选择元件命令)命令,在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。
3.3Proteus软件所提供的调试手段
Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
对于单片机硬件电路和软件的调试,Proteus提供了两种方法:
一种是系统总体执行效果,一种是对软件的分步调试以及具体的执行情况。
对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pauseanimation菜单项或pause键暂停系统的运行;或用Debug菜单下的stopanimation菜单项或shift-break组合键停止系统的运行。
其运行方式也可以选择工具栏中的相应工具进行。
对于软件的分步调试,应先执行debug菜单下的start/restartdebugging菜单项命令,此时可以选择stepover、stepinto和stepout命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。
在执行了start/restartdebuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。
3.4Proteus和KEILuVision3软件结合的实例
本节将通过一个流水灯试验具体介绍Proteus与KeiluVision的结合与应用。
(1)通过Proteus画原理图:
(图1)
图1流水灯试验Proteus原理图
(1)在KeiluVision软件别写程序:
#include
#include
voiddelayms(unsignedcharms)
//延时子程序
{
unsignedchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
main()
{
unsignedcharLED;
LED=0xfe;
P0=LED;
while
(1)
{
delayms(250);
LED=_crol_(LED,1);
//循环右移1位,点亮下一个LED
P0=LED;
}
}
(3)对Proteus和KeiluVision软件的设置:
(参考3.1Protues软件与KeiluVision的介绍章节)
(4)运行程序,运行结果如下(图2):
实现流水灯功能
图2仿真效果图
4 基于Proteus的51系列单片机的仿真
4.1Proteus对89C51单片机的仿真
就Atmel公司的系列单片机而言,Proteus支持的型号非常全面,从低端ATtiny10到高端的ATmega128均有可以直接调用的库元件。
下面以89C51为例介绍Proteus支持的仿真功能。
Proteus中的89C51库元件管脚上的标识与该芯片的Datasheet是基本一致的,惟一的不同是隐去了GND和VCC管脚,在绘制原理图的时候用户可以不用对其进行连接,系统默认的设置就是将它们分别连到地和5V电源上。
[6]对单片机系统可进行仿真的功能有:
支持所有的I/O操作,内部的定时器、计数器的模拟(包括输入捕获、输出比较、PWM模式),看门狗定时器,串行UART接口,主、从模式串行SPI接口,支持内置数模转换ADC,支持Atmel的TWI(TwoWireInterface)通信方式,存贮器方面支持外部SRAM扩展以及内置EEPROM的模拟,支持多个微控制器的协同工作仿真等等。
仿真时要做好三步操作:
一是系统硬件电路的设计;二是系统软件的开发与编译;三是系统的综合仿真。
具体流程是:
首先利用Proteus绘制系统硬件原理图;然后利用51系列编译器(如Keil等)进行系统软件设计并生成目标代码(*.hex格式),Keil软件支持C和汇编两种语言形式,是目前和Proteus使用较多的配套软件;在仿真时,只要对原理图中的微处理器芯片指定了经过Keil软件编译过的目标程序的路径,就可以进行系统的实时动态仿真。
另一点值得一提的是:
实时仿真运行的过程中,系统每个网络引脚旁边均会出现一个小正方形的指示,红色代表高电平,蓝色代表低电平,这样开发人员可以不用借助虚拟工具的测量也能很直观的看到每个管脚的电平变化,从而对系统的软硬件性能做出最基本的判断,优化了单片机开发流程。
4.2Proteus在单片机仿真方面的优势
针对于51系列单片机的仿真软件目前有很多种。
常用的有AVRStudio等。
AVRStudio和Proteus都属于代码级的仿真软件,与芯片级仿真不同,代码级仿真完全在计算机上完成,不需要硬件的参与,主要用于查看代码的执行过程和参数变化。
AVRStudio是一款完全免费的AVR单片机集成开发环境,包括AVRAssembler编译器和AVRStudio调试功能,AVRProg串行、并行下载功能和JtagICE仿真功能。
它最主要的功能是观察代码执行过程中单片机内部各个寄存器值的变化,[7]尤其是一些寄存器关键位的置位、复位操作与程序的关系。
利用单步调试功能可以更细致地检查代码的执行过程。
对于内部的定时中断也可以较好的仿真,使实验者清楚了解中断对于整个程序流程的影响。
但是对于外部中断和输入捕获等需要动态外设配合的功能,AVRStudio就显得无能为力了。
同时该软件使用黑色、白色的方块来表示1和0,用以反映寄存器值的变化,当需要观察某些波形时,这样的仿真结果显得很不直观。
Proteus软件具有强大的多窗口、多文件的编辑器、微控制器的集成开发环境、一系列的集成开发工具、图形界面调试器、混合模式的模拟及数字电路仿真器、代码质量检查器等。
硬件和应用软件能进行并发仿真。
最主要的一点是它能以单片机为核心仿真出包括模拟元器件在内的一些动态外设(按键,LED,液晶显示器等),具有图形显示和波形显示的功能。
因此,Proteus不仅仅是一个微处理器的仿真软件,它所支持的大量常用芯片模型为单片机和其他芯片协同仿真复杂的完整系统提供了极大的方便。
Proteus在完整的系统仿真方面是其他单片机仿真软件所不能独立完成的。
这时,Proteus为我们提供的不仅仅是一个单片机的仿真环境,称其为一个虚拟的单片机实验室是完全合适的,只要我们能充分的利用Proteus提供的实验器件就可以完成一个具有相当集成性的单片机系统。
下面通过使用Proteus软件仿真51系列单片机控制LED的实例来说明该工具的使用方法。
本实例的主要内容为:
用AT89C51作为主控芯片来控制8个LED的亮灭,亮灭的方式通过改变程序完成(如可让8个灯依次循环亮灭或先亮四个,延迟一段时间后,先亮的熄灭,再让剩余的四个灯亮等方式),可通过Proteus仿真的结果来调试软硬件;74LS04用来提高输出的驱动能力,电阻起到限流的作用。
仿真过程如下:
第一步:
打开Proteus6Professional(运行ISIS6Professional),绘图界面如图3所示。
图3ProteusISIS6Professional的绘图界面
第二步:
添加所需元件并连接电路图。
本实例所需要元件为:
AT89C51、74LS04、电阻、“地”,所画电路如图4所示。
图4AT89C51控制的8路LED原理图
第三步:
添加仿真文件。
先右键单击AT89C51,再左键单击,在弹出的EditComponent对话框中的ProgramFile一栏选择仿真文件。
本实例的仿真文件为由KeiluVision2编译源文件Led.C而产生的仿真文件Led.hex。
ClockFrequency一栏设置频率为12MHZ。
添加结果如图5所示。
第四步:
单击图标开始仿真。
此时8个LED开始亮灭,根据亮灭的状态进行源代码的调试。
图5仿真文件的添加与设置
4.3单片机的仿真
Proteus可以仿真很多常用的微处理器。
具体来讲,他支持PIC,8051,AVR,HC11,ARM7/LPC2000等系列多种型号的微处理器、微控制器,仿真时只需在设定元件属性时指定下载程序的路径即可进行实时动态仿真。
下面举例具体介绍Proteus在单片机仿真中的应用。
4.3.1电子闹钟的系统设计
用七段数码管显示时间,通过按键可以设置时间及闹铃时间,若到设定的时间则蜂鸣器发出一阵声响。
程序执行后工作指示灯LED亮,表示程序开始执行。
操作键K1~K5动作如下:
K1:
进入设置现在的时间;K2:
设置小时(设置闹铃小时);K3:
设置分钟(设置闹铃分钟);K4:
进入设置闹铃时间;K5:
闹铃ON/OFF设置。
为ON时蜂鸣器连续3次发出声响,设为OFF时发出一次声响。
4.3.2硬件系统的仿真
Proteus既可以仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其他电路的工作情况。
因此在仿真和程序调试时,可以直接看程序运行和电路工作的过程和结果。
首先运行Proteus软件,建立