5单片机的内部结构分析(三)时序与时钟

合集下载

2.1 89C51单片机的内部结构

2.1 89C51单片机的内部结构

3x16
4x8位 4x8位
1
6
2 2/3
15 32
1 1
5 5/6
3. 程序存储器 (1) 功能: 功能: 用于存放编好的程序和表格常数。 用于存放编好的程序和表格常数。 (2) 编址: 编址:
0FFFFH 外部 ROM 1000H 0FFFH 内部 ROM 0000H (EA=1) 外部 ROM (EA=0) 0000H 0FFFH
-
P
溢出标志位OV:带符号加减运算中,超过累加器A :带符号加减运算中,超过累加器A 溢出标志位 所能表示的符号数有效范围( 128~+127) 所能表示的符号数有效范围(-128~+127)则OV 乘法指令,乘积超过255 255时 =1。 =1。乘法指令,乘积超过255时,OV=1。除法指 =1 =1, 令,OV=1,表示除数为0。 =1 表示除数为0 奇偶标志位P:该位始终跟踪指示累加器 中 奇偶标志位 :该位始终跟踪指示累加器A中1的个 如结果A中有奇数个 中有奇数个1 则置P=1 否则P=0 =1; =0。 数。如结果 中有奇数个1,则置 =1;否则 =0。 常用于校验串行通信中的数据传送是否出错。 常用于校验串行通信中的数据传送是否出错。 问题: 中哪些位有硬件自动设置? 问题:PSW中哪些位有硬件自动设置?哪些位使用 中哪些位有硬件自动设置 软件方法设定? 软件方法设定?
2. 1 89C51单片机的内部结构 单片机的内部结构
2.1.1 51单片机的基本组成 单片机的基本组成
外部时钟 外部事件计数
一、51单片机结构框图 单片机结构框图
振荡器和时序 OSC 程序存储器 4KBROM 数据存储器 256B RAM/SFR 2×16位 × 位 定时器/计数器 定时器 计数器

第2章MCS-51单片机的硬件结构

第2章MCS-51单片机的硬件结构

图2-10 可位寻址的SFR的位地址分布
表2-2
表 2-2 特殊功能 寄存器 B A PSW IP P3 IE P2 SBUF SCON P1 特 殊 功 能 寄 存 器 SFR 功能名称 通用寄存器 累加器 程序状态寄存器 中断优先级控制寄存器 P3 口数据寄存器 中断允许控制寄存器 P2 口数据寄存器 串行口发送/接收缓冲器 串行口控制寄存器 P1 口数据寄存器 地 址 F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 复位后初态 00H 00H 00H XXX00000B FFH 0XX00000B FFH 不定 00H FFH
图2-5
图2-6
2.2.2 MCS-51单片机存储器 MCS-5l单片机的存储器结构如图2-7所示。
图2-7
一、程序存储器 二、内部数据存储器 内部数据存储器在物理上分为两个不同区域
图2-8为内部RAM的功能结构。
图2-9是MCS-51位寻址空间的位地址分布图
图2-8
图2-9 MCS-51内部RAM位寻址区位地址分布
MCS-51单片机的外部结构框图如图2.1所示
2.1.1 电源及时钟引脚
包括电源引脚VCC、VSS、时钟引脚XTAL1、 XTAL2。 2.1.2 控制引脚 包括RESET(即RST)、ALE、PSEN、EA。 2.1.3 输入/输出引脚 输入、输出(I/0)口引脚包括P0口、P1口、P2 口和P3口。
图2-1 MCS-51单片机的外部结构框图
2.2 MCS-51单片机的内部结构

MCS-51单片机的内部结构框图如图2-2所示。 2.2.1 MCS-51单片机微处理器(CPU) 一、运算器 二、定时控制逻辑 1、时钟电路和CPU时序 MCS-51的时钟可以由内部方式或外部方式产生。

第2章 MCS-51单片机结构与时序_110905

第2章 MCS-51单片机结构与时序_110905
2.3.1 运算部件及专用寄存器组 2.3.2 控制部件及振荡器 2.3.3 单片机工作的基本时序
2.3.1 运算部件及专用寄存器组
运算部件以算术逻辑单元ALU为核心,包括一个位处理器和 两个8位暂存寄存器(不对外开放),它能实现数据的算术运 算、逻辑运算、位变量处理和数据传输操作。 累加器ACC 寄存器B 专用寄存器组 程序状态字PSW 程序计数器PC 堆栈指针SP 数据指针寄存器DPTR
锁 存 器
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 VCC VSS
地 址 总 线 (AB)
数 据 总 线 (DB)
VCC VSS
ห้องสมุดไป่ตู้(a)
(b)
MCS-51系列单片机引脚及总线结构
2.3 微 处 理 器
Program State Word
accumulator
ALU --Arithmetic and Logic Unit
图2.1 MCS-51单片机内部结构框图
1.算术逻辑单元ALU与累加器ACC、寄存器B
算术逻辑单元不仅能完成8位二进制的加、减、乘、除、加 1、减1及BCD加法的十进制调整等算术运算,还能对8位变量进 行逻辑"与"、"或"、"异或"、循环移位、求补、清零等逻辑运 算,并具有数据传输、程序转移等功能。 累加器(ACC,简称累加器A,地址E0H)为一个8位寄存器, 它是CPU中使用最频繁的寄存器。进入ALU作算术和逻辑运算的 操作数多来自于A,运算结果也常送回A保存。 寄存器B(地址F0H )是为ALU进行乘除法运算而设置的。 若不作乘除运算时,则可作为通用寄存器使用。

MSC-51单片机基本结构——第3讲

MSC-51单片机基本结构——第3讲
上拉电阻组成。 2.工作过程分析 (1)P3口用作第二输入/输出功能
当选择第二输出功能时,该位的锁存器需要置“1”, 使“与非门”为开启状态。当第二输出为1时,场效应管截 止,P3.x引脚输出为1;当第二输出为0时,场效应管导通, P3.x引脚输出为0。
当选择第二输入功能时,该位的锁存器和第二输出功能 端均应置1,保证场效应管截止,P3.x引脚的信息由输入缓 冲器BUF3的输出获得。
1.5 并行I/O端口
※ 有4个8位并行I/O口,共32条端线: P0、P1、P2和P3口。 每一个I/O口都能用作输入或输出。
※ 用作输入时,均须先写入“1”; 用作输出时,P0口应外接上拉电阻。
※ P0口的负载能力为8个LSTTL门电路; P1~P3口的负载能力为4个LSTTL门电路。
※ 在并行扩展外存储器或I/O口情况下, P0口用于低8位地址总线和数据总线(分时传送) P2口用于高8位地址总线, P3口常用于第二功能, 用户能使用的I/O口只有P1口和未用作第二功能 的部分P3口端线。
当P3口实现第一功能通用输入时,也可以执行“读锁 存器”操作,此时Q端信息经过缓冲器BUF1进入内部总线。
3.P3口的特点 P3口内部有上拉电阻,不存在高阻抗输入状态,为准双向口。 P3口作为第二功能的输出/输入,或第一功能通用输入,均须
将相应位的锁存器置1。实际应用中,由于复位后P3口锁 存器自动置1,满足第二功能条件,所以不需要任何设置 工作,就可以进入第二功能操作。 当某位不作为第二功能使用时,可作为第一功能通用I/O使用。 引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲 器BUF3的输出端,第一功能的输入信号取自缓冲器BUF2的 输出端。 P3口的第二功能定义(表2-1),读者应熟记。

单片机指令的时钟和定时器控制

单片机指令的时钟和定时器控制

单片机指令的时钟和定时器控制时钟和定时器控制是单片机中非常重要的功能模块。

单片机的时钟主要用于控制指令的执行过程,而定时器功能则可以实现精确的时间测量和任务调度。

本文将详细介绍单片机指令的时钟和定时器控制。

一、时钟控制在单片机中,时钟是指定时单元(Timer/Counter)的运行时钟。

时钟信号可以是外部晶振信号,也可以是由外部晶振经过分频电路产生的。

时钟信号的频率直接影响到单片机的运行速度和性能。

不同型号的单片机支持的最大工作频率不同,需要根据具体型号的手册来设置时钟频率。

时钟的分频系数可以通过内部的控制寄存器来设置,通常可以选择不同的分频因子来适应不同的应用需求。

在设置时钟的分频系数时,需要考虑到单片机的工作环境、外部设备的要求以及功耗等方面的因素。

在程序中,可以通过配置寄存器来设置时钟源、分频系数等参数。

常见的时钟源有外部晶振,内部振荡器等。

下面是一个简单的示例代码:```C#include <reg51.h>void main(){// 设置时钟源为外部晶振,分频系数为12TMOD = 0x01;TCON = 0x00;TH0 = 0x1A;TL0 = 0x1A;TR0 = 1;while(1){// 在这里编写其他的代码}}```在上面的示例代码中,通过设置TMOD寄存器来配置定时器的工作模式。

TCON寄存器用于启动定时器,并设置定时器的计数初值。

最后通过设置TR0寄存器来启动定时器的计数。

二、定时器控制定时器是单片机中常用的功能模块之一,它可以根据设置的参数自动定时中断,并执行相应的处理函数。

定时器通常用于实现精确的时间测量、任务调度、脉冲计数等应用。

在单片机中,常见的定时器有定时器0和定时器1。

定时器0通常用于系统的时基控制和通信协议的实现,定时器1则通常用于编码器计数、PWM信号生成等应用。

定时器的工作原理是通过计数器的自动累加和溢出来实现的。

当定时器溢出时,会触发相应的中断,并执行中断处理函数。

单片机的时序

单片机的时序

单片机的时序在电子世界中,单片机就像是一个小巧而强大的智慧核心,掌控着各种设备的运行。

而要理解单片机如何准确无误地执行任务,关键就在于掌握它的时序。

什么是单片机的时序呢?简单来说,时序就是单片机在执行指令和操作外部设备时,各种信号在时间上的先后顺序和持续时间。

就好比我们日常生活中的流程,先做什么,后做什么,每个步骤持续多久,都有一定的规律和节奏。

为了更清晰地理解,我们先来看看单片机的内部结构。

单片机内部有中央处理器(CPU)、存储器、输入输出端口等部分。

这些部分之间的协同工作,都依赖于精确的时序控制。

当我们给单片机下达一个指令时,它并不是立刻就能执行的。

首先,指令会被存储在存储器中,然后 CPU 按照一定的节奏从存储器中读取指令,并进行解码和执行。

这个节奏就是由时钟信号来控制的。

时钟信号就像是单片机的心跳,它以固定的频率跳动,决定了单片机每一步操作的时间间隔。

比如,如果时钟频率是 10MHz,那就意味着每秒钟单片机内部会进行 1000 万次的操作。

单片机在与外部设备进行通信时,时序同样至关重要。

以常见的串口通信为例,发送和接收数据都有严格的时序要求。

发送方要按照特定的时间间隔发送数据位,接收方也要在准确的时刻进行采样,才能保证数据的正确传输。

再来说说单片机对存储器的读写操作。

无论是读取程序存储器中的指令,还是读写数据存储器中的数据,都有明确的时序规定。

比如,在读取数据时,需要先发出读信号,然后等待一定的时间,才能获取到稳定有效的数据。

单片机的时序还与指令的执行周期有关。

不同的指令可能需要不同的执行时间。

有些简单的指令可能在一个时钟周期内就能完成,而复杂的指令可能需要多个时钟周期。

在实际的应用中,如果时序出现问题,可能会导致各种错误。

比如,数据传输错误、设备无法正常工作,甚至整个系统崩溃。

为了确保时序的准确性,在设计单片机系统时,我们需要仔细考虑时钟源的选择和配置。

时钟源可以是外部晶体振荡器,也可以是内部的 RC 振荡器。

51单片机原理介绍

51单片机原理介绍

51单片机原理介绍单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统,以下是8051系列单片机原理和内部结构基础介绍&#61558;外部引脚功能&#61558;存储空间配置和功能&#61558;片内RAM结构和功能&#61558;特殊功能寄存器的用途和功能&#61558;程序计数器PC的作用和基本工作方式&#61558;I/O端口结构、工作原理及功能&#61558; 时钟和时序&#61558; 复位电路、复位条件和复位后状态&#61558; 低功耗工作方式的作用和进入退出的方法§2-1 单片机原理简介和引脚功能一、内部结构二、引脚功能40个引脚大致可分为4类:电源、时钟、控制和I/O 引脚。

⒈ 电源: ⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊ 控制线:控制线共有4根,⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

⑵ PSEN:外ROM读选通信号。

⑶ RST/VPD:复位/备用电源。

① RST(Reset)功能:复位信号输入端。

② VPD功能:在Vcc掉电情况下,接备用电源。

⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。

① EA功能:内外ROM选择端。

② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

⒋ I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

单片机时钟原理

单片机时钟原理

单片机时钟原理
单片机时钟原理是指单片机内部系统中的一个计时器电路,用于产生一个稳定的时钟信号。

时钟信号的频率用来控制单片机内部各个模块的运行节奏,以确保它们按照正确的顺序和时间进行工作。

在单片机中,通常采用晶体振荡器作为时钟源。

晶体振荡器是一种稳定的电子振荡器,由晶体和与晶体相连的谐振电路组成。

晶体的内部结构使得它具有一个特定的谐振频率,当外加电压施加到晶体上时,它会开始振荡并产生稳定的振荡信号。

单片机内部的时钟电路通常由一个振荡电路和一个分频电路组成。

振荡电路负责产生一个基准振荡信号,而分频电路则将这个振荡信号分频得到一个较低频率的时钟信号,以满足单片机的工作需求。

在单片机启动过程中,振荡电路通过控制晶体振荡器工作,产生一个基准振荡信号。

这个基准振荡信号经过分频电路的处理,产生一个较低频率的时钟信号。

这个时钟信号可以控制单片机中各个模块的时序,使其在正确的时间进行工作。

在单片机的编程中,开发人员可以通过对时钟寄存器的设置来调整时钟频率。

通过控制时钟频率,可以改变单片机内部各个模块的运行速度,从而满足不同的应用需求。

总的来说,单片机时钟原理是通过振荡电路和分频电路产生一个稳定的时钟信号,用于控制单片机内部各个模块的时序和节
奏。

这个时钟信号在单片机的启动过程中产生,并且可以通过对时钟寄存器的设置来进行调整。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机的内外部结构分析(三)
一、延时程序分析
上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。

1.MOV:这是一条指令,意思是传递数据。

说到传递,我们都很清楚,传东西要从一个人
的手上传到另一个人的手上,也就是说要有一个接受者,一个传递者和一样东西。

从指
令MOV R7,#250中来分析,R7是一个接受者,250是被传递的数,传递者在这条指令
中被省略了(注意:并不是每一条传递指令都会省的,事实上大部份数据传递指令都会
有传递者)。

它的意义也很明显:将数据250送到R7中去,因此执行完这条指令后,
R7单元中的值就应当是250。

在250前面有个#号,这又是什么意思呢?这个#就是用来说明250就是一个被传递的东西本身,而不是传递者。

那么MOV R6,#250是什么意思,应当不用分析了吧。

2.DJNZ:这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个
是D2,R6我们当然已知是什么了,查一下D2是什么。

D2在本行的前面,我们已学过,这称之为标号。

标号的用途是什么呢?就是给本行起一个名字。

DJNZ
指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转移,转到什么地方去呢?可能大家已猜到了,转到第二个参数所指定的地方去(请大家用自已的话讲一下这
条语句是怎样执行的)。

本条指令的最终执行结果就是,在原地转圈250次。

3.执行完了DJNZ R6,D2之后(也就是R6的值等于0之后),就会去执行下面一行,也
就是DJNZ R7,D1,请大家自行分析一下这句话执行的结果。

(转去执行MOV R6,#250,同时R7中的值减1),最终DJNZ R6,D2这句话将被执行250*250=62500次,执行这么多次同一条指令干吗?就是为了延时。

4.一个问题:如果在R6中放入0,会有什么样的结果。

二、时序分析:
前面我们介绍了延时程序,但这还不完善,因为,我们只知道DJNZ R6,D2这句话会被执行62500次,但是执行这么多次需要多长时间呢?是否满足我们的要求呢?我们还不知道,所以下面要来解决这个问题。

1.时序的由来
我们已经知道单片机执行指令的过程就是顺序从ROM(程序存储器)中取出指令一条一条的顺序执行,然后进行一系列的微操作控制,来完成各种指定的动作。

它在协调内部的各种动作时必须要有一定的顺序,换句话说,就是这一系列的微操作控制信号在时间上要有一个严格的先后次序,这种次序就是单片机的时序。

这就好比学校上课时的电铃,为了保证课堂秩序,学校就必须在铃声的统一协调下安排各个课程和活动。

那么单片机的时序如何规定呢?。

2.时序的周期
计算机访问一次存储器的时间,称之为一个机器周期。

这是一个时间基准,就像我们人用“秒”作为我们的时间基准一样,为什么不干脆用“秒”,多好,很习惯,学下去我们就会知道用“秒”反而不习惯。

一个机器周期包括12个振荡周期,什么是振荡周期?一个振荡周期是多少时间?振荡周期就是振荡源的周期,也就是我们使用的晶振的时间周期,一个12M晶振,它的振荡周期是1/12(微秒)。

那么使用12M晶振的单片机,它的一个机器周期就应该等于12×(1/12)也就是1微秒。

(请计算一个工作于6M晶振的单片机,它的机器周期是多少)。

MCS-51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较慢,得要2个机器周期,还有两条指令要4个机器周期才行。

这也不难再解,不是吗?我让你扫地的执行要完成总得比要你完成擦黑板的指令时间要长。

为了恒量指令执行时间的长短,又引入一个新的概念:指令周期。

所谓指令周期就是指执行一条指令的时间。

INTEL对每一条指令都给出了它的指令周期数,这些数据,大部份不需要我们去记忆,但是有一些指令是需要记住的,如DJNZ指令是双周期指令。

下面让我们来计算刚才的延时。

首先必须要知道晶振的频率,我们设所用晶振为12M,则一个机器周期就是1微秒。

而DJNZ指令是双周期指令,所以执行一次要2个微秒。

一共执行62500次,正好125000微秒,也就是125毫秒。

这么大的数字也就是.125秒,怪不得LED1闪烁的那么快。

(思考:在上次的延时实验中,如何延长闪烁的时间?想想看,怎么做?)
练习:设计一个延时100毫秒的延时程序。

要点分析:1、一个单元中的数是否可以超过255。

2、如何分配两个数。

三、复位电路
任何单片机在工作之前都要有个复位的过程,复位是什么意思呢?它就象是我们上课之前打的预备铃。

预备铃一响,大家就自动地从操场、其它地方进入教室了,在这一段时间里,是没有老师干预的,对单片机来说,是程序还没有开始执行,是在做准备工作。

显然,准备工作不需要太长的时间,复位只需要5ms的时间就可以了。

如何进行复位呢?只要在单片机的RST引脚上加上高
电平,就可以了,按上面所说,时间不少于5ms。

为了达到这个要求,可以用很多种方法,这里提供一种供参考,见图1。

实际上,我们在上一次实验的图中已见到过了。

这种复位电路的工作原理是:通电时,电容两端有短暂的瞬间电流,电容相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。

四、单片机的时钟电路
大家已经知道,单片机是在一定的时序控制下工作的。

那么时序和时钟又有什么关系呢?时钟是时序的基础,单片机本身就如同一个复杂的同步时序电路,为了保证同步工作方式的实现,电路就要在唯一的时钟信号控制下按时序进行工作,那么单片机内的时钟是如何产生的呢?
1 内部时钟电路
在 MCS-51单片机的内部有一个高增益的反相放大器,其输入端为引脚 XTAL1 19 脚,输出端为XTAL2 18 脚,我们只要在外部接上两个电容和一个晶振就能构成一个稳定的自激振荡器。

它的内部电路的工作原理就不介绍了,这里主要讲一下电容和晶振的选择,看上面的图,晶振的大小与单片机的振荡频率有关,我们到串行接口时再详细讲解,电容的大小影响着振荡器振荡的稳定性和起振的快速性,通常选择 10-30P 的瓷片电容或校正电容,另外在设计电路时,晶振和电容应尽可能的靠近芯片,以减少 PCB 板的分布电容,保证振荡器工作的稳定性,提高系统的抗干扰能力
2 外部时钟电路
除了内部时钟方式外,单片机还可以采用引入外部时钟的振荡方式,什么时候需要采用外部时钟方式呢,当我们的系统由多片单片机组成时,为了保证各单片机之间时钟信号的同步,就应当引入唯一的公用的外部脉冲信号作为各单片机的振荡脉冲,此时应将 XTAL2 悬空不用,外部脉冲信号由 XTAL1引入,如上右图所示。

五、习题
1 什么是单片机的机器周期?什么是振荡周期?什么是指令周期?它们之
间的关系是怎么样的?
2 什么是单片机的时序?
3 单片机有几种振荡方式?
4 简述单片机内部时钟的产生过程。

相关文档
最新文档