1、单片机原理及控制技术读书报告常见单片机对比在经过一段时间查阅资料,了解了各种单片机在性能价格应用领域的差别后,做以下总结。目前主流单片机或者说是比较有名的主要有以下种类:51 系列,AVR 系列,PIC 系列,摩托罗拉系列,另外还有 MSP430 系列MCS51 系列MCS51 是指由美国 INTEL 公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如 8031,8051,8751,8032 ,8052,8752 等,其中 8051是最早最典型的产品,该系列其它单片机都是在 8051 的基础上进行功能的 增、减、改变而来的,所以人们习惯于用 8051 来称呼 MCS51 系列单片机
2、,而 8031是前些年在我国最流行的单片机,所以很多场合会看到 8031 的名称。同时也是应用最广泛的八位单片机,价格也非常便宜,由于产品硬件结构合理,指令系统规范,生产历史悠久,有先入为主的优势。这系列单片机也是我们正在学习的,很明显由于最早出道,51 单片机是被研究的最多的,也就使其变得比较经典,简单易学容易入手。主要优点:一他从内部的硬件到软件有一套完整的按位操作系统,即处理器。他处理的对象是位,它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,功能十分完备,使用起来得心应手。尤其是进行逻辑运算这个功能,非常少见。51 系列在片内 RAM
3、区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址 20H2FH,它既可用作字节处理,也可用作位处理,使用非常灵活。这一功能无给使用者提供了很大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需要建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一动作,只需要一条位操作指令即可。比如要对 21H 的第 0 位置位,只需要一条指令SETB 08H对周围的其他位不会产生影响。相比之下 AVR 系列单片机就不能直接对 RAM 单元中的位进行操作。二51 系列有乘法和除法指令,这也给编程带来了便利。因为很多的八位单片机都不具备乘法
4、功能,作乘法时还要编上一段子程序调用十分不便。同样还有一条指令 DA,即将二进制变为 BCD 码,这对于十进制的计算也十分方便。在其他单片机中也是不具备的功能。三51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十A甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力。其原因是高电平时該脚也同时作输入脚使用,而输入脚必须具有高的输入阻抗,因而上拉的电流必须很小才行。作输出脚使用,欲进行高电平驱
5、动时,得利用外电路来实现,I/O脚不通,电流经R驱动LED发光;低电平时,I/O脚导通,电流由该脚入地,LED灭(I/O脚导通时对地的电压降小于1V,LED的域值1.51.8V)。51系列I/O脚使用简单,但高电平时无输出能力,可谓有利有弊。故其他系列的单片机(如PIC系列、AVR系列等)对I/O口进行了改进,增加了方向寄存器以确定输入或输出,但使用也变得复杂。改进之处:一运行速度过慢。当晶振频率为12MHz时,机器周期达1s,显然适应不了现代高速运行的需要。华邦公司(Winbond)生产的产品型号为W77系列和W78系列,W78系列与AT89C系列完全兼容。W77系列为增强型,对原有的805
6、1的时序作了改进,每个机器周期从12个时钟周期改为4个周期,使速度提高了三倍,同时,晶振频率最高可达40MHz。二数据指针 DPTR 吃紧。在 51 系列中,数据指针 DPTR 是片内与片外的数据存储器打交道的主要途径(由片外数据存储器读入片内累加器 A 或由片内累加器 A 写入片外数据存储器),也是程序存储器与累加器 A 之间的数据传送的必由之路。由于频繁的数据交换,特 别是数据块的搬运和比较,数据指针非常吃紧,它需要不断地实施现场保护与还原,不光编程变得复杂,而且运行速度也减慢。而当采用两个数据指针时,可以各负其责,互不相扰,轻松地完成上述过程。这也是华邦公司生产的 W77 系列的一个特色
7、功能双数据指针。三功能太过一般,一般功能也有,但很多功能要靠扩展,增加硬件和软件负担。这里可以说道华邦公司 W77 系列还有一个比较方便的功能,即 ISP 功能。该能实现在系统可编程,可以省去通用的编程器,单片机在用户板上即可下载和烧录用户程序,而无需将单片机从生产好的产品上取下。未定型的程序还可以边生产边完善,加快了产品的开发速度,减少了新产品因软件缺陷带来的风险。由于可以将程序下载并观看运行结果,故也可以不用仿真器。当然这些功能也不只单单 W77 系列有,一些新的型号的 51 系列产品大都有该功能,如Philips 的 51LPC 系列、AT89 系列中的某些型号、STC89C 系列等等。
8、有的单片机还附有 A/D、D/A 转换、片内 EEPROM 数据存储器、PWM 输出、I2C 总线、上电复位检测、欠压复位检测等等,这些新系列的单片机,它们都兼容 8051 的指令系统。增强功能的实现,大都是由片内新增的特殊功能寄存器来进行设置,这些寄存器被安排在片内特殊功能寄存器区间(80FFH)的预留地址上。比较有代表性的产品还有 STC89C51RC、C8051F331/330 等等。可以这么说,新的 51 产品几乎可以涵盖所有新的功能。四解密容易。出道过早,被研究的很透彻了。AVR 系列AVR 单片机是 Atmel 公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取
9、消机器周期,以时钟周期为指令周期,实行流水作业。AVR 单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用 48MHz,故最短指令执行时间为 250125ns。该系列的型号较多,但可用下面三种为代表:AT90S2313(简装型)、AT90S8515、AT90S8535(带 A/D 转换)。主要优点:价格相对性价比来说也算便宜,硬件结构适合 C 语言编程,功能相当齐全,不容易解密。抗干扰能力强,军工产品中也经常能看到。缺点:通用寄存器一共 32 个(R0R31) ,前 16 个寄存器(R0R15)都不能直接与立即数打交道,因而通
10、用性有所下降。同时也因为功能寄存器太过不容易学,不适合新手(这点可以靠努力克服) 。AVR 系列没有类似累加器 A 的结构,它主要是通过 R16R31 寄存器来实现 A 的功能。在 AVR 中,没有像 51 系列的数据指针 DPTR,而是由 X(由R26、 R27 组成) 、Y(由 R28、R29 组成) 、Z (由 R30、R31 组成)三个 16 位的寄存器来完成数据指针的功能(相当于有三组 DPTR),而且还能作后增量或先减量等的运行,如:例:LDRd, X ;将 X 所指的地址的内容装入寄存器 Rd 中。LDRd,Y;将 Y 所指的地址的内容装入寄存器 Rd 中,然后 Y 的地址增 1
11、。LDRd,X ;将 X 的地址减 1 所指的地址的内容装入寄存器 Rd 中。在 51 系列中,所有的逻辑运算都必须在 A 中进行;而 AVR 却可以在任两个寄存器之间进行,省去了在 A 中的来回折腾,这些都比 51 系列强。AVR 的 I/O 脚又用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在 10mA 左右,低电平吸入电流 20mA。也比 51 系列强。AVR 的专用寄存器集中在 003F 地址区间,无需像 PIC 那样得先进行选存储体的过程,使用起来比 PIC 方便。AVR 的片内 RAM 的地址区间为0060$00DF(AT90S2313) 和 0060025F(AT
12、90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内 RAM 仅仅是用来存储数据的,通常不具备通用寄存器的功能。当程序复杂时,通用寄存器 R0R31 就显得不够用;而 51系列的通用寄存器多达 128 个(为 AVR 的 4 倍) ,编程时就不会有这种感觉。PIC 系列PIC 单片机系列是美国微芯公司(Microship)的产品,是当前市场份额增长最快的单片机之一,价格也比较便宜。CPU 采用 RISC 结构,分别有33、35、58 条指令(视单片机的级别而定) ,属精简指令集。而 51 系列有 111条指令,AVR 单片机有 118 条指令,都比前者复杂。采用 Harv
13、ard 双总线结构,运行速度快(指令周期约 160200ns) ,它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期(个别除外) ,这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。PIC 系列单片机共分三个级别,即基本级、中级、高级。其中又以中级的PIC16F873(A) 、PIC16F877(A) 用的最多,不过这两种芯片除了引出脚不同差别并不大。PIC 系列单片机的 I/O 口是双向的,其输出电路为 CMOS 互补推挽输出电路。I/O
14、 脚增加了用于设置输入或输出状态的方向寄存器(TRISn,其中 n 对应各口,如 A、B、C 、D 、E 等) ,从而解决了 51 系列 I/O 脚为高电平时同为输入和输出的状态。当置位 1 时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位 0 时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达 25mA,高电平输出电流可达 20mA。相对于 51 系列而言,这是一个很大的优点,它可以直接驱动数码管显示且外电路简单。它的 A/D 为 10 位,能满足精度要求。具有在线调试及编程( ISP)功能。该系列单片机的专用寄存器(SFR)并不像 51 系列
15、那样都集中在一个固定的地址区间内(80FFH) ,而是分散在四个地址区间内,即存储体0(Bank0 :007FH) 、存储体 1(Bank1 :80FFH)、存储体 2(Bank2 :10017FH)、存储体 3(Bank3:1801FFH)。只有 5 个专用寄存器PCL、STATUS、FSR、PCLATH、 INTCON 在 4 个存储体内同时出现。在编程过程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体,也即对状态寄存器 STATUS 的第 6 位(RP1 )和第 5 位(RP0)置位或清零。如:例:CLRFSTATUS ;清零 RP,RP0。选择存储体 0BSF STATUS,
16、RP0;置位 RP0。选择存储体 1BCF STATUS,RP0 ;清零 RP0。选择存储体 0这多少给编程带来了一些麻烦。对于上述的单片机,它的位指令操作通常限制在存储体 0 区间(007FH) 。 数据的传送和逻辑运算基本上都得通过工作寄存器 W(相当于 51 系列的累加器 A)来进行,而 51 系列的还可以通过寄存器相互之间直接传送 (如:MOV 30H,20H;将寄存器 20H 的内容直接传送至寄存器 30H 中),因而 PIC 单片机的瓶颈现象比 51 系列还要严重,这在编程中很有感受。摩托罗拉系列(Motorola 68)摩托罗拉曾经是世界上最大的单片机厂商,从 M6800 开始,
17、开发了广泛的品种。摩托罗拉单片机的特点之一是在同样的速度下所用的时钟频率较 INTEL类单片机低得多,因而使得高频噪声低,抗干扰能力强,更适合于工控领域及恶劣的环境,目前广泛应用于汽车电子中动力传动、车身、底盘及安全系统等领域。飞思卡尔(freescale)一直是摩托罗拉半导体分支,2004 年 7 月成为独立企业,摩托罗拉单片机半导体业务就由飞思卡尔接管。目前,摩托罗拉单片机在国内的市场占有率有下降趋势。摩托罗拉的单片机使用的人不多,小客户基本不支持,价格也较高,仿真开发工具也非常昂贵。MSP430MSP430 系列单片机是美国德州仪器(TI)1996 年开始推向市场的一种16 位超低 1功
18、耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片”解决方案。该系列单片机多应用于需要电池供电的便携式仪器仪表中。价格有高有低,主要看单片机类型MSP430 单片机特点:一:处理能力强。MSP430 系列单片机是一个 16 位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式( 7 种源操作数寻址、4 种目的操作数寻址) 、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算
19、;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。二:运算速度快。MSP430 系列单片机能在 25MHz 晶体的驱动下,实现40ns 的指令周期。16 位的数据宽度、40ns 的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如 FFT 等)。三:超低功耗。MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压和灵活而可控的运行时钟方面都有其独到之处。 首先,MSP430 系列单片机的电源电压采用的是 1.8-3.6V 电压。因而可使其在 1MHz 的时钟条件下运行时,芯片的电流最低会在 165A 左右,RAM 保持模式下的最
20、低功耗只有 0.1A。 其次,独特的时钟系统设计。在 MSP430 系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL 和 FLL+)时钟系统和 DCO 数字振荡器时钟系统。可以只使用一个晶体振荡器(32768Hz),也可以使用两个晶体振荡器。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。 由于系统运行时开启的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0LPM4)。在实时时钟模式下,可达 2.5A ,在 RAM 保持模式下,最低可达 0.1A
21、 。四:片内资源丰富。MSP430 系列单片机的各系列都集成了较丰富的片内外设。它们分别是看门狗(WDT)、模拟比较器 A、定时器 A0(Timer_A0)、定时器 A1(Timer_A1)、定时器 B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、液晶驱动器、10 位/12 位 ADC、16 位 - ADC、DMA、I/O 端口、基本定时器(Basic Timer)、实时时钟(RTC)和 USB 控 制器等若干外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 A/D 转换器;16 位定时器(Timer_A 和 Time
22、r_B)具有捕获/比较功能,大量的捕获/比较寄存器,可用于事件计数、时序发生、 PWM 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,P0、P1、P2 端口能够接收外部上升沿或下降沿的中断输入;10/12 位硬件 A/D 转换器有较高的转换速率,最高可达 200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位 D/A 转换;硬件 I2C 串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用的 DMA 模块。MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的
23、方便。 另外,MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的低功耗状态时,中断唤醒只需 5s。五:方便高效的开发环境。MSP430 系列有 OPT 型、 FLASH 型和 ROM 型三种类型的器件,这些器件的开发手段不同。对于 OPT 型和 ROM 型的器件是使用仿真器开 发成功之后烧写或掩膜芯片;对于 FLASH 型则有十分方便的开发调试环境,因为器件片内有 JTAG 调试接口,还有可电擦写的 FLASH 存储器,因此采用先下载程序到 FLASH 内,再在器件内通过软件控制程序的运行,由 JTAG 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 C 语言。个人感悟单片机其实学起来差不多,而且作为电子信息工程系的学生,只了解一种单片机是远远不够的,要在掌握好一款单片机原理和应用的基础上,再开始学习其他各家单片机,尽可能地掌握单片机的一些外围器件和常用电路,以备不时之需。