AT89C52引脚的功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AT89C52引脚的功能相关的知识,希望对你有一定的参考价值。

知道说一下

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。        

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

主要管脚有:

XTAL1(19 脚)和XTAL2(18 脚):

为振荡器输入输出端口,外接12MHz 晶振。XTAL1(19 脚):振荡器反相放大器及内部时钟发生器的输入端。XTAL2(18 脚):振荡器反相放大器的输出端。

RST/Vpd(9 脚):

为复位输入端口,外接电阻电容组成的复位电路。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

VCC(40 脚)和VSS(20 脚):

为供电端口,分别接+5V电源的正负端。

P0~P3 为可编程通用I/O 脚,其功能用途由软件定义。

P0 :

口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写"1"时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1:

 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写"1",通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和程序校验期间,P1 接收低8 位地址。

P2:

 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写"1",通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16 位地数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX@RI 指令)时,P2 口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。

P3:

 是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入"1"时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能。P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字

节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:

外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。



参考技术A http://www.21icsearch.com/searchpdf/default.asp?admin=
到这里搜索一下89C52本回答被提问者采纳

Arduino数字引脚

参考技术A Arduino板上的数字引脚可以被设置成输入或者输出模式。如果不设置,默认的是输入模式。

设置成输入状态的引脚处于高阻抗状态(相当于有100M欧姆的电阻在引脚前面),引脚只消耗电路极少量电流。这意味着只要一点点电流就可以改变输入引脚的状态。根据这个特点,可以把输入引脚用于实现电容式触摸感应器、用LED做光传感器、用RCtime机制读模拟传感器。

当引脚设置为输入模式时,如果有接上拉或下拉电阻时,引脚的读数会随机波动。因为引脚读到的是环境电流噪音或者是附近引脚的耦合状态。

一般用10K欧电阻做输入引脚的上拉(接5V)或下拉(接地)电阻。

在Atmega芯片里有内置的一系列20K的上拉电阻。把输入模式设置成INPUT_PULLUP,输入引脚就与内置的上拉电阻相接了。当将传感器连接到配置成INPUT_PULLUP模式的引脚时,另一端应连接到地面。

数字13引脚做输入引脚时,应该设为INPUT模式,并接下拉电阻。因为13引脚与板子的电阻和LED连接着,如果设置成INPUT_PULLUP,它的电压值会在1.7V左右,而不是5V。

设置成输出状态的引脚处于低阻抗状态。意味着它可以为其他电路提供大电流。Atmega芯片的单个引脚可以提供最大40mA的正电流或者负电流。这个电流可以驱动LED灯,许多传感器。但是对于大多数继电器、电磁阀、螺线管和电机,这个电流不够。

设置成输出引脚要避免短路和接大电流的电器!这会损坏芯片!设置成输出引脚时,需要接470欧或1k欧的电阻!

以上是关于AT89C52引脚的功能的主要内容,如果未能解决你的问题,请参考以下文章

ESP8266 AT指令开发(基于STC89C52单片机): 测试下诱人的程序(51单片机,8266,MQTT远程通信控制)

ESP8266 AT指令开发(基于STC89C52单片机): 关于上一节MQTT底层封包解包源码使用说明

怎么在KEIL里添加STC89C52型号的单片机

51单片机的引脚结构和功能

STC89C52RC单片机额外篇 | 08 - 认识I2C协议以及E2PROM存储器(AT24Cxx)

如何给AT89C2051烧程序