单片机学习-单片机基础

单片机学习

单片机简介

一台能够工作的计算机要有这样几个部件构成: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 芯片管脚图如下所示:

img

上图中左图是 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。其内部结构图如下所示:

img

总线(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 单片机芯片

实物图如下所示:

img

上图可看到芯片表面印有 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 单片机不同封装的引脚图,当大家首次看见这些引脚 时,一定会有又多又乱的感觉,而且难以记忆。千万不要着急,对于初学者来说,单纯的记忆引脚标号没有任何意义,最好的方法是边学边记忆。

img

img

单片机脚位判断

在在讲解各引脚含义之前,我们首先应该学会如何在实物上区分引脚序号, 基于 8051 内核的单片机,若引脚数相同,或封装相同,它们的引脚功能是相同 的,其中用的较多的是 40 脚 DIP 封装的 51 单片机,也有 20,28,32,44 等不同 引脚数的 51 单片机,这些大家也要了解,不能只见了 40 脚的芯片才认为它是51 单片机。

无论哪种芯片,单片机也好,其他不知名的芯片也好,当我们观察它的表面 时,大都会找到一个凹进去的小圆坑,或是用颜色标记的一个小标记(圆点或三角或其他小图形),这个小圆坑或者小标记所对应的引脚就是这个芯片的第 1脚,然后逆时针方向数下去,即 1 到最后一个引脚。如下图所示:

img

img

img

上图中对于 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 口相似。作为第二功能使用时,各引脚的定义如下:

img

从图中可知,P3 口的每一个引脚均可独立定义为第一功能的输入/输出或第二功能。

STC89C51芯片内部结构

STC89C51 系列单片机的内部结构框图如下图所示:

img

STC89C51 单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器 (SRAM)、定时/计数器、UART 串口、I/O 接口、EEPROM、看门狗等模块。STC89C51 系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。想要了解更多 STC89C5xx 系列芯片介绍,可以百度搜索对应数据手册。在我们资料内也提供了该芯片的数据手册,可作为 STC89C5XX 单片机学习参考。

单片机能做什么

单片机说白了,就是一种微型的电脑。只要我们稍加编程,再加上一系列的 外围电子设备,就可以发挥强大的功能,接下来给大家简单介绍一下,51 单片机能干什么?

51 单片机主要用于“控制 ”,通过串口可以和 WFIF/GPS/蓝牙等模块实现无 线控制,通过 AD 接口可以采集光敏/烟雾传感器/可燃气体传感器等模拟信号,还可以使用 AD 设计简易示波器。当然还包括直流电机、交流电机、步进电机、伺服电机、变频电机、电磁铁、电磁阀、LED、LCD 等等,进而由这些去驱动各种设备,应用于家电、机械加工、制造、航空航天等各行各业。日常生活中可采用 51 单片机设计的电子产品:智能手环,微型四轴飞行器,平衡车、扫地机、移动 POST 机,智能电饭锅,3D 打印机、机器人等。

img

img

img

总之学好 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 口是漏极开路,即输出高电平会导致高阻态,要让它输出高电平就必须外接上拉电阻,如下:

img

相同网络标号的表示其线路是连接在一起的,这个在后面章节会介绍。为了 增强其他 IO 口的驱动能力,开发板上也都为其外接了上拉电阻(除了串口),通常上拉电阻选择 10K 左右。

下面就来介绍下这 4 部分的电路。

晶振电路

由于单片机正常工作需要一个时钟,因此就需要在其晶振引脚上外接晶振 (我们使用的 STC89CXX 单片机晶振引脚是 18 和 19 脚),至于需要多大晶振这 就取决于你所使用的单片机,由于我们使用的是 51 单片机,其时钟频率可在 0-40MHZ 上运行,一般情况下我们建议选择 12M(适合计算延时时间)或者是 11.0592M(适合串口通信)。若直接将此晶振接入单片机晶振引脚,会发现系统 工作不稳定,这是因为晶振起振的一瞬间会产生一些电感,为了消除这个电感所 带来的干扰,可以在此晶振两端分别加上一个电容,电容的选取需要无极性的, 另一端需要共地。根据选取的晶振大小决定电容值,通常电容可在 10-33PF 值范 围内选取。我们使用的是 33PF 电容。这样一来就构成了晶振电路。只有保证晶振电路稳定,单片机才能继续工作。其电路如下所示:

img

img

复位电路

前面我们已经将晶振电路搭建完成,我们知道晶振犹如人的心脏,需要无时 无刻给单片机提供运行周期。但即使时钟周期在不停的运行,系统也有可能会出 现崩溃或者瘫痪状态。这就好比人会生病一样,人一生病就得看医生,服用医生 开的药后重新获得正常状态。那么单片机呢,它是如何获取重生的?这就需要设 计一个复位电路来实现此功能。我们知道单片机引脚当中就有一个 RST 复位引 脚,而 STC89CXX 单片机又是高电平复位,所以只需要让这个引脚保持一段时间 高电平就可以。要实现此功能通常有两种方式,一种是通过按键进行手动复位, 还有一种是上电复位,即电源开启后自动复位。手动复位是通过一个按键及电容 电阻所组成,利用按键的开关功能实现复位,按键按下后 VCC 直接进入到单片机 RST 引脚,松开后 VCC 断开,RST 被电阻拉为低电平。这一合一开就实现了手动 复位。而自动复位主要是利用 RC 充放电功能,电源已开启,由于电容隔直,VCC 直接进入 RST,然后电容开始慢慢充电,直到充电完成,此时 RST 被电阻拉低。 这样就起到上电复位的效果。这里我们采用手动复位。不到系统崩溃,我们几乎不会操作复位。复位电路如下图所示:

img

当按下按键 RSTK1,VCC 直接连接到 RST 复位脚,VCC 是高电平所以系统复位。

电源电路

任何电子器件都需要有一个合适的电源进行供电,这就好比人要吃饭一样, 没有电源,系统是不会工作的。STC89CXX 单片机的工作电压是 3.3-5.5V 范围, 通常我们使用 5V 直流。将电源接入到各芯片电源引脚即可。开发板电源电路如下图所示:

image-20231213170616116

开发板上还预留了 P3(5V/3V)端子,这些端子可以很方便的给外部模块连接电源。

下载电路

在前面已经介绍过为什么要加下载电路到最小系统中,这里就不再重复。程 序要烧写到单片机内是通过上位机(PC 机)及对应的软件将编译器生成的xxx.HEX 文件通过单片机串口写入进去。

我们知道现在的笔记本电脑没有 RS232 接口,所以要使用 USB 转 TTL 串口电 平芯片来建立 PC 机和单片机数据传输通路。通常使用 CH340G 或者 CH340C 芯片 来完成电平转换。CH340G 需外接 12M 晶振,而 CH340C 内部自带晶振,所以可以不接外部 12M 晶振。开发板上使用的是 CH340C 芯片。

开发板下载电路如下图所示:

img

img

本电路是我们自主研发的一键自动下载电路,无需冷启动。主要依靠上位机 软件(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 单片机的最小系统介绍完,大家在制作最小系统时,可以参考我们的电路,这样成功几率会更高。

posted @ 2023-12-13 17:07  AJun816  阅读(233)  评论(0编辑  收藏  举报