单片机学习-单片机基础
单片机学习
单片机简介
一台能够工作的计算机要有这样几个部件构成:CPU(进行运算、控制)、 RAM (数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口 等)。在个人计算机上这些部件被分成若干块芯片,安装一个称之为主板的印刷 线路板上。而在单片机中,这些部件全部被做到一块集成电路芯片中,所以就称为单片机(也称微控制器 MCU),而且有一些单片机中除了上述部份外,还集成 了其它部份如 A/D,D/A 等。体积不大,一般用 40 脚封装, 当然功能多一些 单片机也有引脚比较多的, 如 68 引脚, 功能少的只有 10 多个或 20 多个引脚,有的甚至只 8 只引脚。
51 单片机是对所有兼容 Intel 8031 指令系统的单片机的统称。该系列单片 机的始祖是 Intel 的 8004 单片机,后来随着 Flash rom 技术的发展,8004 单片 机取得了长足的进展,成为应用最广泛的 8 位单片机之一,其代表型号是 ATMEL 公司的 AT89 系列,它广泛应用于工业测控系统之中。很多公司都有 51 系列的兼 容机型推出,今后很长的一段时间内将占有大量市场。51 单片机是基础入门的 一个单片机,还是应用最广泛的一种。需要注意的是 51 系列的单片机一般不具备自编程能力。
80C51 是 MCS-51 系列中的一个典型品种;其它厂商以 8051 为基核开发出的 CMOS 工艺单片机产品统称为 80C51 系列。当前常用的 80C51 系列单片机主要产品有:
Intel(英特尔)的:i80C31、i80C51、i87C51,i80C32、i80C52、i87C52 等;
ATMEL(艾德梅尔)的:AT89C51、AT89C52、AT89C2051,AT89S51(RC),AT89S52(RC)等;Philips(飞利浦)、华邦、Dallas(达拉斯)、Siemens(西门子)等公司的许多产品;
STC(国产宏晶)单片机:STC89C51、STC89C52、STC89C516、STC90C516 等众多品牌。
80C51 芯片管脚图如下所示:
上图中左图是 51 单片机非常经典的管脚图,通常采用的是 DIP-40 封装。
其内部资源如下:
- 8 位 CPU
- 4kbytes 程序存储器(ROM) (52 为 8K)
- 128bytes 的数据存储器(RAM) (52 有 256bytes 的 RAM)
- 32 条 I/O 口线
- 111 条指令,大部分为单字节指令
- 21 个专用寄存器
- 2 个可编程定时/计数器
- 5 个中断源,2 个优先级(52 有 6 个)
- 一个全双工串行通信口
- 外部数据存储器寻址空间为 64kB
- 外部程序存储器寻址空间为 64kB
- 逻辑操作位寻址功能
- 双列直插 40PinDIP 封装
- 单一+5V 电源供电
CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
ROM:用以存放程序、一些原始数据和表格;
I/O 口:四个 8 位并行 I/O 口,既可用作输入,也可用作输出
T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在计数模式;
五个中断源的中断控制系统;
一个全双工 UART(通用异步接收发送器)的串行 I/O 口,用于实现单片机之间或单片机与微机之间的串行通信;
片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为 6M— 12M。其内部结构图如下所示:
总线(BUS)是单片机各部件之间传送信息的公共通道。单片机中有内部总 线和外部总线两类,内部总线是 CPU 内部之间的连线,外部总线是指 CPU 与其它 部件之间的连线;外部总线有三种 : 数据总线 DB(Data Bus),地址总线 AB
(Address Bus)和控制总线 CBControl Bus)。
芯片介绍
前面介绍了很多款基于 MCS-51 内核设计的 51 单片机,这么多款 51 单片机 是不是都要去学习呢?当然不是,既然他们的内核指令都是一样的,那我们只需要学会一款典型并具代表性的 51 单片机即可,其他的都是可以兼容的。早期很长一段时间,51 单片机大部分使用的是 AT89C51 或者 AT89C52。随着我国芯片技术的快速发展,宏晶公司推出的增强型 51 单片机 STC89Cxx/STC90Cxx 等系列更受大众喜爱,除内部资源及功能大大增强外,还有一个非常重要的是它 支持 ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器或专用仿真 器。宏晶公司推出的 51 芯片种类非常多,我们只需选择一款经典的学习即可。 我们开发板上使用的是STC89C52 或者STC89C516,这两款芯片以及其他 STC89Cxx 或者 STC90Cxx 除 Flash 和 RAM 容量差异外,内部资源功能几乎一样,我们只需 学习任意一种即可。下面我们看下常见 PDIP 封装(直插封装)的 51 单片机芯片
实物图如下所示:
上图可看到芯片表面印有 STC89C52RC 40I-PDIO40 1947H0XN52.X90C 丝印,
下面我们了解下芯片表面丝印的含义:
STC--表示芯片为 STC 公司生产的产品,其他公司的也有 AT、i、SST 等。
8--表示该芯片为 8051 内核芯片。
9--表示内部含有 Flash EEPROM 存储器,还有如 80C51 中 0 表内部含有MaskROM(掩模 ROM)存储器;如 87C51 中 7 表示内部含有 EPROM(紫外线可擦除ROM)存储器。
C--表示该器件为 CMOS 产品。还有如 89LV52 和 89LE58 中的 LV 和 LE 都表示 该芯片为低电压产品(通常为 3.3V 电压供电);而 89S52 中 S 表示该芯片含有
可串行下载功能的 Flash 存储器,即具有 ISP 可在线编程功能。
5--固定不变。
2--表示该芯片内部程序存储(FLASH)空间大小,1 为 4KB,2 为 8KB,3 为 12KB,即该数乘以 4KB 就是芯片内部的程序存储空间大小。程序空间大小决定了 一个芯片所能装入执行代码的多少。一般来说,程序存储空间越大,芯片价格也越高,所以我们再选择芯片的时候要根据自己需求选择合适芯片。
RC--STC 单片机内部 RAM(随机读写存储器)为 512B。还有如 RD+表示内部RAM 为 1280B。还有芯片会省略此部分。
40--表示芯片外部晶振最高可接入 40MHz。对 AT 单片机数值一般为 24,表示外部晶振最高位 24MHz。
I--产品级别,表示芯片使用温度范围。
C 表示商业级,温度范围为 0~+70 度。
I 表示工业级,温度范围为-40~+85 度。
A 表示汽车级,温度范围为-40~+125 度。
M 表示军用级,温度范围为-55~+150 度。
PDIP40--产品封装型号。PDIP 表示双列直插式。
1947--表示本批芯片生产日期为 19 年第 47 周。
H0XN52.X90C--不详,有关资料显示,此标号表示芯片制造工艺或处理工艺。
STC89C51芯片简介
STC89C51 是 STC 推出的新一代超强抗干扰/高速/低功耗的 51 单片机,它是 采用 8051 核的 ISP(In System Programming)在系统可编程芯片,指令代码完 全兼容传统的 8051 单片机,最高工作时钟频率为 80MHz,片内含 4K Bytes 的可 反复擦写 1000 次的 Flash 只读程序存储器,器件兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,具 有在系统可编程(ISP)特性,配合 PC 端的控制程序即可将用户的程序代码下载 进单片机内部,省去了购买通用编程器,而且速度更快。STC89C51 系列单片机 是单时钟/机器周期(1T)的兼容 8051 内核单片机,是高速/ 低功耗的新一代 8051 单片机,全新的流水线/精简指令集结构,内部集成 MAX810 专用复位电路。
其特性功能主要如下:
1:增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可任意选择,指令代码完全兼容传统 8051。
2:工作电压: 5.5V - 3.3V (5V 单片机) / 3.6V - 2.0V (3V 单片机)
3:工作频率范围: 0~40MHz,相当于普通 8051 的 0~80MHz,实际工作频
率可达 48MHz
4:用户应用程序空间: 4K / 8K / 13K / 16K / 32K / 64K 字节(STC89C516)
5:片上集成 1280 字节或 512 字节或 256 字节 RAM
6:通用 I/O 口(35/39 个), 复位后为:P1/P2/P3/P4 是准双向口/弱上拉(普 通 8051 传统 I/O 口); P0 口是开漏输出,作为总线扩展用时,不用加上拉电阻,
作为 I/O 口用时,需加上拉电阻。
7:ISP(在系统可编程) / IAP(在应用可编程), 无需专用编程器, 无 需专用仿真器,可通过串口( RxD/P3.0, TxD/P3.1)直接下载用户程序,数秒
即可完成一片。
8:有 EEPROM 功能
9:看门狗
10:内部集成 MAX810 专用复位电路(HD 版本和 90C 版本才有),外部晶体
20M 以下时,可省外部复位电路,复位脚可直接接地。
11:有 3 个 16 位定时器/ 计数器,其中定时器 0 还可以当成 2 个 8 位定时
器使用。
12:外部中断 4 路,下降沿中断或低电平触发中断,Power Down 模式可由外
部中断低电平触发中断方式唤醒
13:通用异步串行口(UART),还可用定时器软件实现多个 UART
14:工作温度范围: -40 ~ +85℃(工业级) / 0 ~ 75℃(商业级)
15:封装: LQFP-44, PDIP-40, PLCC-44, PQFP-44。
89C51芯片引脚介绍
下图我们可以看到 51 单片机不同封装的引脚图,当大家首次看见这些引脚 时,一定会有又多又乱的感觉,而且难以记忆。千万不要着急,对于初学者来说,单纯的记忆引脚标号没有任何意义,最好的方法是边学边记忆。
单片机脚位判断
在在讲解各引脚含义之前,我们首先应该学会如何在实物上区分引脚序号, 基于 8051 内核的单片机,若引脚数相同,或封装相同,它们的引脚功能是相同 的,其中用的较多的是 40 脚 DIP 封装的 51 单片机,也有 20,28,32,44 等不同 引脚数的 51 单片机,这些大家也要了解,不能只见了 40 脚的芯片才认为它是51 单片机。
无论哪种芯片,单片机也好,其他不知名的芯片也好,当我们观察它的表面 时,大都会找到一个凹进去的小圆坑,或是用颜色标记的一个小标记(圆点或三角或其他小图形),这个小圆坑或者小标记所对应的引脚就是这个芯片的第 1脚,然后逆时针方向数下去,即 1 到最后一个引脚。如下图所示:
上图中对于 LQFP/PQFP 封装,小圆坑在左下角位置;对于 DIP 封装,小圆坑 在芯片上方正中间位置,对应左边第一个脚位为 1;对于 PLCC 封装,小圆坑在 芯片上方正中间位置,对应脚位为 1;在实际焊接或绘制电路板时,大家务必要注意它们的脚位标号,否则若焊接错误则导致产品无法正常工作。
单片机脚位功能
接下来我们以上图 PDIP 封装引脚图为例介绍各个引脚的功能,40 引脚我们
按其功能类别可分为四类:
①电源引脚。如 VCC、GND
②时钟引脚。如 XTAL1、XTAL2
③编程控制引脚。如 RST、PSEN、ALE/PROG、EA/Vpp。(此处了解即可)
④I/O 口引脚。如 P0、P1、P2、P3,4 组 8 位 I/O 口。
VCC(40 脚)、GND(20 脚):电源引脚,不同型号单片机接入对应电压,
常压为+5V,低压为+3.3V,大家在使用时要查看其芯片所要求的电压。
XTAL1(19 脚)、XTAL2(18 脚):外接时钟引脚。XTAL1 为片内振荡电路的 输入端,XTAL2 为片内振荡电路的输出端。8051 的时钟有两种方式,一种是片内 时钟振荡方式,即需在这两个引脚处外接石英晶振和振荡电容,振荡电容的值一 般取 10p~30p;另一种是外部时钟方式,即将 XTAL1 接地,外部时钟信号从 XTAL2脚输入。通常使用第一种方式。
RST(9 脚):复位引脚。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作,即单片机从头开始执行程序。
PSEN(29 脚):程序存储器允许输出控制端。在读外部程序存储器时 PSEN 低电平有效,以实现外部程序存储器单元的读操作,由于现在我们使用的单片机 内部已经有足够大的 ROM,所以几乎没有人再去扩展外部 ROM,因此这个引脚大家只需了解即可。
ALE/PROG(30 脚):在扩展外部 RAM 时,ALE 用于控制把 P0 口的输出低 8 位地址送锁存器锁存起来,以实现低位地址和数据的隔离。ALE 有可能是高电平 也有可能是低电平,当 ALE 为高电平时,允许地址锁存型号,当访问外部存储器 时,ALE 信号负跳变(即由正变负)将 P0 口上低 8 位地址信号送入锁存器;当 ALE 为高电平时,P0 口上的内容和锁存器输出一致。关于锁存器后面我们会有介 绍。在没有访问外部存储器期间,ALE 以 1/6 振荡周期频率输出(即 6 分频), 当访问外部存储器时,以 1/12 振荡周期输出(12 分频)。从这里可以看到,当没有扩展外部 RAM 时,ALE 会以 1/6 振荡周期的固定频率输出,因此可以作为外部时钟,或作为外部定时脉冲使用。PROG 为编程脉冲的输入端,单片机的内部 有程序存储器(ROM),它的作用是用来存放用户需要执行的程序,那么我们怎 样才能将写好的程序存入这个 ROM 中呢?实际上,我们是通过编程脉冲输入才写 进去的,这个脉冲的输入端口就是 PROG。现在绝大多数单片机都已经不需要编 程脉冲引脚往内部写程序了,比如我们使用的 STC 单片机,它可以直接通过串口 往里面写程序,只需要三条线与计算机相连即可。而且现在的单片机内部都已经带有丰富的 RAM,所以也不需要再扩展 RAM 了,因此 ALE/PROG 引脚用于不大,大家了解即可。
EA/Vpp(31 脚):EA 接高电平时,单片机读取内部程序存储器。当扩展有 外部 ROM 时,当读取完内部 ROM 后自动读取外部 ROM。EA 接低电平时,单片机直 接读取外部 ROM。我们没有外扩 ROM,并且需要单片机直接读取内部程序存储器,因此 EA/Vpp脚直接接高电平。
P0 口(39 脚~32 脚):双向 8 位三态 I/O 口,每个口可独立控制。51 单片 机 P0 口内部没有上拉电阻,若输出高时为高阻态,不能正常输出高电平,因此 该组 I/O 口,每个口可独立控制。51 单片机 P0 口内部没有上拉电阻,若输出高 时为高阻态,不能正常输出高电平,因此该组 I/O 口在使用时务必要外接上拉电阻,一般我们选择接入 10K 欧上拉电阻。
P1 口(1 脚~8 脚):准双向 8 位 I/O 口,每个口可独立控制,内部自带上拉 电阻,这种接口输出没有高阻态,输入也不能锁存,故不是真正的双向 I/O 口。 之所以称它为“准双向 ”是因为该口在作为输入使用前,要先向该口进行写 1 操作,然后单片机内部才可正确读出外部信号,也就是要使其先有个“准 ”备的 过程,所以才称为准双向口。对 52 单片机 P1.0 引脚的第二功能未 T2 定时器/ 计数器的外部输入,P1.1 引脚的第二功能为 T2EX 捕捉、重装触发,即 T2 的外部控制端。
P2 口(21 脚~28 脚):准双向 8 位 I/O 口,每个口可独立控制,内部自带上拉电阻,与 P1 口相似。
P3 口(10 脚~17 脚):准双向 8 位 I/O 口,每个口可独立控制,内部自带上 拉电阻。作为第一功能使用时就当做普通 I/O 口,与 P1 口相似。作为第二功能使用时,各引脚的定义如下:
从图中可知,P3 口的每一个引脚均可独立定义为第一功能的输入/输出或第二功能。
STC89C51芯片内部结构
STC89C51 系列单片机的内部结构框图如下图所示:
STC89C51 单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器 (SRAM)、定时/计数器、UART 串口、I/O 接口、EEPROM、看门狗等模块。STC89C51 系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。想要了解更多 STC89C5xx 系列芯片介绍,可以百度搜索对应数据手册。在我们资料内也提供了该芯片的数据手册,可作为 STC89C5XX 单片机学习参考。
单片机能做什么
单片机说白了,就是一种微型的电脑。只要我们稍加编程,再加上一系列的 外围电子设备,就可以发挥强大的功能,接下来给大家简单介绍一下,51 单片机能干什么?
51 单片机主要用于“控制 ”,通过串口可以和 WFIF/GPS/蓝牙等模块实现无 线控制,通过 AD 接口可以采集光敏/烟雾传感器/可燃气体传感器等模拟信号,还可以使用 AD 设计简易示波器。当然还包括直流电机、交流电机、步进电机、伺服电机、变频电机、电磁铁、电磁阀、LED、LCD 等等,进而由这些去驱动各种设备,应用于家电、机械加工、制造、航空航天等各行各业。日常生活中可采用 51 单片机设计的电子产品:智能手环,微型四轴飞行器,平衡车、扫地机、移动 POST 机,智能电饭锅,3D 打印机、机器人等。
总之学好 51 单片机用处非常大,而且学好 51 单片机对后期学习 STM32 或者 其他高级单片机帮助是非常大的。在众多 51 芯片中,STC89CXX 或者 STC90CXX系列芯片是首选。大家只要认真学习本套教程,相信学好 51 并不难!
数字电路
电平特性
电平特性
单片机是一种数字集成芯片,数字电路中只有两种电平:高电平和低电平。 为了让大家在刚起步的时候对电平特性有一个清晰的认识,我们暂时定义单片机 输出与输入为 TTL 电平,其中高电平为+5V,低电平为 0V。计算机的串口为 RS232 电平,其中高电平为-12V,低电平为+12V。这里强调的是,RS232C 电平为负逻 辑电平,大家不要认为上面是我写错了。因此当计算机与单片机之间要通信时,
需要依靠电平转换芯片,比如 MAX232 电平转换芯片。
常用的逻辑电平还有很多,比如 TTL、CMOS、LVTTL、RS-232、RS-485 等。 其中TTL 和CMOS 的逻辑电平按典型电压可分为四类:5V 系列(5V TTL 和 5V CMOS)、3.3V 系列,2.5V 系列和 1.8V 系列。
5V TTL 和 5V CMMOS 是通用的逻辑电平。3.3V 及以下的逻辑电平被称为低电压逻辑电平,常用的为 LVTTL 电平。低电压逻辑电平还有 2.5V 和 1.8V 两种。
RS-232 和 RS-485 是串口的接口标准,RS-232 是单端输入/输出。RS-485 是差分输入/输出。
TTL 电平信号用的最多,这是因为数据表示通常采用二进制,+5V 等价于逻辑 1,0V 等价于逻辑 0,这被称为 TTL(晶体管-晶体管逻辑电平)信号系统。
CMOS 电平 VCC 可达 12V,CMOS 电路输出高电平约为 0.9VCC,而输出低电平 约为 0.1VCC。CMOS 电路中不使用的输入端不能悬空,否则会造成逻辑混乱。另 外,CMOS 集成电路电源电压可以在较大范围内变化,因而对电源的要求不像 TTL集成电路那样严格。
TTL 电路和 CMOS 电路的逻辑电平关系如下:
①VOH:逻辑电平 1 的输出电压。
②VOL:逻辑电平 0 的输出电压。
③VIH:逻辑电平 1 的输入电压。
④VIL:逻辑电平 0 的输入电压。
TTL 电平临界值:
①VOHmin=2.4V,VOLmax=0.4V。
②VIHmin=2.0V,VILmax=0.8V。
CMOS 电平临界值(假设电源电压为+5V):
①VOHmin=4.99V,VOLmax=0.01V。
②VIHmin=3.5V,VILmax=1.5V。
TTL 和 CMOS 的逻辑电平转换:CMOS 电平能驱动 TTL 电平,但 TTL 电平不能驱动 CMOS 电平,需加上拉电阻。
常用逻辑芯片的特点如下:
74LS 系列: | TTL | 输入:TTL, | 输出:TTL |
---|---|---|---|
74HC 系列: | CMOS | 输入:CMOS, | 输出:CMOS |
74HCT 系列: | CMOS | 输入:TTL, | 输出:CMOS |
CD4000 系列: | CMOS | 输入:TTL, | 输出:CMOS |
通常情况下,单片机、DSP、FPGA 之间引脚能否直接相连要参考以下方法进 行判断:一般来说,同电压的是可以相连的,不过最好还是要查看下芯片技术手 册上的 VIL、VIH、VOL 和 VOH 的值,看是否能够匹配。有些情况在一般应用中没 有问题,但是参数上就是有点不够匹配,在某些情况下运行可能就不够稳定,或者不同批次的器件就不能运行。
单片机最小系统
若要使系统正常运行,必须确保单片机的最小系统稳定工作。51 单片机的最小系统由以下几部分组成:
(1)晶振电路
(2)复位电路
(3)电源电路
(4)下载电路
第(4)是我们添加进来的,实际上最小系统只由前面 3 个部分组成。为什 么要加入第(4)部分呢?仅靠前面 3 个部分电路只能使单片机正常运行,但如 果我们要给系统更新程序即烧入程序时就没有办法了,所以我们将第(4)部分电路也加入到最小系统当中,这时候我们就可以给系统自由烧入程序了。
晶振电路提供时钟给单片机工作,犹如人的心脏。复位电路提供系统复位操 作,当系统出现运行不正常或者死机等情况时,可以通过复位按键重新启动系统。
电源电路也是非常关键的一个部分,因为单片机对供电电压是有要求的,如果电压过大将烧坏芯片,如果电压过小系统将运行不了。所以选择一个合适稳定的电源电路是非常关键的。
还有一点非常重要,由于 51 单片机的 P0 口是漏极开路,即输出高电平会导致高阻态,要让它输出高电平就必须外接上拉电阻,如下:
相同网络标号的表示其线路是连接在一起的,这个在后面章节会介绍。为了 增强其他 IO 口的驱动能力,开发板上也都为其外接了上拉电阻(除了串口),通常上拉电阻选择 10K 左右。
下面就来介绍下这 4 部分的电路。
晶振电路
由于单片机正常工作需要一个时钟,因此就需要在其晶振引脚上外接晶振 (我们使用的 STC89CXX 单片机晶振引脚是 18 和 19 脚),至于需要多大晶振这 就取决于你所使用的单片机,由于我们使用的是 51 单片机,其时钟频率可在 0-40MHZ 上运行,一般情况下我们建议选择 12M(适合计算延时时间)或者是 11.0592M(适合串口通信)。若直接将此晶振接入单片机晶振引脚,会发现系统 工作不稳定,这是因为晶振起振的一瞬间会产生一些电感,为了消除这个电感所 带来的干扰,可以在此晶振两端分别加上一个电容,电容的选取需要无极性的, 另一端需要共地。根据选取的晶振大小决定电容值,通常电容可在 10-33PF 值范 围内选取。我们使用的是 33PF 电容。这样一来就构成了晶振电路。只有保证晶振电路稳定,单片机才能继续工作。其电路如下所示:
复位电路
前面我们已经将晶振电路搭建完成,我们知道晶振犹如人的心脏,需要无时 无刻给单片机提供运行周期。但即使时钟周期在不停的运行,系统也有可能会出 现崩溃或者瘫痪状态。这就好比人会生病一样,人一生病就得看医生,服用医生 开的药后重新获得正常状态。那么单片机呢,它是如何获取重生的?这就需要设 计一个复位电路来实现此功能。我们知道单片机引脚当中就有一个 RST 复位引 脚,而 STC89CXX 单片机又是高电平复位,所以只需要让这个引脚保持一段时间 高电平就可以。要实现此功能通常有两种方式,一种是通过按键进行手动复位, 还有一种是上电复位,即电源开启后自动复位。手动复位是通过一个按键及电容 电阻所组成,利用按键的开关功能实现复位,按键按下后 VCC 直接进入到单片机 RST 引脚,松开后 VCC 断开,RST 被电阻拉为低电平。这一合一开就实现了手动 复位。而自动复位主要是利用 RC 充放电功能,电源已开启,由于电容隔直,VCC 直接进入 RST,然后电容开始慢慢充电,直到充电完成,此时 RST 被电阻拉低。 这样就起到上电复位的效果。这里我们采用手动复位。不到系统崩溃,我们几乎不会操作复位。复位电路如下图所示:
当按下按键 RSTK1,VCC 直接连接到 RST 复位脚,VCC 是高电平所以系统复位。
电源电路
任何电子器件都需要有一个合适的电源进行供电,这就好比人要吃饭一样, 没有电源,系统是不会工作的。STC89CXX 单片机的工作电压是 3.3-5.5V 范围, 通常我们使用 5V 直流。将电源接入到各芯片电源引脚即可。开发板电源电路如下图所示:
开发板上还预留了 P3(5V/3V)端子,这些端子可以很方便的给外部模块连接电源。
下载电路
在前面已经介绍过为什么要加下载电路到最小系统中,这里就不再重复。程 序要烧写到单片机内是通过上位机(PC 机)及对应的软件将编译器生成的xxx.HEX 文件通过单片机串口写入进去。
我们知道现在的笔记本电脑没有 RS232 接口,所以要使用 USB 转 TTL 串口电 平芯片来建立 PC 机和单片机数据传输通路。通常使用 CH340G 或者 CH340C 芯片 来完成电平转换。CH340G 需外接 12M 晶振,而 CH340C 内部自带晶振,所以可以不接外部 12M 晶振。开发板上使用的是 CH340C 芯片。
开发板下载电路如下图所示:
本电路是我们自主研发的一键自动下载电路,无需冷启动。主要依靠上位机 软件(PZ-ISP)控制 CH340 芯片的 RTS 和 DTR 脚输出,进而使 MOS 管 Q3 自动断电后上电,完成冷启动工作。
从上图可以知道,USB1 接口即为程序下载接口,D-和 D+连接到 CH340 芯片 的 D-和 D+,然后 CH340 芯片的串口 TXD 和 RXD 管脚就连接到单片机的串口(P3.0、 P3.1)上,这里不是直接连接到单片机串口,而是通过 P5 端子进行转接。这样 做不仅可以让开发板 USB 接口下载程序,还可以让单片机串口不受 CH340 干扰, 这样开发板也可以当成 USB 转 TTL 模块使用,该设计也是考虑 WIFI、蓝牙等模块与串口通信不受干扰问题。
USB1 接口不仅可以作为程序下载口,还可以作为串口通信口,因为它本身就 是实现串口下载。同时还可以作为电源供电口,可以看到 USB1 的管脚 1 就是 5V 电源脚,所以开发板的可以直接使用 USB 线来供电,如果提供的 USB 线有问题, 可以使用安卓手机数据线,接口都是兼容的。当电源开关打开后,电源指示灯DP1 即会点亮,表明系统电源正常。
至此,我们就把 51 单片机的最小系统介绍完,大家在制作最小系统时,可以参考我们的电路,这样成功几率会更高。