㈠ 89S51单片机的简介
89C51最致命的缺陷在于不支持
ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇.89S51
就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,
作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替.89S51在
工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力.
89SXX可以像下兼容89CXX等51系列芯片.
89S51相对于89C51增加的新功能包括:
-- 新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!
-- ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作
环境中剥离.是一个强大易用的功能.
-- 最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更
高工作频率,从而具有了更快的计算速度.
-- 具有双工UART串行通道.
-- 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路.
-- 双数据指示器.
-- 电源关闭标识.
-- 全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样
就可以有效的保护知识产权不被侵犯.
-- 兼容性方面:向下完全兼容51全部字系列产品.比如8051,89C51等等早期MCS-51兼
容产品.也就是说所有教科书,网络教程上的程序(不论教科书上采用的单片机是8051还
是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容.
比较结果:就如同INTEL的P3向P4升级一样,虽然都可以跑Windows98,不过速度是不
同的.
㈡ AT89S51单片机中总线按功能划分为哪几种简要说明其功能
1)数据总线:D0--D7,
2)地址总线:A0--A15,
3)读写控制总线;
4)输入输出总线 PIO:
这些总线的外连端口,大部分是与PIO口复用;
㈢ 89S51单片机详细介绍
89S51 单片机
MCS-51 单片机是美国INTE 公司于1980 年推出的产品,典型产品有 80 31(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51 的5 倍,实际使用方面已经被市场淘汰)和8751 等通用产品,一直到现在, MCS-5 1 内核系列兼容的单片机仍是应用
的主流产品(比如目前流行的89S51、已经停产的89C51 等),各高校及专业学校的培训教材仍与MCS-51 单片机作为代表进行理论基础学习。
有些文献甚至也将8051 泛指MCS-51 系列单片机,8051 是早期的最典型的代表作,由于MCS-51 单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51 内核实际上已经成为一个8 位单片机的标准。
其他的公司的51 单片机产品都是和MCS-51 内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL 的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51 指的是ATMEL公司的 AT 89C51 单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写 1000 次)存储器取带了原来的 ROM(一次性写入),AT89C51 的性能相对于8051 已经算是非常优越的了。
不过在市场化方面,89C51 受到了PIC 单片机阵营的挑战,89C51 最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP 功能等新功能才能更好延续MCS-51 的传奇。89S51就是在这样的背景下取代89C51 的,现在,89S51 目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel 目前公司已经停产AT89C51,将用AT89S51 代替。89S51 在
工艺上进行了改进,89S51 采用 0.35 新工艺,成本降低,而且将功能提升,增 加了竞争力。89SXX 可以像下兼容89CXX 等51 系列芯片。市场上见到的89C51 实际都是Atmel 前期生产的巨量库存而以。如果市场需要,Atmel当然也可以再恢复生产AT89C51。
AT89S51/LS51单片机是低功耗的、具有4KB在线课编程Flash存储器的单片机。它与通用80C51系列单片机的指令系统和引脚兼容。片内的Flash可允许在线重新编程,也可使用非易失性存储器编程。他将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能性价比的微控制器。
AT89S51/LS51具有如下特性:
--片内程序存储器含有4KB的Flash存储器,允许在线编程,檫写周期可达1000次;
--片内数据存储器内含128字节的RAM;
--I/O口具有32根可编程I/O线;
--具有两个16位I/O线;
--中断系统具有6个中断源、5个终端矢量、2个中断优先级的中断结构;
--串行口是一个全双工的串行通信口;
--具有两个数据指针DPTR0和DPTR1;
--低功耗节电模式有节电模式和掉电模式;
--包含3级程序锁定位;
--AT89S51的电源电压为4.0-5.5V,AT89LS51的电源电压为2.7-4.0V;
-振荡器频率0-33MHz(AT89S51),0-16MHz(AT89LS51);
--具有片内看门狗定时器;
--灵活的在线片内编程模式(字节和页编程模式);
--具有断电标志模式POF;
89S51 相对于89C51 增加的新功能包括:
-- 新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51 更低!
-- ISP 在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作
环境中剥离。是一个强大易用的功能。
-- 最高工作频率为33MHz,大家都知道89C51 的极限工作频率是24M,就是说S51 具有更
高工作频率,从而具有了更快的计算速度。
-- 具有双工UART 串行通道。
-- 内部集成看门狗计时器,不再需要像89C51 那样外接看门狗计时器单元电路。
-- 双数据指示器。
-- 电源关闭标识。
-- 全新的加密算法,这使得对于89S51 的解密变为不可能,程序的保密性大大加强,这样
就可以有效的保护知识产权不被侵犯。
-- 兼容性方面:向下完全兼容51 全部字系列产品。比如8051、89C51 等等早期MCS-51 兼
容产品。也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051 还
是89C51 还是MCS-51 等等),在89S51 上一样可以照常运行,这就是所谓的向下兼容。
引脚排列及功能
AT89S51/LS具有PDIP,TQFP和PLCC三种封装形式。PDIP封装的引脚排列如图所示。
引脚功能如下:
--P0口——8位、开漏极、双向I/O口。
P0口可作为通用I/O口,但必须外接上拉电阻;作为输出口,每个引脚课吸收8个TTL的灌电流。作为输入时,首先应将引脚置1。
P0口也可用作外部程序存储器和数据存储器是的低八位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。
在Flash编程时,Po口接受代码数据;在编程校验时,P0口输出代码字节数据(需要外接上拉电阻)。
--P1口——8位、双向I/O口、内部含有行拉电阻。
P1可作为普通I/O口。输出缓冲器可驱动4个TTL负载;用作输入时,先交引脚置1,有片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉倒低电平,通过上拉电阻提供拉电流。
在Flash并行
编程和校验时,P1口可输入低字节地址。
在串行编程和校验时,P1.0/MOSI,P1.6/OSI和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。
I/O具有内部拉电阻的8位双向I/O。
P2口用作输出口时,可驱动四个TTL负载;用作输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。
CPU访问外部16位地址的存储器时,P2口提供高8位的地址。当CPU用8位地址寻址外部存储器时,P2口为P2特殊功能寄存器内容。
在FLASH并行编程和校检时,P2口可输入高字节地址和某些控制信号。
--P3口——局有内部上拉电阻8位双向口。
P3口左忽出口时,输出缓冲器可吸收4个TTL的灌电流;用作输入口时,手先将引脚置1,有内部上拉电阻抬为高电平。若外部负载是低电平,则通过内部上拉电阻向外输出电流。
在与FLASH并行编程和校检时,P3口可输入某些控制信号。
P3口除了通用I/O功能外,还有替代功能,如下表所示:
引脚
符号
说明
P3.0
RXD
串行口输入
P3.1
TXD
串行口输出
P3.2
INT0
外部中断0
P3.3
INT1
外部中断0
P3.4
T0
T0定时器的外部计数输入
P3.5
T1
T1定时器的外部计数输入
P3.6
WR
外部数据存储器的写选通
P3.7
RD
外部数据存储器的读选通
--ALE/PROG——地址锁存允许/编程脉冲信号端。
在CPU访问外部程序存储器或者外部数据存储器时,ALE提供一个地址锁存信号,将低8位地址锁存在骗外地址锁存中。
在与FLASH并行编程时,该引脚也是编程负脉冲的输入端。
在正常操作状态下,该引脚端口输出额定频率的脉冲,其频率为额定频率的1/6,可做外部定时或者其它引发信号。应注意,CPU每次访问外部数据存储器时,都要丢失一个ALE脉冲。
如果需要,则通过将SFR(8EH)的第0位置1,可禁止ALE操作,但在使用MOVC或者MOVX指令时候,ALE仍有效。也就是说,ALE的禁止位不影响对外部存储器的访问。
--PSEN——外部程序存储器读选通信号,低电平有效。
当AT89S51/LS51执行来自外部程序存储器指令代码时候,PSEN每个机器周期两次有效。在访问外部数据存储器时候,则无效
--EA/Vpp——外部程序存储器允许。
当EA接地时,CPU只执行外程序存储器的程序;当EA接Vcc时,CPU首先执行片内程序存储器中的程序(0000H ——0FFFH),然后自动转向执行片外程序存储器中的程序(1000H——FFFFH).
如果程序锁定位LB1别编程(P),那么EA值将在复位时有片内锁存。
在与FLASH并行编程时,该引脚可介入12V的编程电压Vpp.
--XTAL1和XTAL2——XTAL1是片内振荡器反相放大器和时钟发生器的输入端,XTAL2是片内振荡器反相放大器的输出端。
--RST——复位输入段,高电平有效。
在振荡器稳定有效运行状态下,RST端维持两个机器周期的高电平,便可复位器件,当看门狗定时器溢出输出端时,该引脚将输出长达98个震荡周期的高电平。
--Vcc—电源电压输入端。
--GND—电源地。
特殊功能存储器
AT89S51/LS51的特殊功能存储器
序号
地址
符号
复位值
说明
1
80H
P0
FFH
P0口锁存器
2
81H
SP
07H
堆栈指针
3
82H
DP0L
00H
数据指针DPTR0低字节
4
83H
DPoH
00H
数据指针DPTR0高字节
5
84H
DP1L
00H
数据指针DPTR1低字节
6
85H
DP1H
00H
数据指针DPTR1高字节
7
87H
PCON
0XXX0000B
定时器控制计时器
9
89H
TMOD
00H
定时器模式寄存器
10
8AH
TL0
00H
定时器0低字节
11
8BH
TL1
00H
定时器1低字节
12
8CH
TH0
00H
定时器0高字节
13
8DH
TH1
00H
定时器1高字节
14
8EH
AUXR
XXX00XX0B
辅助寄存器
15
90H
P1
FFH
P1口锁存器
16
98H
SCON
00H
串行口控制寄存器
17
99H
SBUF
XXXXXXXXB
串行口数据缓冲器
18
0AOH
P2
FFH
P2口锁存器
19
OA2H
AUXR1
XXXX XXX0B
辅助寄存器1
20
0A6H
WDTRST
XXXX XXXXB
WDT复位寄存器
21
0A8H
IE
0XX00000B
中断允许寄存器
22
0BOH
P3
FFH
P3口锁存器
23
0B8H
IP
XX00000B
中断优先寄存器
24
0D0H
PSW
00H
程序状态字
25
0E0H
ACC
OOH
累加器
26
0FOH
B
00H
B寄存器
电源断电标志POF
POF是PCON.4位。电源上电时,POF置1,POF位可用软件置位与清零。复位不影响POF位值。
终端和中断寄存器
AT89S51/LS51含有6个中断源,5个中断矢量(中断服务程序入口地址),如图:
图中定时器0和定时器1的中断标志TF0和TF1是在每个机器周期的S5P2时刻设置(当溢出时)的,然后在下个机器周期由片内线路查询。
没个中断源都可单独地通过设定或清除特殊功能存储器IE中某一位来允许/禁止,IE内含一个中断总控制位EA,可允许/禁止所有中断。
IE各位功能如下:
IE 地址=A8H 复位值=0XX0 0000B
可以寻址位
MSB LSB
位地址
AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H
位符号
EA
—
—
ES
ET1
EX1
ET0
EX0
每位置1表示允许中断,每位清0表示禁止中断。
其中:
EA 中断总控制位。EA=0,禁止所有中断;EA=1,每个中断是否允许还取决于其它各中断的控制位。
ES 串行口串行中断允许位。
ET1 定时器1中断允许位。
EX1 外部中断1中断允许位。
ET0 定时器0中断允许位。
EX0 外部中断0中断允许位。
㈣ AT89S51单片机是什么单片机
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 1.主要特性: • 8031 CPU与MCS-51 兼容 • 4K字节可编程FLASH存储器(寿命:1000写/擦循环) • 全静态工作:0Hz-33MHz • 三级程序存储器保密锁定 • 128*8位内部RAM • 32条可编程I/O线 • 两个16位定时器/计数器 • 6个中断源 • 可编程串行通道 • 低功耗的闲置和掉电模式 • 片内振荡器和时钟电路 2.管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P0/P1/P2/P3口作为输入时都是准双向口。接下来让我们再看另一个问题,从图中可以看出这四个端口还有一个差别,除了P1口外P0P2P3口都还有其他的功能。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。