关于51芯片及引脚功能介绍与总结
目录
2.3.4 ~EA/Vpp(Enable Address/Voltage Pulse of Programing,31引脚)
2.3.5 ALE/~PROG(Address Latch Enable/Programming,30引脚)
2.3.6 ~PSEN(Program Strobe ENable,29引脚)
一、STC系列与AT系列
1.1 简介
关于51单片机的起源可以了解前身MCS-51单片机。
AT89C5x和AT89S5x系列是美国ATMEL公司生产的8位单片机,且在全球占有较大份额,而STC系列单片机是我国具有独立自主产权的单片机,其实现功能与AT系列一样,只是内部结构和性能有较大的改变。
1.2 STC系列特点
- 一般的非STC系列的51单片机处理一条机器指令需要12个时钟周期(c语言转换成汇编,汇编再对应机器指令),而STC系列的51芯片每个机器周期只需要1个时钟周期,速度是一般51系列芯片的9~13倍。(一个机器周期对应处理一条机器指令)
- 片内FLASH擦写次数达到10万次以上。
- 512B片内RAM数据存储器。
- ISP/IAP无需编程器/仿真器,可以远程升级。
- 8通道10位ADC,4路PWM输出。
- 4通道捕捉/比较单元。(可以用来实现4个定时器和中断)
- 2个硬件定时器/计数器。4路可编程PCA。
- 看门狗WDT。(防死机,当系统受到干扰卡死等情况,看门狗使复位高电平,芯片复位)
- 高速SPI串口。
- 全双工异步串行口。
- 通用I/O口(15/23/27个,不一定51单片机可能是其它型号但都是STC),每个I/O口驱动能力可达20mA,但是整体不超过55mA。
- 极强的抗干扰能力与可靠性。
- 采取降低单片机时钟对外部电磁辐射的措施。(我也不理解)
- 低功耗
- 掉电模式:小于0.1uA;(掉电模式是指除了中断外,振荡器 )
- 空闲模式:2mA;
- 正常工作模式:4~7mA;
- 掉电模式可以由外部中断唤醒。
1.3 AT89C5x与AT89S5x
1.3.1 C5x和S5x的C和S
C代表单片机采用了CMOS技术(CMOS技术就是在同一硅片衬底上同时包含了PMOS和NMOS,C是Complementary互补的意思),而S系列是C系列的升级版,代表了片内含有Flash存储器。相比于C系列,S系列支持更多节电方式比如掉电模式;同时时钟频率得到提高,比如C51支持最高24MHz的时钟而S51支持最高33MHz的时钟;除此之外S系列拥有双数据指针DPTR、看门狗定时器等等。C系列烧录程序时需要12V电压,而S系列只需要正常5V左右就可以。
(目前C51已经不再生产,被S51完全替代,购买C51的时候记得看清ATMEL的logo)

1.3.2 关于C5x和S5x的x
表示的是片内存储器大小,比如51就是1x4KB就是4KB大小,52就是8KB,还有54、58、516等型号。(初学者建议购买S51或者S52)
值得一提的是,51拥有128B的RAM、5个中断源,以及两个定时器/计数器,而52则拥有256B的RAM、6个中断源和3个定时器/计数器(多出来的一个具有捕捉功能,可以使编程更加简洁,比如利用捕捉功能检测方波频率 [1])
二、AT89S51硬件结构
2.1 AT89S51片内硬件结构
提一下特殊功能寄存器SFR,这个模块由26个特殊功能寄存器组成,实际上是片内各个外设部件的控制寄存器和状态寄存器,26个寄存器映射在片内RAM的80H~FFH地址内。
2.2 AT89S5x引脚封装
- 左图为40只引脚的塑料双列直插封装(DIP),右图为44引脚的贴片型(PLCC),PLCC方式垂直俯视芯片看不见引脚,还有TQFP方式。
- 贴片型有4个引脚无用被标记为“NC”。
- 分类
- 电源以及时钟引脚:Vcc、Vss、XTAL1、XTAL2;
- 控制引脚:~PSEN、ALE/~PROG、~EA/Vpp、RST;
-
I/O:P0、P1、P2、P3
2.3引脚功能介绍(PLCC)
2.3.1 电源引脚
- Vcc(40引脚):+5V电源
- Vss(20引脚):接地
2.3.2 时钟引脚
- XTAL1(19引脚):片内振荡器的反相放大器和外部时钟发生器的输入端。使用片内振荡器时,引脚外接石英晶体和微调电容;采用外埠独立时钟时,引脚接外部时钟振荡器信号。
- XTAL2(18引脚):片内振荡器反相放大器输出端。当使用片内振荡器时,引脚接外部石英晶体和微调电容;使用外部时钟时,引脚悬空。
- 晶振通常为6MHz或者12MHz(对应2us和1us的机器周期)或者11.0592MHz。(可以得到准确的串行通信波特率)
- 图2-15所示的是为系统中其它芯片提供时钟的两种方式(电源增加了驱动能力)。
2.3.3 RST(9引脚)
复位键,高电平有效(两个机器周期),正常工作时该引脚电压≤0.5V。S51看门狗产生作用时会在该引脚产生长达96个时钟振荡周期的高电平。
详细讲解单片机复位电路原理 | 贸泽工程师社区http://mouser.eetrend.com/content/2018/100011514.html上面这个连接有讲开机复位这个问题,但是要提出并不是2us复位而是2个机器周期即24个时钟周期复位。
2.3.4 ~EA/Vpp(Enable Address/Voltage Pulse of Programing,31引脚)
~EA是该引脚第一功能,为外部程序存储器访问允许控制端。
当~EA=1时,单片机片内指针PC值不超出0FFFH即4KB时,单片机访问片内Flash中的代码;当超出0FFFH时,单片机自动读取片外60KB存储器的代码(1000H~FFFFH)。
当~
EA=0时,单片机只读取外部存储器的内容(1000H~FFFFH)。
这里说明51系列的存储器地址随着片内Flash大小而变化,但总共片内和外部加起来就64KB(因为最大寻址范围是0000H~FFFFH,在后面ALE讲到,P0和P2总共16条地址线)。
Vpp是该引脚第二功能,当对片内Flash进行编程时提供编程电压。
2.3.5 ALE/~PROG(Address Latch Enable/Programming,30引脚)
ALE为引脚第一功能,为CPU访问外部存储器提供低八位地址的锁存信号,将单片机P0口发出的低八位地址锁存在片外锁存器中。
在机器正常工作中,ALE还会提供一个频率为时钟振荡频率六分之一的正脉冲信号,但要注意,当芯片外接RAM或者外接I/O口时,每当芯片访问一次RAM或者I/O,ALM都会失去一个ALM脉冲,因此此时频率并不完全准确。
若想要禁止ALM脉冲,可以在AUXR特殊寄存器中设置。
2.3.6 ~PSEN(Program Strobe ENable,29引脚)
低电平有效,为片内/外程序存储器的读选通信号。
2.3.7 I/O口(P0、P1、P2、P3)
大家可以看下这篇文章十分详细,给出了各个口的电路。这个部分我会说一下各个口的特性并总结一下为啥P0口要上拉电阻。
关于P0口:
P0口是漏极开路的双向I/O口(大家自行复习MOS管),外接存储器时,P0可以提供八位地址总线(低八位)图2-3,或者数据总线的分时复用口。
最常见的还是作为通用I/O口。此时P0要外接上拉电阻。就是提供电源。
下面是P0口的电路:
如图,这是通用I/O口时内部状态,控制线输入0,模拟开关接入~Q,此时与门U1输出0,即Vcc电流不经过V1,V1相当于断开。假如此时P0要输出数据,数据总线输入1(高电平)给D触发器,此时~Q呈现低电平,栅极为低电平,此时V2和V1一样相当于断开状态,也就是V2的漏极开路了(U6使能端不工作),那么此时P0脚就呈现一个高阻的状态(类似开路或者理解为断路也差不多),那么引脚外接的上拉电阻的电源就可以直接为外部器件提供电源等价于P0输出了1。
输入0的时候V2导通P0就直接与V2地相连,相当于短路,那么上拉电阻即不可以为外部器件提供电源,也就是等价于P0输出0了。
总结一下,当P0做通用I/O口时候,改变的是阻态,并没有电流上的改变。当然做地址线什么的时候P0就可以由片内Vcc提供电源了,因为此时模拟开关不连接~Q。
关于P3口的复用:
P3口不仅可以作为通用I/O口,更是作为一个外部中断的输入口。
引脚 | 第二功能 | 说明 |
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 | 外部数据存储器的读选通控制信号 |
驱动能力:
因为P0是外部电源,因此可以驱动8个LS型TTL负载,其余三个只能驱动4个LS型TTL负载。
TTL负载是指三极管数字逻辑电路,比如大家熟悉的74LS138译码电路等等。(“L”表示低功耗,“S”表示肖特基技术,LLS表示逻辑门电路)
关于P1、P2的补充:
P1.5/MOSI、P1.6/MISO和P1.7/SCK可以用作片内Flash存储器的串行编写和校验,分别为串行数据输入、串行数据输出和移位脉冲引脚。
上文说道P2的地址总线复用,P2可以输出外接存储器的高八位地址。
参考资料:《单片机原理及接口技术(C51编程)(第三版)》(张毅刚主编,人民邮电出版社)