单片机原理与应用:基于AT89S51+Proteus仿真
上QQ阅读APP看书,第一时间看更新

1.3 学习单片机的两个重要软件

学习单片机和学习通用微型计算机系统是一样的,要特别强调理论与实践相结合。单片机只是一个芯片,自身没有开发能力,要借助于开发软件才能学习和实践。本节介绍两个必不可少的软件工具。

1.3.1 单片机仿真软件Proteus简介

单片机只是一个芯片,自身没有开发能力,要借助于开发工具才能学习和实践。开发工具无外乎两种:实验板和软件仿真,然而实验器材的限制常常很难使每个学习者都能得到充分练习的机会,近年来出现的单片机仿真设计软件可以克服这种限制。“仿真”就是利用计算机软件来模拟单片机系统真实运行的情况,Proteus正是这样一种软件。Proteus不仅可以作为单片机应用的重要开发工具,也可以充当一种非常高效的单片机辅助教学手段。用户只需在PC上即可获得接近全真环境下的单片机技能培训,为学习者提供了极大的便利。

Proteus软件是英国Lab Center Electronics公司开发的EDA工具软件,可完成从原理图绘制、PCB设计到单片机与外围电路的协同仿真,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。Proteus软件主要具有以下特点:

1)具有强大的原理图绘制功能。

2)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

3)支持主流单片机系统的仿真。目前支持的单片机类型有8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

4)提供软件调试功能(只支持汇编语言)。具有全速、单步、设置断点等调试功能,同时可以观察各变量以及寄存器等的当前状态,并支持第三方编译和调试环境,如wave6000、Keil等软件。

Proteus软件主要由两个设计平台组成:

1)智能原理图输入系统(Intelligent Schematic Input System,ISIS)——原理图设计与仿真平台,它用于电路原理图的设计以及交互式仿真。

2)高级布线和编辑软件(Advanced Routing and Editing Software,ARES)——高级布线和编辑软件平台,它用于印制电路板的设计,并产生光绘输出文件。

1.3.2 程序开发软件Keil uVision简介

单片机的运行就是执行程序。无论使用汇编语言编程还是C语言编程都要使用编译器,以便把写好的程序编译为机器码程序,并写入单片机内运行。

Keil uVision是德国Keil Software公司开发的专门针对单片机、ARM等微控制器芯片推出的一个集成开发环境(Integrated Development Environment,IDE),是众多单片机应用软件开发中的优秀软件之一。它支持众多不同公司的MCS51架构的芯片,甚至是ARM,它集程序编辑、编译、模拟调试等于一体,支持汇编和C语言程序开发,和常用的微软VC++界面相似,易学易用,在程序调试方面有很强大的功能。因此很多开发工程师或普通的单片机爱好者,都对它十分喜欢。

Keil uVision主要有两个平台,分别是Keil for C51和Keil for ARM。其中,Keil for C51是针对MCS51内核单片机的开发平台,较新的编译器版本为Keil C51 v9.02a,Keil C51增加了很多与8051内核单片机硬件相关的编译特性,使得应用程序的开发更为方便和快捷,生成的程序代码运行速度快,所需要的存储器空间小,完全可以和汇编语言相媲美。

1.3.3 应用举例

下面通过一个AT89S51单片机的简单应用实例,介绍在Proteus和Keil uVision软件平台上进行电路设计、程序编译、调试与仿真验证的主要过程。这两个软件的具体用法在后面章节中还有详细介绍。

图1-1是一个基于AT89S51单片机的计数显示器电路原理图(为了保持清晰,图中省略了单片机的最小工作电路,但不影响仿真),其功能是对按键BUT的按压次数进行计数,并将结果显示在两位数码管显示器上。

978-7-111-61780-8-Chapter01-4.jpg

图1-1 计数显示器电路图

1)启动ISIS,打开图1-2所示的ISIS工作界面。ISIS工作界面主要包括主菜单栏、标准工具栏、绘图工具栏、对象选择按钮、仿真运行控制按钮、对象选择窗口、预览窗口和原理图编辑窗口等。

978-7-111-61780-8-Chapter01-5.jpg

图1-2 ISIS工作界面

2)绘制电路原理图。从ISIS的元件库中拾取所需要的元器件,并放置在原理图编辑窗口中。利用ISIS的连线功能在元器件之间连线,可形成图1-3所示的电路原理图。

978-7-111-61780-8-Chapter01-6.jpg

图1-3 完成的电路原理图

3)启动Keil uVision,选择命令“建立工程”→“输入源程序”→“保存为int-count.c文件”→“加入源程序组”→“编译连接生成int-count.hex目标程序文件”。Keil uVision的编译界面如图1-4所示。

978-7-111-61780-8-Chapter01-7.jpg

图1-4 Keil uVision的编译界面

4)切回Proteus ISIS界面,加载int-count.hex目标程序文件到AT89S51单片机,启动仿真运行,鼠标单击按钮一次则数码管显示的值加一,与真实的效果完全一样。Proteus仿真运行结果如图1-5所示。

978-7-111-61780-8-Chapter01-8.jpg

图1-5 Proteus仿真运行结果界面

978-7-111-61780-8-Chapter01-9.jpg

二维码1-1

至此,一个单片机应用系统的设计与调试过程结束。通常随着单片机应用系统复杂程度的增加,电路设计与程序调试的工作量也会明显增加,要求设计人员必须具有足够的基础知识和经验,因此单片机的学习需要理论与实践相结合的方法。