轻松学:51单片机开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-30 18:48:54

点击下载

作者:高晓琴

出版社:中信出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

轻松学:51单片机开发

轻松学:51单片机开发试读:

前言

自从20世纪70年代单片微型计算机(简称单片机)诞生以来,单片机以其功能强、体积小、质量轻、价格低、可靠性高、可塑性好等优点得到了广泛的应用。单片机是目前世界上数量最多的计算机。在现代人类生活中,所用的几乎每件电子和机械产品都集成有单片机,因而,单片机已成为工程师们开发嵌入式应用系统和小型智能化产品的首选控制器。

为了满足社会的需求,国内大部分工科专业已经将单片机列为专业必修课或选修课。为了便于读者学习,本书详细讲解了单片机C51语言以及如何使用单片机C51语言来编程控制单片机的硬件资源。最后,以多个典型案例讲解了单片机C51语言的综合应用。通过学习本书,读者不但可以掌握单片机C51语言,而且可以迅速开展单片机的程序开发。

本书特色

1.内容全面,由浅入深

本书涵盖了单片机C51语言程序设计所需掌握的各方面知识点。首先详细介绍了51系列单片机的基础知识,包括C51的集成开发环境和开发流程。然后对单片机C51语言程序设计基础知识点结合实例进行全面详细的介绍,包括数据类型与结构、函数、存储结构以及指针等内容。接着对单片机C51语言的程序设计方式进行了详细的讲解,包括定时计数器、中断设计、串行接口设计以及实时多任务操作系统等内容。最后介绍了电子设计各个领域具有代表性的案例,包括键盘设计、总线接口、单片机通信以及A/D转换、电机控制等方面内容。最后设计了一个完整的综合应用实例。

2.结合实例,强化理解

本书在介绍每个相关知识点的同时,均给出了其在程序设计中的编程示例,每个例子都可以进行仿真与执行,读者可以在学习独立知识点的同时,根据应用示例举一反三,快速掌握相应的知识点在整个程序设计系统中的实际应用。

3.联系硬件,切合需求

本书不仅仅介绍单片机C51语言本身,还对单片机的硬件资源以及如何使用单片机C51语言来编程控制单片机的各种片上资源进行了详细的介绍,主要包括单片机定时器/计数器、中断、USART串行通信接口、EEPROM、看门狗、SPI串行通讯接口、PWM脉宽调制和A/D转换。

4.仿真调试,熟练应用

本书对单片机C51语言的典型开发环境Keilμ Vision3进行了详细的介绍。在讲解过程中,结合完整的C51程序实例,详细阐述了如何仿真调试各种单片机片上资源,使读者能够加深对程序的理解,并可以做到熟练应用。 

5.案例丰富,分析全面 

本书案例丰富,基本上涵盖了电子设计的各个领域,如键盘接口、RS-232通讯、RS-485通讯、SPI总线、掉电参数保护、步进电机控制、电压检测等。本书对每一个案例都详细介绍了其相关的背景知识、硬件知识、电路设计、程序设计以及扩展思考等内容,并对整体程序代码按功能分块进行详细的注释,更加易于读者的理解。

本书可作为大学本、专科单片机课程教材,适合于51单片机的初学者和使用51单片机从事项目开发的技术人员,也可供从事自动控制、智能仪器仪表、电力电子、机电一体化等专业的技术人员参考。第1章外行要懂的单片机知识

在学习MCS-51单片机开发之前,有必要先了解一下单片机的基本概念。本章将介绍单片机的基础知识,包括单片机的基本概念、发展历史、应用领域,以及主要的MCS-51单片机介绍。1.1 概述1.1.1 什么是单片机

自从1946年美国宾夕法尼亚大学研制了世界第一台电子计算机以来,计算机的发展经历了电子管时代、晶体管时代、集成电路时代、大规模及超大规模集成电路时代4个时代。

现代的计算机具有功能强、结构紧凑、系统可靠等特点,其发展趋势是巨型化、微型化、网络化及智能化,都属于大规模集成电路计算机。

把计算机的运算器、控制器、存储器、输入/输出(I/O)接口4个组成部分集成在一个硅片内,于是就出现了以一个大规模集成电路为主要组成的微型计算机——单片微型计算机,简称单片机,由于单片机的重要应用领域为智能化电子产品,一般需嵌入一个设备内,故又称嵌入式微控制器。

目前生产单片机的厂商主要有Intel公司、Motorola公司、Philips公司、ATMEL公司、  Microchip公司、AMD公司、Zilog公司、WinBond公司等,产品型号种类众多,性能各具特色。

本书主要介绍的是在各个应用场合占有较大市场份额的MCS-51结构系列单片机,其中又以ATMEL公司生产的AT89S51单片机为具体实例,讲解MCS-51单片机在嵌入式系统中的使用与设计方法,通过具体的实例,读者不但能够掌握MCS-51单片机的开发,还能够由浅入深地学习单片机系统的设计方法,为学习其他单片机打下厚实的基础。1.1.2 单片机的发展

经过几十年的不断发展,现今的单片机产品在功能、体积、功耗、价格等各个方面已经达到了非常优异的水平,单片机具有以下一些突出的优点。

Example 1.体积小巧灵活,成本低,开发周期短,易于产品化,能方便地集成到各种智能式测控设备及各种智能仪器仪表中,很容易满足仪器设备既智能化又微型化的要求。

Example 2.工作可靠性高,适用温度范围宽。单片机一般按工业测控环境要求设计,能适应各种恶劣的环境。

Example 3.控制能力强,扩展性能好。通过单片机本身或扩展可方便地构建各种规模的应用系统及多机和分布式计算机控制系统。

Example 4.指令系统相对简单,较易掌握,开发成本低,有较丰富的逻辑控制功能指令,能较方便地直接操作外部I/O设备。

单片机的发展过程,可以分为以下4个不同的阶段。(1)1974—1976年:单片机的初级阶段。此阶段的单片机由于受工艺及集成度的限制,采用了双片的形式,并且功能十分简单。例如仙童公司1974年推出的8位单片机F8,只包含了8位的CPU(Central Processing Unit,中央处理单元)、64B RAM(Random Access Memory,随机存取存储器)和两个并行I/O口,需要加一块具有1KB ROM(Read Only Memory,只读存储器)、两个并行口的3851芯片和一个定时/计数器才能实现单片机的基本功能。(2)1976—1978年:单片机的低性能阶段。在此阶段,单片机已经成为一台完整的计算机,但内部资源仍然不够丰富。以Intel公司生产的MCS-48为代表,片内集成了8位CPU、8位定时/计数器、RAM和ROM等,但中断系统也比较简单,且无串并行口,片内RAM和ROM容量较小,寻址范围不大于4KB。在这个阶段Intel公司把单片机推向了市场,这大大促进了单片机的变革。(3)1978—1982年:单片机的高性能阶段。在此阶段,各大厂商推出了各种单片机产品,单片机品种繁多、内部资源丰富、功能强大。以Intel公司生产的MCS-51系列为代表,片内集成了8位CPU、16位定时/计数器、多级中断系统、串行I/O口、RAM和ROM等,而且片内RAM和ROM容量加大,寻址范围可达64KB。部分型号单片机内部还有A/D转换器。(4)1982年至今:16位、32位单片机推出阶段,在此阶段,8位单片机继续巩固发展,其最大的特点是增加了内部资源,实时处理能力更强。

Intel公司生产的MCS-96系列作为16位单片机的代表,其集成度达12万个晶体管,并且具有多通道的10位A/D转换器和高速输入/输出部件,以及脉宽调制输出装置PWM。

同时各大公司纷纷推出自己的高性能8~32位单片机,例如Freescale的PowerPC系列、9S12系列、68H08系列,ATMEL公司推出的AT89系列、AT90系列,Microchip公司推出的PIC16系列、PIC24系列、PIC32系列,TI公司推出的MSP430系列等,单片机市场呈现出一派百花齐放、欣欣向荣的景象。

尽管目前单片机的品种众多,但是受成本约束,性能优良的8位单片机在今后若干年内仍是工业检测、控制应用领域的主角,其中MCS-51单片机以其价格低廉,性能可靠,开发简单等优点占据了市场的很大份额。1.2 单片机的应用领域

目前单片机的应用已深入到国民经济的各个领域,几乎每一个智能产品都集成了至少一片单片机,对各个行业的技术改造和产品更新换代起到了非常重要的作用。单片机的应用领域包括机电一体化、工业控制、智能仪器仪表、实时控制、军民用电子产品等各个方面。1.2.1 机电一体化

机电一体化是机械工业发展的重要方面,机电一体化产品集机械技术、微电子技术、自动化技术和计算机技术于一体,是具有智能化特征的机电产品。

例如现代汽车已经成为机电一体化技术应用最成功的产品之一,在汽车中的发动机控制、ABS控制、门窗控制、安全气囊控制、空调、音响等,无一不是集成了单片机控制的智能化机电一体化产品。

据统计,在一辆高档轿车内,已经集成了30~100个不同的微处理器,如图1-1所示为德国著名企业BOSCH生产的发动机电控单元,采用英飞凌公司生产的C166高性能16位单片机。图1-1 BOSCH采用英飞凌C166单片机开发的发动机电控单元

单片机的出现促进了机电一体化的进程,大大提升了机器的功能,提高了机器的精度、自动化和智能化水平。1.2.2 智能仪表仪器

在实验室、测试设备、计量等各种仪器仪表之中,单片机也得到了广泛的应用。仪器仪表的智能化、测量速度和测量精度的提高、控制功能的复杂、仪器仪表结构的简化等都需要基于单片机开发的测量系统来进行,例如电度表校验仪,电阻、电容、电感测量仪,汽车行驶状态记录仪,化工成分测试仪,智能超声测距仪,发动机测功机等。

如图1-2所示为便携式的人体心电监控仪,其中集成了包括德州仪器生产的MSP430在内的多块单片机处理器,具有体积小,测试方便等优点,可以随时监控病人的身体状态,为病人早日康复提供了良好的技术支持。

单片机在该领域的应用,使传统的仪器仪表向智能仪器仪表发展,从而发生了根本性的变革。图1-2 便携式人体心电监控仪器1.2.3 工业现场控制

在各种实时控制系统中,单片机也得到了非常广泛的应用,如流量、液位、转速、位移、压力、温度、化学成分、酸度等测量和控制工业上过程控制中的各种物理参数,经过单片机的实时处理和控制,可以控制到一个精度很高的水平。

单片机技术和测量技术、自动化控制技术相结合,数据处理和实时控制功能能够得到充分发挥,使系统工作于最佳状态,提高系统的生产效率和产品的质量。

在汽车工业、通信、遥控、遥测、航空航天、工业机器人控制等各种实时控制和实时数据采集系统中,以单片机为基础的控制器都起到了很大的作用。

如图1-3所示为由单片机控制的工业机器人正在工作。图1-3 由单片机控制的工业机器人正在工作1.2.4 军事技术

由于单片机使用温度范围广、可靠性高、适应各种恶劣环境的优异特点,在导弹控制、鱼雷制导控制、智能武器装备、航天飞机巡航系统等领域,单片机也得到了广泛应用。

如图1-4所示为美国生产的战斗机和武装直升机,其中应用了Freescale公司生产的PowerPC高性能32位单片机。图1-4 应用了单片机技术的各种战斗机1.2.5 分布式控制系统

在比较复杂的系统设计中,多采用分布式多机系统,分布式系统具有功能强、可靠性高的特点。

利用单片机构成的分布式测控系统,系统中有若干台由单片机组成的功能各异的仪器设备,之间通过通信相互联系和交换数据,各自完成特定的任务的同时协调完成整个任务,使得能同时采集或处理的信息更多。

如图1-5所示为采用Zigbee技术实现的智能家居分布式管理系统,其中每一个Zigbee控制点都需要一片单片机进行控制。图1-5 基于Zigbee的分布式家居智能管理系统1.2.6 家用电子产品

在民用电子产品中,单片机也得到了很广泛的应用,几乎大部分的现代家用电器里都集成了不止一片的单片机。采用单片机控制能够明显提高产品的性能价格比,提高产品在市场上的竞争力,因此单片机控制的智能家电受到了产品开发商和用户的双重青睐。目前较高档电子玩具、家用电器等几乎都用单片机作为控制器。如图1-6所示为最常见的电饭煲、电冰箱和洗衣机,在这些产品中,都集成了不同的单片机控制系统。图1-6 集成了单片机控制系统的家用电器1.3 第一个发展方向:高性能

高性能化是单片机发展的一大趋势,各大公司为了提高单片机的工作性能,采用了以下一系列措施进行改进。1.3.1 采用双CPU结构

通过采用“双核”结构,提高单片机的处理速度和处理能力。

如图1-7中图1所示为Freescale公司推出的S12XE系列单片机,除了具有一个S12单片机16位的处理器以外,还具备一个XGate辅助处理器,这大大提高了单片机的性能,使其在某些方面的性能已经可以和32位单片机相媲美。

如图1-7中图2所示为英飞凌公司生产的TriCore单片机,它更是在一块单片机里集成了三个CPU核。(1)(2)图1-7 具有多CPU内核的单片机产品1.3.2 增加数据总线宽度

通过增加数据总线宽度,能够有效地提高数据处理速度和处理能力。例如,Freescale公司的S12系列单片机将ALU做成一个16位的运算部件,内部采用16位数据总线。因此,它的处理能力明显优于一般的8位单片机。1.3.3 采用流水线结构

通过采用流水线结构,能够使指令以队列形式出现在CPU中,从而具有很快的运算速度。这类单片机的运算速度要比标准的单片机高出10倍以上,尤其适合实时数字信号处理。1.4 第二个发展方向:存储器大容量化

存储器的大容量化有利于用户开发更复杂、更优异的控制程序,可以通过以下方法实现。1.4.1 不断增大存储容量

新型单片机片内ROM一般可达4KB~8KB,有的甚至可达128KB。随着单片机技术的不断发展,片内RAM容量也不断增大,从原来最常见的256B,到现在一般可达2KB,部分高性能单片机可达128KB甚至更高。

片内存储器存储容量的增大,简化了外围扩展电路的设计,从而提高了产品的稳定性,降低了产品的成本。1.4.2 Flash技术

片内EPROM被E2PROM、Flash技术代替。片内EPROM由于需要高压编程写入、紫外线擦抹删除,存在诸多不便。采用电改写的E2PROM后不需用紫外线擦抹,只需重新写入。特别是能在+5V下读写的E2PROM,既有静态RAM读写操作简便的优点,又有在掉电时数据不会丢失的优点。

片内E2PROM的使用不仅会对单片机的结构产生影响,而且会大大简化应用系统的组成结构,从而提高产品的稳定性,降低产品的成本。

随着闪存(Flash)技术的发展,单片机内置ROM采用Flash技术的比例越来越大,单片机ROM的容量也不断扩大。1.4.3 程序保密处理

一般单片机Flash中的程序很容易被复制,为保护版权,各大单片机厂商公司开始对片内E2PROM或Flash采用加密方式,加密后,用户无法读出其中的程序,能够有效地防止应用程序被抄袭。

如图1-8所示为ATMEL公司生产的集成了Flash存储技术的MCS-51结构单片机AT89S51。图1-8 集成了Flash存储技术的AT89S51单片机1.5 第三个发展方向:接口多样化

接口多样化使得单片机能够处理的系统任务越来越多,越来越复杂。1.5.1 引脚数目不断增多

现今各种单片机都具有不同引脚数目的系列,引脚数目多,则并行口资源丰富,能够满足外围设备及芯片扩展的需要,并配有串行口,以满足多机通信功能的需要。1.5.2 并行口的驱动能力不断提高

并行口的驱动能力不断提高,减少了外围驱动芯片,有的单片机甚至能直接输出大电流和高电压,能直接驱动LED和VFD等。1.5.3 I/O口的逻辑控制功能不断增强

I/O口的逻辑控制功能不断增强,中高档单片机的处理系统能够对I/O接口进行位寻址及位操作,加强了I/O接口控制的灵活性。1.5.4 特殊的串行接口功能不断增多

特殊的串行接口功能不断增多,为单片机构成网络系统提供更便利的条件,单片机集成的串行接口不断增多,例如CAN、SPI、I2C等不同的串行接口都被集中到一个单片机内部中。

如图1-9所示为ATMEL公司生产的集成了CAN总线接口、SPI接口、UART接口等多种串行接口的高性能AT90CAN128型单片机及其应用。图1-9 ATMEL公司生产的集成CAN接口的单片机及应用第2章搭建单片机开发环境

Keil C51是一款十分流行的MCS-51内核单片机C语言开发环境,本章将向读者详细介绍Keil C51的开发方法,使读者能够具备利用C语言开发单片机程序的能力。2.1 认识Keil C51开发工具

MCS-51内核系列单片机作为工业使用的微处理器,从1985年开始,就有对应的C语言编译器,简称C51。并非所有的C51编译器都能产生发挥MCS-51单片机特点的有效代码,下面对各公司的编译器做简要介绍。(1)AMERICAN AUTOMATION

该编译器通过#asm和endasm预处理选择支持汇编语言。此编译器编译速度慢,要求汇编的中间环节支持。(2)ARCHIMEDES

它的鼻祖是瑞典的JAR,是支持分组开关(Bank)的编译器。它和ANSI C兼容,只是需要一个较复杂的连接程序控制文件支持,程序才能运行。(3)AVOCET

该软件包包括编译器、汇编器、连接器、库MAKE工具和编辑器,集成环境类似Borland C和Turbo CO C编译器产生一个汇编语言文件,然后再用汇编器,其编译速度较快。(4)DUNFIELD SHAREWARE

它是非专业的软件包,不支持float、long或结构等数据结构。它不生成重定位代码。(5)FRANKLIN

它的鼻祖是Keil,在代码生成方面领先,可产生最少的代码。它支持浮点和长整数、重入和递归,不提供库源代码,不能生成能汇编的汇编代码,仅产生混合代码,只能修改后汇编。若使用汇编语言,必须分开汇编程序,然后手工连接。

若使用单片模式,它是最好的选择。(6)Keil C51

Keil C51的V8. xx是目前世界上最好的51单片机的汇编和C语言的开发工具。它支持汇编、C语言及混合编程,同时具备强大的软件仿真和硬件仿真功能。

本节主要介绍采用Keil C51的开发方法。2.1.1 μVision 3集成开发环境结构

当使用Keil C51的开发工具进行项目开发时,项目的开发流程和其他软件开发项目的流程极其相似,一般遵循下面几个步骤。

·Example 5. 创建一个项目,从器件库中选择目标器件,配置工具设置;

·Example 6. 用C语言或汇编语言创建源程序;

·Example 7. 用项目管理器生成应用;

·Example 8. 修改源程序中的错误;

·Example 9. 测试、连接应用。

μVision 3集成开发环境集的组成如图2-1所示,主要由以下几个部分组成。图2-1 μVision 3集成开发环境(1)μVision 3 IDE

μVision 3集成开发环境集成了一个项目管理器、一个功能丰富并有错误提示的编辑器及设置选项、生成工具、在线帮助。利用μVision 3可以创建源代码并把它们组织到一个能确定目标应用的项目中去。μVision 3能够自动编译、汇编和连接。(2)C51编译器和A51汇编器

源代码由μVision 3 IDE创建,并被μVision 3中集成的C51编译,或者被A51汇编。编译器和汇编器从源代码生成可重定位的目标文件。

μVision 3中的Keil C51编译器完全遵照ANSI C语言标准,支持C语言的所有标准特性。另外,直接支持8051结构的几个特性也被添加到里面。μVision 3中的Keil ASl宏汇编器支持8051及其派生系列的全部指令集。(3)LIB51库管理器

μVision 3中的LIB51库管理器允许由编译器或汇编器生成的目标文件创建目标库。库是一种被特别地组织过,并在以后可以被连接重用的对象模块。当连接器处理一个库时,仅被使用的目标模块才被真正使用。(4)BL51连接器/定位器

μVision 3中的BL51连接器/定位器利用从库中提取的目标模块和由编译器/汇编器生成的目标模块,创建一个绝对地址的目标模块。一个绝对地址目标模块或文件包含不可重定位的代码和数据。所有的代码和数据被安置在固定的存储器单元中。此绝对地址目标文件可以用来进行以下工作。

·Example 10.写入EPROM或其他存储器件;

·Example 11.用μVision 3调试器来模拟和调试;

·Example 12.用仿真器测试程序。(5)μVision 3源代码级调试器是一个快速、可靠的程序调试器。此调试器包含一个高速模拟器,能够模拟整个8051兼容系统,包括片上外围器件和外部硬件。当从器件库中选择器件时,这个器件的特性将自动配置。μVision 3调试器为开发者在实际目标板上测试程序提供了如下两种方法。

·Example 13.安装MON51目标监控器到目标系统,并且通过Monitor-51接口下载程序。

·Example 14.利用高级的GDI(AGDI)接口,把μVision 3调试器绑定到目标系统。(6)Monitor-51

μVision 3调试器支持用Monitor-51进行目标板调试。此监控程序保存在目标板的存储器里,利用串口和μVision 3调试器进行通信。通过使用Monitor-51,μVision 3调试器可以对目标硬件实行源代码级的调试。(7)RTX51实时操作系统

RTX51实时操作系统是一个针对8051系列的多任务核。RTX51实时内核从本质上简化了对实时事件的反应速度要求高,并且复杂的应用系统的设计、编程和调试。

RTX51实时内核是完全集成到μVision 3的C51编译器中的,从而便于使用。任务描述表和操作系统的连接由μVision 3中的BL51连接器/定位器自动控制。2.1.2 Keil C51的C编译器

C语言是一种通用编程语言,它能提供高效的代码、结构化的编程元素及丰富的运算符。C语言不是一个大型的语言,不是为特定领域内的应用而设计的。其普遍性使其可以为各种不同的软件任务提供便利有效的编程方案。使用C语言实现许多应用设计比其他专门语言更有效。

Keil的C51优化交叉编译器是完全符合ANSI美国国家标准协会标准的针对8051系列MCU的C编译器,生成的可执行代码快速、紧凑,在运行效率和速度上可以和汇编程序得到的代码相媲美。和汇编语言相比,用C语言这样的高级语言有很多优势,具体如下:

·Example 15.不必了解处理器的指令集,可以了解8051 CPU的基本结构,但不是必需;

·Example 16.寄存器的分配及各种变量和数据的寻址都由编译器完成;

·Example 17.程序拥有正式的结构(由C语言带来的),并且能被分成多个单独的子函数。这使整个应用系统的结构变得清晰,同时让源代码变得可重复使用;

·Example 18.选择特定的操作符来操作变量的能力提高了源代码的可读性;

·Example 19.可以运用和人的思维很接近的词汇和算法表达式;

·Example 20.编写程序和调试程序的时间得到很大程度的缩短;

·Example 21.C运行连接库包含一些标准的子程序,如格式化输出、数字转换、浮点运算等。

程序的模块结构技术使得现有的程序段可以很容易地包含到新的程序中去。ANSI标准的C语言是一种非常方便、应用广泛、在绝大部分系统中都能够很容易得到的语言。虽然C51是一个兼容ANSI的编译器,但为了支持8051系列,MCU还是加入了一些扩展的内容。C51编译器的扩展内容包括以下方面。

·Example 22.数据类型;

·Example 23.存储器类型;

·Example 24.指针;

·Example 25.重入函数;

·Example 26.中断服务程序;

·Example 27.实时操作系统;

·Example 28.和PL/M及A51源程序的接口。2.1.3 Keil C51的A51宏汇编器

A51是一个8051系列MCU的宏汇编器,它把汇编语言翻译成机器代码。A51汇编器允许定义程序中的每一个指令,在需要极快的运行速度、很小的代码空间和精确的硬件控制时使用。其宏特性让公共代码只需要开发一次,从而节约了开发和维护的时间。

A51汇编器宏处理的另一个有用的特性是根据命令行参数或汇编符号进行条件汇编。代码段的条件汇编能帮助用户实现最紧凑的代码,也可以从一个汇编源代码文件产生不同的应用,具体如下:

·Example 29.A51汇编器产生一个列表文件,包括行号、汇编时的时间和日期。关于汇编器运行和目标文件产生的信息被记录下来。

·Example 30.通常情况下,程序从EXTERN、PUBLIC和SEGMENT指示器开始。列表文件包含了每个源代码的行号及每行产生的代码。

·Example 31.列表文件包含了错误和警告信息,错误和警告的位置被明显地标识出来。

·Example 32.存储器组的占用信息和程序中的错误和警告总数包括在文件的结尾处。2.1.4 Keil C51的BL51代码连接器/定位器

BL51是具有代码分段功能的连接器/重定位器,它把一个或多个目标模块组合成一个8051的执行程序。此连接器处理外部和全局数据,并将可重定位的段分配到固定的地址上。BL51连接器处理由Keil C51编译器、A51汇编器和Intel PL/M-51编译器、ASM-51汇编器产生的目标模块。连接器自动选择适当的运行库并连接用到的模块。BL51主要有以下的功能。(1)数据地址管理

BL51连接器通过覆盖那些不会同时使用的函数变量的技术来管理8051有限的内部存储器资源,这极大地降低了大多数应用对存储器的需求。BL51连接器分析函数间的引用以决定存储的覆盖策略。可以用OVERLAY指示器来人为控制函数间的引用,这些引用被连接器用来确定哪些存储器单元是独占的。NOOVERLAY指示器让BL51不进行覆盖连接,这在使用间接调用的函数或为了调试而禁止覆盖时比较有用。(2)代码段

BL51连接器支持创建程序空间大于64KB的应用。8051不能直接操作大于64KB的代码地址空间,必须由外部硬件来交换代码段。完成此功能的硬件必须要在8051中运行的程序的控制中,这就是段(块)切换。BL51连接器管理一个公共的区域和32个最大64KB空间的块,从而达到总共2MB的分段程序空间。支持外部硬件块切换的软件包括的一个可编辑的汇编程序,以适应应用中的特定硬件平台。

BL51连接器可以定义哪个段装载哪个特定的程序模块。通过仔细考虑,把各个函数分配到不同的段中来创建一个非常大而有效的应用。(3)公共段

段切换程序中的公共段是一块在任何时候、在所有的段中都可以访问的存储器。此公共段在物理上就不能切换出局或变换地址空间。

在公共段中的代码可以复制到每个段中(如果切换整个程序空间)或保存在一个独立的地址空间,或者器件中(公共段不用切换)。

公共段包含必须在所有时候都要用到的程序段和常量。它还可以包括经常使用的代码。默认情况下,以下的代码内容将自动分配在公共段中。

·Example 33.复位和中断向量;

·Example 34.代码常量;

·Example 35.C51中断服务进程;

·Example 36.分段开关跳转表;

·Example 37.一些C51实时运行库函数。(4)执行其他段中的程序

分段代码空间是通过附加的由软件控制的地址线控制的,这些地址线可以由8051的I/O口或位于存储器空间的锁存器来模拟。HL51连接器为位于其他段中的函数生成一个跳转表,当用C语言调用一个位于不同段中的函数时,要先切换段,再跳到目标程序运行,完成后再回到调用的那个段中去,并继续往下执行。这种段切换处理需要附加50个CPU指令周期和占用2字节堆栈空间。

如果把相关的函数分配在相同的段中,将显著地提高系统的性能。需要从多个段中经常调用的函数应该位于公共段中。2.1.5 Keil C51的OC51目标文件转换器

OC51目标文件转换器为在目标模块中的每个代码区创建绝对目标模块。当用户创建一个存储区切换应用时,BL51产生存储目标模块。符号调试信息复制到绝对目标文件中,并供仿真器使用。用户可以使用OC51目标文件转换器创建绝对目标模块,然后可以使用OH51目标-hex转换器创建Intel hex文件。2.1.6 Keil C51的OH目标HEX文件转换器

OH51目标HEX转换器为绝对目标模块创建Intel hex格式的文件,而绝对目标模块可以由BL51或OC51创建。Intel hex文件是ASCII文件,包含了应用程序的十六进制表达式,将它们装入器件编程器应可以很容易地写入EPROM器件。2.1.7 Keil C51的LIB51库文件管理器

LIB5l库文件管理器可以使用户创建和保存库文件,一个库文件是一个或多个目标文件的格式化集合。库文件提供简便的方法,可以组合和引用大量的目标文件。BL5l可以有效地使用库文件,库管理器可以使用户创建一个库文件、将目标模块加入库文件、从库文件中移去目标模块和列出库文件的内容。使用库有一系列优点。安全、高速和减少磁盘空间仅是使用库的一小部分原因。另外,库提供了一个很好的分发大量函数而不用分发大量函数源代码的手段。例如,ANSI C的库是作为库文件提供的。

用户很容易创建自己的库,用来包含像串行I/O、CAN和闪存操作这样一些需要重复用到的流程。一旦这些流程调试无误后,就可以把它们转换成库。由于库只包含目标模块,不用在每个项目中重新编译这些模块,所以生成应用的时间将缩短。

连接定位程序连接最终应用是用到的库文件。库中的模块仅仅在需要的时候才被提取并加到程序中,没有被应用调用的库函数不会出现在最终结果中。连接器把从库中提取出来的模块和其他目标模块做同样的处理。2.2 学习μVision 3集成开发环境

Keil公司于1996年推出了基于Windows系统的C51应用程序集成开发环境,如今Keil C51的IDE(集成开发环境)已经发展到了最新版本μVision 3。

μVision 3是一个集成的软件开发平台,包括全功能编辑器、项目管理器、程序生成工具和环境控制等,其仿真调试的环境又叫DScope5。

Keil公司推出的新的32位最新的编译器版本已经达到Keil C51 V8.xx,可以运行在Windows 9x、Windows NT、Windows Me、Windows 2000和Windows XP等操作系统,功能更加强大,支持的芯片更多。C51 V8.xx版本是目前最高效、灵活的8051开发平台,它可以支持所有MCS-51的兼容内核,也可以支持所有兼容的仿真器,同时支持其他第三方开发工具。

因此,C51 V8.x版本无疑是8051开发用户的最佳选择。μVision 3 IDE为他们提供了单一而灵活的开发环境。2.2.1 μVision 3 IDE

μVision 3 IDE是一个基于Windows系统的开发平台,包含一个高效的编辑器、一个项目管理器和一个MAKE工具。μVision 3 IDE的运行界面如图2-2所示。μVision 3的调试环境如图2-3所示。图2-2 m Vision 3运行环境图2-3 μVision 3调试环境

μVision 3支持所有的Kei1 8051工具,包括C编译器、宏汇编器、连接器/定位器和目标代码到文件转换器。μVision 3通过以下特性加速系统的开发过程。

·Example 38.全功能的源代码编辑器;

·Example 39.器件库用来配置开发工具设置;

·Example 40.项目管理器用来创建和维护项目;

·Example 41.集成的MAKE工具可以汇编、编译和连接嵌入式应用;

·Example 42.所有开发工具的设置都是对话框形式的;

·Example 43.真正的源代码级的对CPU和外围器件的调试器;

·Example 44.高级GDI(AGDI)接口用来在目标硬件上进行软件调试,以及和Monitor-51进行通信;

·Example 45.与开发工具手册、器件数据手册和用户指南有直接的链接。

μVision 3集成开发环境下是以工程(Project)为基础进行开发的。一个工程是由源文件、开发工具选项及编程说明三部分组成的。一个单一的μVision 3工程能够产生一个或多个目标程序。

对于μVision 3的编辑器和调试器,有以下一些显著的特点。(1)源代码编辑器

μVision 3编辑器包含了所有用户熟悉的特性,彩色语法显示和文件辨识都对C源代码进行了优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使用户更快速地检查和修改程序,如图2-4所示。图2-4 μVision 3代码编辑器(2)断点

μVision 3允许用户在编辑时设置程序断点,甚至在源代码未经编译和汇编之前。用户启动调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可被执行,如图2-5所示。

在属性框(Attributes Column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让用户区分程序中已执行和未执行的部分。图2-5 断点的设置(3)变量和存储器

用户可以在编辑器中选中变量来查看其取值,如图2-6所示。图2-6 在编辑器中选中变量来查看其取值

可查看的变量如下:(4)调试函数语言

·μVision 3中,用户可以编写或使用类似C的语言,通过串行终端可以进行调试,具体如下:

·Example 51.内部函数如printf、memset、rand及其他功能的函数;

·Example 52.信号函数模拟产生CPU的模拟信号和脉冲信号;

·Example 53.用户函数扩展指令范围,合并重复动作。2.2.2 μVision 3 C51编译器与测试程序

C51编译器在遵循ANSI标准的同时,为MCS-51兼容微控制器系列进行特别设计。语言上的扩展能让用户使用所有资源,具体有如下一些特点。(1)存储器和特殊功能寄存器的存取C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字-at-能把变量放入固定的存储器,存储模式决定了变量的存储类型。

连接定位器支持的代码区可达32个,这就允许用户在原有64KB ROM基础上扩展程序。在μVision 3的编译器和许多高性能仿真器中,可以支持应用程序的调试。(2)中断功能

C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。

可再入功能是用关键字来定义的,多任务、中断或非中断的代码要求必须具备可再入功能。(3)灵活的指针

C51提供了灵活高效的指针。通用指针用三个字节来存储存储器类型及目标地址,可以在MCS-51兼容单片机的任意存储区内存取任何变量。

特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需1~2字节,因此,指针存取非常迅速。

此外,μVision 3的调试器具备所有常规源代码调试、符号调试特性,以及历史跟踪、代码覆盖和复杂断点等功能,DDE界面和shift语言支持自动程序测试,具体项目如下:(1)CPU和外设模拟装置

μVision 3为MCS-51内核及其衍生产品提供了高速CPU模拟功能和片上扩展口,在对话框内可直接观察和修改I/O值,也可以用预装的C-LIKE宏指令书写符号函数来提供动态输入。(2)目标监控器

μVision 3含一个可配置的监控器,可测试目标器件上的软件。监控器用μVision 3的调试器直接工作,可支持代码区。它要求目标系统具备6KB字节堆栈空间,6KB的代码ROM和256字节的XDATA RAM。(3)MCB517/251启动工具包

在开始一项MCS-51工程时,MCB启动工具有很大帮助。每一个启动工具包括一套2 KB的开发工具和许多可快速运行的示例程序。用户可在检测8051性能的同时,查看开发工具的可行性。

MCB517ACb包含了高性能Infineon C517A单片机,它提供标准8052外围设备和AID转换器、PWM、搜索/比较、8位数据指针和一个高速运算单元。同时包含对81C90CAN控制器和代码区的支持。2.2.3 μVision 3的安装

μVision 3安装的最低硬件和软件配置如下:

·Example 54.具有Pentium、Pentium II或兼容的处理器的个人计算机;

·Example 55.操作系统为Windows 98、Windows 2000、Windows XP或更高;

·Example 56.RAM大于128MB;

·Example 57.60MB的硬盘空余空间。

μVision 3要解压缩以后安装,步骤及需注意的事项如下:(1)进入setup目录,双击setup.exe文件进行安装,如图2-10所示。图2-10 安装界面(2)这时出现欢迎界面,单击【Next】按钮,弹出License界面后,选择μVision 3的安装目录,如图2-11所示。(3)单击【Next】按钮,将出现如图2-12所示的用户信息输入界面,包括姓名、公司和E-mail等。图2-11 指定安装目录图2-12 输入用户信息(4)单击【Next】按钮,按照提示安装,出现如图2-13所示的安装进度界面。图2-13 安装进度界面(5)然后一直单击【Next】按钮,将出现在线用户注册和阅读Release的界面,单击【Next】按钮,完成安装,如图2-14所示。

在安装μVision 3时,默认的安装目录是C:\KEIL。也可以将μVision 3安装到其他文件夹下,例如E:\Keil,则所安装的文件组织结构如下:图2-14 完成安装

·Example 58.E:\Keil\C51\ASM:汇编SFR定义文件和模板源程序文件;

·Example 59.E:\Keil\C51\BIN:8051工具的执行文件;

·Example 60.E:\Keil\C51\EXAMPLES:示例应用;

·Example 61.E:\Keil\C51\RTX51:完全实时操作系统文件;

·Example 62.E:\Keil\C51\RTX_TINY:小型实时操作系统文件;

·Example 63.E:\Keil\C51\C51\INC:C编译器包含文件;

·Example 64.E:\Keil\C51\C51\LIB:C编译器库文件,启动代码和常规I/O资源;

·Example 65.E:\Keil\c51\C51\C51\MONITOR:目标监控文件和用户硬件的监控配置;

·Example 66.E:\Keil\UV3:通用的μVision 3文件。2.3 集成开发环境的使用

直接双击程序图标就可以启动μVision 3,要新建一个项目文件,在μVision 3菜单中单击【Project】|【New Project】命令即可。μVision 3的整个界面如图2-15所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载