
AT89S51是一个低功耗,高性能CMOS 来自8位单片机,片内含4厂拉赵谁侵费k Bytes ISP(In-system prog360百科rammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Fl示雷ash存储单元,AT89S51在众多嵌入式控制应用系族混较改右扬南然演统中得到广泛应用。
- 中文名称 AT89S51单片机
- 外文名称 AT89S51
- 优点 低功耗,高性能
- 特点1 4k Bytes Flash片内程序存储器
- 特点2 32个外部双向输入/输出
参数
验然牛艺成 1、4k Bytes Flash片内程序存储器;
2、128 bytes的随机存取数据存储器(RAM);
3、32个外部双向输入/输出(I/O)口;
4、2个中断优先级、2层中断嵌套中断由宁四散毫状入试乡有;
5、5个中断源;
6、2个16位可编程定时器/计数器;
7、1个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟策官明未有或没冷爱电路;
10、与MCS-5来自1兼容;
11、全静态工作:0Hz-33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
管脚说明
VC360百科C:电源电压输入端。
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口除了作为普通I/O口,还有第二功任冷管族能:
P3.0 R事至XD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P省灯茶列执严3.3 /INT1(外部中断1)
P3.4 T0(T0定时器的外部计数输入)
P3.5 T1(T1定时器的外部计数输入)
P3.6 /WR(外部数据存储器的写选通)
P3.7 /RD(外部数据存储联器的读选通)
P3口将止宣核根笑本住无争百同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方这抗读很新争训式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P航攻打内0、P2、P3口都展单奏还有其他的功能。
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多是停产前执型叶液孙头齐的库存产品。
2控制线,共4根。
(1)输入:
RST--复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平来自,将器件复位。
EA/Vpp--片外程序存储器访问允许信号,低电平有效。在编程时,其上施加12V的编程电压。
(2)输入,输出:
ALE/PROG--地址锁存允许信号,输出。用做片外存储器访问时,低字节地址锁存。ALE以1/6的振荡频率稳定速率输出,可用做对外输出的时钟或用于定时。在EPROM编程期间,散诗卫裂号式作输入。输入编程脉冲。A治LE可以驱动8个LSTTL负载。
(3)输出:
PSEN--片外程序存储器选通信号,低电平有效。在360百科从片外程序存储器取指期间,在每个机器周期中,当PSE沙阿功载背N有效时,程序存储器的内容被送上P0口(数据总线)。PSEN可以驱动8个LSTTL负载。
味虽纪断怎越容垂花 3、 I/O口:4个口,32根
单片机51系列共有四个8位双向并行I/O通道口,分别是P0、P1、P2、P3,各具有特殊的电路结构,每位均有自己的锁存器、输出驱动器和输入缓冲器。这种结构,在数深景题把别然否包纸北据输出时可锁存,即划光和万露培输出新的数据之前,通道口上原数的肉大据一直保持不变,但对输入信息是不锁存的,因此从外部输入的信息必须保持到取却强指间孔持家呀少数指令执行完为止。在这四个8位双向并行I/O通道口中,我们应该选择哪一个通道口作为输入信号和输出信号的端口呢?下面我们先来了解一下四个通始道口的结构。
(1)P0口介绍
P0口在访问外部存储器时,P0口既是减好鲁统角一个真正的双向数据总线口,又是从分时输出8位地址口。它包括一个输出锁存器,两个三态缓冲器,一个输出驱动电路和一个输出控制电路
(2)P1口介绍
P1口是专运数处兵训清波灯门为用户使用的I/O口,是准双向口,P1口为8位准双向口,每一位均可单独定义为输入或输出口。在编程校验期间,用做输入低位字节地址。P1口可以驱动4胡皮前席宜概的盐认席个LSTTL负载。
(3)P2口介绍
P2口也是双向异庆左好绿政论庆相问东口。它是供系统扩展时输出高8位责地址。如果没有系统扩展时,也可以作为用户的I/O口使用。P2口作为外部数据存储器或程序存储器的地址总沿船皇居创格别线的高8位输出口AB8-AB15,P0口由A慢若目起吃LE选通作为地址总线的低8位输出口AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2=64k,所以89S51最大可外接64kB的程序存储器和数据存储器
(4)P3口介绍
P3口是个双功能口,第一功能作通用I/O口,第二功能是作变异功能用,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号有输入输出两种情况,我们分别加以
说完知引验希干成位仅伟价明。
P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。
表1P3口的第二功能
端口引脚 | 功能特征 |
P3.0 | 串行输入口(RXD) |
P3.1 | 串行输出口(TXD) |
P3.2 | 外中断0(INT0) |
P3.3 | 外中断1(INT1) |
P3.4 | 定时/计数器0的外部输入口(T0) |
P3.5 | 定时/计数器1的外部输入口(T1) |
P3.6 | 外部数据存储器写选通(WR) |
P3.7 | 外部数据存储器读选通(RD) |
现在我们已经对四个8位双向并行I/O口有了初步的了解。根据以上的介绍我们知道只有P1口是标准的I/O口,所以我们选用P0口作为数据端口,P0口可逐位分别定义各口线为输入或输出线。
3.1.289S51单片机的中断系统
以下内容是对89S51单片机的中断系统的介绍。
1中断:程序执行过程中,允许外部或内部事件通过硬件打断程序的执行,使其转向为处理内部事件的中断服务程序中去;完成中断服务的程序后,CPU继续原来被打断的程序,这样的过程称为中断过程。
2中断源:能产生中断的外部和内部事件。
89S51有5个中断源:
(1) INT0:外部中断0请求,低电平有效。通过P3.2引脚输入。
(2)INT1:外部中断1请求,低电平有效。通过P3.3引脚输入。
(3)T0:定时器/计数器0溢出中断请求。
(4)TI:定时器/计数器1溢出中断请求。
(5)TXD/RXD:串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。
每一个中断源都对应一个中断请求标志位,它们设置在特殊功能寄存器TCON和SCON中。当这些中断源请求中断时,相应的标志分别有TCON和SCON中的相应位来锁存。
389S51中断系统有以下4个特殊功能寄存器:
(1)定时器控制寄存器TCON(用6位);
(2)串行口控制寄存器SCON(用2位);
(3)中断允许寄存器IE;
(4)中断优先级寄存器IP。
其中,TCON和SCON只有一部分用于中断控制。通过对以上各特殊功能寄存器的各位进行置位或复位等操作,可实现各种中断控制功能。
4中断的响应过程及中断矢量地址
中断处理过程可分为3个阶段:中断响应、中断处理和中断返回。89C51的CPU在每个机器周期的S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志。如查询到某个中断标志为1,则将在接下来的机器周期S1期间按优先级进行中断处理。中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。表2既是各个中断源对应的中断矢量地址。
由于89S51系列单片机的两个相邻的中断源中断服务程序入口地址相距只有八个单元,一般的中断服务程序是容纳不下的,通常是在相应的中断服务程序入口地址中放一条常跳转指令LJMP,这样就可以转到64KB任何可用区域了。
表2 中断源及其对应的矢量地址
中断源 | 中断矢量地址 |
外部中断0() | 0003H |
定时器/计数器0(T0) | 000BH |
外部中断1() | 0013H |
定时器/计数器1(T1) | 001BH |
串行口中断(RI、TI) | 0023H |
中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。RETI指令的操作一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入堆栈保护断点地址从栈顶弹出,装入程序寄存器PC,使程序返回到被中断的程序断点处继续执行。
5 在编写中断服务程序时应注意:
(1)在中断矢量地址单元处存放一条无条件转移指令(如LJMP ××××H),使中断程序可灵活的安排在64KB程序存储器的任何空间。
(2)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。
(3)若要在执行当前中断程序时禁止更高优先级中断,则可先用软件关闭CPU中断或禁止某中断源中断,在中断返回前在开放中断。
AT89S51单片机的优势
性能强大
AT89S51具有完整的输入输出、控制端口、以及内部程序存储空间。与我们通常意义上的微机原理类似,可以通过外接A/D,D/A转换电路及运放芯片实现对传感器传送信息的采集,且能够提供以点阵或LCD液晶及外接按键实现人机交互,能对内部众多I/O端口连接步进电机对外围设备进行精确操控,具有强大的工控能力。
易于学习
AT89S51系列单片机编写程序的基本流程。其语法结构与我们常用的计算机C语言基本相同,不同之处在于增加了控制具体引脚工作的语句和命令,相对于计算机C语言,单片机C语言更简练和明确,可以控制每个引脚的输入输出状态。其主要语句集中在例如:"ifelse"、"while"、"for"等循环与判断语句上,相比计算机C语言更简单。有过计算机C语言学习经历经过一段时间的熟悉就能够熟练进行编程。
使用AT89S51系列单片机编程,可以在没有实物单片机的情况下在普通电脑上进行程序编写甚至是调试工作。一般工作中使用Keil公司开发的51单片机编程软件进行编程,它采用目前流行的开发环境,集编辑,编译和仿真于一体。在该软件上用户可以编写汇编语言或C语言源程序,并利用该软件生成单片机能运行的程序。
价格低廉
AT89S51芯片价格便宜,适合对大批量的计量仪器进行规模化改造,其单片售价不超过5元。
评论留言