购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

德国Keil公司 推出的C51编译器是一种符合工业标准的8051 C语言开发工具,在业界获得了广泛应用,被公认为是最有效的单片机开发手段之一。Keil 公司于 2010 年推出了全新的开发环境μVision4,其中集成了V9.00版本的C51编译器、Debug调试器、RTX51 Tiny实时操作系统等,全面支持8051单片机主流产品及其众多的派生系列。

Keil C51编译器具有如下优点。

(1)经过优化编译后生成的代码,其效率接近于汇编语言生成的代码。

(2)支持所有8051系列单片机,提供对所有外围硬件部件的操作。

(3)无论在有无工作寄存器区转换的情况下,都能产生快速中断代码。

(4)支持Atmel,Dallas,Infineon,Philips和Temic等公司8051衍生产品上的双数据指针及高速算术单元(arithmetic units)。

(5)能够在整个应用程序中执行全局寄存器优化。

(6)所有应用工具均可产生详细警告信息和错误信息,帮助用户处理难以寻找的问题。

(7)支持再入功能和寄存器区的独立代码,便于中断服务程序和多任务应用程序的执行。

(8)采用分组方式执行代码分组和调试,用户程序代码可以轻松突破64KB空间的限制。

全新集成开发环境μVision4具有强大的项目管理功能,包括源程序文件、开发工具选项以及编程说明等。μVision4内部集成了一个器件数据库(device database),其中储存了各种型号单片机的片上存储器和集成外围功能信息,通过器件数据库可以自动设置C51编译器、A51汇编器、BL51/Lx51链接定位器、Debug调试器等开发工具的功能选项,充分满足用户使用特定单片机的要求。集成仿真调试功能允许在统一的μVision4 环境下进入Debug调试器,提供纯软件模拟仿真(Simulator)和多种硬件驱动调试。Simulator可以在没有单片机硬件的条件下在PC上用纯软件模拟方式完成单片机应用程序仿真调试,硬件驱动Monitor-51可以将带有MON51监控程序的硬件目标板与μVision4无缝连接,直接对目标板进行仿真调试而无须采用昂贵的硬件仿真器。

本书完整地阐述了Keil C51开发工具的功能和使用方法,力求先进性和实用性,给出了大量具体应用实例,不仅介绍了Keil C51自带Simulator软件模拟仿真调试方法,还介绍了Keil C51与Proteus软件联机,实现8051单片机在线虚拟仿真调试方法,同时对广大读者所关心的利用MON51监控程序设计自己硬件目标板的方法做了详细介绍,并在随书光盘中给出了硬件目标板的电路原理图。

· 第1章阐述8051单片机存储器结构,以及在μVision4集成开发环境下进行C51程序设计和编译调试的基本方法。

· 第2章阐述C51程序设计基础知识,详细介绍C51的数据类型、基本语法、变量及其存储模式、函数、数组与指针等。

· 第 3 章阐述μVision4 集成开发环境,详细介绍了工作环境、目标程序的仿真调试以及各种应用选项的设置方法。

· 第4章阐述Keil C51编译器,介绍了各种编译控制命令、数据调用协议,给出了全部C51库函数及其应用范例。

· 第5章阐述A51宏汇编器,介绍了各种汇编伪指令、宏处理以及汇编控制命令。

· 第6章阐述BL51/Lx51链接定位器与实用工具,详细介绍了各种链接控制命令、符号转换工具OH51、库管理工具LIB51的使用方法。

· 第7章阐述RTX51实时多任务操作系统,介绍了RTX51 TINY的功能和使用方法。

· 第8章阐述8051单片机片内资源的C51应用编程,介绍了C51编程的基本原则、常见问题与解决方法,给出了中断系统、定时器/计数器、串行口、片内FLASH IAP等资源的具体应用实例。

· 第9章阐述8051单片机片外扩展的C51应用编程,给出了LED数码管、非编码矩阵键盘、点阵字符型和点阵图形LCD、D/A及A/D转换、I 2 C总线扩展、外部存储器扩展等具体应用实例。

· 第10章阐述Keil C51综合应用编程,介绍了C51编程的若干实际应用技巧,C51与汇编语言混合编程方法以及如何在μVision4中应用硬件目标板,给出了红外遥控系统、简易电子琴、带农历的电子万年历、电子密码锁、DS18B20 多点温度监测系统、STH11数字温-湿度测量系统、单片机SD卡读/写接口等大量综合应用实例。

为帮助读者更好地学习和掌握Keil C51应用方法,本书带有一张CD-ROM光盘,其中包含Keil公司全功能C51评估软件包、本书各章所有范例的程序代码、带有FLASH MON51监控程序的硬件目标板照片、原理电路图以及详细使用方法。

本书在出版过程中得到电子工业出版社的热情支持,孙学瑛编辑提出了许多宝贵意见,彭秀华、陈召军、刘冰、贺媛、许雪怡、郑鹏鹏、秦波、黄存坚等参加了本书的编写工作,在此一并表示衷心感谢。由于笔者水平有限,书中难免会有错误和不妥之处,恳请广大读者批评指正,读者可通过电子邮件ajxu@tom.com,ajxu41@sohu.com直接与作者联系。

徐爱钧 徐阳
2013年9月于长江大学 Wwaoux4qaByy8s3jY2n6rhL+/YX7R5mciRw0cS+yXPS1xUX04RQPW62dAWFAn5Ft



第1章

8051单片机与Keil C51基础

JymNkSVLB5JmK2fSUXMHRZ9XtGqnjBSU9793PHWYba2J7EUwdXinEYn0Umb9nyUv

1.1 8051单片机的存储器组织结构

8051单片机最早由Intel公司推出,它在一块超大规模集成电路芯片上同时集成了CPU、ROM、RAM以及TIMER/COUNTER,使用者只需外接少量的接口电路就可组成自己的专用微处理器系统。目前,市场上8051单片机的硬件支持芯片及软件应用程序的种类十分丰富,除了Intel公司之外,还有NXP、Siemens、ADM、Fujutsu、OKI、ATMEL等公司都推出了以8051为核心的单片机。新一代的8051单片机集成度更高,在片内集成了更多的功能部件,如A/D、PWM、PCA、WDT以及高速I/O口等,在工业测量控制领域内得到极为广泛的应用,因此,有人指出8051单片机已成为事实上的工业标准。目前已有多个厂家生产不同型号的8051单片机,它们各有特点,但其基本内核相同,指令系统也完全兼容。

8051基本内核的结构框图,如图1.1所示。包括:

图1.1 8051基本内核的结构框图

· 中央处理器CPU,用于执行各种指令和运算处理;

· 内部数据存储器RAM,用于存放可以读/写的数据;

· 内部程序存储器ROM,用于存放程序指令或某些常数表格;

· 4个8位的并行I/O接口P0、P1、P2和P3(每个接口都可以用做输入或者输出);

·2个定时器/计数器,用做外部事件计数器或内部定时;

· 中断系统具有5个中断源(2个外部中断、2个定时器中断、1个串行口中断,采用2个优先级的嵌套中断结构,可实现二级中断服务程序嵌套,每一个中断源都可用软件程序规定为高优先级中断或低优先级中断);

·1个串行接口电路(用做异步接收发送器);

· 内部时钟电路(晶体和微调电容需要外接,振荡频率可以高达40MHz)。

以上各部分通过内部总线相连接。在很多情况下,单片机还要和外部设备或外部存储器相连接,连接方式采用三总线(地址、数据、控制)方式,但在8051单片机中,没有单独的地址总线和数据总线,而是与并行I/O口中的P0口及P2口公用的。进行外部扩展时,P0口分别作为低8位地址线和8位数据线,P2口则作为高8位地址线用,所以也是16条地址线和8条数据线。但读者一定要建立一个明确的概念,单片机进行外部扩展的地址线和数据线都不是独立的总线,而是与并行I/O口公用的,这是8051单片机结构的一个特点。

对于采用高级语言Keil C51的用户来说,了解和熟悉8051单片机的存储器组织结构是十分必要的,这样在具体编程时可以合理安排各种变量,最大限度地实现代码优化。从使用者的角度看,8051单片机有如下三个存储器空间。

1.程序存储器ROM 对于普通8051单片机,程序存储器ROM的空间大小为64KB,用于存放程序代码和一些表格常数,称为CODE空间。普通8051可采用“代码分组”(CODE BANK)设计技术,将ROM空间扩展到32×64KB,新型NXP 80C51Mx单片机的ROM空间最大可扩展到16MB,称为ECODE和HCONST空间。8051单片机专门提供一个引脚“ ”来区分片内ROM和片外ROM, 引脚接高电平时,单片机从片内ROM中读取指令,当指令地址超过片内ROM空间范围后,就自动地转向片外ROM读取指令; 引脚接低电平时,所有的取指令操作均对片外ROM进行。程序存储器的某些地址单元是保留给系统使用的:0000H~0002H单元是所有执行程序的入口地址,复位后CPU总是从0000H地址开始执行程序;0003H~002BH单元均匀地分为5段,用于5个中断服务程序的入口,产生某个中断时,将自动进入其对应入口地址开始执行中断服务程序,一些新型8051单片机增加了更多的中断源,它们的中断入口地址也相应地增加。

2.片内数据存储器RAM 对于普通8051单片机,片内数据存储器RAM空间最大为256 B,用于存放程序执行过程的各种变量及临时数据。片内RAM的低128个字节可用直接寻址方式进行访问,也可用间接寻址方式访问,称为DATA区。其中,00H~1FH地址范围平均分为4组,每组都有8个工作寄存器R0~R7,称为工作寄存器区(Register Banks)。20H~2FH地址范围中,每个存储器单元的每一位都可以用位处理指令直接操作,该段地址范围称为位寻址区(BDATA区),其中每一位称为一个bit。对于51子系列单片机仅有上述低128个字节,对于52子系列单片机,增加了高128个字节的片内RAM,地址范围为80H~FFH,该范围只能采用间接寻址方式访问,整个片内RAM地址范围00H~FFH称为IDATA区。与IDATA空间高128个字节(地址范围80H~FFH)重叠部分称为特殊功能寄存器区(SFR SPACE),有些特殊功能寄存器是以位寻址的,其可寻址位称为sbit。NXP公司推出的新型单片机80C51Mx,其片内RAM最大可扩充到64 KB,称为EDATA区。

3.片外数据存储器RAM 对于普通8051单片机,片外数据存储器RAM空间大小为 64 KB,称为XDATA区。在XDATA空间内进行分页寻址操作时,称为PDATA区。有些新型8051单片机的扩充片内RAM,需要用专门的特殊功能寄存器“映像”(MAP)到XDATA地址空间;还有一些新型80C51单片机可以将片外RAM最大扩展到16 MB,称为HDATA区。

普通8051单片机的存储器组织结构如图1.2所示,其中,各部分空间名称说明及地址范围如表1-1所示。

图1.2 普通8051单片机的存储器组织结构

表1-1 普通8051单片机存储器空间分配表

新型8051单片机的扩展存储器组织结构如图1.3所示,其中各部分空间名称说明及地址范围如表1-2所示。

NXP 80C51Mx单片机的存储器组织结构如图1.4所示,其中各部分空间名称说明及地址范围如表1-3所示。

图1.3 新型8051单片机的扩展存储器组织结构

表1-2 新型8051单片机扩展存储器空间分配表

图1.4 NXP 80C51Mx单片机的存储器组织结构

表1-3 NXP 80C51Mx单片机存储器空间分配表 JymNkSVLB5JmK2fSUXMHRZ9XtGqnjBSU9793PHWYba2J7EUwdXinEYn0Umb9nyUv

点击中间区域
呼出菜单
上一章
目录
下一章
×