历史上的今天
返回首页

历史上的今天

今天是:2025年10月18日(星期六)

正在发生

2022年10月18日 | #单片机# ------ stc89c52引脚说明

2022-10-18 来源:csdn

STC89C52功能简述:

STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash。


STC89C52引脚说明:


VCC(40引脚):电源电压


VSS(20引脚):接地


P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。


P1口:P1口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。


此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。


表1 P1.0和P1.1引脚复用功能


引脚号第二功能

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI(在线系统编程用)

P1.6 MISO(在线系统编程用)

P1.7 SCK(在线系统编程用)


P2口:P2口是一个具有内部上拉电阻的8位双向I/O 口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。


在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。


P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。


P3口除作为一般I/O口外,还有其他一些复用功能:


表2 P3口引脚复用功能

                                                           

RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。


ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。


对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。


如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。


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


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

推荐阅读

史海拾趣

Bogen Communications Inc公司的发展小趣事

随着电子行业的快速发展和变革,Bogen Communications Inc公司面临着巨大的挑战。为了应对这些变革,公司不断调整战略、优化组织结构、提升研发能力。同时,公司还密切关注行业动态和市场需求,及时调整产品方向和市场策略。通过这些努力,公司成功地适应了行业变革,保持了稳健的发展态势。

Diodes Incorporated公司的发展小趣事

Diodes Incorporated公司成立于1970年,其初衷是致力于半导体技术的研发和生产。在创立初期,公司面临着来自行业巨头的激烈竞争,但凭借对技术的深入理解和市场需求的敏锐洞察,Diodes Incorporated逐渐在市场中找到了自己的定位。公司专注于生产高品质、特定应用的半导体产品,逐渐在消费电子、计算机、通信等领域建立了良好的声誉。

BB公司的发展小趣事

如今,BB公司已经走过了数十年的发展历程,成为电子行业中一颗璀璨的明星。然而,公司并没有因此停下脚步。相反,BB公司始终保持着强烈的创新意识和进取精神,不断寻求新的发展机遇和挑战。未来,BB公司将继续致力于技术创新和市场拓展,为电子行业的繁荣发展贡献更多力量。

以上是关于BB公司发展起来的五个相关故事。这些故事不仅展现了BB公司的成长历程和发展成就,也凸显了其在电子行业中的重要地位和影响。相信在未来的日子里,BB公司将继续书写更加辉煌的篇章。

ETC2公司的发展小趣事

为了拓展全球市场,ETC2公司制定了国际化战略。他们积极参加国际展览和交流活动,与国际同行建立了广泛的合作关系。同时,ETC2公司还针对不同国家和地区的市场特点,推出了定制化的ETC产品和服务。这些举措不仅帮助ETC2公司成功打入国际市场,也为其未来的发展奠定了坚实的基础。

Baumer Electric Ag公司的发展小趣事

Baumer Electric Ag公司创立于1952年,初期主要专注于微动开关的生产。面对市场竞争的激烈,公司创始人Herbert Baumer凭借其敏锐的市场洞察力和坚定的决心,带领团队不断研发新产品,提升技术水平。1960年,公司成功推出首个程序控制系列,标志着Baumer在电控生产流程监控和控制领域取得了重要突破。

Cicoil公司的发展小趣事

在20世纪60年代,人类开始了对月球的探索。Cicoil公司的柔性扁平电缆被选为阿波罗任务的关键组件之一。这些电缆为宇航员在月球上的活动提供了安全可靠的电力和数据传输保障。当尼尔·阿姆斯特朗和巴兹·奥尔德林在月球上行走时,他们的每一步都离不开Cicoil电缆的支持。这一历史性的时刻让Cicoil公司名声大噪,也进一步巩固了其在电子行业中的地位。

问答坊 | AI 解惑

TMS320F2812开发板(SCH+PCB图)Protel 99 SE格式

TMS320F2812开发板(SCH+PCB图)Protel 99 SE格式…

查看全部问答>

电子电路知识点总结

1、 纯净的单晶半导体又称本征半导体,其内部载流子自由电子空穴的数量相等的。 2、 射极输出器属共集电极放大电路,由于其电压放大位数约等于1,且输出电压与输入电压同相位,故又称为电压跟随器(射极跟随器)。 3、 理想差动放大器其共模电压 ...…

查看全部问答>

基于FPGA的uClinux系统移植及实现web-server[1]

基于FPGA的uClinux系统移植及实现web-server[1] 最近一直在做niosII上的操作系统,最终实现web-server. 将整个过程与大家分享一下. 主要有以下几个部分, 1>.NIOS2 IDE下实现 uClinux 的嵌入,以及相关软,硬件设计 (红色飓风RC2-1C6, Microtroni ...…

查看全部问答>

WinCE如何动态加载本地驱动

[HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\SNMP]    \"Dll\"=\"snmp.dll\"    \"Order\"=dword:3    \"Keep\"=dword:1    \"Entry\"=\"SnmpInitialize\" 比如这个驱动,如何动态加载?…

查看全部问答>

请教关于DA的参数问题

那位大侠知道DA芯片datasheet中经常提到的setting up time和多少sample/update rate MSPS是什么意思还有fclk(美信的给的好像是这个参数)美信的fclk和其他公司的sample/update rate是一个意思么?他们之间有关系么?比如如果我想做一个系统数据产 ...…

查看全部问答>

我画的英飞凌xc878 xc886封装

前段时间做CAN-BUS实验板时画的两个片子的封装…

查看全部问答>

IAR编译选项设置的疑问?

使用STM32,IAR环境下 其中一个片段代码如下:if((analog(5) - analog(6))>10 && (analog(7) - analog(6))>10)// -----1{printf("m2");}else if((analog(5) - analog(7))>&n ...…

查看全部问答>

关于stm32,这样用可以吧...

  测量六相电压,timer2中定时10ms, 作为需要延时处的基准.另外输出比较500us,在输出比较中断中,软件触发ADC, 扫描转换六通道电压,DMA自动读取.最后算有效值.   stm32定时器文档不好理解,输出比较时,可以设置成不影响相关的输出 ...…

查看全部问答>

怎么用DSP/BIOS下的LOG_printf来实现打印字符数组?

我是学习DSP/BIOS的新手,最近在移植linux代码到DSP/BIOS下,出现一个问题:linux下可以用printk打印多个参数,并且还可以打印字符数组(因为不是常量字符串),但BIOS下的LOG_printf不可以,有没有什么办法利用LOG_printf来实现打印字符数组?…

查看全部问答>

AVR制作实用的仪器

求高手  给个意见   用AVR制作一个智能仪器   用到通讯方面知识的   最好要实用呀  谢谢…

查看全部问答>