单片机技术与嵌入式系统 http://www.51c51.net QQ:308828633 E-mail:51c51@china.com.cn
第 1 页
Keil 与 proteus 完美结合教程
Proteus 单片机仿真软件
可与 Keil 或 Pic 的 Mplab 联接使用,单片机初学者的福音,有非常丰富的外围器件可供仿真使用
单片机技术与嵌入式系统 http://www.51c51.net QQ:308828633 E-mail:51c51@china.com.cn
第 2 页
简介:
Proteus6.7 是目前最好的模拟单片机外围器件的工具,真的很不错。可以仿真 51 系列、AVR,PIC 等常用的 MCU 及其外
围电路(如 LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分 SPI 器件,部分 IIC 器件,...)
其实 proteus 与 multisim
比较类似,只不过它可以仿真 MCU!
当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,
可是估计初学者有的可能性比较小吧?
如果你在学 51 单片机,如果你想自己动手做做 LCD,LED,AD/DA,直流马达,SPI,IIC,键盘,...的小
实验的话,试一下吧,不会让你失望的! 用 51 不管你是用汇编或是 C 编程当然要用 keil 啦,uvisoin3 有不少新
特性呢! 使用 keil c51 v7.50 + proteus 6.7 可以像使用仿真器一样调试程序,一般而言,微机实验中用万利仿真
器+电工系自己做的实验板的实验都可以做得到吧! 当然,硬件实践还是必不可少的!!!
本方案只是在没有硬件的情况下让你能像 pspice 仿真模拟/数字电路那样仿真 MCU 及外围电路。另外,即
使有硬件,在程序编写早期用软件仿真一下也不错的!
需要
Proteus6.7 SP3 和 keil c51 v7.50 请到本站:www.51c51.net 下载。本站提供的是完全解密版和专业版。
放心使用。
为了使大家能最快的进入 keil c51 v7.50 + proteus 6.7 仿真本站特别编写了本教程共享,希望对本站大力
支持!
以下文章
作 者:■ 凉山州机电学校 马正强
1 Proteus 介绍
Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工作情况,也能仿真单片机外围电路
或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存
器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从
某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
(1)proteus 的工作过程
运行 proteus 的 ISIS 程序后,进入该仿真软件的主界面。在工作前,要设置 view 菜单下的捕捉对齐和 system
下的颜色、图形界面大小等项目。通过工具栏中的 p(从库中选择元件命令)命令,在 pick devices 窗口中选择
电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在 source 菜单的 Define
code generation tools 菜单命令下,选择程序编译的工具、路径、扩展名等项目;在 source 菜单的 Add/remove
source files 命令下,加入单片机硬件电路的对应程序;通过 debug 菜单的相应命令仿真程序和电路的运行情
况。
(2)Proteus 软件所提供的元件资源
Proteus 软件所提供了 30 多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等。
(3)Proteus 软件所提供的仪表资源
对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。
在 Proteus 软件包中,不存在同类仪表使用数量的问题。
Proteus 还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与
示波器相似但功能更多。
单片机技术与嵌入式系统 http://www.51c51.net QQ:308828633 E-mail:51c51@china.com.cn
第 3 页
(4)Proteus 软件所提供的调试手段
Proteus 提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。
对于单片机硬件电路和软件的调试,Proteus 提供了两种方法:一种是系统总体执行效果,一种是对软件的
分步调试以看具体的执行情况。
对于总体执行效果的调试方法,只需要执行 debug 菜单下的 execute 菜单项或 F12 快捷键启动执行,用 debug
菜单下的 pause animation 菜单项或 pause 键暂停系统的运行;或用 debug 菜单下的 stop animation 菜单项或
shift-break 组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。
对于软件的分步调试,应先执行 debug 菜单下的 start/restart debugging 菜单项命令,此时可以选择 step
over 、step into 和 step out 命令执行程序(可以用快捷键 F10、F11 和 ctrl+F11),执行的效果是单句执行、
进入子程序执行和跳出子程序执行。在执行了 start / restart debuging 命令后,在 debug 菜单的下面要出现
仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。
2 实验的组织
在单片机的理论教学和实验中,所涉及到的内容包括了四方面,即单片机系统资源、软件技术、硬件接口电
路、软件和硬件结合的应用系统。因此教师在进行教学时,应该充分考虑课程的特点并作合理的模块划分,在每
次实验课程前作适当的准备工作,以使教学任务能集中和突出。以下例子中所涉及到的单片机均为 51 系列。
(1)系统资源的实验教学
任何一种单片机均提供了一定的系统资源。对于 51 系列单片机来讲,其所提供的资源是以寄存器和存储器
的方式体现出来的。对于寄存器内容的查看,可以采用多种可以模拟仿真 51 单片机的软件来实现。对于 Proteus
软件来讲,可以执行在 debug 菜单下 registers 菜单项命令打开相应的窗口。对于系统内部存储器的查看,同样
是执行 debug 菜单下的 internal memory 菜单项命令打开相应的窗口。
(2)软件技术
在软件技术的实验中所涉及到的内容主要包括对语言中具体语句的执行效果验证、算法的具体实现、程序中
语法错误的检查和逻辑错误的验证等内容。对于纯软件的实验教学内容,教师在实验设置时应充分考虑到学生的
能力并作好具体的准备工作,以达到预期的教学目的。
例如,对于两个 16 位二进制数的乘法运算 R4R5×R6R7=R3R4R5R6R7 的汇编语言实现。为了较为直观地验证
程序执行的正确性,教师在之前应该设计一个硬件电路,能完成数据的输入(带显示)和结果的输出(显示),并设
计主程序、bcd 码到二进制的转换、二进制码到 bcd 码的转换、bcd 码到显示码的转换、显示等程序的设计,学
生只在实验中进行乘法运算的算法设计并作为子程序加入系统中即可。
(3)硬件接口电路
单片机的接口电路所涉及到的知识涵盖了电子电路设计的相关领域,也涉及到单片机应用系统具体的工作需
要。接口电路部分涉及到线路的连接、元器件的选择、工作方式的设置、电路工作的稳定性和可靠性、电路的空
间需求等等许多方面的知识和内容;但就学生实验来讲,所涉及到的并不需要这么全面。作为 Proteus 仿真软
件,其仿真电路时所模拟的元件真实工作情况,和单片机应用系统的实际工作环境还是有一定的差别。因此只能
单片机技术与嵌入式系统 http://www.51c51.net QQ:308828633 E-mail:51c51@china.com.cn
第 4 页
根据教学的需要,让学生自行设计电路并设置其工作方式。其实验可以通过两种方式组织实施,一是根据具体的
要求,让学生设计接口电路并编写相应的程序;一是根据程序的要求,设计单片机接口电路。
例如,对于键盘输入和显示(数码管)接口电路的设计,可以采用比较多的方法来实现。选择何种方法,与键
盘中键的数量和数码管的个数以及显示的方式等都有关系。选择一种采用几种方法都能实现的键盘键数(如 12
个)和显示位数(如 4 位或 4 位半),提出具体的诸如必须预留的口地址、成本控制等要求,让学生自行设计接口
电路。当然,对于如 A/D 转换等接口电路的设计,教师应该在事先设计出单片机电路的其它部分,并以模块的方
式进行处理,给学生提供电路的接口信号。
(4)软件和硬件结合的应用系统
软件和硬件的结合,就是一个单片机的应用系统了。这一步的实验可以在课程设计中以课题的方式提出来处
理,也可以将其分解成不同的接口部分在接口电路的多次实验中分次完成。在这一阶段,硬件电路的设计已经不
是最为关键的了,而软件系统的设计、调试和运行才是实验的主要内容。因此可以以建议性的意见给出具体的硬
件电路,并提出该电路所需要完成的具体工作,由学生进行软件的设计和调试。
(5)观摩实验
学生自行设计的硬件系统和软件,一般存在着某方面的不足,当给出了相应的实验设计任务后,学生就算能
顺利的完成,但其中所涉及到的有些方式方法并不能在自己的设计中充分领悟。Protues 系统提供了相应的一些
范例,比如单片机系统中的计算器示例,当教师讲述了其中涉及到的所有(子)程序的功能并将其合理地组织在一
起的时候,结合该系统的硬件,将对学生进行程序的设计和系统硬件的设计方法,产生比较大的影响。
3 用 Proteus 软件虚拟单片机实验的优点
采用 Proteus 仿真软件进行虚拟单片机实验,具有比较明显的优势,如涉及到的实验实习内容全面、硬件
投入少、学生可自行实验、实验过程中损耗小、与工程实践最为接近等。当然其存在的缺点也是有的。
(1)内容全面
内容全面包括其能实验的内容包括软件部分的汇编、C51 等语言的调试过程,也包括硬件接口电路中的大部
分类型。对同一类功能的接口电路,可以采用不同的硬件来搭建完成,因此采用 Protues 仿真软件进行实验教学,
克服了用单片机实验教学板教学中硬件电路固定、学生不能更改、实验内容固定等方面的局限性,可以扩展学生
的思路和提高学生的学习兴趣。
(2)硬件投入少,经济优势明显
对于传统的采用单片机实验教学板的教学实验,由于硬件电路的固定,也就将单片机的 CPU 和具体的接口电
路固定了下来。在单片机的实际教学中,如果要涉及到 51 系列,也要涉及到 PIC16 系列,那么为了教学必然要
投入两种单片机的实验教学板;同时在教学过程中所涉及到的接口电路,也需要有较大的投入和储备,以利于实
验的进行和在实验过程中元件损毁后的更换。Protues 所提供的元件库中,大部分可以直接用于接口电路的搭建,
同时该软件所提供的仪表,不管在质量还是数量上,都是可靠和经济的。如果在实验教学中投入这样的真实的仪
器仪表,仅仪表的维护来讲,其工作量也是比较大的。因此采用软件的方式进行教学,其经济优势是比较明显的。
(3)学生可自行实验,锻炼解决实际工程问题的能力
单片机技术与嵌入式系统 http://www.51c51.net QQ:308828633 E-mail:51c51@china.com.cn
第 5 页
实验能力和实验设计能力的培养,是工科学生解决实际工程问题能力中较为重要的。传统的实验教学中,忽
视了学生实验能力的培养,对于实验设计能力的培养,则很少涉及到。因此学生学习了理论,要想将其应用到实
际的工程实践中,其难度是比较大的。还有,学生毕业后想对单片机控制技术或智能仪表等有较深的研究和学习,
如果采用传统的实验教学方法,则学生需要购置的设备比较多,增加了他们学习和研究的投入。采用仿真软件后,
学习的投入变得比较的小,而实际工程问题的研究,也可以先在软件环境中模拟通过,再进行硬件的投入,这样
处理,不仅省时省力,也可以节省因方案不正确所造成的硬件投入的浪费。
(4)实验过程中损耗小,基本没有元器件的损耗问题
在传统的实验教学过程中,都涉及到因操作不当而造成的元器件和仪器仪表的损毁,也涉及到仪器仪表等工
作时所造成的能源消耗。采用 Protues 仿真软件进行的实验教学,则不存在上述的问题,其在实验的过程中是比
较安全的。
(5)与工程实践最为接近,可以了解实际问题的解决过程
在进行课程设计或进行大实验的时候,可以具体的在 Protues 中做一个工程项目,并将其最后移植到一个具
体的硬件电路中,让学生了解将仿真软件和具体的工程实践如何结合起来,利于学生对工程实践过程的了解和学
习。
(6)大量的范例,可供学生参考处理
在系统的设计时,存在对已有资源的借鉴和引用处理,而该仿真系统所提供的较多的比较完善的系统设计方
法和设计范例,可供学生参考和借鉴。同时也可以在原设计上进行修改处理。
(7)协作能力的培养和锻炼
一个比较大的工程设计项目,是由一个开发小组协作完成的。了解和把握别人的设计意图和思维模式,是团
结协作的基础。在 Proteus 中进行仿真实验时,所涉及到的内容并不全是学生独立设计完成的,因此对于锻炼学
生的团结协作意识,是有好处的。
4 一个具体的课程实践
该实验为对 8051 单片机外围电路进行写数据仿真的电路。课程要求学生设计电路并提供仿真和验证的方法。
(1)电 路
为了简化电路,将单片机的时钟电路直接用 CLOCK 信号处理;对于数据的写入,采用逻辑分析的方法进行,
电路如图 1 所示。
(2)验证方法
逻辑仿真验证程序执行的正确性和电路工作的情况,可通过时序图的方式进行验证,如图 2 所示。
(3)程 序
对 1234H 单元写入数据 AAH,循环进行。