前言:

上篇文章简单介绍了单片机的CPU、存储器和定时/计数器。下面介绍一下单片机的I/O接口、中断控制系统和时钟电路这三个模块。

一、I/O接口

单片机的I/O接口是单片机的输入输出口,输入口用于接收外部设备的数据,而输出口用于向外部设备发送数据。一个单片机一定会有一个或多个I/O口,每个I/O口都具备一定的功能,如准双向口/弱上拉(标准8051输出模式)、强推挽输出/强上拉、仅为输入(高阻)或开漏输出功能。C51中,P1、P2、P3都是准双向口电路,P0是漏极开漏。

1、准双向口

开漏输出+上拉电阻 = (准)输入输出端口
输出:可以输出低电平,也可以输出高电平(驱动能力弱)
输入:可以输入低电平,也可以输入高电平
准双向口输出图如下:
在这里插入图片描述

分析:
当口锁存数据为高电平1时,端口引脚输出 高电平,但是此时导通的上拉晶体管是极弱上拉,所以驱动能力弱,如下图:
在这里插入图片描述

一般网上的I/O结构图如下:
在这里插入图片描述

注意:
双向口和准双向口的区别在于双向口有高阻这个状态,而C51中的P1~P3中内部有上拉电阻,所以没有高阻态,因此称为准双向口。

2、推挽输出

推挽输出可以真正的输出高电平和低电平,高电平等同于Vdd,低电平等同于Gnd。
推挽的结构是由两个MOS管或三极管收到互补信号的控制,两个管子始终有一个处于截止状态,另一个处于导通的状态。
在这里插入图片描述

VINV_{IN}VIN 输入高电平时,N-MOS 导通,P-MOS截止,此时输出的是 Gnd
VINV_{IN}VIN 输入低电平时,N-MOS 截止,P-MOS导通,此时输出的是 VDDV_{DD}VDD
(上图左边下面的MOS管为N-MOS管)

1)拉电流

当P-MOS导通时,漏极电流流出,此电流为拉电流。
在这里插入图片描述

2)灌电流

当N-MOS导通时,外部电源电路的电流流入,此电流为灌电流。
在这里插入图片描述

注意:不管是拉电流还是灌电流,在实际的电路中,需要根据电路的输出能力匹配上拉电阻或下拉电阻,保证功能的实现。

3、开漏输出

全称是 漏极开路输出电路

当MOS管导通时,IO电平被拉低,输出低电平
当MOS管断开时,即漏极开路,IO的状态由外部决定,只有外接上拉电阻才能输出高电平,否则只能输出高阻态。

开漏输出电路如下:
在这里插入图片描述

二、中断控制系统

当CPU正在处理某件事的时候外界发生了紧急事件请求,请求CPU暂停当前的工作,转而去处理这个紧急事件,处理完后,再回到原来被中断得到地方,继续原来的工作,这样的工作即为中断。
在这里插入图片描述

1、中断源
中断源 优先级 中断允许标志位 中断请求位 中断方式
INT0(外部中断0) 0(最高) EX0 IE0 P3.2低电平或下降沿
定时器T0 1 ET0 TF0 溢出
INT1(外部中断1) 2 EX1 IE1 P3.3低电平或下降沿
定时器T1 3 ET1 TF1 溢出
串口 4 ES TX/RX 接收或发送数据结束

在这里插入图片描述

注意:INT0/INT1由特殊寄存器TCON控制

2、中断有关的寄存器
1)定时/计数控制寄存器(TCON)

寄存器框图如下:
在这里插入图片描述

继续上半篇,由上图可知外部中断相关位是 IE1、IT1、IE0、IT0。(TF1、TR1、TF0、TR0和定时/计数器有关的功能,可看上一篇内容,这里不再赘叙)。

TCON中的位功能如下
在这里插入图片描述

2)串行口控制寄存器(SCON)

串行口控制寄存器的中断标志位分别为 TI 和 RI。(只有这两位用来控制中断,其他位与中断无关)

中断请求标志位 功能
TI CPU每发送一帧数据,硬件置为1(TI=1),但是中断被响应时,需要在中断服务程序中通过软件对TI清零
RI 每接收一帧数据,硬件置为1(TI=1),但是中断被响应时,一样需要在中断服务程序中通过软件对TI清零
3)中断允许控制寄存器(IE)

IE寄存器可以控制各个中断源的允许与禁止,一般由用户控制。
在这里插入图片描述

标志位 功能
EA 总中断允许开关,EA=0时,不允许任何中断
ES 满足EA=1且ES=1时,才可以使用串行口中断
ET1 满足EA=1且ET1=1时,才可以使用定时/计数器1中断
EX1 满足EA=1且EX1=1时,才可以使用外部中断1
ET0 满足EA=1且ET0=1时,才可以使用定时/计数器0中断
EX0 满足EA=1且EX0=1时,才可以使用外部中断0
4)中断优先级控制寄存器(IP)

IP 寄存器用于设置各个中断源的优先级,用来改变系统中断源的优先级顺序和实现二级中断嵌套。
中断嵌套:CPU刚好在响应一个低优先级的中断任务,还未结束,但此时来了一个高优先级的中断提出请求,那么CPU会暂停低优先级的中断,转而先执行高优先级的中断服务,在执行完高优先级的中断后,从低优先级的断点继续执行未完成的中断,实现二级中断嵌套
在这里插入图片描述

标志位 功能
PS PS=1时,串行口中断为高优先级
PT1 PT1=1时,定时/计数器1中断为高优先级
PX1 PX1=1时,外部中断1为高优先级
PT0 PT0=1时,定时/计数器0中断为高优先级
PX0 PX0=1时,外部中断0为高优先级

注意
1、在同等级中断中,按默认优先级执行。(默认优先级见上面的中断源中的优先级)
2、在复位后,全部重置为0。

三、时钟电路

单片机时钟电路是单片机的一个重要组成部分,它为单片机提供基本的时钟信号,以驱动内部的计时和操作。一般分为两种:内部时钟和外部时钟。

1、内部时钟

某些单片机具有内部时钟发生器,它在芯片内部产生时钟信号。内部时钟通常是由片内振荡电路产生,通过设置寄存器或控制位来调制频率。

电路图如下:
在这里插入图片描述

分析:
在上图中,这是一个自激振荡电路,XTAL1和XTAL2两个引脚两端必须跨接石英石作为振荡器,并和两个小电容构成振荡电路,通常电容在30pF左右

2、外部时钟

有些单片机需要外部时钟源,如晶振。外部时钟源通常由外部电路(如晶体振荡器)提供,通过电路连接到单片机的时钟输入引脚。
电路图如下:
在这里插入图片描述

分析:
XTAL2引脚与外部时钟相连,XTAL1引脚接地。

3、时钟电路作用总结

1、定时控制
2、数据采样和同步
3、芯片内模块协同工作
4、系统稳定性和可靠性
5、降低功耗

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐