新编51单片机C语言实战教程:入门、实战、开发、拓展全程攻略(附赠超值视频教程)(txt+pdf+epub+mobi电子书下载)


发布时间:2021-03-03 11:19:38

点击下载

作者:严雨

出版社:电子工业出版社

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

新编51单片机C语言实战教程:入门、实战、开发、拓展全程攻略(附赠超值视频教程)

新编51单片机C语言实战教程:入门、实战、开发、拓展全程攻略(附赠超值视频教程)试读:

版权信息书名:新编51单片机C语言实战教程:入门、实战、开发、拓展全程攻略(附赠超值视频教程)作者:严雨排版:小暑暑出版社:电子工业出版社出版时间:2017-03-01ISBN:9787121309373本书由电子工业出版社有限公司授权北京当当科文电子商务有限公司制作与发行。— · 版权所有 侵权必究 · —前 言

51单片机是应用最为广泛的单片机之一。其具有体积小、功能强、价格低的特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域有着广泛的应用,其应用可以大大提高生产、生活的自动化水平。

本书主要针对MCS-51体系的单片机,从多个方面进行介绍,包括单片机软硬件基础知识、开发工具、开发流程、开发方法和开发技巧。掌握好单片机的开发技术,不仅能够进行相当复杂程度的单片机设计和开发,而且也为进一步学习嵌入式技术打下了良好的基础。

本书通过大量详尽的实例介绍单片机开发的基础知识、基本工具、基本过程及复杂应用,既适合单片机开发的初学者,也适合具有一定单片机开发基础的工程技术人员。

本书共分五篇,各篇的基本内容介绍如下。

第一篇 基础入门篇(第1~5章)

第1章单片机概述,简单介绍单片机的发展历程、单片机的硬软件系统以及开发工具等。

第2章单片机的基础知识,着重讲解51单片机的体系结构、指令系统、I/O端口、中断系统、定时/计数器及串行口等基础硬件知识。

第3章汇编语言和C51基础知识,简单介绍51单片机的伪指令和汇编语言、51单片机的C语言、C51语言程序设计技巧等汇编和C51基础知识。

第4章51单片机的KeilμVision4软件开发环境,详细讲解了Keiμision4的工作界面、KeilμVision4的菜单栏、KeilμVision4的库函数以及应用实例,最后又详解了KeilμVision4的错误信息等内容。

第5章51单片机程序开发流程,简单梳理了编写一个简单的单片机程序、程序编写、把目标文件写入单片机、使用实验板进行实验等过程。

第二篇 内外资源篇(第6~10章)

第6章51单片机的I/O引脚应用,讲解了MCS-51单片机的I/O引脚基础、LED发光二极管、I/O引脚的输出和输入、数码管、数码管的静态显示和动态显示、独立按键和使用I/O引脚扩展独立按键等内容。

第7章51单片机的定时器应用,讲解了51单片机的定时器基础、MCS-51单片机定时计数器的寄存器、51单片机定时计数器的工作方式、定时计数器的中断以及51单片机的定时器使用等内容。

第8章51单片机的外部中断应用,讲解了51单片机的中断系统、MCS-51单片机的中断相关控制寄存器、中断向量地址和中断标志位、MCS-51单片机的中断处理过程、MCS-51单片机的中断服务程序设计以及51单片机的外部中断等内容。

第9章51单片机的串口应用,讲解了51单片机串口相关寄存器、工作方式、中断处理以及51单片机和电脑通信等内容。

第10章矩阵键盘的应用,讲解了矩阵键盘基础和矩阵键盘应用等基本内容。

第三篇 资源拓展篇(第11~20章)

第11章蜂鸣器的应用,介绍了蜂鸣器基础和蜂鸣器发声等内容。

第12章红外接收芯片的应用,讲解了红外接收芯片TL0038B的基础和使用TL0038B进行解码。

第13章液晶显示器的应用,详细讲解了1602液晶显示器以及12864液晶显示器的应用。

第14章P/S2键盘的应用,讲解了P/S2键盘基础以及扩展PS/2键盘应用的内容。

第15章EEPROM的应用,讲解了IIC总线基础、AT24系列EEPROM基础以及读写AT24C02的内容。

第16章温度传感器的应用,讲解了1-Wire总线基础、DS18B20基础以及使用DS18B20测当前温度等内容。

第17章A/D芯片的应用,讲解了A/D转换基础、PCF8591基础以及使用PCF8591进行A/D转换等内容。

第18章D/A芯片的应用,讲解了D/A转换基础以及使用PCF8591进行D/A转换。

第19章外部RAM模块的应用,讲解了单片机系统RAM模块基础知识、单片机系统R AM模块设计以及单片机系统RAM模块调试技巧等。

第20章并行接口的应用,讲解了并行接口芯片简介以及单片机系统并行接口设计过程。

第四篇 实例开发篇(第21~28章)

第21章电子时钟,主要包括功能分析、典型器件介绍、硬件设计以及程序设计等实例开发内容。

第22章数据采集,主要包括简易电压表、温度检测以及检测电流等数据采集实例的开发全过程。

第23章数据通信,主要包括单片机间通信、单片机间多机通信、PC与单片机通信、红外通信、无线数据传输通信等实例开发过程。

第24章显示输出,主要包括LED显示输出、16×2字符型液晶显示、点阵型液晶显示、LCD图片显示等应用实例。

第25章数据读写,主要包括读写U盘、非接触IC卡读写及SD卡读写等应用实例。

第26章信号与算法,主要包括PWM信号的输出、低频信号发生器、数字滤波、F S K信号解码接收、浮点数运算、神经网络的实现以及信号数据的FFT变换等实例。

第27章总线与网络通信,主要包括IIC总线接口的软件实现、SPI总线接口的软件实现、单片机外挂CAN总线接口、单片机外挂USB总线接口、单片机实现以太网接口等实例。

第28章电气传动及控制系统,主要包括电源切换控制、步进电机控制以及智能电动车等应用实例。

第五篇 综合实训篇(第29~30章)

第29章综合实例:多点温度监测系统,本章着重讲解使用AT89C51单片机、DS18B20数字式温度传感器和其他一些芯片,设计一款具有温度检测、显示、存储等功能的多点温度监测系统。

第30章综合实例:全球定位系统,本章主要讲解使用51单片机设计、开发一款接收GPS模块数据,通过LCD模块显示的方式实现了一个简易的GPS系统。

第五篇是在第四篇的基础上,将各个模块综合起来联合开发的大型实例,也是实际开发工作中往往必须掌握的过程。

本书通过五篇的内容讲解,全面介绍了单片机的基础、资源、开发流程,开发实例都带有详细的分析解释,特别适合初学者进行单片机技术的学习。需要说明的是,实践是学习好单片机技术的最佳方式,所以建议读者在阅读本书的基础上,根据本书提供的实例进行一定的硬件设计,并在开发板上进行相应的编程操作,这样能够使您对单片机技术的学习事半功倍。

参加本书编写的有严雨。本书在编写过程中无论从资料收集还是技术交流都得到国内同行的大力支持,在此表示衷心的感谢。

由于时间仓促,加之作者水平有限,书中难免存在缺点和不足之处,敬请读者批评指正。编著者第一篇基础入门篇第1章 单片机概述

单片微型计算机(Single Chip Microcomputer)简称单片机,国际上统称为微控制器(Microcontroller,MCU)。其由中央处理器CPU、随机存取存储器RAM、只读存储器ROM、可编程存储器EPROM、并行及串行输入输出I/O接口电路、定时器/计数器、中断控制器等集成在一块半导体芯片上所构成。

单片机作为当前应用广泛的嵌入式系统的核心部分之一,具有体积小、速度快、功耗低、价格低廉等特点,在工业、教育、日用生活等诸多领域得到了广泛的应用,例如在家用电器的冰箱、微波炉、洗衣机中使用单片机控制系统更加智能地工作;在办公用品的电话、传真、打印机中控制拨号、打印;在工业控制和机电一体化系统中作为核心控制部件工作等。图1.1所示为Atmel公司生产的AT89C51单片机的实物图。图1.1 AT89C51单片机实物图1.1 单片机的发展历史及趋势

单片机自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为4个阶段,3个发展历程(单片微型计算机SCM、微控制器MCU、片上系统SOC)。(1)第一阶段(20世纪70年代初至70年代中期):单片机发展的初级阶段。

1971年 11月 Intel公司首先设计出集成度为2000只晶体管/片的4位微处理器Intel4004,并配有RAM、ROM和移位寄存器,构成了第一台MCS-4微处理器,如图1.2所示。

随后又研制出了8位微处理器Intel8008,如图1.3所示。在此期间Fairchild公司也研制成了8位微处理器F8。这些微处理器虽然还不是真正的单片机,但从此拉开了研制单片机的序幕。图1.2 Intel4004芯片图1.3 Intel8008芯片(2)第二阶段(20世纪70年中期至80年代初期):低性能单片机阶段。

以1976年Intel公司推出的MCS-48(图1.4所示为MCS-48系列一款芯片实物)系列为代表,采用将8位CPU、8位并行I/O口、8位定时器/计数器、RAM和ROM等集成在一块半导体芯片上的单片结构,虽然其寻址范围有限(不大于4KB),也没有串行I/O口,RAM、ROM容量小,中断系统也较简单,但功能可满足一般工业控制和智能化仪器、仪表等的需要。

这种采用将CPU与计算机外围电路集成到一块芯片上的技术,标志着单片机的诞生。从而导致了计算机领域中开始出现两大分支:通用计算机系统和嵌入式系统。这就是SCM的诞生年代,“单片机”一词即由此而来。图1.4 MCS-48系列一款芯片(3)第三阶段(20世纪80年代初期至90年代初期):高性能单片机阶段(向微控制器MCU发展阶段),也是8位单片机的巩固发展及16位单片机的推出阶段。

这一阶段推出的高性能8位单片机普遍带有串行口,有多级中断处理系统,多个16位定时器/计数器,片内RAM、ROM的容量加大,寻址范围可达64KB,个别片内还带有A/D转换接口。

这一阶段中最具典型性的产品为1980年Intel公司推出的MCS-51系列单片机,其他代表产品有Motorola公司的6801和Zilog公司的Z8等。16位单片机以Intel公司的MCS-96系列和Motorola公司的MC68000系列为典型代表。图1.5所示为MC68000系列一款芯片实物。

这类单片机的运算速度大幅度提高,增强了外围电路功能,强化了智能控制的特征,拓宽了单片机的应用范围,使之能用于智能终端、局部网络的接口等。因而,它是目前国内外产品的主流,各制造公司还在不断地改进和发展它。这也是MCU的产生和发展阶段。图1.5 Motorola公司的一款16位单片机(4)第四阶段(20世纪90年代初期至今):8位单片机巩固发展及16位、32位单片机不断推出阶段。图1.6所示为32位单片机的代表——Intel公司的MCS-80960系列芯片实物。图1.6 MCS-80960系列一款芯片

此阶段单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。如:CPU的位数有8位、16位、32位,而结构上更进一步采用双CPU结构或内部流水线结构,以提高处理能力和运算速度;时钟频率高达20MHz甚至更高,使指令执行速度相对加快;提供新型的串行总线结构,为系统的扩展和配置打下良好的基础;增加新的特殊功能部件(如监视定时器WDT、DMA传输、PWM输出、可编程计数阵列PCA、调制解调器、通信控制器、浮点运算单元等);半导体制造工艺的不断进步,使芯片向高集成化、低功耗方向发展等等。

此阶段,单片机内集成的功能越来越强大,并朝着片上系统(SOC)方向发展。以上这些方面的发展,使单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网络等各方面得到大量应用。(5)随着技术的进步,早期的8位中、低档单片机逐渐被淘汰,但8位单片机并没有消失,尤其是以8051为内核的8位单片机,不仅没消失,还呈现快速发展的趋势。

目前,单片机正朝着高性能和多品种方向发展,将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机的主要发展趋势如表1.1所示。表1.1 单片机发展趋势续表

随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。在单片机家族中,8051系列是其中的佼佼者,加之Intel公司将其MCS-51系列中的8051内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、NEC、Atmel、AMD、华邦等,这些公司都在保持与8051单片机兼容的基础上改善了8051的许多特性。

这样,8051就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为8051系列。8051单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,8051可能最终形成事实上的标准MCU芯片。1.2 单片机的硬软件系统及种类

单片机本身就是计算机系统的一个分支。和一般的微型计算机系统一样,一个单片机应用系统也是由硬件系统和软件系统构成。硬件是单片机应用系统的基础,软件则是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务。硬件和软件二者相互依赖,缺一不可。1.2.1 单片机的硬件系统

不论何种类型单片机的硬件系统都包含五个基本组成部分,即运算器、控制器、存储器、输入设备和输出设备。这与通用微型计算机是一样的,但在硬件结构上单片机也有着自己独特之处。(1)存储器ROM和RAM是严格分工的。

ROM用做程序存储器,只存放应用程序和常数表格;而RAM用做数据存储器,存放临时的中间结果、数据和变量(这样的存储器结构称为哈佛结构)。这样的设计方案就是为了使单片机更适用于实时控制系统。配制几千字节到几十千字节的程序存储空间ROM,将已调试好的程序固化其中,不仅掉电时程序不丢失,还可避免程序被修改和破坏,从而确保了程序的安全性。实时控制场合一般仅需容量较小的RAM,用于存放少量随机数据,这样有利于提高单片机的操作速度。(2)输入/输出(I/O)端口引脚通常设计有多种功能。

为了减小单片机的体积,芯片封装的引脚数受到限制。为了解决I/O引脚数量少而实际需要信号功能种类多的矛盾,采用了将一个引脚可以分时复用多项功能的做法。应用设计时,究竟使用多功能引脚的哪一种功能,可由用户根据需要随意确定。(3)单片机的硬件功能具有广泛的通用性。

同一种单片机可以应用在不同的控制系统中,只是其中所配置的软件不同而已。也就是说,给单片机固化上不同的软件,便可形成用途不同的专用智能芯片,有时将这种芯片称为“固件(Firmware)”。

单片机芯片在制作上既要求高性能、结构简单灵活,又要求工作稳定可靠。因此,其设计必须精巧,考虑必须周全,以克服因芯片尺寸有限所带来的许多限制。1.2.2 单片机的软件系统

硬件系统作为实体,为单片机工作提供了基础和条件,但要想使单片机有效的工作,还必须有软件的配合。所谓软件,是指完成各种功能的计算机程序的综合,如操作、监控、管理、控制、计算和自诊断程序等。

一般来说,计算机系统的软件系统包括系统软件、应用软件和程序设计语言3个部分。但单片机由于硬件支持和需要所限,其软件系统也比较简单。

1.监控程序

单片机的系统管理不需要像微型计算机那样复杂的操作系统。8051单片机的系统管理只使用简单的监控程序。

2.集成开发系统

另一重要的系统软件就是单片机集成开发系统软件。它是指用来在计算机上编写、汇编和仿真、调试单片机应用程序的软件。目前采用比较多的有德国Keil公司的Keil C51以及万利公司的Medwin等。本书选用经典的Keil C51作为集成开发环境。系统软件一般不需要用户自己设计,只是开发应用软件的工具而已。

3.应用软件

应用软件是面向生产过程的程序,大多由用户自己根据实际需要进行开发,如A/D转换程序、D/A转换程序、数据采样程序、数据滤波程序、键盘处理程序、显示程序、过程控制程序等。

4.程序设计语言

早期的单片机中通常使用的是汇编语言,但单片机并没有自己专用的汇编程序,用户的应用程序是在其他微型计算机上通过交叉汇编的方法得到的二进制目标码。由于C语言使用的方便性和广泛性,在单片机的开发应用中,除了使用汇编语言外,也逐渐引入了C语言。早在1985年便出现了8051单片机的C语言,简称C51。本书就是以C语言为主来讲解单片机应用程序的开发,更详尽的内容将在以后章节中介绍。1.2.3 单片机的种类

本节主要介绍目前主流的单片机厂商生产的几种使用比较广泛,比较有代表性的单片机芯片。

1.Motorola单片机

Motorola是世界上最大的单片机厂商。从M6800开始,开发了广泛的品种,4位、8位、16位、32位的单片机都能生产,其中典型的代表有:8位机M6805、M68HC05系列,8位增强型M68HC11、M68HC12,16位机M68HC16,32位机M683XX。Motorola单片机的特点之一是在同样的速度下所用的时钟频率较Intel类单片机低得多,因而使得高频噪声低,抗干扰能力强,更适合于工控领域及恶劣的环境。

2.Atmel单片机

Atmel公司的AVR单片机,是增强型RISC内载Flash(闪存)的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。AVR单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,可实现1MIPS的处理能力。AVR单片机工作电压为2.7~6.0V,可以实现耗电最优化。AVR单片机广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器、宇航设备等各个领域。

另外,Atmel公司的ATMEL89系列单片机(简称89系列单片机),也是目前使用比较广泛的一种单片机。该系列单片机与51系列单片机完全兼容,内部含有大容量的Flash存储器,所以,在产品开发及生产便携式商品、手提式仪器等方面有着十分广泛的应用,也是目前取代传统的51系列单片机的主流单片机之一。

3.MicroChip单片机

MicroChip单片机的主要产品是PIC16C系列和17C系列8位单片机,CPU采用RISC结构,分别仅有33,35,58条指令,采用Harvard双总线结构,运行速度快,工作电压低,功耗低,较大的输入/输出直接驱动能力,价格低,一次性编程,小体积;适用于用量大,档次低,价格敏感的产品。在办公自动化设备、消费电子产品、电讯通信、智能仪器仪表、汽车电子、金融电子、工业控制等不同领域都有广泛的应用。PIC系列单片机在世界单片机市场份额排名中逐年提高,发展非常迅速。

4.Philips单片机

Philips公司是国际上生产51兼容单片机种类最多的厂家之一。Philips公司的单片机都属于51系列兼容的单片机,型号有上百种。其8位机的主要产品型号有P80C××、P87C××和P89C××系列。16位机的主要产品型号有PXAC××、PXAG××和PXAS××等。

常用51系列单片机列表如表1.2所示。表1.2 常用51系列单片机列表续表

5.名词解释(1)比特(bit)。

比特即为一位二进制数,用小写“b”表示“bit”。在不会引起与其他进制的数字发生混淆的情况下,一个“比特”也可以说成一“位”。(2)字节(Byte)。

字节由8位二进制数字构成,一般用大写“B”表示。

二进制数字的表示:后面跟“B”或“b”后缀的数字。

十六进制数字的表示:后面跟“H”或“b”后缀的数字,或者前面加“0X”或“0x”前缀的数字。(3)PROM(Programmable ROM)。

可编程(烧写)只读存储器,存储的内容断电后可以维持。内容的存储过程称为“固化”或“烧录”或“烧写”。烧写过程需要外加高电压,一般需要在专用设备上进行。存储每一个比特的最小电路单元是熔丝,熔断后代表“0”,反之代表“1”。这种存储器只能由用户烧写1次,适合小批量产品试制阶段,可缩短产品上市周期。(4)EPROM(Erasable PROM)。

可擦除、可编程只读存储器,烧写过程也需要外加高电压(25V、21V或12.5V)。这种存储器的顶部都开有一个玻璃窗口,用专用的紫外光源产生的紫外线照射该窗口即可擦除其内容。这种存储器可以反复烧写或擦除多次,但擦除过程用时较长,适合在软件定型之前产品的开发和研制阶段或小批量试生产阶段使用。2(5)EEPROM(Electrical EPROM,也记作EPROM)。

电可擦除、可编程只读存储器,这种存储器可以利用5V的电压反复烧写/擦除百万次以上,并且可以在线(也就是焊接到电路板上之后)进行擦/写。不仅适合在软件定型之前产品的开发和研制阶段使用,还可用于数据经常更改而掉电后数据又不可丢失的电器设备中。(6)Harvard(哈佛)体系结构。

在这种结构中程序存储器和数据存储器截然分开,分为2个不同的存储器地址编码空间,并且配备各自独立的寻址机构、寻址方式和操作指令。这种架构是由Harvard Aiken于1944年提出,并在1946年设计出第一台具有该结构的电子计算机,因此被业界称为“Harvard(哈佛)体系结构”。本书所讲的8051系列单片机采用的就是哈佛体系结构。(7)冯·诺依曼体系结构。

在这种结构中程序存储器和数据存储器为一个整体,位于同一个存储器地址编码空间,可随意安排程序或数据的存储区间,存储器访问时也采用相同的操作指令。这种架构是由Von Neumann提出的,并于1951年设计出了第一台具有该结构的电子计算机,所以就被业界称为“Von Neumann(冯·诺依曼)体系结构”,有时也叫作“普林斯顿体系结构”。我们经常用到的微型计算机采用的就是冯·诺依曼体系结构。1.3 单片机开发工具

为了让单片机系统的开发更方便、更有效率,人们研制出一系列的开发工具(Development Tool),主要有:编程器、仿真器、可下载程序并具有仿真功能的单片机学习板,以及具有实模式(非仿真)的单片机控制板等。1.3.1 编程器

编程器是用来将用户编好的程序烧写到单片机内的一个设备。用集成开发系统软件(如Keil C51或Medwin)编写并生成单片机目标代码后,需要用编程器将目标代码,即扩展名为HEX的可执行文件烧写到单片机中。编程器是一个硬件设备,上面有单片机插座及与计算机的连线等。图1.7为TOP2007编程器的实物图。

编程器按功能可分为单一型和万能型。单一型编程器只能对单一系列的某些型号的单片机芯片进行写入操作;万能型编程器能对多种系列的多种型号的单片机芯片进行写入操作。前者结构简单、价格便宜,很适合初学者使用;后者功能强大,但价格较贵。1.3.2 仿真器

用户通过仿真器以及配套的计算机软件,可以对编写好的程序进行调试。一般仿真器都具有设置断点运行、单步运行、查看RAM数据、查看各特殊功能寄存器状态等功能。可方便用户查找程序中存在的问题,加快开发的速度。图1.8为8051系列单片机的一种仿真器实物图。图1.7 TOP2007编程器实物图图1.8 Star51仿真器实物图1.3.3 其他工具

单片机应用系统开发工具除了编程器和仿真器,还有形形色色的单片机开发板。下面介绍两种常见的开发板。

1.单片机学习板

市面上最常见的单片机学习板(如图1.9所示),一般会有一个监控程序(Monitor Program),它平常执行系统的监控程序,让用户可以很容易从RS232(一种串行通信接口标准)通信端口上下载我们所设计的应用程序,当收到特别指令时,再由监控程序切换到用户程序,最后又返回系统的监控程序。图1.9 一款单片机学习板

该类型的学习板通常要比仿真器便宜,但体积较大,仅适合用在学习阶段,教学实验采用比较多,很少用来做实际的开发应用。在学习完本书后,读者也可以自己尝试做一个单片机学习板。

2.实模式控制板

实模式控制板(如图1.10所示)本身就是一块真实的控制板,有足够的I/O口和内存(最多4KB),也具有与PC机通信的能力。当我们设计好程序,并将程序刻录到芯片中,就可以把芯片插到控制板上,如果没办法运行,则表示软件一定有问题(因为控制板硬件已经完全验证无误了),反之,如果程序运行正确,表示该软件已不需要任何修正就可以复制进而销售了。但是它没有仿真器那么多的检查功能和在线排错功能,而且价格比学习板要高。图1.10 一款实模式控制板1.4 单片机的应用领域

由于单片机有许多突出优点,因此其应用领域之广,几乎到了无孔不入的地步。单片机应用的主要领域如下:(1)智能化家用电器。

现在家用电器普遍采用单片机智能化控制代替传统的电子线路控制,以升级换代,提高档次。如智能化洗衣机、空调、电视机、录像机、微波炉、电冰箱、电饭煲以及视听设备等。(2)办公自动化设备。

现代办公室使用的大量通信和办公设备多数嵌入了单片机,如打印机、复印机、传真机、绘图机、考勤机、电话以及通用计算机中的键盘译码、磁盘驱动等。(3)商业营销设备。

在商业营销系统中已广泛使用的电子秤、收款机、条形码阅读器、IC卡刷卡机、出租车计价器,以及仓储安全监测系统、商场保安系统、空气调节系统、冷冻保险系统等都采用了单片机控制。(4)工业自动化控制。

工业自动化控制是最早采用单片机控制的领域之一,如各种测控系统、过程控制、机电一体化、PLC等。在化工、建筑、冶金等各种工业领域都要用到单片机控制。(5)智能化仪表。

采用单片机的智能化仪表大大提升了仪表的档次,强化了功能,如数据处理和存储、故障诊断、联网集控等。(6)智能化通信产品。

通信产品最突出的是手机,当然手机内的芯片属专用型单片机。(7)汽车电子产品。

现代汽车的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统和运行监视器(黑匣子)等都离不开单片机。(8)航空航天系统和国防军事、尖端武器等领域也是单片机应用的主要领域。

单片机应用的意义不仅在于它的广阔范围及由此所带来的经济效益。更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。

以前采用硬件电路(传统的模拟电路或数字电路)实现的大部分控制功能,正在用单片机通过软件方法来实现。以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。随着单片机应用的推广,微控制技术将不断发展完善。第2章 单片机基础知识

在进行一个具体的单片机应用系统开发之前,应该对单片机的硬件资源配置和指令系统有全面深入的了解。本章将对这些基础内容作详细讲解,并从实际需要出发,介绍与程序设计和系统扩展应用有关的内容。2.1 51单片机的体系结构

掌握单片机芯片的内部结构和外部封装等硬件知识是学习、应用单片机的第一步。因为只有在充分了解该单片机硬件系统的基础上,才能把其现有的引脚资源和内部一切可以利用的硬件资源充分开发和调动起来,才能更好地实现项目和产品的性能/价格比的最大化。本节将系统介绍8051的体系结构。2.1.1 总体结构

1.内部结构

这里主要介绍8051系列单片机的基本组成原理,其内部基本结构如图2.1所示。图2.1 8051单片机内部结构简化框图

由图可见,8051单片机由微处理器(由运算器和控制器组成)、片内存储器RAM/ ROM、P0~P3组成的I/O端口,以及各种存储器组成的特殊功能寄存器SFR和串行接口、定时/计数器、中断系统、振荡器等构成。下面分别介绍各部分的基本情况。(1)8051的中央处理器(CPU)。

中央处理器是单片机芯片中最复杂、最核心的智能部件,完成运算和控制功能。8051 的CPU能处理8位二进制数或代码。其内部结构和组织在后面将作深入讲解。(2)8051内部数据存储器(内部RAM)。

8051片中共有256个RAM单元,但其中高128个字节单元被专用寄存器SFR占用,能作为寄存器供用户使用的只是低128个字节单元,地址范围是00H~7FH。用于存放可读写的数据。因此通常所说的内部数据存储器就是指低128个字节单元,简称内部RAM。(3)8051内部程序存储器(内部ROM)。

8051芯片中共有4KB ROM,地址范围是0000H~0FFFH,用于存放程序、原始数据或表格,因此称之为程序存储器,简称内部ROM。(4)定时/计数器。

8051芯片中共有2个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果实现控制功能。(5)并行I/O口。

8051芯片中共有4个8位的并行I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。(6)串行口。

8051单片机有一个全双工的串行口,以实现单片机和其他设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器(UART)使用,也可作为同步移位器使用。(7)中断控制系统。

8051系列单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即2个外部中断,2个定时/计数中断,1个串行中断。全部中断分为高级和低级共2个优先级别。(8)时钟电路。

8051芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHz~12MHz。(9)内部数据总线。

内部数据总线8位宽,作为数据传输的高速通道,负责将各个外围模块以及核心区域的累加器A、算术/逻辑运算单元ALU、程序计数器PC、程序状态字寄存器PSW、数据指针DPTR、ROM、RAM、特殊功能寄存器SFR等功能部件联系起来。

从上述内容可以看出,8051虽然是一个单片机芯片,但作为微型计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。

2.外部封装和引脚

标准8051单片机有几种不同的封装形式。图2.2(a)所示为DIP封装的引脚排列,图2.2(b)所示为QFP封装的引脚排列。

40个引脚功能说明如下。(1)主电源引脚Vss和Vcc。图2.2 8051单片机引脚图

·Vss(20脚):负电源端,接地脚,0V基准 (有时也记为GND)。

·Vcc(40脚):正电源端,正常操作时接+5V电源。(2)外接晶振引脚XTAL1和XTAL2。

·XTAL1(19脚):内部振荡电路反相放大器的输入端,是外接石英晶体振荡器的一个引脚。当采用外部振荡器时,对于HMOS单片机,此引脚接地;对于CHMOS单片机,此引脚作为外部振荡信号的输入端。

·XTAL2(18脚):内部振荡电路反相放大器的输出端,外接石英晶体振荡器的另一端。当采用外部振荡器时,对于HMOS单片机,此引脚接外部振荡源;对于CHMOS单片机,该引脚悬空不接。(3)控制或与其他电源复用引脚RST/VPD,ALE/,和/Vpp。

·RST/VPD(9脚):当单片机振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位。在Vcc发生故障且降低到低电平规定值掉电期间,此引脚可接上备用电源VPD(电压范围+5V±0.5V),由VPD向内部RAM供电,以保持内部RAM中的数据。

·ALE/(30脚):正常操作时为ALE功能 (允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE引脚以不变的频率 (振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用做对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE端可以驱动 (吸收或输出电流)8 个LSTTL电路。对于EPROM型单片机 (如8751)或Flash型单片机 (如AT89C51),在EPROM或Flash编程期间,此引脚接收编程脉冲 (功能)。

·(29脚):外部程序存储器读选通信号输出端,低电平有效。仅当配置了外部ROM,并且执行其中的程序或者读取其中的数据时,才送出负脉冲信号,此时,在每个机器周期内两次有效。同样可以驱动8个LSTTL输入。

·/Vpp(31脚):为内部程序存储器和外部程序存储器选择端。当/Vpp为高电平时,访问内部程序存储器,当/Vpp为低电平时,则访问外部程序存储器。对于有片内ROM的单片机,该端接地表示从外部ROM开始执行程序;对于无片内ROM的单片机,该端只能接地。对于EPROM(或Flash)型单片机,在EPROM编程期间,此引脚上加12.75V或21V的编程电源 (Vpp)。(4)输入/输出引脚P0口、P1口、P2口、P3口。

·P0口 (P0.0~P0.7,39脚~32脚)是一个8位漏极开路型双向并行I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,在对片载EPROM或Flash烧写或校验时,提供8位数据的输入和输出通道。P0口能以吸收电流的方式驱动8 个LSTTL负载。

·P1口 (P1.0~P1.7,1脚~8脚)是一个带有内部提升电阻的8位准双向并行I/O口,在对片载EPROM或Flash烧写或校验时,作为低8位地址的输入通道。P1口能驱动 (吸收或输出电流)4个LSTTL负载。

·P2口 (P2.0~P2.7,21脚~28脚)是一个带有内部提升电阻的8位准双向并行I/O口,在访问外部存储器时,它输出高8位地址,在对片载EPROM或Flash烧写或校验时,用于输入高位地址或控制信号。P2口可以驱动 (吸收或输出电流)4个LSTTL负载。

·P3口 (P3.0~P3.7,10脚~17脚)是一个带有内部提升电阻的8位准双向并行I/O口。P3口除了作为一般的准双向口使用外,每个引脚还有特殊功能,如表2.1所示。P3口能驱动 (吸收或输出电流)4个LSTTL负载。表2.1 P3口的第二功能2.1.2 中央处理器CPU

中央处理器是单片机内部最核心的部件,它决定了单片机的主要功能特性。它主要由运算器、控制器以及CPU寄存器等构成。

1.运算器

运算器以算术逻辑单元ALU为核心,加上累加器A(有时记作ACC)、寄存器B、暂存寄存器TMP1和TMP2、程序状态字寄存器PSW以及专门用于位操作的布尔处理器、十进制运算调整电路等构成,实现算术运算、逻辑运算、位操作等数据处理。(1)算术逻辑单元ALU(Arithmetic and Logic Unit)。

算术逻辑单元ALU(如图2.3所示)不仅能完成8位二进制数的加(带进位加)、减(带借位减)、乘、除、加1、减1及BCD加法的十进制调整、比较等算术运算,还能对8位变量进行逻辑“与”、“或”、“异或”、左移位、右移位等逻辑运算,更能实现置位、清位、位取反、位传送、位“与”、位“或”、位测试等位操作处理。它是运算器的核心部件。图2.3 算术逻辑运算单元ALU(2)累加器A。

累加器A是CPU中使用最频繁、起着核心作用的寄存器。它是进行算术运算和逻辑运算操作的中转站,比如暂存准备参加运算的一个操作数(称为“源操作数”),或者暂存运算产生的结果(称为“目标操作数”)。也就是说,在运算之前,A是源操作数的出发地;在运算之后,A是源操作数的目的地。A有时也记作ACC。(3)寄存器B。

寄存器B主要用于乘法和除法操作过程。对于乘法运算,两个操作数分别取自A和B,乘积的低8位放到A中,高8位存于B中;对于除法运算,被除数取自于A,除数取自于B,商存放于A,余数存放于B。其他情况下,B也可以作为一个通用寄存器使用。(4)程序状态字寄存器PSW(Program Status Word)。

程序状态字寄存器PSW是一个8位的标志寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW某些位的状态进行程序转移。各位配置如表2.2所示。表2.2 程序状态字功能说明表

PSW的各位的含义及使用如下。

①CY(PSW.7)为进位/借位标志位。

CY是PSW中最常用的标志位,有两个功能:

·在进行以字节为单位的加法或减法运算时,CY由硬件控制自动记录最高位是否产生进位或借位。CY在指令中又可记作C。执行加法

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载