首页 理论教育 大学生嵌入式技术实训教程:单片机技术概述

大学生嵌入式技术实训教程:单片机技术概述

时间:2023-12-01 理论教育 版权反馈
【摘要】:第二章单片机技术概述本章主要介绍单片机的技术特点和发展历史,对常用的8位单片机作了一定的描述和说明,同时也对单片机的应用领域作了一定的介绍,使读者对不同类型的8位单片机的基本编程结构有所了解,对单片机在嵌入式应用中的地位有所认识。2.1单片机特点和技术发展单片机自1970年代诞生以来,发展迅速。2.1.1单片机的主要特点单片机是将运算器、控制器、存储器以及I/O接口集成在单个芯片中的计算机硬件。

大学生嵌入式技术实训教程:单片机技术概述

第二章 单片机技术概述

本章主要介绍单片机的技术特点和发展历史,对常用的8位单片机作了一定的描述和说明,同时也对单片机的应用领域作了一定的介绍,使读者对不同类型的8位单片机的基本编程结构有所了解,对单片机在嵌入式应用中的地位有所认识。

2.1 单片机特点和技术发展

单片机自1970年代诞生以来,发展迅速。目前各半导体厂商几乎都生产单片机产品,单片机根据结构和指令系统的不同有几十种之多,型号更是数不胜数,特别是为特定应用领域设计和开发的单片机型号更是数量巨大。随着集成电路技术的发展和人们对电子产品性能的要求不断提高,作为电子产品的一个核心部件,单片机正朝着面向多层次用户发展,以多品种、多规格的方式满足各种需要。

2.1.1 单片机的主要特点

单片机是将运算器、控制器、存储器以及I/O接口集成在单个芯片中的计算机硬件。相对于通用计算机而言,具有以下特点。

1.集成度高,体积小

之所以叫做单片机,就是因为将计算机的主要部件集成到一个芯片中,构成一个具有相对完整结构的硬件部件,能够满足特定应用领域需要的计算硬件需求。因此,相对于传统计算机结构而言,单片机具有很高的集成度和很小的体积。

2.抗干扰,稳定性好

单片机将主要运算部件集成到芯片内部,外界干扰相应减小。由于部件之间的连接被集成到一个稳定的芯片中,因此,其系统稳定性也得到了保障,减小了系统的故障率。而且由于体积小,也便于采取电磁屏蔽等相关措施,提高系统的稳定性。

3.功耗低

单片机采用集成工艺后,只需要较低的电压和极小的电流就可以推动其工作,从而满足了手持或移动设备通过电池供电的需要。而且由于其低功耗模式的设计,一些单片机在睡眠或待机状态下所需电流只是正常工作的1%甚至0.1%。

4.使用方便

由于单片机内部可以集成所需的各种工作部件,因此在设计特定产品时只需要选择合适的单片机就可以满足应用设计需要。在进行系统设计和应用开发时,硬件的设计变得十分方便快捷。

5.极高的性价比

单片机采用集成化设计,而且用软件逻辑代替了硬件逻辑,实现了以较小的代价就可以获得在传统方式下需要大量硬件才能完成的功能。这使得采用单片机的应用系统的设计紧凑,体积小,成本低,具有极高的性价比。

2.1.2 单片机的发展历史

单片机伴随着集成电路的出现而出现,它的产生与发展和微处理器的产生与发展大体上同步,可以分为4个阶段。

第1阶段(1974—1976年):初级单片机阶段。1974年,美国仙童公司(Fairchild)研制出世界上第一台单片微型计算机F8,深受家用电器仪器仪表领域的欢迎和重视,从此拉开了研制单片机的序幕。这一时期生产的单片机制造工艺落后、集成度很低,通常采用双片结构。典型产品有仙童公司的F8和莫斯特卡公司(Mostek)的3870等产品。

第2阶段(1976—1978年):低性能单片机阶段。这一时期生产的单片机虽然已能在单块芯片内集成有CPU、并行接口定时器、RAM和ROM等功能芯片,但CPU功能还不强,I/O的种类和数量少,存储容量小,只能应用于比较简单的场合。这一时期的典型产品有英特尔公司(Intel)的MCS-48,包括8048、8748和8035,强化型8049、8039和8050、8750、8040,简化型8020、8021、8022,专用型UPI-8041、8741等。

第3阶段(1978—1983年):高性能单片机阶段。在这一阶段推出的单片机普遍带有串行接口,有多级中断处理系统,16位定时器/计数器;片内RAM、ROM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器接口。这一时期的典型产品有英特尔公司的MCS-51,摩托罗拉公司的M6805和智陆公司的28等。这类单片机的应用领域极为广泛,各公司通过对其结构与性能进行优化和改良,目前仍然是应用量最大的一个类型。在国内,英特尔的51单片应用量最大,掌握51单片机的技术人员也最多,而且由于一些公司对51单片机的优化,使其具有更好的性能和更广泛的应用环境,因此仍然具有较强的生命力。

第4阶段(1983年至今):16位及以上单片机和超8位单片机并行发展阶段。此阶段的主要特征是,一方面发展16位及以上单片机和专用单片机;另一方面不断完善高档8位单片机,改善其结构,以满足不同用户需要。16位以上的单片机由于具有更大的地址空间,更强的指令系统,更高的运行频率,和更多样化的外围接口,使得在很多高端应用领域受到青睐,特别是32位单片机的字长达到32位,具有极高的运算性能。随着家用电子系统、多媒体技术和Internet技术的发展,32位甚至64位单片机的生产前景看好。这一时期典型产品有ARM内核的各类32位单片机,MIPS结构的各类32位单片机,摩托罗拉公司的M68300系列等。在这一阶段,很多8位单片机具备了一些新的强大的功能,如直接存储器存取(DMA)通道、特殊串行接口、脉宽调制(PWM)、捕捉定时器/计数器等。

虽然从技术上看,32位、64位单片机有着更高的性能和更强大的功能,16位、32位及64位单片机在今后会越来越受到人们的重视,但这并不意味着它们会代替8位单片机的应用。因为在许多场合,8位甚至4位单片机就足以完成相关功能,没有必要采用16位甚至32位单片机。这样一方面会增产品成本,延长开发周期,而且还可能引入不必要的风险和开销。因此,在今后相当长的一段时间内,16位、32位及64位单片机会不断扩大其应用范围,但却并不能代替8位机。另外,由于8位单片机在性能价格比上占有明显优势,而且现在的8位增强型单片机在速度和功能上也已经可以与16位单片机相媲美,所以,8位单片机仍将在今后的一段时间里占有较大的市场份额。

2.1.3 单片机的发展趋势

随着应用需求的不断提高,单片机也得到了快速的发展。从单片机的发展历史和现状来看,其发展趋势正朝着大容量、高性能、低价格、高度集成、专业化、多品种、接口功能优化、低功耗等方向发展。

1.CPU功能增强

单片机内部CPU功能的增强,集中体现在数据处理速度和精度的提高以及I/O处理能力的提高。通过改进CPU的内部结构、增加数据总线宽度、采用流水线结构来加快运算速度等优化措施,很多单片机已经达到1MIPS/MHz的性能。

2.单片机容量增加、内部资源丰富

单片机内存储器容量进一步扩大,以往片内ROM为1~8KB,RAM为64~256B,现在片内程序存储器可达64KB,甚至几百KB,片内RAM也达到几KB,甚至几十KB,并可通过外接存储器扩大容量。而且由于使用了FLASH技术作为片上的程序存储器,极大地方便了研发人员,使得开发周期大为缩短。由于集成大量功能部件,使得单片机的I/O接口变得非常丰富,很多应用中根本不需要外加扩展芯片。甚至在一些8位单片机中都引入了BOOTLOADER加载区用于启动实时操作系统,这将大大提高产品的开发效率和单片机的性能。

3.引脚功能多样

随着单片机内部资源的增多,所需的引脚也相应增加。为了减少引脚数量,提高应用的灵活性,单片机中普遍采用引脚功能复用技术,即一个引脚可以具有几种功能,由用户根据需要进行设置和使用。同时,一些新的工业标准也在单片机中得到广泛采用,如12C总线、SPI接口、CAN总线、USB总线接口等,使得单片机与外界通信的能力得到极大提高,而且一些单片机提供了在线可编程的技术,使得通过软件升级的方式实现设备升级成为一种十分方便的手段。

4.专业性强体积小

为了适应各个领域的应用需要,单片机的品种类型越来越丰富,特别是专用单片机,通过采用工业化批量生产,其价格也低得惊人。因此,专用单片机在很多领域得到广泛使用,通过改变内部功能部件数量和性能,在内核CPU不变的情况下满足特定应用目标的需求,就可以生产出新的产品。于是面向专用领域的超微型化单片机应运而生,这类单片机具有体积小,功能单一,面向特定应用,价格低廉,功耗极低等优势,在很多领域应用广泛,如电子玩具、小型电子产品、计算机外围设备等。

5.更低的电压和功耗

由于采用CMOS制造工艺,单片机在工作电压和功耗等方面得到长足发展。另外由于采取了一系列省电技术,使得单片机的功耗越来越低。这使得以电池供电的单片机产品,越来越多的被开发出来,并在各个领域得广泛应用。

6.更便捷的开发支持

嵌入式产品的开发具有一定的特殊性,软件的运行和调试在开发机(宿主机)上编写后,须加载到嵌入式硬件(目标机)上运行,以观察和测试软件的性能和功能是否达到预期。这要求嵌入式开发有良好的开发工具和硬件支持。现在一些单片机已经在其内核中加入了USB的固化代码,可以通过USB方式直接将程序写入FLASH或加载程序的目的,从而简化开发过程,提高开发效率。

2.2 单片机的应用领域

在现代的数字化世界中,单片机已经大量地渗透到我们生活的各个领域,几乎很难找到没有单片机踪迹的领域。导弹的导航装置、飞机上各种仪表的控制、计算机的网络通信与数据传输、工业自动化过程的时实控制和数据处理、生产流水线上的机器人、医院里先进的医疗器械和仪器、广泛使用的各种智能IC卡、小朋友的程控玩具和电子宠物等都是典型的单片机应用。由于单片机芯片的微小体积、极低的成本和面向控制的设计,使得它作为智能控制的核心器件被广泛地用于嵌入到工业控制、智能仪器仪表、家用电器、电子通信产品等各个领域中的电子设备和电子产品中。单片机的主要应用领域有以下几个方面。

1.智能仪表

单片机广泛应用于各种仪器仪表中,使仪器仪表智能化,从而提高它们的测量速度和测量精度,加强控制功能,简化仪器仪表的硬件结构,便于使用、维修和改进。用单片机改造原有的测量和控制仪表,能促进仪表向数字化、智能化、多功能化、综合化、柔性化发展。如温度、压力流量、浓度显示、控制仪表等,通过采用单片机软件编程技术,使长期以来测量仪表中的误差修正、非线性化处理等难题迎刃而解。目前国内外均把单片机在仪表中的应用看成是仪器仪表产品更新换代的标志。单片机在仪器仪表中的应用非常广泛,例如数字温度控制仪、智能流量计红外线气体分析仪、氧化分析仪、激光测距仪、数字万能表、智能电度表,各种医疗器械,各种电子秤、皮带秤、转速表等。不仅如此,在许多传感器中也装有单片机,形成所谓的智能传感器,用于对各种被测参数进行现场处理。

2.机电一体化产品

单片机与传统的机械产品相结合,使传统机械产品结构简化、控制智能化,构成新一代的机电一体化产品。机电一体化产品是指集机械技术、微电子技术、自动化技术和计算机技术于一体,具有智能化特征的机电产品,这是机械工业发展的方向。单片机的出现促进了机电一体化的发展,它作为机电产品中的控制器,能充分发挥其体积小、可靠性高、功能强、安装方便等优点,大大强化了机器的功能,提高了机器的自动化、智能化程度。例如,在电传打字机的设计中,采用单片机取代了近千个机械部件;在数控机床的简易控制机中,采用单片机可提高可靠性及增强功能,降低控制机成本。

3.家用电器设备

由于单片机价格低廉、体积小,逻辑判断、控制功能强,且内部具有定时器/计数器,所以广泛应用于家电设备。例如洗衣机、空调器、电冰箱、电视机音响设备、VCD/DVD机、微波炉、电饭煲、恒温箱、高级智能玩具、IC卡、手机、电子门铃、电子门锁、家用防盗报警器等。家用电器涉及到千家万户,生产规模大,配上单片机后其成本降低,深得用户的欢迎,前途十分广阔。

4.工业控制领域无处不在

由于单片机的I/O接口线多、位操作指令丰富、逻辑操作功能强,所以特别适用于工业过程控制,可构成各种工业控制系统、自适应控制系统、数据采集系统等。它既可以作为主机控制,也可以作为分布式控制系统的前端机。在作为主机使用的系统中,单片机作为核心控制部件,用来完成模拟量和开关量的采集、处理和控制计算(包括逻辑运算),然后输出控制信号。特别是由于单片机有丰富的逻辑判断和位操作指令,所以广泛应用于开关量控制、顺序控制以及逻辑控制,如锅炉控制、加热炉控制,电机控制、机器人控制、交通信号灯控制、造纸纸浆浓度控制、纸张定量水分及厚薄控制、纺织机控制、数控机床控制等,汽车点火、变速、防滑制动、排气、引擎控制,以及雷达、导弹控制,航天导航系统和鱼雷制导系统等。

2.3 单片机的寄存器结构特点

由于单片机包含了计算机的运算器、控制器、存储器、I/O接口等多项部件,这些部件通常是可编程的,就如同在接口技术的可编程接口芯片那样,可以通过程序设置不同的功能状态。而且由于受体积、引脚数量和灵活性的约束,单片机上的很多引脚都是可复用的。通过程序控制可以改变大部分引脚的功能状态,用于提高单片机在有限空间下的应用灵活性。正是由于单片机的这种可配置性,使得单片机的内部寄存器结构与通用CPU的寄存器结构在组织结构上有较大差异。

在单片机中寄存器可以被分为两大类,一类是与CPU执行运算功能相关的寄存器,包括地址寄存器,数据寄存器,堆栈寄存器等,与通用CPU相似的编程结构;另一类是与CPU执行运算功能无关,但与外围接口设置或使用相关的寄存器,这些寄存器被叫做特殊功能寄存器,通常不参与运算,只用于控制外围功能模块的设置,改变这些寄存器可以改变单片机中各种I/O接口或功能部件的工作状态、工作参数、缓存情况等。比如要设置某个引脚是用于输入还是输出,定时器的分频比例是多少,A/D转换是否工作,如何工作等,都需要通过改变特殊功能寄存器来确定。不同的单片机中特殊功能寄存器的数量和设置参数的配置方法也都是不相同的,要正确使用某一个单片机除了知道它是什么内核的单片机外,还必须了解其特殊功能寄存器的信息。

接下来介绍的几个系列8位单片机编程结构中,只涉及到了该系列单片机中与运算功能相关的寄存器结构,没有涉及与特殊功能寄存器相关的内容。因为不同公司生产的单片机虽然使用了某个系列的CPU内核,但由于其I/O接口和功能的不同,其特殊功能寄存器差别可能非常大。因此,要想正确使用某一种单片机,学会查阅其数据手册是十分必要的。

2.4 常用8位单片机

很多半导体制造企业都生产单片机产品,目前主要的生产商包括:美国的英特尔、摩托罗拉(飞思卡尔,Freescale)、智陆、国家半导体(NS)、微芯科技(Microchip)、爱特梅尔(Atmel)和德州仪器(TI)公司;荷兰的飞利浦(Philip)公司;德国西门子(Siemens)公司;日本电气公司(NEC)、日立(Hitachi)、东芝(Toshiba)和富士通(Fujitsu)公司;韩国的LG、三星以及中国台湾地区的凌阳公司等。这些公司的产品通常会包括从低端应用到高端应用的很多系列和不同型号,合理地为一个产品选择一款单片机,不但可能提高某个产品的开发效率,还可能会提高一个产品的可靠性和稳定性。因此,单片选型需要深入了解每一个系列的优势和特点。

本节将对一些主流的单片机产品进行介绍和比较,以帮助读者对相关产品有一定的认识和了解。这里所提到的某系列单片机,实际上是指某个系列的CPU内核。不同公司根据自己的产品定位,可以在某种CPU核周围集成一些其他部件,如存储器、定时器、A/D转换、PWM波输出等,以形成自己的产品。

2.4.1 MCS-51系列单片机

MCS-51系列单片机是英特尔公司在总结MCS-48系列单片机的基础上于1980年代初推出的高性能8位单片机。经过几十年的发展,特别是大量单片机生产企业的加入,使51单片机不断得以改进和提高,与51单片机兼容的单片机产品目前也已经形成一个十分庞大的产品家族。MCS-51兼容单片机是我国市场上使用最多的一类8位单片机。MCS-51单片机内部结构特征如下:包含一个8位CPU、每12个时钟周期完成一次机器周期,具有4K字节的程序存储器、128字节的RAM、21个特殊功能寄存器,其中有11个可以按位寻址、提供32根I/O接口线,当进行片外存储器访问时可以分别访问64K程序空间和64K数据空间,具有2个16位定时/计数器,支持5个中断源并提供两个中断优先级、一个串行通信接口。

MCS-51系列单片机主要有基本型和增强型两种。

基本型典型产品有3个,即8051、8751和8031。其中,8051片内集成4K字节的

ROM作为程序存储器,这个存储空间是开发者无法使用的,只能在生产时由厂家将程序代码固化在里面;8751则在片内集成了4K字节EPROM,开发人员可以将程序进行擦除和重写,从而大大方便系统开发;8031则未集成程序存储器,需要通过外部接口进行接入,这对于需要使用较大容量程序存储器的应用比较合适。

增强型的典型产品同样也是3个。增强型的编号为52子系列,即8052、8032、8752。主要增强体现在,其内部RAM增加至256字节,8052和8752的片内程序存储空间扩大到8K字节,16位定时/计数器增至3个,中断源增至6个,串行通信口的最高通信速率提高到原来的5倍。(www.xing528.com)

MCS-51系列单片机的片内硬件资源详见表2-1所示。

表2-1 MCS-51系列单片机的片内硬件资源

另外,MCS-51还有一系列由英特尔授权生产的兼容单片机,这些单片机与51单片机指令兼容,但却具有一些原来MCS-51所不具备的能力。例如有的以51内核开发的单片机,其片机程序存储空间高达128KB,有的51内核单片机工作频率可达30MHz甚至更高,还有包括可在线编程、片上A/D功能等。

MCS-51系列单片机中与运算功能相关的寄存器主要有两种,一种是工作寄存器(或称为通用寄存器),另一种是专用寄存器,通常设有特定的使用要求。工作寄存器在片内RAM的00H~1FH(共32B)地址空间,分为4组工作寄存器,每组由8个8位的寄存器组成,这些寄存器的编号都是R0~R7。如果要切换到不同组,可以通过对PSW的RS1和RS2进行设置,选择任意一组使用,其余3组将被屏蔽。在内存空间中,其他的存储空间可作为片内RAM使用。工作寄存器可以存放任何数据、地址等信息,由程序决定。

与工作寄存器不同,专用寄存器主要用于存放特定的信息,51系列单片机的专用寄存器及其使用规则如下。

(1)程序计数器PC:程序计数器PC是一个16位二进制的程序地址寄存器,专门用来存放下一条需要执行指令的内存地址,能自动加1。

(2)累加器A:累加器A(或者ACC)是运算过程中的暂存寄存器,是一个8位二进制寄存器,用于提供操作数和存放操作结果。

(3)寄存器B:寄存器B一般用于乘除法操作指令,也是一个8位二进制寄存器,由8个触发器组成,与累加器A配合使用。

(4)程序状态寄存器(PSW):程序状态寄存器(PSW)是一个8位寄存器,用于存放指令执行后的有关状态,为后面的指令执行提供状态条件。

(5)堆栈指针SP:推栈指针SP是在片内RAM中开辟一个存储区域,专门存放堆栈栈顶的地址。

(6)数据指针DPTR:数据指针DPTR是一个16位寄存器,由8位寄存器DPH和DPL组合而成。

下面以8051系列单片机为例,介绍一下51系列单片的基本内部结构。当然,由于设计目的的不同,可能一些具有51内核的单片机结构与该结构有一定的差异。8051系列单片机的内部结构是各种逻辑单元及其之间的互连构成的,其主要由中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、串行接口、并行I/O接口、定时/计数器、中断系统等几大单元,以及数据总线、地址总线和控制总线组成。8051系列单片机的内部结构框架,如图2-1所示。

典型的8051单片机具有4个8位的并行I/O端口,分别为P0、P1、P2和P3,共32 条I/O线。这些I/O端口是双向I/O端口,每个端口均可以用作输入和输出。在程序中,这些I/O端口分别对应4个特殊功能寄存器P0、P1、P2和P3。

51系列单片机的集成开发工具,由于51系列单片机使用时间较长,所以支持该单片机的集成开发工具也较为普遍,最为出名的就是凯尔(Keil)公司的u Vision集成开发工具;还有爱亚公司出品的IAR集成开发工具等。

图2-1 典型51单片机内部结构图

2.4.2 PlC系列单片机

美国微芯科技公司生产的PIC系列单片机具有价格低、速度高、功耗低和体积小等特点,并率先采用了RISC技术。该公司的8位PIC系列单片机现已成为嵌入式单片机的主流产品之一。

PIC系列单片机分低档、中档、高档3个层次,指令条数分别为33、35和58条,指令均向下兼容。低档产品采用12位宽度的RISC指令系统,典型产品有PIC12C5XX 和PIC16C5XX系列产品,仅仅只有8个引脚,价格低廉、应用广泛。中档产品采用14位宽度的RISC指令系统,在保持低价位的前提下,增加了ADC、E2PROM、输入捕捉/输出比较/脉宽调制(CCP)模块、I2C和SPI接口、同步/异步串行接口USART、模拟电压比较器、LCD驱动、FLASH程序存储器等功能模块。典型的产品有PIC16C55X/6X/7X/8X/9XX、PIC16F87X。高档产品采用16位宽度的RISC指令系统,是目前运行最快的8位单片机,具有硬件8*8乘法器,可以在一些高速运算场合取代DSP芯片,也是8位机中性价比较高的产品。典型产品包括PIC16C7XX、PIC18CXX、PIC18FXX系列。PIC系列单片机,虽然不同档次的产品其指令的宽度有所不同,但它们的数据总线宽度和单次数据处理能力都是8位,因此它仍然属于8位单片机。

PIC系列单片机内部采用一种被称为哈佛(Harvard)结构的双总线结构。在这种总线结构中,数据总线和程序总线从硬件上被分开,在获取程序的时候,可以同时对数据进行读写操作。这样就有效地避免了复杂指令集计算机(Complex Instruction Set Computer.CISC)设计中经常出现的总线瓶颈。PIC系列8位单片机采用独特的RISC结构,使指令具有单字长的特性,且允许指令码位数可多于8位的数据位数,这与传统的采用CISC结构的8位单片机相比,可以达到2∶1的代码压缩,速度提高4倍;两级指令流水线结构允许CPU在执行本条指令的同时也能取出下条指令的指令码,使CPU的工作速度得到很大提高。PIC系列单片机内部资源丰富,用户可根据需要选取。

PIC系列单片机各类数据存储器都是以寄存器方式工作和寻址的。除了RAM存储器的F07(F08)以上的20多个地址作为通用寄存器外,专用寄存器主要有定时寄存器TMRO、选择寄存器OPTION(又称为项选寄存器)、程序计数器PCL、状态寄存器STATUS、间接寻址寄存器INDF和FSR。特殊功能寄存器主要有端口I/O寄存器(如PORTA、PORTB)和相对应的端口I/O控制寄存器(又称为端口I/O数据方向寄存器,如TRIAS、TRISB)、保持寄存器PCLATH和中断控制寄存器INTCON等。上述这些专用寄存器和特殊功能寄存器在PIC16C63/65/65A和PIC16C71A系列中是共有的,在这些单片机中,这些寄存器的名称、功能均相同,而且寄存器的地址也完全相同。专用寄存器的每个寄存单元都有相对应的固定用途。

PIC系列部分单片机的性能详见表2-2所示。

表2-2 PIC系列部分单片机性能一览表

续表2-2

PIC单片机系列封装引脚最少的是8引脚(如PIC12C5XX和PIC12C6XX),多的可达84引脚(如PIC17C76X),其中,I/O(输入/输出)口线按PIC单片机产品型号的不同,其口线数量也不相同。8脚封装的I/O口线是6根线,而84脚封装的I/O线则多达66根线。这些口线符号分别按英文字母顺序排列编号,简称A口、B口、C口、D口、E口、F口……每个口是8位的,但不一定占满8位。这些口在封装引脚图的标注上均在各口之前加有R符号。例如B口标注为RB0、RB1、RB2……RB7;E口为RE0、RE1……RE7;G口为RG1、RG2……RG7。而8脚封装的单片机共有6根I/O口线,其引脚图的标注与上略有不同,是GP0~GP5。上述的各口线都是可独立编程的双向I/O口线。

PIC系列8位单片机为适应各种不同的用途,有多种型号可供选用。但是,尽管PIC单片机有不同的档次和型号,但其最基本的组成则大同小异。典型的PIC单片如PIC16F84,其基本结构如图2-2所示。

图2-2  PIC16F84单片机基本组成结构图

由于微芯科技采用了与51完全不同的产品策略,PIC单片机并没有给其他公司进行产品授权。因此,也就没有其他公司设计不同的PIC系列的单片机,对于PIC单片机的选择也就只能集中在该公司的不同系列上。PIC16F84是款双列直插式(DIP)塑料的单片机,最大工作频率可达4MHz。由图2-2中可见,其主要结构包括中央处理器(CPU)、程序存储器(ROM)、数据寄存器(RAM)和两个输入/输出口(I/O口)。

由于采用了双总线结构,在取指和执行时,还可同时对数据寄存器进行取数。由图2-2可明显看出,程序存储器和数据存储器各有一条总线与CPU相连。在51单片机中,CPU内部寄存器与外部的RAM中的寄存器采用分开式的管理方式,但在PIC单片机中则采用了统一管理的方式,RAM中的存储空间被称为File寄存器。

PIC16F84的程序存储器是由Flash(闪速)EPROM构成,它可用电来记录和擦除,而在断电时,仍可保留其内容。PIC单片机有些型号的程序存储器用的是EPROM,需要用紫外线来擦除。随着闪存技术的成熟和大规模应用,这类产品已经很少使用。当然,出于成本和稳定性的考虑,还有一些产品采用一次性可编程(OTP)方式,只在最终产品中写入程序。

PIC16F84有两个输入/输出端口,即A口和B口。每个口的每个引脚可单独设定为输入或输出,各个口的位是从0开始编号的。当A口为输出方式时,其第4位(即RA4)为开路集电极(或开路漏极)输出,而B口及A口其他各位为常规的全CMOS驱动电路。这些功能必须注意,否则会在编程时出错。CPU对每个端口都按一个字节8位来处理,但A口只有5位引脚。PIC输入与COMS兼容,所以PIC输出可驱动TTL或CMOS逻辑芯片。每个输出引脚可以流出或吸入20m A电流。

PIC系列单片机的集成开发工具主要有微芯科技公司出品的MPLAB IDE集成开发工具,该工具是集合了编辑器、项目管理器和设计平台,适用于使用微芯科技的PICmicro&reg系列单片机进行嵌入式设计的应用开发和dsPICTM数字信号控制器的应用系统开发。

另外,第三方的集成开发工具,如IAR也可以支持PIC系列单片机的开发,不过需要有相应的License。

2.4.3 AVR单片机

1997年,爱特梅尔半导体公司挪威设计中心的A先生与V先生利用爱特梅尔半导体公司的Flash新技术,共同研发出RISC精简指令集的高速8位单片机,简称AVR。相对于出现较早也较为成熟的51系列单片机,AVR系列单片机片内资源更为丰富,接口也更为强大。由于其价格低等优势,AVR单片机吸取了PIC及8051等单片机的优点,同时在内部结构上还作了一些重大改进。AVR8-Bit MCU最大的特点有以下几点。

(1)采用CMOS技术和RISC架构,实现高速(50ns)、低功耗(μA)、具有SLEEP(休眠)功能。AVR的一条指令执行速度可达50ns(20MHz),而耗电则在1μA~2.5m A间。AVR采用Harvard结构,以及一级流水线的预取指令功能,即对程序的读取和数据的操作使用不同的数据总线,因此,在执行某一指令时,下一指令被预先从程序存储器中取出,这使得指令可以在每一个时钟周期内被执行。

(2)吸取了精简指令集(RISC)处理器的设计思想,具有多个累加器,数据处理速度快。AVR单片机具有32个通用工作寄存器,相当于有32个存储单元,可以快速进行数据交换和处理;克服了如8051MCU采用单一ACC进行处理造成的瓶颈现象;快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,同时内部集成大容量的FLASH,特别适用于使用高级语言进行开发。

(3)在I/O设计上,采用了大电流接口设计,具有良好的负载能力和驱动能力。作为输出接口时,其输出电流可达40m A(单一输出);作为输入接口时,可设置为三态高阻抗输入或带上拉电阻输入,具备10m A~20m A灌电流的能力。通用数字I/O口的输入输出特性与PIC的HI/LOW输出及三态高阻抗HI-Z输入类同,同时可设定类同于8051结构内部有上拉电阻的输入端功能,便于作为各种应用特性所需(多功能I/O口)。AVR的I/O口是真正的I/O口,能正确反映I/O口输入/输出的真实情况。

(4)除使用外部晶振作为振荡源外,片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更稳定可靠。

(5)AVR片上资源十分丰富,大部分AVR芯片集成了E2PROM、PWM、RTC、SPI、UART、TWI、ISP、AD、Analog Comparator、WDT等功能接口,可以极大地简化电路设计、提高系统总体可靠性,支持在线编程能力。AVR能够方便升级或销毁应用程序。

(6)像8051一样,有多个固定中断向量入口地址,可快速响应中断,而不是像PIC一样,所有中断都在同一向量地址,需要程序判别后才可响应,这会浪费且失去控制时机的最佳机会。

(7)同PIC一样,带有可设置的启动复位延时。AVR单片机内部有电源开关启动计数器,当系统RESET复位上电后,利用内部的RC看门狗定时器,可延迟MCU开始运行执行程序的时间。这种延时启动的特性,可使MCU在系统电源、外部电路达到稳定后再正式开始执行程序,因此提高了系统工作的可靠性,同时也可节省外加的复位延时电路。

(8)具有很低的功耗。对于典型功耗情况,WDT关闭时为只需要100n A,十分适合于电池供电的应用设备。另外,AVR的低电压器件其最低工作电压可以低到1.8V。

(9)保密性能好。AVR单片机具有不可破解的位加密锁Lock Bit技术,其保密位单元深藏于芯片内部,无法用电子显微镜看到,可以有效地保护知识产权。

爱特梅尔半导体公司的AVR单片机有三个系列的产品。为满足不同的需求和应用,爱特梅尔半导体公司对AVR单片机的内部资源进行了相应的扩展和删减,推出了tiny AVR、low power AVR和mega AVR,分别对应低、中、高三个不同档次数十种型号的产品。

低档Tiny系列AVR单片机:主要有Tiny11/12/13/15/26/28等。

中档AT90S系列AVR单片机:主要有AT90S1200/2313/8515/8535等。

高档ATmega系列AVR单片机:主要有ATmega8/16/32/64/128(存储容量为8/16/32/64/128KB)以及ATmega8515/8535等。

AVR单片机有32个通用寄存器和64个I/O寄存器。在AVR指令集中,所有通用寄存器的操作指令均带有方向,并能在单一时钟周期中访问所有的寄存器。每个通用寄存器直接映射到数据空间的前32个地址,因此也可以使用访问SRAM的指令对这些寄存器进行访问。通常情况下,最好是使用专用的寄存器访问指令对通用寄存器组进行操作。这32个通用寄存器的功能有一定的差别,尤其是R16~R31这16个寄存器能实现的操作比R0~R15要多,如SBCI、SUBI、CPI、ANDI、ORI及直接装入常数到寄存器的LDI,而且乘法指令仅适用于寄存器组中的后半部分(R16~R31)。另外,R26~R31还构成了3个16位地址指针寄存器X、Y、Z,所以一般情况下不要作为它用。AVR寄存器最后6个寄存器R26~R31具有特殊功能,这些寄存器每两个合并成一个16位的寄存器,作为对数据存储器空间(使用X、Y、Z寄存器)以及程序存储器空间(仅使用Z寄存器)间接寻址的地址指针寄存器。

AVR系列单片机所有I/O口及外围接口的功能和配置均通过I/O寄存器进行设置和使用。CPU访问I/O寄存器可以使用两种不同的方法,一是使用对I/O寄存器访问的IN、OUT指令,二是使用对SRAM访问的指令。其中,状态寄存器SREG和堆栈寄存器SP在AVR单片机中起着非常重要的作用。

典型的AVR单片机包括ATmega8,ATmega16,ATmega128等,这些单片机的主要区别在于其片机存储器的容量和I/O数量,当然也会有功能上的部分调整。以AT-mega16为例,作为增强的AVR RISC结构的低功耗8位CMOS微控制器,ATmega16 AVR内核具有丰富的指令集和32个通用的工作寄存器,所有的寄存器都直接与运算逻辑单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。

ATmega16的主要特点有,16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及6个可以通过软件进行选择的省电模式。

工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;处于ADC噪声抑制模式时,终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。

AVR单片机具有一整套的编程与系统开发工具,包括C语言编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板。AVR系列单片机是目前在8位单片机应用领域中使用范围较广的一类产品。爱特梅尔半导体司提供了一个被称为AVR Studio的集成开发工具,该工具不但可以完成软件的编译,还可以通过软件仿真的方式对程序进行运行和调试;也可以在其他开发工具上编译成可执行二进制文件后,通过该工具进行仿真调试。

AVR单片机的集成开发工具也有第三方软件厂商提供,包括爱亚公司的IAR集成开发环境;惠普信息技术公司(HPinfotech)的Codevision AVR集成开发工具;Imagecraft公司的ICCAVR集成开发工具,这也是目前国内使用较多的一种工具。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈