单片机学习-基本结构简述(下)
本文介绍了单片机的三个关键模块:I/O接口、中断控制系统和时钟电路。I/O接口部分详细讲解了准双向口、推挽输出和开漏输出三种工作模式及其电路特性。中断控制系统部分阐述了中断源分类、优先级设置及相关寄存器配置,包括TCON、SCON、IE和IP寄存器。时钟电路部分比较了内部时钟和外部时钟两种实现方式,说明了时钟电路对系统稳定性和功耗管理的重要作用。这些模块共同构成了单片机的基本功能框架,为系统运行提
前言:
上篇文章简单介绍了单片机的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、降低功耗
更多推荐



所有评论(0)