单片机原理及应用笔记:单片机内部结构分析

作者介绍

马义,男,银川科技学院计算机与人工智能学院2022级计算机与科学技术8班本科生,单片机原理与应用课程第五小组

指导老师:王兴泽

电子邮件:My-lewis@aliyun.com

前言
本篇文章是参考《单片机原理及应用(c语言版)第2版》杨居义·编著教材编写的笔记

由马义、杨森、张佳苗、蔡丛泽、张伏祥共同完成,其中,主要内容由马义完成撰写,杨森、总结及排版,、蔡丛泽负责80C51单片机内部结构介绍、张佳苗、负责单片机引脚功能定义资料搜集、张伏祥、负责80C51单片机锁存器结构的内容查找。

模块一:80C51 GPIO的并行输出端口的结构与操作 

项目一P0口的内部结构认识

80C51P0口的内部结构和作用

       

 1锁存器:一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。图中的锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。
对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。

2三态输入缓冲器:在P0口中,有两个三态的缓冲器,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态。图中有一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。图中另一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。


  MUX(Multiplexer,中文称为多路复用器或转换开关)是一种数

字电路元件,用于从多个输入信号中选择一个,并将其输出到下

一级电路。它相当于一个具有多个个输入但只有一个输出的电子

开关,通过控制信号来决定哪个输入信号被传递到输出端。

MUX(多路复用器)的基本工作原理:

输入端:有多个输入端口(如I0、I1、I2等),表示多个信号源。

选择信号:由选择信号(通常标记为S,有多个选择线,如S0、

S1等)来决定从哪一个输入端口选择信号进行输出。根据选择信

号的二进制值,MUX会在不同的输入信号之间进行切换。

输出端:只有一个输出端口(标记为Y),输出由选择信号决定

的输入信号。MUX选择原理:MUX的选择是通过选择信号来进行

的。

假设有4个输入信号(I0、I1、I2、I3),选择信号是2位二进制数

(S0、S1),它们的组合如下:当S1S0 = 00,选择输入I0。当

S1S0 = 01,选择输入I1。当S1S0 = 10,选择输入I2。当S1S0 = 

11,选择输入I3。选择这个信号直接告诉MUX从主机输入中选择

哪一个输入,将其输入给输出端。

4输出驱动电路T1和T2的基本工作原理:T1和T2通常是两个互补的晶体管,分别用于控制高电平和低电平输出。T1负责将输出端拉至高电平,而T2则将输出端拉至低电平。这种电路结构也称为推挽输出电路(推挽配置),它允许输出端口提供足够的电流驱动负载,同时可以快速切换高低电平,提升电路的响应速度。

T1和T2的作用:T1(上拉晶体管,P型晶体管):当T1打开时,会将电源(Vcc)连接到输出端(OUT),使输出为高电平。T1一般是一个P型MOSFET或P双型极型晶体管。P型晶体管导通时,允许电流从电源流向输出,从而输出高电平。此时,T2处于关闭状态,避免将输出端短路到地。

T2(下拉晶体管,N型晶体管):当T2打开时,会将输出端(OUT)连接到地(GND),使输出为低电平。T2一般是一个N型MOSFET或N双型极型晶体管。N型晶体管导通时,允许电流从输出流向地,从而输出低电平。此时,T1处于关闭状态,避免将输出端与电源短路。

项目二、P1口工作内部结构和工作原理

P1口用作输出端口

(1)、P1端口有P1.0~P1.7共8个引脚可作输入引脚和输出引脚。P1端口每个引脚的内部电路结构相同,其内部电路结构如上图所示。P1端口的接口简单很多,其输出

(2)、电路采用一个晶体管,在晶体管的漏极接了一个内部上拉电阻,所以在P1端口引脚外部可以不接上拉电阻。

(3)、如上图所示,当需要将 P1端口用作输入端口时,单片机内部相关电路会先往 P1锁存器写“1”,让Q=1、\(\overline{Q}=0\\),\(\overline{Q}=0\\)会使晶体管截止,关闭P1端口的输出电路,然后CPU往输入三态门控制端送一个读引脚控制信号,输入三态门打开,从 P1端口引脚输入的信号经输入三态门送到内部总线。

项目三P2口的内部结构应用

P2口用作输入端口

(1)、P2口的内部电路结构如图所示,可以看出P2口既有片内上拉电阻,又有切换开关 MUX,所以P2口在功能上兼有P0和P1端口的特点,这主要体现在输出功能上,当切换开关向下接通时,从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;当多路开关向上时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。

(2)、如果 P2口用作输入端口,即 Q=0,/Q=1;则场效应管导通,引脚被直接连到电源的地GND 上即使引脚输入的是高电平,被直接拉低为“0“,所以,与P0端口一样,在将数据输入P2端口之前,先要通过内部总线向锁存器写”1“,这样/Q=0,场效应管截止,P2端口输入的“1”才可以送到三态缓冲器的输入端,此时再给三态门的读引脚送一个读控制信号,引脚上的“1”就可以通过三态缓冲器送到内部总线。

(3)、如果P2口用作输出端口,应给锁存器的写锁存P端输入写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和/Q端输出,再通过电子开关、非门和场效应管从端口输出。

项目四P3口的内部结构应用

P3口用作输出端口

  1. P3 口用作第一功能(通用1/0日)。P3口用作通用1/0口时,第二输出功能信号W=1,P3口的每一位都可定义为输入或输出,其工作原理同PI 口类似。P3 口作为通用1/0口时,属于准双向口。
  2. P3 口用作第二功能。当CPU 不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置1。这时,P3口作为第二功能使用。在真正的应用电路中,P3 口的第二功能显得更为重要。

模块二:80c51时钟电路的时序

  1. 时钟电路

内部:89C51/S51芯片内部有一个高增益反相放大器,用于构成振荡器。放大器的输入端为XTAL1,输出端为XTAL2。外部:在XTAL1、XTAL2两端跨接石英晶体,及两个电容,就可以构成稳定的自激振荡器。电容器C1和C2通常取30 pF左右,可稳定频率并对振荡频率有微调作用。石头英晶体:决定振荡频率,频率范围 :fOSC=0~24 MHz振荡频率及振荡周期:2、节拍与状态周期

节拍:用一个2分频的触发器电路,将振荡器的信号频率fOSC除以2,得到两相时钟信号P1和P2。( P:Phase)时钟信号P1:节拍P1,是前半周信号有效,时钟信号P2: 节拍P2,后半周信号有效。机器状态周期:时钟信号的周期称为机器状态周期S(STATE),是振荡周期的2倍。(时钟周期)功能:每个时钟周期(以后常称状态S)有两个节拍(相)P1和P2,CPU就以两相时钟P1和P2为基本节拍,指挥89C51/S51单片机各个部件协调地工作。3、机器周期CPU访问一次存储器:需要12个振荡周期,包括6个S态:S1,S2,…,S6。 每个状态又包括两拍,称为节拍P1和节拍P2。机器周期:是指CPU访问存储器一次所需的时间。例如:取指令、读存储器、写存储器等等。一个机器周期:包括12个振荡周期:即S1P1,S1P2,S2P1,···,S6P1,S6P2。

若采用6MHz晶体振荡器,则每个机器周期为多少设:晶体振荡器频率 fosc=6MHz,则:振荡周期=1/fosc=1/6 μs(微秒)

因为:一个机器周期包括12个振荡周期,

所以:一个机器周期=12*(1/6) μs(微秒)= 2μs(微秒)

问: 如果fosc=12MHz,一个机器周期为多少?

答案 1μs(微秒)

4、指令周期、指令周期:执行一条指令所需的时间。每条指令的执行时间不同,由一个或几个机器周期组成。指令的机器周期数少则执行速度快。单片机指令包括:单周期指令:加法、减法等双周期指令:比较大小等四周期指令:乘法、除法设振荡周期为6MHz,则一个机器周期为 2μs微秒)。单周期指令:指令周期为 2μs(微秒)双周期指令:指令周期为4μs(微秒)四周期指令:指令周期为 8μs(微秒)如果振荡周期为12MHz,则其指令周期分别为 1μs、2μs 和4μs。基本时序定时单位

综上所述,89C51/S51或其他80C51单片机的基本时序定时

单位有如下4个。•振荡周期: 晶振的振荡周期,为最小的时序单位。•状态周期(时钟周期): 振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。•机器周期(MC): 1个机器周期由6个状态周期即12个振荡周期组成,是计算机执行一种基本操作的时间单位。•指令周期: 执行一条指令所需的时间。一个指令周期由1~4个机器周期组成,依据指令不同而不同。

单片机外接晶振频率12 MHz,则:振荡周期=1/fOSC=1/12 MHz=0.083 3 μs

状态周期=2/fOSC=2/12 MHz=0.167 μs机器周期=12/fOSC=12/12 MHz=1 μs指令周期=(1~4)机器周期=1~4 μs

则: 振荡脉冲周期(节拍,1/fOSC)

状态周期(时钟周期)

 机器周期和指令周期

上电自动复位是在加电瞬间电容通过充电来实现的,其电路如图所示。

在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。只要电源VCC的上升时间不超过1 ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。

对于CMOS型的89C51/S51,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1 μF。

2. 手动复位

所谓手动复位,是指通过接通一按钮开关,使单片
机进入复位状态。系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位组合,其电路如图2-18(b)所示。

复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位

成功。初步检查可用示波器探头监视RST引脚,按下 复 位 键 , 观察 是 否 有 足 够 幅 度 的 波 形 输 出(瞬时的),还可以通过改变复位电路阻容值进行实验。

何为看门狗复位电路?有什么作用?实现的原理?

复位操作的主要功能

89C51/S51 系列 单 片 机 与 其 他 微 处 理 器 一 样,在启 动 时 都 需 要 复 位,使CPU及系 统 各 部 件 处 于确定的初始状态,并从初态开始工作。

89C51/S51系列 单 片 机 的 复 位 信 号 是 从 RST引脚输入到芯片内的施密特触发器中的。

当系统处于正常工作状态时,且振荡器稳定后,如RST 引脚 上 有 一 个 高电 平 并 维持 2 个机 器 周 期(24个振荡周期),则CPU就可以响应并将系统复位。

复位操作主要功能

1、程序地址指针PC初始化为0000H,使单片机从0000H单元开始执行程序。(当由于程序运行出错或操作错误使系统死锁状态时,为摆脱困境,也需要按复位键重新启动)

2、除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表2-9所列。即在SFR中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余的寄存器全部清0,端口锁存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。内部RAM的状态不受复位的影响,在系统上电时,RAM的内容是不定的。

A=00H: 表明累加器已被清0。

PSW=00H: 表明选寄存器0组为工作寄存器组。

SP=07H: 表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操

作的先加后压法则,第一个被压入的数据被写入08H单元中。

P0~P3=FFH: 表明已向各端口线写入1,此时,各端口既可用于输

入,又可用于输出。

IP=×××00000B: 表明各个中断源处于低优先级。

IE=0××00000B: 表明各个中断均被关断。

TMOD=00H: 表明T0,T1均为工作方式0,且运行于定时器状态。

TCON=00H: 表明T0,T1均被关断。

SCON=00H: 表明串行口处于工作方式0,允许发送,不允许接收。

PCON=00H: 表明SMOD=0,波特率不加倍。

值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对熟悉单片

机操作,减短应用程序中的初始化部分是十分必要的

本文提供了关于80C51P0,P1,P2,P3端口的全面知识,包括其内部结构,锁存器,­­三态缓存器,时钟电路和复位电路等概念及其工作原理、通过上面的叙述,展现了实际项目中应用这些知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值