浅谈AT89S51
2010-11-25徐春河
徐春河
XU Chun-he
(山东省信息技术职业学院,潍坊 261061)
0 引言
随着大规模集成电路技术的迅猛发展,近年来芯片的集成度也越来越高。各种高性能、低价格的微型计算机相继问世。而较为突出的单片机由于体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,指令功能强,运行速度快,可靠性高及灵活性好,开发也较为容易等特点,所以单片机的应用也相应的越来越突出。其最具代表性和广泛应用的单片机为美国Intel公司的MCS-51系列的8位字长和MCS-96系列的16位字长单片机。
1 AT89S51单片机的诞生
MCS-51 单片机是美国INTE公司于1980 年推出的产品,其典型产品有 8031、8051和8751等通用产品,一直到现在, MCS-51 内核系列兼容的单片机仍是应用的主流产品,比如目前流行的89S51、已经停产的89C51 等,有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。其他的公司的 51 单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51、89S51,PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51 指的是ATMEL公司的AT89C51 单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000 次)存储器取带了原来的ROM(一次性写入),而AT89C51 的性能相对于8051 已经算是非常优越的了。不过在市场化方面,89C51 受到了PIC 单片机阵营的挑战,89C51 最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP 功能等新功能才能更好延续MCS-51 的传奇。AT89S51就是在这样的背景下取代了AT89C51,现在,AT89S51 目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel 目前公司已经停产AT89C51,将用AT89S51代替。AT89S51 在工艺上进行了改进,AT89S51 采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。AT89S51可以像下兼容AT89C51 等51 系列芯片。同时,Atmel 不再接受89C51的定单,大家在市场上见到的89C51 实际都是Atmel 前期生产的巨量库存而以。如果市场需要,Atmel当然也可以再恢复生产AT89C51。
2 AT89S51单片机的功能和特点
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K的可编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
AT89S51采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的 ROM,256 B的 RAM,2个16b的定时/计数器TO和T1,4个8 b的工/O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。
其引脚功能如下:
Vcc:电源电压
GND:接地
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
Flash编程和程序校验期间,P1接收低8位地址。
P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVE @DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX @Ri指令)时,P2口线上的内容,在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其他控制信号。
P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。
P3口还接手一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态。
ALE/ ~PROG:当访问外部程序存储器或数据存储器时,ALE(地址所存允许)输出脉冲用于所存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(~PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
~PSEN:程序储存允许(~PSEN)输出是外部程序存储器的选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次~PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的~PSEN信号。
EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H——FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会所存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程电压VPP。
XTAL1:振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:振荡器反相放大器的输出端。
AT89S51标准功能:4K字节闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中到内容,但振荡器停止工作并禁止其它所有工作部件直到下一个硬件复位。
其主要性能参数:
与MCS-51产品指令系统完全兼容
4K字节在线系统编程(ISP)Flash 闪速存储器
1000次擦写周期
4.0-5.5V的工作电压范围
全静态工作模式:0HZ-33MHZ
三级程序加密锁
128*8字节内部RAM
32个可编程I/O口线
2个16位定时/计数器
6个中断源
全双工串行UART通道
低功耗空闲和掉电模式
中断可从空闲模式唤醒系统
看门狗(WDT)及双数据指针
掉电标模示和快速编程特性等
3 AT89S51优越性
在AT89C51基础上新增加的功能使AT89S51性能有了较大提升,但价格基本不变,甚至比AT89C51 更低。
ISP 在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。
最高工作频率为33MHz, AT89S51比AT89C51具有更高工作频率,从而具有了更快的计算速度。
具有双工UART 串行通道。
内部集成看门狗计时器,不再需要像AT89C51 那样外接看门狗计时器单元电路。
双数据指示器。
电源关闭标识。
全新的加密算法,这使得对于AT89S51 的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
兼容性方面:向下完全兼容51 全部字系列产品。比如8051、89C51 等等早期MCS-51 兼容产品。也就是说所有教科书、网络教程上的程序,在AT89S51 上一样可以照常运行,这就是所谓的向下兼容。比较结果:就如同 INTEL 的P3 向P4 升级一样,虽然都可以跑Windows98,不过速度是不同的。从 AT89C51 升级到AT89S51 ,也是同理。
4 单片机发展前景
纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。作为典型的主流的AT89S51型单片机我们更要深刻的认识和掌握。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。所以,不仅要掌握好51单片机,更重要的是运用好。
[1] 安然然,聂鑫.基于AVR单片机的步进电机控制[J].沈阳化工学院学报, 2005(02):126-128.
[2] 李敏,孟臣.彩色液晶显示器在嵌入式系统中的应用[J].单片机与嵌入式系统应用, 2004(02):49-52.
[3] 刘玉良,贾子申,刘丽辉,杨伟明.基于MSP430单片机的软件代码快速开发[J].天津科技大学学报, 2010(03):61-65.