AT89S51(高性能CMOS8位单片机)

2023-05-05 56阅读

温馨提示:这篇文章已超过441天没有更新,请注意相关的内容是否还可用!

AT89S51

高性能CMOS8位单片机

AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

中文名 AT89S51
优点 低功耗,高性能
特点1 4k Bytes Flash片内程序存储器
特点2 32个外部双向输入/输出

下载程序

AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。

2控制线,共4根。

(1)输入:

RST——复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。

EA/Vpp——片外程序存储器访问允许信号,低电平有效。在编程时,其上施加12V的编程电压。

(2)输入,输出:

ALE/PROG——地址锁存允许信号,输出。用做片外存储器访问时,低字节地址锁存。ALE以1/6的振荡频率稳定速率输出,可用做对外输出的时钟或用于定时。在EPROM编程期间,作输入。输入编程脉冲。ALE可以驱动8个LSTTL负载。

(3)输出:

PSEN——片外程序存储器选通信号,低电平有效。在从片外程序存储器取指期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上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口由ALE选通作为地址总线的低8位输出口AB0-AB7。

外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为2=64k,所以89S51最大可外接64kB的程序存储器和数据存储器

(4)P3口介绍

P3口是个双功能口,第一功能作通用I/O口,第二功能是作变异功能用,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号有输入输出两种情况,我们分别加以

说明。

P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。

现在我们已经对四个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中的相应位来锁存。

3,89S51中断系统有以下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任何可用区域了。

中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。RETI指令的操作一方面告诉中断系统该中断服务程序已执行完毕,另一方面把原来压入堆栈保护断点地址从栈顶弹出,装入程序寄存器PC,使程序返回到被中断的程序断点处继续执行。

5,在编写中断服务程序时应注意:

(1)在中断矢量地址单元处存放一条无条件转移指令(如LJMP××××H),使中断程序可灵活的安排在64KB程序存储器的任何空间。

(2)在中断服务程序中,用户应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的信息。

(3)若要在执行当前中断程序时禁止更高优先级中断,则可先用软件关闭CPU中断或禁止某中断源中断,在中断返回前在开放中断。

性能强大

AT89S51具有完整的输入输出、控制端口、以及内部程序存储空间。与我们通常意义上的微机原理类似,可以通过外接A/D,D/A转换电路及运放芯片实现对传感器传送信息的采集,且能够提供以点阵或LCD液晶及外接按键实现人机交互,能对内部众多I/O端口连接步进电机对外围设备进行精确操控,具有强大的工控能力。

易于学习

AT89S51系列单片机编写程序的基本流程。其语法结构与我们常用的计算机C语言基本相同,不同之处在于增加了控制具体引脚工作的语句和命令,相对于计算机C语言,单片机C语言更简练和明确,可以控制每个引脚的输入输出状态。

其主要语句集中在例如:“ifelse”、“while”、“for”等循环与判断语句上,相比计算机C语言更简单。有过计算机C语言学习经历经过一段时间的熟悉就能够熟练进行编程。

使用AT89S51系列单片机编程,可以在没有实物单片机的情况下在普通电脑上进行程序编写甚至是调试工作。一般工作中使用Keil公司开发的51单片机编程软件进行编程,它采用目前流行的开发环境,集编辑,编译和仿真于一体。

在该软件上用户可以编写汇编语言或C语言源程序,并利用该软件生成单片机能运行的程序。

价格低廉

AT89S51芯片价格便宜,适合对大批量的计量仪器进行规模化改造,其单片售价不超过5元。

参考资料

1.AT89S51·华秋网

目录[+]