8
《51 单片机应用开发实战手册》 作者:华清远见 2 51 单片机软硬件开发环境 本章目标 进行单片机系统的设计,首先要选择合适的软硬件开发环境。本章将对如何建 立 51 单片机的软硬件开发环境进行介绍,另外还将详细介绍如何基于 Keil C51+ Proteus 实现单片机软件仿真的过程。

《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

《51 单片机应用开发实战手册》 作者:华清远见

第 2 章 51 单片机软硬件开发环境

本章目标

进行单片机系统的设计,首先要选择合适的软硬件开发环境。本章将对如何建

立 51 单片机的软硬件开发环境进行介绍,另外还将详细介绍如何基于 Keil C51+

Proteus 实现单片机软件仿真的过程。

Page 2: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

专业始于专注 卓识源于远见

   

‐  2  ‐           

硬件开发环境的建立

建立合适的硬件开发环境是确保单片机系统硬件设计工作顺利高效完成的重要因素。硬件开发环境主

要是指进行硬件开发时所必需的工具、软件、仪器等。进行 8051 单片机系统的硬件开发可选的工具有很

多,这里主要介绍基于本书例程开发所涉及的几个方面。

2.1.1 Protel 99SE

单片机系统的硬件设计工作主要是完成系统原理图和 PCB 的设计。用于原理图和 PCB 设计的 EDA 工

具有很多种,如 Cadence、Mentor、Power PCB、Protel 等。读者可根据自己的实际情况选取。这里简单介

绍目前国内常用的 Protel 99SE。

Protel 设计系统是一套建立在 IBM 兼容机 PC 环境下的 EDA 电路集成设计系统。Protel 设计系统是世

界上第一套将 EDA 环境引入 Windows 环境的 EDA 开发工具,是具有强大功能的电子设计 CAD 软件,一

向以其高度的集成性和扩展性著称于世。Protel 公司 2001 年正式推出了具有 PDM 功能的、强大的 EDA 综

合设计环境 Protel 99SE,它具有原理图设计、PCB 电路板设计、层次原理图设计、报表制作、电路仿真及

逻辑器件设计等功能,是电子工程师进行电子设计最有用的软件之一。

Protel 99 SE 共分 5 个模块,分别是原理图设计、PCB 设计(包含信号完整性分析)、自动布线器、原

理图混合信号仿真、PLD 设计。

Protel 99 SE 学习使用比较简单,且参考书众多,限于篇幅,这里不再详细说明,读者可参考相关书籍

学习它的使用。本书综合例程的电原理图均是用此软件设计的。

2.1.2 开发工具的选择

关于 51 单片机的开发工具市场上已经数不胜数,高中低端应有尽有。结合讲解本书例程需要,也为

一般读者所能接受,充分发挥 AT89S52 在系统可编程的功能,建议选用带 ISP 下载功能的开发板。

2.1.3 硬件开发所需仪器

单片机系统设计是一个软硬件兼施的过程,为了能更好地学习本书例程,建议有条件的读者最好能准

备如下仪器。这对充分理解单片机系统的硬件结构具有很大的帮助。进行硬件开发,所需的仪器主要有直

流稳压电源、逻辑笔、逻辑脉冲信号发生器与模拟信号发生器、万用表、双通道示波器、逻辑分析仪。工

具有烙铁、尖嘴钳、镊子等。

这些工具在硬件设计及调试中会发挥相当大的作用,关于硬件系统的设计调试我们会在第 3 章中详细

介绍。

软件开发环境的建立

建立合适的软件开发环境是确保单片机系统软件设计工作顺利高效完成的重要因素。本书所有案例的

软件均是使用 Keil C51 软件开发系统来进行开发的。下面简要介绍 Keil C51 软件开发系统,更多详细信息

可参考相关书籍。

2.2.1 系统概述

Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统。与汇编相比,C

语言在功能性、结构性、可读性、可维护性上有明显的优势,因而易学易用。本书的所有案例也将以 C 语

言来讲解。如果读者用过汇编语言后再使用 C 语言来开发,体会会更加深刻。

Page 3: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

专业始于专注 卓识源于远见

   

‐  3  ‐           

Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点

是,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生

成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

2.2.2 Keil C51 单片机软件开发系统的整体结构

C51 工具包的整体结构,如图 2.1 所示,其中 uVision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集

成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用 IDE 本身或

其他编辑器编辑 C 或汇编源文件。然后分别由 C51 及 A51 编译器编译生成目标文件(.OBJ)。目标文件可

由 LIB51 创建生成库文件,也可以与库文件一起经 BL51 连接定位生成绝对目标文件(.ABS)。ABS 文件

由 OH51 转换成标准的 Hex 文件,以供调试器 dScope51 或 tScope51 使用进行源代码级调试,也可由仿真

器使用直接对目标板进行调试,也可以直接写入程序存储器(如 EPROM)中。

图 2.1 C51 工具包结构图

2.2.3 Keil C51 的使用

以下使用过程随书光盘中有视频教程。安装完成后启动 Keil C51,界面如图 2.2 所示。

图 2.2 Keil C51 的启动界面

接着按下面的步骤建立第一个项目:

(1)选择 Project →New Project 命令,如图 2.3 所示。弹出一个标准的 Windows 文件对话窗口,如图

2.4 所示。在“文件名”文本框中输入您的第一个 C 程序项目名称,这里我们用“Test”。只要符合 Windows

文件规则的文件名都行。“保存”后的文件扩展名为 uv2,这是 KEILuVision3 项目文件扩展名,以后可以

直接单击此文件以打开先前做的项目。

图 2.3 新建一个工程

Page 4: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

专业始于专注 卓识源于远见

   

‐  4  ‐           

图 2.4 Windows 文件对话窗口

图 2.5 选择单片机型号

(2)选择所要的单片机。这里选择常用的 Atmel 公司的 AT89S52,界面如图 2.5 所示。完成上面步骤

后,就可以进行程序的编写了。

(3)要在项目中创建新的程序文件或加入旧程序文件。如果没有现成的程序,那么就要新建一个程序

文件。在 Keil 中有一些程序的 Demo,可以参考。在这里我们还是以一个 C 程序为例介绍如何新建一个 C

程序并加到第一个项目中。单击图 2.6 中 1 的新建文件的快捷按钮,在 3 中出现一个新的文字编辑窗口,

这个操作也可以通过选择菜单 File→New 命令或【Ctrl+N】组合键来实现。下面是经典的一段程序,会编

程的读者大概都见过:

#include <AT89X51.H>

#include <stdio.h>

void main(void)

{

SCON = 0x50; //串口方式 1,允许接收

TMOD = 0x20; //定时器 1 定时方式 2

TCON = 0x40; //设定时器 1 开始计数

TH1 = 0xE8; //11.0592MHz 1200 波特率

TL1 = 0xE8;

TI = 1;

TR1 = 1; //启动定时器

while(1)

{

printf ("Hello World!\n"); //显示 Hello World

}

}

图 2.6 新建一项目文件

(4)单击图 2.6 中的 2 保存新建的程序,也可以选择 File→Save 命令或按【Ctrl+S】组合键进行保存。

因为是新文件所以保存时会弹出类似图 2.4 的文件操作窗口,我们把第一个程序命名为 test1.c,保存在项

目所在的目录中,这时会发现程序单词有了不同的颜色,说明 Keil 的 C 语法检查生效了。如图 2.7 所示,

在屏幕左边的 Source Group1 文件夹图标上单击鼠标右键弹出快捷菜单,在这里可以做在项目中增加减少

文件等操作。我们选择 Add File to Group ‘SourceGroup 1 命令,弹出文件窗口,选择刚刚保存的文件,单

击 ADD 按钮,关闭文件窗口,程序文件已加到项目中了。这时在 Source Group1 文件夹图标左边出现了

一个+号说明,文件组中有了文件,单击它可以展开查看。

Page 5: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

专业始于专注 卓识源于远见

   

‐  5  ‐           

图 2.7 添加项目文件

在图 2.8 中,1、2、3 都是编译按钮,不同的是:1 用于编译单个文件;2 用于编译当前项目,如果

先前编译过一次之后文件没有进行编辑改动,这时再单击是不会再次重新编译的;3 用于重新编译,每点

击一次均会再次编译链接一次,不管程序是否有改动。在 3 右边的是停止编译按钮,只有点击了前 3 个中

的任意一个,停止按钮才会生效。在 4 中可以看到编译的错误信息和使用的系统资源情况等。

图 2.8 编译界面

(5)C 程序文件加入项目中后,下面就是编译运行了。这个项目我们只是用做学习新建程序项目和编译

运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的 Hex 文件,若想生成 Hex

文件,用鼠标右键单击 Target 1, 选择 Option for Target 1 命令,如图 2.9 所示,出现界面如图 2.10 所示。选

中 Create HEX File 复选框,单击“确定”按钮。

图 2.9 选中目标设置 图 2.10 生成 HEX 文件设置

Page 6: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

专业始于专注 卓识源于远见

   

‐  6  ‐           

(6)进入调试模式,软件窗口样式大致如图 2.11 所示。图中 1 为运行,当程序处于停止状态时才有

效。2 为停止,程序处于运行状态时才有效。3 是复位,模拟芯片的复位,程序回到最开头处执行。按 4

按钮我们可以打开 5 中的串行调试窗口,这个窗口我们可以看到从 51 芯片的串行口输入/输出的字符,这

里的第一个项目也正是在这里看运行结果。这些在菜单中也有,这里就不再一一介绍。首先按 4 按钮打开

串行调试窗口,再按运行键,这时就可以看到串行调试窗口中不断的打印“Hello World!”。这样就完成了

您的第一个 C 项目。最后我们要停止程序运行回到文件编辑模式中,就要先按“停止”按钮再按“开启/

关闭调试模式”按钮,然后就可以进行关闭 Keil 等相关操作了。

以上,初步介绍了 KeilC51 的基本使用方法,包含项目文件到创建、编译、运行和软件仿真等。其中

有提到一些功能的快捷键的使用,这在实际的开发应用中可以大大提高工作的效率,建议读者多多使用。

图 2.11 调试界面

Keil C51+ Proteus 实现单片机的软件仿真

Proteus 是目前最好的模拟单片机外围器件的工具。它可以仿真 51 系列、AVR、PIC 等常用的 MCU 及

其外围电路(如 LCD、RAM、ROM、键盘、马达、LED、AD/DA、部分 SPI 器件、部分 IIC 器件等)。

其实 Proteus 与 Multisim 比较类似,只不过它可以仿真 MCU。

使用 Keil C51 + Proteus 可以像使用仿真器一样调试程序。当然,软件仿真精度有限,而且不可能所

有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好的选择。

本方案只是在没有硬件的情况下让你能像 Pspice 仿真模拟/数字电路那样仿真 MCU 及外围电路。另

外,即使有硬件,在程序编写早期用软件仿真一下也是不错的。

本书第 4 章简单案例设计均是用此方法设计的。

关于 Proteus 的使用方法,随书光盘有视频教程,读者也可以参考相关书籍。这里只介绍如何用 Keil C51

+ Proteus 实现单片机的软件仿真。

安装好 Keil C51 和 Proteus 后,按如下步骤操作:

(1)把压缩文件中的 VDM51.DLL(文件见光盘)解压到 Keil 目录下的 C51\BIN。

(2)修改 Keil 目录下的 TOOLS.ini 文件,如图 2.12 所示。如果 Keil 正在运行,则需重新启动。

图 2.12 修改 Keil 目录下的 TOOLS.ini 文件

Page 7: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

专业始于专注 卓识源于远见

   

‐  7  ‐           

(3)使用 ISIS 打开安装目录下的 Labcenter Electronics\Proteus 6 Professional\SAMPLES\ C51 Calculator

原理图,如图 2.13 所示。

图 2.13 C51 Calculator 原理图

(4)打开 Keil 选择 Labcenter Electronics\Proteus 6 Professional\SAMPLES\C51 Calculator 目录下的 Keil

工程。如图 2.14 所示,选择硬件仿真。

图 2.14 在 Keil 中选择硬件仿真器

(5)在 Keil 下重新编译,并按调试按钮。如图 2.15 和图 2.16 所示,Keil 和 Proteus 一起运行起来了,

类似仿真器在工作。

Page 8: 《51单片机应用开发实战手册》download.hqyj.com/download/ebooks/Farsight10-51SCM-02.pdf · 2017. 8. 7. · 第2 章 51 单片机软硬件 ... 2.2.1 系统概述 Keil C51是美国Keil

专业始于专注 卓识源于远见

   

‐  8  ‐           

图 2.15 Keil 的调试界面

图 2.16 Proteus 的调试界面

联系方式

集团官网:www.hqyj.com 嵌入式学院:www.embedu.org 移动互联网学院:www.3g-edu.org

企业学院:www.farsight.com.cn 物联网学院:www.topsight.cn 研发中心:dev.hqyj.com

集团总部地址:北京市海淀区西三旗悦秀路北京明园大学校内 华清远见教育集团

北京地址:北京市海淀区西三旗悦秀路北京明园大学校区,电话:010-82600386/5

上海地址:上海市徐汇区漕溪路 250 号银海大厦 11 层 B 区,电话:021-54485127

深圳地址:深圳市龙华新区人民北路美丽 AAA 大厦 15 层,电话:0755-25590506

成都地址:成都市武侯区科华北路 99 号科华大厦 6 层,电话:028-85405115

南京地址:南京市白下区汉中路 185 号鸿运大厦 10 层,电话:025-86551900

武汉地址:武汉市工程大学卓刀泉校区科技孵化器大楼 8 层,电话:027-87804688

西安地址:西安市高新区高新一路 12 号创业大厦 D3 楼 5 层,电话:029-68785218

广州地址:广州市天河区中山大道 268 号天河广场 3 层,电话:020-28916067