单片机技术及C51程序设计(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-10 07:53:41

点击下载

作者:唐颖

出版社:电子工业出版社

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

单片机技术及C51程序设计(第2版)

单片机技术及C51程序设计(第2版)试读:

内容简介

全书分为11章,内容包括单片机的基本概念、MCS-51系列单片机内部结构、指令系统和汇编语言程序设计、Keil C51语法及程序设计、MCS-51系列单片机内部硬件资源及应用、系统功能的扩展、键盘与显示接口、A/D与D/A转换接口、单片机的其他接口、综合应用实例、单片机应用系统设计等。第1~4章主要介绍MCS-51单片机的内部结构、指令系统和C51结构,从第5章开始介绍MCS-51系列单片机的接口及应用。

本书除了在第1~9章中给出许多相关实例,还专门在第10、11章,给出了大量的设计性实例和系统设计实例。本书中的实例一般采用汇编语言与C语言编程对照的方式编写,仅在第10、11章较复杂的实例中采用C语言编程。力求通过应用实例,使读者在学习中既可以进行类比编程,又可以开阔思路,提高实际编程效率和工作能力。

本书按照培养应用型本科人才的教学要求编写,语言通俗易懂,内容翔实、实用性强。适合作为各类普通高校相关专业、相关课程的教材或教学参考书,也可作为需要使用单片机技术的工程技术人员的实用参考书。

第2版前言

随着单片机制造技术的飞速发展及其开发条件的普及,单片机开发的产品已广泛地应用在家电、通信、医疗设备、工业控制、航空航天和军事方面。其中,MCS-51系列单片机是各高校进行单片机教学的典型机型,在我国得到了较广泛的应用。为了适应本科单片机课程的应用性教学改革及缩小学校教学和企业应用之间的距离,2012年编者在电子工业出版社的大力支持下,出版了本书第1版。第1版教材以传统的汇编语言与单片机C语言对照编程的方式,介绍了MCS-51系列单片机的原理、结构及应用设计,较好地达到了通过汇编程序设计帮助学生更好地理解单片机的内部结构与特性,并通过C语言程序设计提高学生的综合设计与实际应用能力的教学目的。

本书第1版经过在4年多的使用,编者也感到了原内容在单片机接口应用和多方位实例介绍等方面还存在不足。因此,借《单片机技术及C51程序设计(第2版)》教材出版的机会,针对原教材的不足之处进行了修订,具体修改内容如下:(1)为了加强大部分初学者对数字、字符等信息在计算机内存储方式的认知,在第1章“基础知识”中增加了一节“信息在计算机中的表示方法”,重点介绍补码在计算机运算中的应用特点。(2)在实际应用中,常常会碰到需要汇编语言与C语言和混合编写的问题。因此在第4章中增加了一节“汇编语言与C语言混合编程”,重点介绍汇编语言与C语言混合编程的编程规则。(3)为了加强读者对单片机内部硬件资源的理解和应用,在第5章中对中断系统和定时/计数器的实例进行了增加与修改,以求更全面、更详尽地介绍它们的设计和应用方式。(4)为使教学内容更符合学生的认知过程,在对第4、7章中的内容进行局部修改的基础上对部分小节的顺序进行了调整。(5)为了加强对单片机外部接口应用的教学,使学生更多地接触各类常用的接口器件,在介绍基本接口(按键、LED数码管、A/D转换器、D/A转换器)的基础上,增加了第9章“MCS-51系列单片机的其他接口”的内容。在这章中主要介绍了常用的单片机与液晶显示器、时钟日历芯片、I2C总线芯片的接口及编程方法,为开展单片机综合设计及接口应用的实践教学提供了方便。(6)注重实践能力的培养是本教材编写的出发点。为使读者更好地掌握各章节的内容和知识点,对每章后的习题进行了精心的编排,增加一些章节的习题量,使其能尽量涵盖所学的知识点,起到复习和巩固知识的作用。

本书由浙江树人大学的唐颖、阮越、程菊花、任条娟、黄震梁和湖北工业大学的谭保华共同编写。全书由唐颖、阮越主编并统稿。在本书的编写过程中,借鉴了许多教材的宝贵经验,在此谨向这些作者表示诚挚的感谢。

由于编者水平有限,时间仓促,不妥之处在所难免,衷心希望广大读者批评指正。编者2016年10月

第1版前言

MCS-51系列单片机是各高校进行单片机教学的典型机型,在我国得到了较广泛的应用。以往单片机原理及应用课程的教学基本上都是采用汇编语言进行讲解和设计程序的,虽然汇编语言编写程序具有对硬件操作方便,编写的程序代码短、实时性强等优点,但可读性和可移植性都较差。

当前,单片机的种类很多,企业选用的单片机也不尽相同,而各大学所讲授的大多是51系列单片机。由于不同种类单片机的指令系统不同,汇编语言不能通用,且编程繁杂。为培养能尽快适应社会需求的应用型技术人才,使毕业生到企业后,面对各种不同类型的单片机,不需要经过再学习就能直接上手,我们对单片机的教学进行了改革,根据掌握知识结构的规律和实际应用的要求,在单片机的教学内容中增加了用C语言程序设计实现单片机应用的内容,使教学能更紧密地与企业人才需求相结合。

单片机技术是一门应用性很强的专业课,其理论和实践技能是从事电类专业技术人员所不可缺少的。作者多年从事“单片机原理及应用”课程的教学与实践指导,因此希望能将其教学积累加入教材,对教材进行重新改编。本教材中单片机的机型选用51系列单片机,结合目前应用非常广泛的C51程序设计及Keil C51编译器,在汇编程序设计的基础上,增加了用C语言进行单片机程序设计的内容,且加入C51编程方法的教学与实践,以配合教学内容的改革。

在教材的编写中,作者非常重视理论与实践的密切结合。书中给出了很多应用实例,且采用汇编语言与C语言对照编程的方法,力图通过汇编程序设计来帮助学生更好地理解和掌握单片机的内部结构与特性,同时通过C语言程序设计来提高学生的综合设计和实际应用能力。

本教材的特点主要体现在:(1)深入浅出地介绍单片机内部结构和指令系统,通过简单的汇编程序理解和加深对单片机内部结构,特别是存储器和并行口的理解。(2)增加单片机C语言应用程序设计内容,注重实例的引导。在程序设计的编写中,采用由实例引导,总结、归纳语法的方式,轻松地引导读者进入C语言编程的环境,尽量减少枯燥和压力感。(3)在单片机接口、应用等章节中,同一示例的讲解分别采用汇编和C语言两种编程方式进行对比,以达到能同时兼顾汇编语言和C语言两个方面的教学目的。(4)注重实践能力的培养。本书除了在每个应用章节中给出许多的相关实例,还专门组织了第9、10章,给出大量的设计性实例和系统设计实例,作为前几章学习后的综合应用,供实验、课程设计及学生课外设计时参考。

本书由浙江树人大学的唐颖、程菊花、任条娟、谭保华、黄震梁、阮越共同编写。其中第1、2、7、8章由唐颖编写,第5、6章由程菊花编写,第3章由任条娟编写,第4章及10章的部分章节由黄震梁编写,第9、10章的部分章节由阮越编写,由唐颖主编并统稿完成。在本书的编写过程中,借鉴了许多教材的宝贵经验,在此谨向这些作者表示诚挚的感谢。

由于编者水平有限,时间仓促,不妥之处在所难免,衷心希望广大读者批评指正。编者2012年2月第1章 基础知识

学习目标

通过本章学习,熟悉信息在计算机内的表示方法;了解单片机的基本概念、发展历史、常用型号、基本特点及应用范围,为单片机的选用和设计打下基础。1.1 信息在计算机中的表示方法

单片机又称为微控制器,是微型计算机的一个分支。和所有计算机一样,其内部按二进制数进行运算,即计算机只认识0、1。任何信息,不管是数字还是字符,在计算机中都是以二进制编码的形式表示和处理信息的。在学习计算机内部信息的处理及表示之前,我们先学习计算机中信息的表示方法。1.1.1 数在计算机内的表示

数通常有两种:无符号数和有符号数。在计算机中这两种数的表示方法是不一样的。

无符号数:由于无符号数不带符号,表示时比较简单,直接用它对应的二进制形式表示即可。例如:假设计算机的机器字长为8位,则十进制数100表示为01100100B。

有符号数:有符号数带有正负号,数学上用“+”表示正数,用“-”表示负数。由于计算机只能识别二进制符号,不能识别正、负号,因此在计算机中只能将正、负号数字化,用二进制数字来表示。通常,在计算机中表示有符号数时,在数的前面加一位作为符号位。0表示正数,1表示负数,其余的位用以表示数的大小。

这种连同一个符号位在一起作为一个数,称为机器数,它的数值称为机器数的真值。机器数的表示如图1-1所示。图1-1 机器数的表示

为了运算方便,机器数在计算机中有三种表示法:原码、反码和补码。

1.原码

用原码表示时,最高位是符号位,正数用0表示,负数用1表示,其余的位用于表示数的绝对值。原码的表示如图1-2所示。图1-2 原码的表示

用原码表示时,由于最高位用作符号位,剩下的位就作为数的绝对值位。对正数来说,正数的符号位为0,因此正数的表示与它对应的无符号数表示是相同的。但对负数来说,负数的符号位为1,负数的表示就与其对应的无符号数的表示是不相同的。

对于一个n位的二进制数,其原码表示范围为-(2n-1-1)~+(2n-1-1)。例如:若用8位二进制表示原码,则数的范围是-127~+127。

要注意的是对0的表示,用原码表示时,对于-0和+0的编码是不一样的。假设机器的字长是8位,则-0的编码是10000000B,+0的编码是00000000B。【例1-1】 求带符号数+83、-34的原码(设机器字长为8位)。

解:因为

|+83|=83=01010011B

|-34|=34=00100010B

所以

[+83]原=01010011B

[-34]原=10100010B

2.反码

用反码表示时,最高位为符号位,正数用0表示,负数用1表示。正数的反码与原码相同,而负数的反码在原码的基础上,符号位不变,对其余位取反而得到。

反码数的表示范围与原码相同,对一个n位的二进制,它的反码表示范围是-(2n-1-1)~+(2n-1-1)。

要注意的是对0的表示,用反码表示时,对于-0和+0的编码是不一样的。假设机器的字长是8位,则-0的反码是11111111B,+0的反码是00000000B。【例1-2】 求带符号数+83、-34的反码(设机器字长为8位)。

解:因为

[+83]原=01010011B

[-34]原=10100010B

所以

[+83]反=01010011B

[-34]反=11011101B

3.补码

补码的概念:我们把一个计量系统的计数范围称为“模”。如时钟的计量范围是1~12,模=12。表示n位的计算机计量范围是0~2n-1,模=2n。“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有“模”的计量器,均可化减法为加法运算。

例如:设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是逆时针拨4小时,即10-4=6;另一种是顺时针拨8小时:10+8=12+6=6。在模“12”的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替(不计溢出)。对“模”12而言,8和4互为补数。实际上在以模为12的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。共同的特点是两者相加等于模。

对于计算机,其概念和方法完全一样。计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。例如有一个n位计算机,设n=8,所能表示的最大数是11111111加1称为100000000(9位),但因为只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模是28。在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。

用补码表示时,最高位为符号位,正数用0表示,负数用1表示。正数的补码与原码相同,而负数的补码则在原码的基础上,符号位不变,其余位取反,末位加1得到。【例1-3】 求带符号数+83、-34的补码(设机器字长为8位)。

解:因为

[+83]原=01010011B

[-34]原=10100010B

所以

[+83]补=01010011B

[-34]补=11011110B

对于一个负数X,X的补码也可以用2n-|X|得到,其中n为计算机的字长。

例如:

[+34]补=[+34]原=00100010B

[-34]补=28-|-34|=100000000-00100010=110011110B

另外,对于计算补码,还可以用一种求补运算的方法求得。

求补运算法:一个二进制数,符号位和数值位一起取反,末位加1。

求补运算具有以下特点:

对于一个数X,那么,已知正数的补码,则可以通过求补运算求得对应负数的补码。反之,已知负数的补码也可以通过求补运算求得对应正数的补码。【例1-4】 已知+34的补码是00100010B,用求补运算求-34的补码。因为所以[-34]补=11011101+1=11011110B补码数的表示范围:对一个n位的二进制,其补码的表示范围是-(2n-1)~+(2n-1-1)。补码表示时,对于-0和+0的补码是相同的,设机器的字长为8位,则0的补码是00000000B。在计算机中,有符号数的表示都用补码表示,补码表示时运算简单。补码的加法运算规则:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补对于[-Y]补只要求[Y]补就可以得到。由此,通过补码进行加减运算非常简单,而且能把减法转换成加法,得到正确的结果。4.十进制数的表示计算机内部是按二进制方式对信息进行处理的,但人们在生活中习惯使用十进制。为了处理方便,在计算机中也提供了针对十进制的编码形式。针对十进制的编码又称为“二-十进制编码”,简称BCD码,分为压缩BCD码和非压缩BCD码。1)压缩BCD码用四位二进制来表示十进制中的0~9共十个数码。8421 BCD码是最基本、最常用的压缩BCD码,它和自然的二进制码相似,各位的权值(二进制数码每位的值称为权或位权)分别为8,4,2,1,故称为有权码。和自然二进制码不同的是,它只选了四位二进制码中的前十组代码,即用0000~1001分别表示它所对应的十进制数的十个码元0,1,2~9;余下的1010~1111六种组合不使用。压缩BCD码编码情况见表1-1。表1-1 压缩BCD编码十进制符压缩BCD十进制符压缩BCD号编码号编码00000501011000160110200107011130011810004010091001用压缩BCD码表示十进制数,只要把每个十进制符号用对应的四位二进制编码代替即可。例如:十进制数234的压缩BCD码为0010 0011 0100。十进制数6.78的压缩BCD码为0110.0111 1000。2)非压缩BCD码用一个字节(8位二进制)来表示一位十进制符号,其中高4位的内容不做规定(也有部分书籍要求为0,二者均可),低4位二进制编码表示该位十进制数。即每一位十进制符号须用八位二进制数表示。例如,5的非压缩型BCD码是0000 0101;十进制数56的非压缩型BCD码是00000101 00000110。在下节中介绍的数字符号的ASCII码(American Standard Code for Information Interchange)也是一种非压缩的BCD码。例如数字字符“7”的ASCII码37H(00110111)就是数7的非压缩BCD码(高4位的内容不做规定)。非压缩BCD码的编码情况见表1-2。表1-2 压缩BCD编码十进制ASCII码非压缩BCD码数字00011 00000000 000010011 00010000 000120011 00100000 001030011 00110000 001140011 01000000 010050011 01010000 010160011 01100000 011070011 01110000 011180011 10000000 100090011 10010000 10011.1.2 字符在计算机内的表示在计算机信息处理中,除了处理数字数据,还会涉及大量的字符数据,例如,从键盘上输入的信息或打印输出的信息都是以字符方式进行输入/输出的。字符数据包括字母、数字、一些控制字符和专用字符等,这些字符在计算机中也是用二进制编码表示的。在计算机中字符数据的编码通常采用的是美国信息交换标准代码ASCII码。基本ASCII码标准定义了128个字符,用七位二进制来编码,包括英文26个大写字母、26个小写字母、10个数字符号0~9,还有一些控制符号(如换行、回车、换页等)及专用符号(如“:”、“!”、“%”等)。计算机中一般以一个字节为单位,而8位二进制表示一个字节,字符ASCII码通常放于低7位,最高位一般补0,在通信时,最高位作奇偶校验位。常用字符的ASCII码见附录B。1.2 单片机的基本概念和特点

自从20世纪70年代推出单片机以来,作为微型计算机的一个分支,经过四十多年的发展,单片机已经在各行各业得到了广泛的应用。由于单片机可靠性高、体积小、干扰能力强、能在恶劣的环境下工作,有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化、机电一体化、家用电器等领域。1.2.1 基本概念

计算机是应数值计算要求而诞生的。长期以来,电子计算机技术都是沿着满足海量高速数值计算要求的道路发展的。直到20世纪70年代,电子计算机在数字逻辑运算、推理、实际控制方面显露出非凡能力后,在工业控制领域开始对计算机技术发展提出了与传统海量高速数值计算完全不同的要求,这些要求如下所述。(1)面对控制对象。面对物理量传感变换的信号输入;面对人机交互的操作控制,面对对象的伺服驱动控制。(2)嵌入工控应用系统中的结构形态。(3)能在工业现场环境中可靠运行的可靠性品质。(4)突出控制功能。对外部信息及时捕捉;对控制对象能灵活地实时控制;有突出控制功能的指令系统,例如I/O接口控制、位操作、丰富的转移指令等。

将满足海量高速数值计算的计算机称为通用计算机系统;而将面对工控领域对象,嵌入到工控应用系统中,实现嵌入式应用的计算机称为嵌入式计算机系统,简称嵌入式系统(Embedded System)。

与通用计算机系统相比,嵌入式系统最显著的特点是面对工控领域的测控对象。工控领域测量对象都是一些物理参量,例如力、热、速度、加速度、位移等;控制对象都是一些机械参量,这些参量要求嵌入式计算机系统采集、处理、控制的速度是有限的,而控制方式与控制能力的要求是无限的。在涉及DSP(Digital Signal Processor)领域的嵌入式系统也要求有高速处理能力,涉及多媒体技术的外设管理的通用计算机系统也要求有良好的控制能力,但两者的本质差别则是显而易见的,这从典型嵌入式系统——单片微机的“8位机现象”中得到了证实。从1976年8位单片微机诞生以来,在单片微机领域中一直是以8位机为主流机型的,预计这种情况还将继续下去。而与之相对应的通用计算机的CPU却迅速从8位过渡到16位、32位、64位。

嵌入式系统的出现,特别是单片微机的出现,是计算机技术发展史上的一个里程碑。嵌入式计算机系统与通用计算机系统形成了计算机技术发展的两大分支,通用计算机系统全力实现海量高速数据处理,兼顾控制功能;嵌入式系统全力满足测控对象的测控功能,兼顾数据处理能力。

单片机是将CPU、存储器(RAM和ROM)、定时器/计数器,以及I/O接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的叫法应是微控制器MCU(Micro Controller Unit)。目前国外已普遍称为微控制器。鉴于它完全作为嵌入式应用,故又称为嵌入式微控制器(Embedded Microcontroller)。

单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象、应用系统的嵌入、现场的可靠运行,以及非凡的控制品质要求。

目前,单片微机中尚没有固化软件,不具备自开发能力,因此,常需要有专门的开发工具。1.2.2 单片机的主要特点

单片机作为微型计算机的一个分支,与一般的微型计算机没有本质上的区别,同样具有快速、精确、记忆功能和逻辑判断能力等特点。但单片机是集成在一块芯片上的微型计算机,它与一般的微型计算机相比,在硬件结构和指令设置上均有独到之处,主要特点有以下几个方面。(1)目前大多数单片机采用哈佛(Harvard)结构体系,存储器ROM和RAM是严格区分、相互独立的。ROM称为程序存储器,只存放程序、固定常数及数据表格。RAM则为数据存储器,用做工作区及存放用户数据。这是因为考虑单片机主要用于控制系统中,面向测控对象,通常有大量的控制程序和较少的随机数据,需较大的程序存储器空间,把开发的程序固化在ROM中,而把少量的随机数据存放在RAM中。这样,小容量的数据存储器能以高速RAM形式集成在单片机内,以加速单片机的执行速度,同时程序在只读存储器ROM中运行,不易受外界侵害,可靠性高。(2)I/O引脚通常是多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚和需要的信号线的矛盾,采用了引脚功能复用的方法。引脚处于哪种功能可由指令来设置或由机器状态来区分。(3)有面向控制的指令系统。为满足控制的需要,一般单片机的指令系统中有极丰富的转移指令、I/O接口的逻辑操作及位处理指令。因此,单片机有更强的逻辑控制能力,特别是具有很强的位处理能力。(4)外部扩展能力强。在内部的各种功能部分不能满足应用需求时,均可在外部进行扩展,例如扩展存储器、I/O接口、定时/计数器、中断系统等,可与许多通用的微机接口芯片兼容,系统设计方便灵活。1.3 单片机的发展概况及应用领域1.3.1 发展概况

1.第一代:单片机探索阶段(1974—1978年)

工控领域对计算机提出了嵌入式应用要求,首先是实现单芯片形态的计算机,以满足构成大量中小型智能化测控系统要求。因此,这阶段的任务是探索计算机的单芯片集成。单片机(Single Chip Microcomputer)的定名即缘于此。

在计算机单芯片的集成体系结构的探索中有两种模式,即通用CPU模式和专用CPU模式。(1)通用CPU模式。采用通用CPU和通用外围单元电路的集成方式。这种模式以MOTOROLA的MC6801为代表,它将通用CPU、增强型的6800和6875(时钟)、6810(128B RAM)、2X6830(1 KB ROM)、1/2 6821(并行I/O)、1/3 6840(定时器/计数器)、6850(串行I/O)集成在一个芯片上,且使用6800CPU的指令系统。(2)专用CPU模式。采用专门为嵌入式系统要求设计的CPU与外围电路集成的方式。这种专用方式以Intel公司的MCS-48为代表,其CPU、存储器、定时器/计数器、中断系统、I/O口、时钟,以及指令系统都是按嵌入式系统要求专门设计的。

2.第二代:单片微机完善阶段(1978—1983年)

计算机的单芯片集成探索,特别是专用CPU型单片机探索取得成功,肯定了单片微机作为嵌入式系统应用的巨大前景。典型代表是Intel公司将MCS-48迅速向MCS-51系列的过渡。MCS-51是完全按照嵌入式应用而设计的单片微机,在以下几个重要技术方面完善了单片微机的体系结构。(1)面向对象、突出控制功能、满足嵌入式应用的专用CPU及CPU外围电路体系结构。(2)寻址范围规范为16位和8位的寻址空间。(3)规范的总线结构。有8位数据总线、16位地址总线,以及多功能的异步串行接口UART(移位寄存器方式、串行通信方式及多机通信方式)。(4)特殊功能寄存器(SFR)的集中管理模式。(5)设置位地址空间,提供位寻址及位操作功能。(6)指令系统突出控制功能,有位操作指令、I/O管理指令及大量的转移指令。

以MCS-51系列8位单片机为代表,在片内其配置为CPU有8位;ROM有4KB或8KB;RAM有128B或256B;有串/并行接口;有2个或3个16位的定时/计时器;中断源有5~7个。在片外:寻址范围有64KB;芯片引脚有40个。

3.第三代:微控制器形成阶段

作为面对测控对象,不仅要求有完善的计算机体系结构,还要有许多面对测控对象的接口电路,如ADC、DAC、高速I/O接口、计数器的捕捉与比较;保证程序可靠运行的WDT(程序监视定时器);保证高速数据传输的DMA等。这些为满足测控要求的外围电路,大多数已超出了一般计算机的体系结构。为了满足测控系统的嵌入式应用要求,这一阶段单片微机的主要技术发展方向是满足测控对象要求的外围电路的增强,从而形成了不同于Single Chip Microcomputer特点的微控制器。微控制器MCU(Micro Controller Unit)一词缘于这一阶段,至今微控制器是国际上对单片机的标准称呼。

这阶段微控制器技术发展的主要方面有以下几个方面。(1)外围功能集成。满足模拟量输入的ADC,满足伺服驱动的PWM,满足高速I/O控制的高速I/O接口,以及保证程序可靠运行的程序监视定时器WDT。(2)出现了为满足串行外围扩展要求的串行扩展总线及接口,如SPI、I2C BUS、Microwire、1-Wire等。(3)出现了为满足分布式系统、突出控制功能的现场总线接口,如CAN BUS等。(4)在程序存储器方面则迅速引进OTP供应状态,为单片机单片应用创造了良好的条件,随后FlashROM的推广,为最终取消外部程序存储器扩展奠定了良好的基础。

4.第四代:微控制器百花齐放(1)电气商、半导体商的普遍投入。(2)满足各种类型要求。(3)大力发展专用型单片机。(4)致力于提高单片微机综合品质。

第四代单片微机的百花齐放将单片微机用户带入了一个可广泛选择的时代。

5.单片机技术发展方向

1)主流机型发展趋势

在未来较长一段时期内,8位单片机仍是主流机型;在满足高速数字处理方面,32位机则会发挥重要作用(如ARM7处理器系列),16位机空间有可能被8位机、32位机挤占。

2)全盘CMOS化趋势

从第三代单片微机起开始淘汰非CMOS工艺。单片微机CMOS化给单片微机技术发展带来了广阔天地。最显著的变革是本质低功耗和低功耗管理技术的飞速发展。

3)RISC体系结构的大发展

早期单片微机大多是CISC结构体系,指令复杂,指令代码、周期数不统一;指令运行很难实现流水线操作,大大阻碍了运行速度的提高。如果采用RISC体系结构,那么精简指令后绝大部分成为单周期指令,而且通过增加程序存储器的宽度(如从8位增加到10位、12位、14位等),实现一个地址单元存放一条指令。在这样的体系结构中,很容易实现并行流水线操作,其结果大大提高了指令运行速度。目前在一些RISC结构的单片微机已实现了一个时钟周期执行一条指令。

4)大力发展专用型单片微机

专用单片微机是专门针对某一类产品系统要求而设计的。使用专用单片机可最大限度地简化系统结构;资源利用效率最高。在大批量使用时有可观的经济效益和可靠性效益。

5)OTPROM、FlashROM成为主流供应状态

早期程序存储器的供应状态主要是ROM(掩模)、EPROM和ROMLess三种型式。ROM周期长、投资大,无法更改;EPROM型的芯片成本高;ROMLess型的系统电路复杂。目前绝大多数单片微机系列都可提供OTPROM型式,其价格逐渐逼近掩模ROM。OTP ROM可由用户编程,软件升级、修改十分方便。FlashROM则由于可多次编程,系统开发阶段使用十分方便,在小批量应用系统中广泛使用。

6)ISP及基于ISP的开发环境

FlashROM的发展,推动了系统可编程ISP(In System Programmable)技术的发展。在ISP技术基础上,首先实现了目标程序的串行下载,促使模拟仿真开发方式的重新兴起;在单时钟、单指令运行的RISC结构单片机中,可实现PC通过串行电缆对目标系统的仿真调试。

7)单片微机中的软件嵌入

随着单片微机程序空间的扩大,会有许多空余空间,在这些空间上可嵌入一些工具软件,这些软件可大大提高产品开发效率,提高单片微机性能。单片微机中嵌入软件的类型主要有以下几个方面。(1)实时多任务操作系统RTOS(Real Time Operating System)。在RTOS支持下,可实现按任务分配的规范化应用程序设计。(2)平台软件。可将通用子程序及函数库嵌入,以供应用程序调用。(3)虚拟外设软件包。(4)其他用于系统诊断、管理的软件等。

8)实现全面功耗管理

采用CMOS工艺后,单片微机具有极佳的本质低功耗和功耗管理功能。它包括以下几个方面。(1)传统的CMOS单片微机低功耗运行方式,即休闲方式(IDle)、掉电方式(Power Down)。(2)双时钟技术。配置有高速(主时钟)和低速(子时钟)两个时钟系统。在不需要高速运行时,转入子时钟控制下,以节省功耗。(3)高速时钟下的分频或低时钟下的倍频控制运行技术。(4)外围电路的电源管理。(5)低电压节能技术。

低功耗是便携式系统重要的追求目标,是绿色电子的发展方向。低功耗的许多技术措施会带来许多可靠性效益,也是低功耗技术发展的推动力。因此,低功耗应是一切电子系统追求的目标。

9)推行串行扩展总线

目前,外围器件接口技术发展的一个重要方面是串行接口的发展。随着外围电路串行接口的发展,单片微机串行扩展接口(移位寄存器接口、SPI、I2C BUS、Microwire、1-Wire)设置越来越普遍化、高速化,采用串行总线接口方式越来越方便,从而大大减少引脚数量,简化系统结构。

10)ASMIC技术的启动与发展

专用单片机的巨大优势会推动ASMIC技术的发展。ASMIC(Application Specific Mcrocontroller Integrated Curcuit)是以MCU为核心的专用集成电路(ASIC),与ASIC相比,由于ASMIC是基于MCU的系统集成,有较好的柔性,是单片微机应用系统实现系统集成的重要途径。1.3.2 单片机的应用

1.单片机的应用特点(1)体积小,成本低,运用灵活,性能价格比高,易产品化:研制周期短,能方便地组成各种智能化的控制设备和仪器。(2)可靠性高,抗干扰性强:BUS大多在内部,易采取电磁屏蔽;适用温度范围宽,在各种恶劣的环境下都能可靠地工作。(3)实时控制功能强:实时响应速度快,具有可直接操作的I/O接口。(4)可方便地实现多机和分布式控制,以提高整个控制系统的效率和可靠性。

2.单片机的主要应用领域

单片机具有功能强、体积小、成本低、功耗小及配置灵活等特点,在工业控制、智能仪表、自动化装置、通信系统、信号处理等领域,以及家用电器、高级玩具、办公自动化设备等方面均得到了广泛的应用。(1)工业测控。对工业设备(例如机床、汽车、高档中西餐厨具、锅炉、供水系统、生产自动化、自动报警系统、卫星信号接收等)进行智能测控,大大地降低了劳动强度和生产成本,提高了产品质量的稳定性。(2)智能设备。用单片机改造普通仪器、仪表、读卡机等,使其(集测量、处理、控制功能为一体)智能化、微型化,例如智能仪器、医疗器械、数字示波器等。(3)家用电器。例如高档的洗衣机、空调器、电冰箱、微波炉、彩电、DVD、音响、手机及高档电子玩具等电器,用单片机做自动控制。(4)商用产品。例如自动售货机、电子收款机及电子台称等。(5)网络与通信的智能接口。在大型计算机控制的网络或通信电路与外围设备的接口电路中,用单片机来控制或管理,可大大提高系统的运行速度和接口的管理水平。例如图形终端机、传真机、复印机、打印机、绘图仪及磁盘/磁带机等。1.4 单片机主要类型介绍及分类1.4.1 常用系列单片机产品及性能简介

自1976年Intel公司推出MCS-48系列单片机以来,单片机经过了四十多年的迅猛发展,拥有了繁多的系列和五花八门的机种,现介绍几种主要的机型。

1)8051单片机

8051单片机最早由Intel公司推出,其后,多家公司购买了8051的内核,使得以8051为内核的MCU系列单片机在世界上产量最大,应用也最广泛。

51系列单片机源于Intel公司的MCS-51系列,在Intel公司将MCS-51系列单片机实行技术开放政策之后,许多公司(例如Philips、Dallas、Siemens、Atmel、华邦、LG等)都以MCS-51中的基础结构8051为基核推出了许多各具特色、具有优异性能的单片机。这样,把这些厂家以8051为基核推出的各种型号的兼容型单片机统称为51系列单片机。Intel公司MCS-51系列单片机中的8051是其中最基础的单片机型号。

2)WINBOND单片机

华邦公司的W77,W78系列8位单片机的脚位和指令集与8051兼容,但每个指令周期只需要4个时钟周期,速度提高了3倍,工作频率最高可达40MHz。同时增加了WatchDog Timer,6组外部中断源,2组UART,2组Data pointer及Wait state control pin。W741系列的4位单片机带液晶驱动,在线烧录,保密性高,低操作电压(1.2V~1.8V)。

3)LG公司生产的GMS90系列单片机

与Intel MCS-51系列,Atmel 89C51/52,89C2051等单片机兼容,CMOS技术,高达40MHz的时钟频率。应用于以下方面:多功能电话,智能传感器,电度表,工业控制,防盗报警装置,各种计费器,各种IC卡装置,DVD,VCD,CD-ROM。

4)MSP430单片机

TI的MSP430单片机是最近引进中国的品种。它在超低功耗方面有突出的表现,经常被电池应用设计师所选用,被业界称为绿色MCU。同时它内部有丰富的片内外围模块,是一个典型的片上系统(SOC),又是16位的精简指令结构,功能相当强大。

5)Motorola单片机

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

6)MicroChip单片机

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

7)ATMEL公司的AVR单片机

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

8)EM78系列OTP型单片机

台湾地区义隆电子股份有限公司的产品,直接替代了PIC16CXX,管脚兼容,软件可转换。

9)Zilog单片机

Z8单片机是Zilog公司的产品,采用多累加器结构,有较强的中断处理能力,开发工具价廉物美。Z8单片机以低价位面向低端应用。直到20世纪90年代后期,很多大学的微机原理还是讲述Z80的。

10)EPSON单片机

EPSON单片机以低电压、低功耗和内置LCD驱动器特点闻名于世,尤其是LCD驱动部分做得很好。广泛用于工业控制、医疗设备、家用电器、仪器仪表、通信设备和手持式消费类产品等领域。目前,EPSON已推出4位单片机SMC62系列、SMC63系列、SMC60系列和8位单片机SMC88系列。

11)东芝单片机

东芝单片机门类齐全,4位机在家电领域有很大市场,8位机主要有870系列、90系列,该类单片机允许使用慢模式,采用32K时钟时功耗降至10MA数量级。东芝的32位单片机采用MIPS 3000A RISC的CPU结构,面向VCD、数字相机、图像处理等市场。

12)NS单片机

COP8单片机是NS(美国国家半导体公司)的产品,内部集成了16位A/D,这是不多见的,在看门狗多路及STOP方式下单片机的唤醒方式上都有独到之处。此外,COP8的程序加密也做得比较好。

13)MDT20XX系列单片机

工业级OTP单片机,Micon公司生产,与PIC单片机管脚完全一致,海尔集团的电冰箱控制器、TCL通信产品、长安奥拓铃木小轿车功率分配器就采用这种单片机。

14)Scenix单片机

Scenix公司推出的8位RISC结构SX系列单片机与Intel的Pentium II等一起被Electronic Industry Yearbook评选为1998年世界十大处理器。在技术上有其独到之处:SX系列双时钟设置,指令运行速度可达50/75/100MIPS(每秒执行百万条指令,XXX M Instruction Per Second);具有虚拟外设功能,柔性化I/O端口,所有的I/O端口都可单独编程设定,公司提供各种I/O的库函数,用于实现各种I/O模块的功能,例如,多路UART,多路A/D,PWM,SPI,DTMF,FS,LCD驱动等。采用EEPROM/FLASH程序存储器,可以实现在线系统编程。通过计算机RS232C接口,采用专用串行电缆即可对目标系统进行在线实时仿真。1.4.2 MCS-51系列单片机分类

尽管各类单片机很多,但目前在我国使用最为广泛的单片机系列是Intel公司生产的MCS-51系列单片机,同时该系列还在不断地完善和发展。随着各种新型号系列产品的推出,它越来越被广大用户所接受。

MCS-51系列单片机共有二十几种芯片,表1-3列出了MCS-51系列单片机的产品分类及特点。表1-3 MCS-51系列单片机分类注:UART为通用异步接收发送器,R/E为MaskROM/EPROM,GSC为全局串行通道。

表1-3中列出了MCS-51系列单片机的芯片型号,以及它们的技术性能指标,下面在表1-3的基础上对MCS-51系列单片机作进一步的说明。

1.按片内不同程序存储器的配置来分

MCS-51系列单片机按片内不同程序存储器的配置来分,可以分为三种类型。

①片内带MaskROM(掩模ROM)型:8051,80C51,8052,80C52。此类芯片是由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩模工艺制作到ROM中。其应用程序只能委托半导体厂家“写入”,一旦写入后不能修改。此类单片机,适合大批量使用。

②片内带EPROM型:8751,87C51,8752。此类芯片带有透明窗口,可通过紫外线擦除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。但此类单片机价格较贵,不宜大批量使用。

③片内无ROM(ROMLess)型:8031,80C31,8032。此类芯片的片内没有程序存储器,使用时必须在外部并行扩展程序存储器存储芯片。此类单片机由于必须在外部并行扩展程序存储器存储芯片,造成系统电路复杂,故目前较少使用。

2.按片内不同容量的存储器配置来分

按片内不同容量的存储器配置来分,可以分为两种类型。

①51子系列型:芯片型号的最后一位数字以1作为标志,51子系列是基本型产品。片内带有4KB ROM/EPROM(8031,80C31除外)、128B RAM、2个16位定时器/计数器、5个中断源等。

②52子系列型:芯片型号的最后一位数字以2作为标志,52子系列则是增强型产品。片内带有8KB ROM/EPROM(8032,80C32除外)、256B RAM、3个16位定时器/计数器、6个中断源等。

3.按芯片的半导体制造工艺上的不同来分

按芯片的半导体制造工艺上的不同来分,可以分为两种类型。

①HMOS工艺型:8051,8751,8052,8032。HMOS工艺,即高密度短沟道MOS工艺。

②CHMOS工艺型:80C51,83C51,87C51,80C31,80C32,80C52。此类芯片型号中都字母“C”来标识。

此两类器件在功能上是完全兼容的,但采用CHMOS工艺的芯片具有低功耗的特点,它所消耗的电流要比HMOS器件小得多。CHMOS器件比HMOS器件多了两种节电的工作方式(掉电方式和待机方式),常用于构成低功耗的应用系统。

此外,关于单片机的温度特性,与其他芯片一样按所能适应的环境温度范围,可划分为三个等级:

①民用级:0℃~70℃。

②工业级:-40℃~+85℃。

③军用级:-65℃~+125℃。

因此在使用时应注意根据现场温度选择芯片。1.4.3 A T89系列单片机分类

在MCS-51系列单片机8051的基础上,Atmel公司开发了AT89系列单片机,以其较低廉的价格和独特的程序存储器——快闪存储器(Flash Memory)为用户所青睐。表1-4列出了AT89系列单片机的几种主要型号。表1-4 A T89系列单片机一览表

采用了快闪存储器(Flash Memory)的AT89系列单片机,不但具有一般MCS-51系列单片机的基本特性(如指令系统兼容,芯片引脚分布相同等),而且还具有一些独特的优点。

①片内程序存储器为电擦写型ROM(可重复编程的快闪存储器)。整体擦除时间仅为10ms左右,可写入/擦除1000次以上,数据保存10年以上。

②两种可选编程模式,即可以用12V电压编程,也可以用Vcc电压编程。

③工作电压范围,Vcc=2.7~6V。

④全静态工作,工作频率范围:0Hz~24MHz,频率范围宽,便于系统功耗控制。

⑤三层可编程的程序存储器上锁加密,使程序和系统更加难以仿制。

总之,AT89系列单片机与MCS-51系列单片机相比,前者和后者有兼容性,但前者的性能价格比等指标更为优越。1.4.4 其他公司的51系列单片机

①Philips公司推出的含存储器的80C51系列和80C52系列单片机,此产品都为CMOS型工艺的单片机。Philips公司推出的51系列单片机与MCS-51系列单片机相兼容,但增加了程序存储器FlashROM、数据存储器EEPROM、可编程计数器阵列PCA、I/O接口的高速输入/输出、串行扩展总线I2C BUS、ADC、PWM、I/O口驱动器、程序监视定时器WDT(Watch Dog Timer)等功能的扩展。

②华邦公司推出的W78C××和W78E××系列单片机,此产品与MCS-51系列单片机兼容,但增加了程序存储器FlashROM、数据存储器EEPROM、可编程计数器阵列PCA、I/O接口的高速输入/输出、串行扩展总线I2C BUS、ADC、PWM、I/O接口驱动器、程序监视定时器WDT(Watch Dog Timer)等功能的扩展。华邦公司生产的单片机还具有价格低廉,工作频率高(40MHz)等特点。

③Dallas公司推出的DallasHSM系列单片机,产品主要有DS80C×××、DS83C×××和DS87C×××等。此产品除了与MCS-51系列单片机兼容,还具有高速结构(1个机器周期只有四个clock,工作频率范围为0~33MHz)、更大容量的内部存储器(内部ROM有16KB)、两个UART、13个中断源、程序监视器WDT等功能。

④LG公司推出的GMS90C××、GMS97C××和GMS90L××、GMS97L××系列单片机。此产品与MCS-51系列单片机兼容。

以上Philips、Dallas、Atmel、华邦、LG等大公司生产的系列单片机与Intel公司的MCS-51系列单片机具有良好的兼容性,包括指令兼容、总线兼容和引脚兼容。但各个厂家发展了许多功能不同、类型不一的单片机,给用户提供了广泛的选择空间,其良好的兼容性保证了选择的灵活性。本章小结

在计算机内部,不管是数字还是字符,都是以二进制编码的形式进行表示和处理的。而数通常有两种:无符号数和有符号数。无符号数的表示很简单,直接用它对应的二进制形式表示即可。有符号数有正、负号,在计算机内为识别正、负号,在数的前面加一位作为符号位,这种带符号位的数称为机器数。为运算方便,机器数在计算机中有三种表示方法:原码、反码和补码。通过补码运算能将减法转换成加法。

单片机是微型计算机的一个分支,由硬件系统和软件系统构成。单片机是将CPU、存储器(RAM和ROM)、定时器/计数器,以及I/O接口等主要部件集成在一块芯片上的微型计算机。它具有功能强、体积小、抗干扰能力强、性价比高等特点,可作为常规器件应用于各种智能化系统中。

单片机与一般的微型计算机相比,在硬件结构和指令设置上具有以下主要特点。

①大多数单片机采用哈佛(Harvard)结构体系,存储器ROM和RAM是严格区分、相互独立的。小容量的数据存储器能以高速RAM形式集成在单片机内,以加速单片机的执行速度,同时程序在只读存储器ROM中运行,不易受外界侵害,可靠性高。

②I/O引脚通常是多功能的。

③有面向控制的指令系统,例如,丰富的转移指令、I/O接口的逻辑操作,以及位处理指令等。使单片机具有更强的逻辑控制能力,特别是具有很强的位处理能力。

④外部扩展能力强,例如,扩展存储器、I/O接口、定时/计数器、中断系统等,可与许多通用的微机接口芯片兼容,系统设计方便灵活。习题1

1-1 给出下列有符号数的原码、反码和补码(设计算机字长为8位)。

+37  -86  -105  +112  -79

1-2 8位补码表示的定点整数的范围是多少?

1-3 已知X、Y是两个有符号数的定点整数,它们的补码为:[X]补=00010011B,[y]补=11111001B,求[X+Y]补等于多少?

1-4 请选择正确答案填在括号中:将-33以补码形式存入8位寄存器中,寄存器中的内容为( )

A.DFHB.A1HC.5FHD.DEH

1-5 请选择正确答案填在括号中:如果X为负数,由[X]补求[-X]补是将( )

A.[X]补各值保持不变B.[X]补符号位变反,其他各位不变C.[X]补除了符号位外,各位变反,末位加1D.[X]补连同符号位一起各位变反,末位加1

1-6 请选择正确答案填在括号中:设有二进制数X=-1101110,若采用8位二进制数表示,则[X]补的结果是( )。

A.11101101B.10010011C.00010011D.10010010

1-7 8051与8751的区别是( )

A.内部数据存储数目的不同B.内部数据存储器的类型不同C.内部程序存储器的类型不同D.内部寄存器的数目不同

1-8 单片机与普通计算机的不同之处在于其将( )( )和( )三部分集成于一块芯片上( )

1-9 MCS-51单片机内部提供了哪些资源?

1-10 单片机有哪些应用特点?主要应用在哪些领域?

1-11 MCS-51单片机如何进行分类?各类有哪些主要特性?第2章 MCS-51系列单片机的内部结构和引脚

学习目标

通过本章学习,掌握MCS-51系列单片机芯片内的硬件结构、性能特性,特别是存储器结构及并行I/O接口结构、工作原理和应用特点,只有了解了单片机的存储结构和所能提供的内部资源,才能合理地使用单片机。2.1 MCS-51系列单片机内部结构和引脚说明

单片机就是将构成计算机的最基本的主要功能部件集成在一块芯片上的集成芯片。MCS-51是Intel公司于20世纪80年代初推出的系列8位单片机,经过三十多年的发展,目前已发展到十多种产品。属于这一系列的单片机有多种,包括51子系列(如8051/8751/8031)和52子系列(如8052/8752/8032)。

在制造上MCS-51系列单片机按两种工艺生产:一种是HMOS工艺,即高密度短沟道MOS工艺;另一种是CHMOS工艺,即互补金属氧化物的HMOS工艺。CHMOS是HMOS和CMOS的结合,既保留了HMOS高速度和高密度的特点,又具有CMOS的低功耗的特点。HMOS芯片的电平与TTL电平兼容,而CHMOS芯片的电平既与TTL电平兼容,又与CMOS电平兼容。产品型号中凡带有字母“C”的芯片即为CHMOS芯片(如80C51等),不带字母“C”的芯片即为HMOS芯片(如8051等)。

在功能上MCS-51系列单片机有基本型和增强型两类,以芯片型号的末位数字来区分。“1”为基本型,“2”为增强型。例如,8051/8751/8031,80C51/87C51/80C31为基本型,而8052/8752/8032,80C52/87C52/80C32为增强型。

MCS-51系列单片机在片内程序存储器的配置上有三种形式,即掩模ROM、EPROM和片内无程序存储器。例如,基本型中8051内有

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载