自制51单片机开发板:STC89C52RC最小系统+LCD1602A屏幕
最小系统原理图
STC89C52RC单片机的工作电压范围为3.3v~5v(典型值为5V),STC89LE52RC的工作电压范围为 3.8V 至 2.0V(典型值为3.3V),但是建议电压稳定在5V±10%以内(4.5V~5.5V),以避免复位异常或性能下降。在Vcc引脚前添加的22uF和0.1uF的电容,用于电源去耦和滤波,这两个电容紧靠Vcc引脚。
STC89C52RC单片机的P0口(P00~P07)在复位后处于开漏输出模式(Open Drain Output),这意味着P0口只能主动拉低电平(输出低电平),而无法主动输出高电平。当P0口用作地址/数据总线(比如使用扩展外部存储器时),由于总线驱动电路通常内置上拉或推挽输出,不需要外部上拉电阻。当P0口用作普通I/O口(如输入或输出功能)时,必须外接上拉电阻以确保逻辑高电平的有效输出,需加10K-4.7K的上拉电阻。我这里使用的经典的RES-ARRAY-TH_9P-P2.54-D1.0排阻,型号是A09-103JP,

STC89C52RC的时钟频率范围是(0-40MHz),这里的晶振采用的11.0592MHz晶振,11.0592MHz与标准波特率计算公式兼容。STC89系列单片机支持6时钟/机器周期模式(双倍速),使用11.0592MHz时,实际内核运行频率为5.5296MHz(在6T模式下),但仍能保持波特率精度,做串口调试的时候方便一些。如果应用不需要串口通信,可以选择其他频率(如12MHz或24MHz)以优化性能。

STC89C52RC具有软件复位、掉电复位/上电复位和看门狗复位等等方式,这里添加了一个外部高电平复位按钮,从外部向RST引脚施加一个低电平到高电平的复位脉冲,脉冲宽度必须至少维持24个时钟周期加10微秒。

STC89C52RC官方数据手册给出的原理图如下:

LCD1602A屏幕及按键、指示灯、开关
‘’



引脚接口

最终成品如下:


如果需要扩展外部存储器,可以参考以下电路(加入EPROM和SRAM)。单片机复位后,由于EA接地,它直接从外部程序存储器(AT27C256R)的0000H地址开始取指令,ALE信号将低8位地址锁存到74HC373,并输出给所有存储器的A0-A7,单片机激活PSEN信号;当程序需要访问外部数据时,单片机送出目标地址,并通过RD或WR信号来控制,AS6C62256 SRAM在RD/WR信号作用下,完成数据的读取或写入。这个由著名的GGBond研发的哈佛架构,程序存储(EPROM)和数据存储(SRAM)在物理上是分开的,各有独立的地址空间和控制信号。。

STC89C52RC 引脚功能说明
| 引脚号 | 引脚名称 | 功能描述 |
|---|---|---|
| 1 | P1.0/T2 | 端口1.0,定时器2外部输入/输出 |
| 2 | P1.1/T2EX | 端口1.1,定时器2捕获/重装触发 |
| 3 | P1.2 | 端口1.2 |
| 4 | P1.3 | 端口1.3 |
| 5 | P1.4 | 端口1.4 |
| 6 | P1.5 | 端口1.5 |
| 7 | P1.6 | 端口1.6 |
| 8 | P1.7 | 端口1.7 |
| 9 | RST/VPD | 复位输入/备用电源输入 |
| 10 | P3.0/RXD | 端口3.0,串口0接收数据 |
| 11 | P3.1/TXD | 端口3.1,串口0发送数据 |
| 12 | P3.2/INT0 | 端口3.2,外部中断0输入 |
| 13 | P3.3/INT1 | 端口3.3,外部中断1输入 |
| 14 | P3.4/T0 | 端口3.4,定时器0外部输入 |
| 15 | P3.5/T1 | 端口3.5,定时器1外部输入 |
| 16 | P3.6/WR | 端口3.6,外部数据存储器写选通 |
| 17 | P3.7/RD | 端口3.7,外部数据存储器读选通 |
| 18 | XTAL2 | 反向振荡器输出 |
| 19 | XTAL1 | 反向振荡器输入 |
| 20 | VSS | 地 |
| 21 | P2.0/A8 | 端口2.0,外部存储器地址总线第8位 |
| 22 | P2.1/A9 | 端口2.1,外部存储器地址总线第9位 |
| 23 | P2.2/A10 | 端口2.2,外部存储器地址总线第10位 |
| 24 | P2.3/A11 | 端口2.3,外部存储器地址总线第11位 |
| 25 | P2.4/A12 | 端口2.4,外部存储器地址总线第12位 |
| 26 | P2.5/A13 | 端口2.5,外部存储器地址总线第13位 |
| 27 | P2.6/A14 | 端口2.6,外部存储器地址总线第14位 |
| 28 | P2.7/A15 | 端口2.7,外部存储器地址总线第15位 |
| 29 | PSEN | 外部程序存储器选通信号 |
| 30 | ALE/PROG | 地址锁存允许信号/编程脉冲输入 |
| 31 | EA/VPP | 外部程序存储器访问允许/编程电压输入 |
| 32 | P0.7/AD7 | 端口0.7,数据总线第7位/地址总线第7位 |
| 33 | P0.6/AD6 | 端口0.6,数据总线第6位/地址总线第6位 |
| 34 | P0.5/AD5 | 端口0.5,数据总线第5位/地址总线第5位 |
| 35 | P0.4/AD4 | 端口0.4,数据总线第4位/地址总线第4位 |
| 36 | P0.3/AD3 | 端口0.3,数据总线第3位/地址总线第3位 |
| 37 | P0.2/AD2 | 端口0.2,数据总线第2位/地址总线第2位 |
| 38 | P0.1/AD1 | 端口0.1,数据总线第1位/地址总线第1位 |
| 39 | P0.0/AD0 | 端口0.0,数据总线第0位/地址总线第0位 |
| 40 | VCC | 电源 |
