首页 #MCS-51单片机的基础知识

#MCS-51单片机的基础知识

举报
开通vip

#MCS-51单片机的基础知识null第2章 MCS-51单片机的基础知识第2章 MCS-51单片机的基础知识null教学内容和要求 本章系统的介绍51单片机 的内部结构、引脚定义和引脚 特性、存储器、寄存器等内容。 注意:本章内容不必很深入的去学习,知道一些基本知识即可。null原因如下: 在起步阶段,不用过多的 了解单片机的内部结构、工作 原理的全部细节,这会阻碍学习 的进度。特别是在以高级语言为主的情况下。 如有需要,在以后的学习和开发过程中,完全可以参考其它讲解更为详细的资料。null1、MCS-51单片机的内部...

#MCS-51单片机的基础知识
null第2章 MCS-51单片机的基础知识第2章 MCS-51单片机的基础知识null教学 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 和要求 本章系统的介绍51单片机 的内部结构、引脚定义和引脚 特性、存储器、寄存器等内容。 注意:本章内容不必很深入的去学习,知道一些基本知识即可。null原因如下: 在起步阶段,不用过多的 了解单片机的内部结构、工作 原理的全部细节,这会阻碍学习 的进度。特别是在以高级语言为主的情况下。 如有需要,在以后的学习和开发过程中,完全可以参考其它讲解更为详细的资料。null1、MCS-51单片机的内部结构2、MCS-51单片机的引脚定义与特性3、MCS-51单片机存储器和寄存器6、定时/计数器7、MCS-51单片机的中断系统专题4、 MCS-51单片机的工作方式5、 MCS-51单片机的最小系统null1、MCS-51单片机的内部结构展示实物总线型非总线型null 目前很多厂商生产51单片机,从外观到内部资源不完全一样,但是其MCU结构一致,都采用了8051核。 一个基本的51单片机通常包括以下部件:中央处理器(CPU)、ROM、RAM、I/O口、定时器、串口、中断控制器、振荡电路等。 核心部件:中央处理器(CPU)、ROM、RAM、振荡电路; 外部功能部件:I/O口、定时器、串口、中断控制器等。null MCS—51系列单片机的内部结构框图如图所示 下面对上面的主要部件进行简单的说明。① ② ③ ④ ⑤ I/O口 ⑥ ⑦ 中断控制器null① CPU 是单片机中最重要的部件,负责指令的读取、译码、执行等内部控制核算术逻辑运算。 其结构复杂,但采用高级语言编写程序时,不必对其作过多了解。 当然,如果采用汇编语言写程序就是另外一回事了。null② ROM 用户程序编译成最终的目标代码,通过烧写,被放在这里。 代码是能够被识别的命令的序列,一般不可更改。null③ RAM 程序执行的过程中--就是单片机工作的过程中,会有或多或少的新的数据生成,这些数据可以随时读取和更改,放在RAM中。 特殊功能寄存器(SFR)就位于此。null④ 振荡电路 单片机中有很多部件,振荡电路产成时钟信号,使得各个部件有条不紊的工作。 相关概念: 振荡周期、状态周期、机器周期、指令周期时钟周期:即振荡周期,由晶振决定。 状态周期:2个振荡周期; 机器周期:6个状态周期,12个振荡周期(时钟周期); 指令周期:一、二、三、四个机器周期; 例如振荡脉冲频率12MHz,则振荡周期1/12µs,机器周期1µs,如果振荡脉冲频率6MHz,则振荡周期1/6µs,机器周期2µs。null⑤ 输入输出口(I/O口) 它是单片机最普通、最常用的部件,用来获取外部的数字量,或者输出内部产生的数字量,从而驱动连接在相应口线上的部件产生相应的动作。null⑥ 定时/计数器 定时: 如果有些功能,需要间隔某一定时间运行一次,就需要用到定时器的定时功能。 计数: 当定时的计数源是从外部输入的时候,它就被称为计数器。null⑦ 中断控制器 相关概念:中断,中断请求,中断响应,中断优先级等等。null 上图为按功能划分的MCS—51系列单片机内部结构简化框图。分析上图, 并按其功能部件划分可以看出, MCS—51系列单片机是由8大部分组成的。null这8大部分是: · 一个8位中央处理机CPU。 · 128个字节(MCS—52子系列为256字节)的片内数据存储器RAM。 ·4 KB(MCS—52子系列为8 KB)的片内程序只读存储器ROM或EPROM(8031和8032无)。 ·18个(MCS—52子系列为21个)特殊功能寄存器SFR。 ·4个8位并行输入输出I/O接口: P0口、 P1口、 P2口、 P3口(共32线), 用于并行输入或输出数据。 · 1个串行I/O接口。 ·2个(MCS—52子系列为3个)16位定时器/计数器。 · 1个具有5个(MCS—52子系列为6个或7个)中断源, 可编程为2个优先级的中断系统。 它可以接收外部中断申请, 定时器/计数器中断申请和串行口中断申请。 null图2―1 MCS—51系列单片机内部结构框图 null2、MCS-51单片机的引脚定义与特性1主电源引脚Vcc和Vss 2外接晶体引脚XTAL1和XTAL2 3控制信号或与其它电源复用引脚null1)主电源引脚Vcc和Vss 2)外接晶体引脚XTAL1和XTAL2 3)控制信号或与其它电源复用引脚null1) 主电源引脚Vcc和Vss VCC(40脚): 接+5 V电源正端; VSS(20脚): 接+5 V电源地端。null2)外接晶体引脚XTAL1和XTAL2 注意:可以接外部晶体振荡器或者外部时钟。如下图 XTAL1(19脚): 接外部石英晶体的一端。 在单片机内部, 它是一个反相放大器的输入端, 这个放大器构成了片内振荡器。 当采用外部时钟时, 对于HMOS单片机, 该引脚接地; 对于CHMOS单片机, 该引脚作为外部振荡信号的输入端。 XTAL2(18脚): 接外部晶体的另一端。 在单片机内部, 接至片内振荡器的反相放大器的输出端。 当采用外部时钟时, 对于HMOS单片机, 该引脚作为外部振荡信号的输入端; 对于CHMOS芯片, 该引脚悬空不接。null3)控制信号或与其它电源复用引脚 控制信号或与其它电源复用引脚有RST/VPD、 和 等4种形式。 (1) RST/VPD(9脚): RST即为RESET, VPD为备用电源, 所以该引脚为单片机的上电复位或掉电保护端。 (2) (30脚): 当访问外部存储器时, ALE(允许地址锁存信号)以每机器周期两次的信号输出, 用于锁存出现在P0口的低8位地址。 (3) (29脚): 片外程序存储器读选通信号输出端, 低电平有效。 (4) (31脚): 为访问外部程序存储器控制信号, 低电平有效。null 4) 输入/输出(I/O)引脚P0口、 P1口、 P2口及P3口 (1)P0口(39脚~32脚):P0.0~P0.7统称为P0口。 (2)P1口(1脚~8脚):P1.0~P1.7统称为P1口, 可作为准双向I/O接口使用。 (3)P2口(21脚~28脚):P2.0~P2.7统称为P2口, 一般可作为准双向I/O接口。 (4)P3口(10脚~17脚):P3.0~P3.7统称为P3口。 返回定时/计数器下页单片机引脚图返回方式1单片机引脚图单片机引脚图null1)存储器的总体结构 2)MCS-51的寄存器3、 MCS-51单片机存储器和寄存器注意下面两点: 存储器用来存放程序或数据,所以非常重要; 对单片机很多部件的操作,实际是对相应的存储器的操作。 例如P1口和地址为90H的存储单元对应。 null1)存储器的总体结构 8051的存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,有各自的寻址系统、控制信号和功能。 MCS—51单片机存储器的分类: 从物理结构上可分为:片内、片外程序存储器(8031和8032没有片内程序存储器)与片内、片外数据存储器; 从寻址空间分布可分为: 程序存储器、 内部数据存储器和外部数据存储器3大部分; 从功能上可分为: 程序存储器、 内部数据存储器、 特殊功能寄存器、 位地址空间和外部数据存储器5大部分。 如下页图null片内外统一寻址的64KB程序存储器空间,地址范围为0000H~FFFFH。 64KB的片外数据存储器空间,地址范围0000H~FFFFH。 256B的片内数据存储器空间,地址范围为00H~FFH。 或者用下面的图来 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示:nullMCS—51单片机存储器空间结构图 (a) 程序存储器; (b) 内部数据存储器; (c) 外部数据存储器 MCS—51系列单片机还有128个字节的RAM区作为特殊功能寄存器(SFR)区。 片内、片外程序存储器和数据存储器各自总容量为64 KB。null附1:程序存储器 程序存储器ROM用来存放程序、常数或表格等。 在8051中,其存储空间分布如下: 片内有4KB的ROM存储单元,地址为0000H~0FFFH。 片外最多可扩至64KB的ROM,地址1000H~FFFFH。 片内外ROM统一编址。 当EA引脚接高电平时,CPU将首先 访问片内ROM,当指令地址超过 0FFFH时,自动转向片外ROM取指令。 当EA引脚接低电平时,CPU只访问片 外ROM。片外ROM的地址从0000H开 始编址。对于8031,由于其片内无ROM, 所以使用时必须使EA接低电平,以便能 够从片外扩展的EPROM中取指令。51单片机常见的中断源和中断向量表附2:程序运行的入口地址 实际应用时, 程序存储器的容量由用户根据需要扩展, 而程序地址空间原则上也可由用户任意安排。 但程序最初运行的入口地址, MCS—51单片机是固定的, 用户不能更改。 程序存储器中有复位和中断源共7个固定的入口地址。 如下, MCS—51单片机复位、 中断入口地址 51单片机常见的中断源和中断向量表null附3:数据存储器 数据存储器RAM主要用来存放运算的中间结果和数据等。 在8051中,其存储空间分布如下: 片外RAM最多可扩至64KB存储单元,地址范围为0000H~FFFFH。 片内RAM为256B存储单元,地址范围为00H~FFH。 片内RAM地址空间共有256B,又分为两个部分: 低128B(00H~7FH)为真正的RAM区,如下图所示 。 高128B(80H~FFH)为特殊功能寄存器(SFR)区,如下表所示 。 下页依次有详细图表① 片 内 RAM 地 址 空 间 ① 片 内 RAM 地 址 空 间 工作寄存器区位寻址区用户RAM区 (堆栈、数据缓冲区)片内RAM,工作组寄存器返回定义中断服务函数低128位null2)MCS-51的寄存器 MCS-51内部有256B存储单元,为00H~FFH。 其寄存器分成两类:一是通用寄存器(低128),一是特殊功能寄存器(SFR)(高128)。 在使用高级语言编程时,通用寄存器一般作为函数内部的局部变量和函数调用时传递参数只用,由编译器统一接管,我们不必关心。 但是SFR往往对应了硬件操作,需要工程开发人员按照需求进行控制。值得注意。 null附:特殊功能寄存器SFR块 又称为专用寄存器。 它专用于控制、 管理单片机内算术逻辑部件、 并行I/O口锁存器、 串行口数据缓冲器、 定时器/计数器、 中断系统等功能模块的工作, SFR的地址空间为80H~FFH。 位地址分布如下页图SFR 中 位 地 址 分 布 表 SFR 中 位 地 址 分 布 表 数据存储器数据读写应用实例 【程序1】 工作寄存器的读写 数据存储器数据读写应用实例 【程序1】 工作寄存器的读写【程序2】位寻址区的读写 【程序2】位寻址区的读写 【程序3】一般RAM区和特殊功能寄存器区的读和写 【程序3】一般RAM区和特殊功能寄存器区的读和写 null4、 MCS-51单片机的工作方式 MCS-51单片机的工作方式有复位、程序执行、单步执行、掉电保护、低功耗等方式。 下面我们先看看复位方式、程序执行方式。null1)复位方式 MCS-51系列单片机的复位引脚RST上只要出现10 ms以上的高电平,单片机就实现复位。 单片机在RST引脚高电平的控制下,特殊功能寄存器和程序计数器PC复位后的状态如下表所示。A) 复位状态nullMCS-51单片机复位状态表null (PSW)=00H,由于RS1(PSW.4)=0,RS0(PSW.3)=0,复位后单片机选择工作寄存器0组。 (SP)=07H,复位后堆栈在片内RAM的08H单元处建立。 TH1、TL1、TH0、TL0的内容为00H,定时器/计数器的初值为0。 (TMOD)=00H,复位后定时器/计数器T0、T1为定时器方式0,非门控方式。 (TCON)=00H,复位后定时器/计数器T0、T1停止工作,外部中断0、1为电平触发方式。null (T2CON)=00H,复位后定时器/计数器T2停止工作。 (SCON)=00H,复位后串行口工作在移位寄存器方式,且禁止串行口接收。 (IE)=00H,复位后屏蔽所有中断。 (IP)=00H,复位后所有中断源都设置为低优先级。 P0~P3口锁存器都是全1状态,说明复位后4个并行接口设置为输入口。nullB) 复位电路 MCS-51单片机系统常常有上电复位和按钮复位两种方法。 所谓上电复位,是指计算机加电瞬间,要在RST引脚上出现大于10 ms的正脉冲,使单片机进入复位状态。 按钮复位是指用户按下"复位"按钮,使单片机进入复位状态。 复位是靠外部电路实现的。下图是上电复位及按钮复位的一种实用电路。null 图 MCS—51单片机复位参考电路 (a) 上电复位电路; (b) 上电/外部复位电路 22UF1K22UF1K200欧null2)程序执行方式 程序执行方式是单片机的基本工作方式。 由于复位后PC=0000H,因此程序总是从0000H开始,为此要在以0000H开始的存储单元中存放一条无条件转移指令,以便跳转到实际程序的入口去执行。表 MCS—51单片机复位、 中断入口地址 null5、 MCS-51单片机的最小系统 将MCS-51单片机以及与之相匹配的时钟电路、复位电路组合在一起,就形成了MCS-51单片机的最小系统。如下图null简 介 6、定时/计数器简 介 定时/计数器是单片机系统的一个重要部件,可用来实现定时控制、频率测量、脉宽测量、信号发生以及用作串行通信中的波特率发生器。 MCS-51中采用加法计数器,先设置初值,每来一个计数脉冲就加1,直到计数器溢出。 定时/计数器有定时、计数两大功能,但归根到底是一个计数器。对外部脉冲计数时就为计数器,对片内机器周期脉冲计数就是定时器。每过一个机器周期,计数器加1教学目的 教学目的 了解定时器/计数器的结构与工作原理。 掌握定时器/计数器的四种工作方式的特点及应用。 用其 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 一个可产生一定频率方波的信号源。 设计一个PWM信号以控制直流电机转速。 设计一个用于流水生产线上的产品自动计数器。 设计一个测量电平脉冲宽度的程序。 设计一个电子音乐程序。null学习重点和难点 定时器/计数器的初始化。 定时器/计数器与中断的综合应用。 null主 要 内 容 1)定时/计数器的内部结构和工作原理2)定时/计数器的控制寄存器3)定时/计数器的工作方式 4)定时/计数器的初值的计算 5)定时/计数器的初值化步骤 null1)定时/计数器的内部结构和工作原理定时器1定时器0INT0INT1定时器的工作方式定时器的启动与停止,并保存T0、T1的溢出和中断标志 15 14 后面具体分析null8051单片机内部设有两个16位可编程定时器/计数器,简称为定时器0(T0)和定时器1(T1)。 16位的定时器/计数器分别由两个8位寄存器组成,即:T0由TH0和TL0构成,T1由TH1和TL1构成。每个寄存器均可单独访问,这些寄存器是用于存放定时初值或计数初值的。 有一个8位的定时器方式寄存器TMOD和一个8位的定时器控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的,定时器/计数器的工作方式、定时时间和启停控制通过由指令来确定这些寄存器的状态来实现。 TMOD用于设定定时器的工作方式,TCON用于控制定时器的启动与停止,并保存T0、T1的溢出和中断标志。null16位的定时器/计数器实质上是一个加l计数器,可实现定时和计数两种功能,其功能由软件控制和切换。定时器属硬件定时和计数,是单片机中效率高而且工作灵活的部件。 在定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时器/计数器。将控制字写入定时器/计数器的过程叫定时器/计数器初始化。 在初始化程序中,要做以下三件事 1)工作方式控制字写入定时器方式寄存器(TMOD) 2)工作状态控制字(或相关位)写入定时器控制寄存器(TCON) 3)赋定时/计数初值给TH0(TH1)和TL0(TL1)。 nullA、定时功能的实现原理: 计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出。 定时器的定时时间与系统的时钟频率有关。因一个机器周期等于12个时钟周期,所以计数频率应为系统时钟频率的十二分之一。 例如:如果晶振频率为12MHz,则机器周期为1s。通过改变定时器的定时初值,并适当选择定时器的长度(8位、13位或16位),可以调整定时时间。 nullB、计数功能的实现原理: 通过引脚T0(P3.4)和T1(P3.5)对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平,若一个机器周期S5P2期间采样值为1,下一个机器周期S5P2期间采样值为0,则计数器加1,再下一个机器周期S3P1期间,新的计数值装入计数器。 因检测一个由1至0的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的二十四分之一。 例如:如果晶振频率为12MHz,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。 如下页图所示 null时钟周期为单片机提供定时信号的振荡源的周期或外部输入时钟信号的周期,也称为振荡周期 。 状态周期(或状态S)是振荡周期的两倍,它分为P1节拍和P2节拍。 一条指令的执行过程分作几个基本操作,完成一个基本操作所需的时间称作机器周期。 执行一条指令所需的时间称为指令周期。 null2)定时/计数器的控制寄存器a、定时器方式寄存器TMODb、定时器控制寄存器TCON启动启动溢出标志溢出标志外部中断外部中断1请求标志位外部中断1出发方式选择位nulla、定时器方式寄存器TMOD TMOD的作用是设置T0、T1的工作方式。 其格式: 各位的功能说明: (1) GATE:门控位。 GATE=0:软件启动定时器,即用指令使TCON中的TR1(TR0)置1即可启动定时器1(定时器0)。 GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR1(TR0)置1时,只有外部中断INT0(INT1)引脚输入高电平时才能启动定时器1(定时器0)。这个功能可用于测量INTi引线出现的正脉冲的宽度 null(2) C/T:功能选择位。 C/T=0时,以定时器方式工作。 C/T=1时,以计数器方式工作。 (3) M1、M0:方式选择位。 其定义如下 nullb、定时器控制寄存器TCON控制定时器的启动与停止,并保存T0、T1的溢出和中断标志。TCON的格式: 各位的功能说明: (1) TF1(TCON.7):定时器1溢出标志位。当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断。对该标志位有两种处理方法,一种是以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。 null各位的功能说明: (2) TR1(TCON.6):定时器1启停控制位。 GATE=0时,用软件使TR1置1即启动定时器1,若用软件使TR1清0则停止定时器1。 GATE=1时,用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1。 (3) TF0(TCON.5):定时器0溢出标志位。其功能同TF1。 (4) TR0(TCON.4):定时器0启停控制位。其功能同TR1。 (5) IE1(TCON.3):外部中断1请求标志位。 (6) IT1(TCON.2):外部中断1触发方式选择位。 (7) IE0(TCON.1):外部中断0请求标志位。 (8) IT0(TCON.0):外部中断0触发方式选择位。 null3)定时/计数器的工作方式及应用重点(先熟悉方式1即可)A、方式1A、方式1在方式1下,以定时器0为例,定时器/计数器是一个由TH0中的8位和TL0中的8位组成的16位加1计数器。 方式1与方式0基本相似,最大的区别是方式1的加1计数器位数是16位。 定时器/计数器0方式1逻辑结构 TR0置1即启动定时器1GATE=0时软启定时器0溢出标志位B、方式0B、方式0在方式0下,以定时器0为例,定时器/计数器是一个由TH0中的8位和TL0中的低5位组成的13位加1计数器(TL0中的高3位不用);若TL0中的第5位有进位,直接进到TH0中的最低位。 定时器/计数器0方式0逻辑结构如下图所示。TR0置1即启动定时器1GATE=0时软启定时器0溢出标志位null当门控位GATE=0时,或门输出始终为1,与门被打开,与门的输出电平始终与TR0的电平一致,实现由TR0控制定时器/计数器的启动和停止。 若软件使TR0置1,接通控制开关,启动定时器0,13位加1计数器在定时初值或计数初值的基础上进行加1计数. 溢出时,13位加1计数器为0,TF0由硬件自动置1,并申请中断,同时13位加1计数器继续从0开始计数。若软件使TR0清0,关断控制开关,停止定时器0,加1计数器停止计数。 C、方式2C、方式2在方式2下,以定时器0为例,定时器/计数器是一个能自动装入初值的8位加1计数器,TH0中的8位用于存放定时初值或计数初值,TL0中的8位用于加1计数器。 方式2与方式0基本相似,最大的区别除方式2的加1计数器位数是8位外,加1计数器溢出后,硬件使TF0自动置1,同时自动将TH0中存放的定时初值或计数初值再装入TL0,继续计数。定时器/计数器0方式2逻辑结构 TR0置1即启动定时器1GATE=0时软启定时器0溢出标志位D、方式3D、方式3在方式3下,定时器0分为两个独立的8位加1计数器TH0和TL0。其中TL0既可用于定时,也能用于计数;TH0只能用于定时。定时器/计数器0方式3逻辑结构如下图所示。 在方式3下,加1计数器TL0占用了T0除TH0外的全部资源,原T0的控制位和信号引脚的控制功能与方式0、方式1相同;与方式2相比,只是不能自动将定时初值或计数初值再装入TL0,而必须用程序来完成。加1计数器TH0只能用于简单的内部定时功能,它占用了原T1的控制位TR1和TF1,同时占用了T1中断源。 null定时器/计数器0方式3逻辑结构 nullT0方式3下T1的结构特点 T1不能工作在方式3下,因为在T0工作在方式3下时, T1的控制位TR1、TF1和中断源被T0占用。T1可工作在方式0、方式1、方式2下,但其输出直接送入串行口。设置好T1的工作方式,T1就自动开始计数;若要停止计数,可将T1设为方式3。 T1通常用作串行口波特率发生器,以方式2工作会使程序简单一些。 定时 / 计数器 小结定时 / 计数器 小结8051单片机共有两个可编程的定时/计数器:定时器0和定时器1,都是16位加1计数器。其工作方式、定时时间、计数值和启停控制由程序来确定。 定时/计数器有四种工作方式,工作方式由寄存器TMOD中的M1、M0位确定。方式0是13位计数器,方式1是16位计数器,方式2是自动重装初值8位计数器;方式3时,定时器0被分为两个独立的8位计数器,定时器1是无中断的计数器,此时定时器1一般用作串行口波特率发生器。定时 / 计数器 小结定时 / 计数器 小结定时器/计数器有定时和计数两种功能,由寄存器TMOD中的C/T位确定。当其工作在定时功能时,通过对单片机内部的时钟脉冲计数来实现可编程定时;当其工作在计数功能时,通过对单片机外部的脉冲计数来实现可编程计数。 null当定时器/计数器的加1计数器计满溢出时, 溢出标志位TF1(TF0)由硬件自动置1,对该标志位有两种处理方法。一种是以中断方式工作,即TF1(TF0)置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1(TF0)清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1(TF0)置1后必须用软件使TF1清0。 定时/计数器的初始化实际上就是对定时器/计数器进行编程,以实现所要求的控制功能。这通过对TMOD、TH0(TH1)、TL0(TL1)、IE、TCON专用寄存器中相关位的设置来实现,其中IE、TCON专用寄存器可进行位寻址。 null4)定时/计数器的初值的计算 不同工作方式的定时或计数初值的计算方法如下表 表中T 表示定时时间,T机 表示机器周期。 设晶振频率为12MHz,求各方式下定时最大值? 此时机器周期1µs,方式0为8×103µs, 方式1为64×103µs,方式2为256µs。null定时器/计数器是一种可编程部件,在使用定时器/计数器前,一般 都要对其进行初始化,以确定其以特定的功能工作。初始化如下: (1) 确定定时器/计数器的工作方式,确定方式控制字,写入TMOD (2) 预置定时初值或计数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。 (3) 根据需要开放定时器/计数器的中断,给IE中的相关位赋值。 (4) 启动定时器/计数器,给TCON中的TR1或TR0置1。 IE AFH ACH ABH AAH A9H A8H (A8H)5)定时/计数器的初值化步骤 null例 参考基础实例 8 null7、MCS-51单片机的中断系统什么是中断?中断有什么实际意义? 举例说明: 情况一 情况二电话响了写作业有人敲门电话响了写作业多个中断源就有优先级的问题是否响应中断的问题null 中断的描述性定义 中断是指计算机再执行某一程序的过程中,由于计算机系统内部、外部某种原因,而必须中止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程。 中断响应过程如下:中断服务程序保护现场中断返回正在看书被打断,用书签作个标记教 学 目 的 教 学 目 的 了解中断的基本概念和功能。 掌握中断系统的结构和控制方式。 掌握中断系统的中断处理过程。 用中断系统设计一个手控流水灯控制器。 用中断系统设计一个交通信号灯控制器。 null学习 重点 和 难点 中断响应的条件和中断优先级的应用。 外部中断源的扩展方法。中断系统的主要内容中断 系统 的 主要 内容 7.1 中断的概念7.2 中断的功能7.3 中断系统的结构7.4 中断系统的控制7.5 中断处理过程本章小结中断系统的主要内容 C51中断服务函数与寄存器组的定义null7.1 中断的概念 单片机CPU在执行程序时,由单片机内部或外部原因引起的随机事件要求CPU暂时停止正在执行的程序,转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,此过程称为中断。 单片机处理中断的4个步骤:中断请求、中断响应、中断处理和中断返回。 向CPU发出中断请求的来源,或引起中断的原因称为中断源。中断源要求服务的请求称为中断请求。 中断源可分为两大类:一类来自单片机内部,称之为内部中断源;另一类来自单片机外部,称之为外部中断源。null7.2 中断的功能中断系统是指能实现中断功能的硬件和软件。 中断系统的功能一般包括以下几个方面: 进行中断优先级排队 实现中断嵌套 自动响应中断 实现中断返回 中断的特点: 可以提高CPU的工作效率 实现实时处理 处理故障下面具体的看看null(1) 进行中断优先级排队 通常,单片机中有多个中断源,设计人员能按轻重缓急给每个中断源的中断请求赋予一定的中断优先级。 当两个或两个以上的中断源同时请求中断时,CPU可通过中断优先级排队电路首先响应中断优先级高的中断请求,等到处理完优先级高的中断请求后,再来响应优先级低的中断请求。null(2) 实现中断嵌套 CPU在响应某一中断源中断请求而进行中断处理时,若有中断优先级更高的中断源发出中断请求,CPU会暂停正在执行的中断服务程序,转向执行中断优先级更高的中断源的中断服务程序,等处理完这个高优先级的中断请求后,再返回来继续执行被暂停的中断服务程序。这个过程称为中断嵌套。 null(3) 自动响应中断 中断源向CPU发出的中断请求是随机的。 通常,CPU总是在每条指令的最后状态对中断请求信号进行检测;当某一中断源发出中断请求时,CPU能根据相关条件(如中断优先级、是否允许中断)进行判断,决定是否响应这个中断请求。 若允许响应这个中断请求,CPU在执行完相关指令后,会自动完成断点地址压入堆栈、中断矢量地址送入程序计数器PC、撤除本次中断请求标志,转入执行相应中断服务程序。null(4) 实现中断返回 CPU响应某一中断源中断请求,转入执行相应中断服务程序,在执行中断服务程序最后的中断返回指令时,会自动弹出堆栈区中保存的断点地址,返回到中断前的原程序中。 中断系统结构7.3 中断系统的结构 8051单片机的中断系统主要由与中断有关的4个特殊功能寄存器和硬件查询电路等组成: 定时器控制寄存器TCON :主要用于保存中断信息 串行口控制寄存器SCON :用于保存中断信息。 中断允许寄存器IE :用于控制中断的开放和关闭 中断优先级寄存器IP:主要用于设定优先级别。 硬件查询电路:判定5个中断源的自然优先级别。 8051单片机的中断源有五个,可分为三类: 外部中断、定时中断、串行口中断 中断系统结构中断系统结构图中断系统结构图中断系统结构启动启动溢出标志溢出标志外部中断1请求标志位外部中断1触发方式选择位P3.2P3.3P3.4P3.5P3.1P3.0MCU置1null1. 外部中断类 外部中断是由外部原因(如打印机、键盘、控制开关、外部故障)引起的,可以通过两个固定引脚来输入到单片机内的信号,即外部中断0和外部中断1。 INT0:外部中断0中断请求信号输入端,P3.2的第二功能。 由定时器控制寄存器TCON中的IT0位决定中断请求信号是低电平有效还是下降沿有效。一旦输入信号有效,即向CPU申请中断,并且硬件自动使IE0置1。 INT1:外部中断1中断请求信号输入端,P3.3的第二功能。 由定时器控制寄存器TCON中的IT1位决定采用电平触发方式还是边沿触发方式。一旦输入信号有效,即向CPU申请中断,并且硬件自动使IE1置1。null2. 定时中断类 定时中断是由内部定时(或计数)溢出或外部定时(或计数)溢出引起的,即定时器0中断和定时器1中断。 当定时器对单片机内部定时脉冲进行计数而发生计数溢出时,即表明定时时间到,由硬件自动使TF0(TF1)置1,并申请中断。 当定时器对单片机外部计数脉冲进行计数而发生计数溢出时,即表明计数次数到,由硬件自动使TF0(TF1)置1,并申请中断。外部计数脉冲是通过两个固定引脚输入到单片机内的: T0外部计数输入端——P3.4的第二功能。 当定时器0工作于计数方式时,外部计数脉冲下降沿有效,定时器0进行加1计数。 T1外部计数输入端——P3.5的第二功能。 当定时器1工作于计数方式时,外部计数脉冲下降沿有效,定时器1进行加1计数。null3. 串行口中断类 串行口中断是为接收或发送串行数据而设置的。串行中断请求是在单片机芯片内部发生的。 RXD——串行口输入端,P3.0的第二功能。 当接收完一帧数据时,硬件自动使RI置1,并申请中断。 TXD——串行口输出端,P3.1的第二功能。 当发送完一帧数据时,硬件自动使TI置1,并申请中断。中断系统的控制7.4 中断系统的控制中断系统的控制 中断系统的控制就是对相关寄存器的控制:TCON、IE、IP、SCON。下面分别简要分析1)TCON 功能分析1) 定时器控制寄存器TCON 定时器控制寄存器TCON的作用是控制定时器的启动与停止,并保存T0、T1的溢出中断标志和外部中断的中断标志。TCON的格式: TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 各位的功能说明: (1) TF1(TCON.7):定时器1溢出标志位。定时器1被启动计数后,从初值开始进行加1计数,当计满溢出时,由硬件自动使TF1置1,并申请中断。该标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。 (2) TR1(TCON.6):定时器1启停控制位。 1)TCON 功能分析中断系统结构图null(3) IT1(TCON.2):外部中断1触发方式选择位。 当ITl=0时,外部中断1为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间对 INT1(P3.3)引脚采样,若采到低电平,则认为有中断申请,硬件自动使IEl置1;若为高电平,认为无中断申请或中断申请已撤除,硬件自动使IEl清0。 在电平触发方式中,CPU响应中断后硬件不能自动使IEl清0,也不能由软件使IEl清0,所以在中断返回前必须撤消INT1引脚上的低电平,否则将再次响应中断造成出错。 当ITl=1时,外部中断1为边沿触发方式。CPU在每个机器周期的S5P2期间采样 INT1 (P3.3)引脚。若在连续两个机器周期采样到先高电平后低电平,则认为有中断申请,硬件自动使IEl置1,此标志一直保持到CPU响应中断时,才由硬件自动清0。 在边沿触发方式下,为保证CPU在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续时间至少要保持12个时钟周期。中断系统结构图教材P24null(4) IE1(TCON.3):外部中断1请求标志位。IEl=1表示外部中断1向CPU申请中断。当CPU响应外部中断1的中断请求时,由硬件自动使IE1清0(边沿触发方式)。 (5) TF0(TCON.5):定时器0溢出标志位。其功能同TF1。 (6) TR0(TCON.4):定时器0启、停控制位。功能同TR1。 (7) IE0(TCON.1):外部中断0请求标志位。功能同IE1。 (8) IT0(TCON.0):外部中断0触发方式选择位。功能同IT1。 中断系统结构图2)串行口控制寄存器SCON分析2)串行口控制寄存器SCON 串行口控制寄存器SCON的低2位TI和RI保存串行口的接收中断和发送中断标志。SCON的格式: SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H (98H) (1) TI(SCON.1):串行发送中断请求标志。CPU将一个字节数据写入发送缓冲器SBUF后启动发送,每发送完一帧数据,硬件自动使TI置1。但CPU响应中断后,硬件并不能自动使TI清0,必须由软件使TI清0。 (2) RI(SCON.0):串行接收中断请求标志。在串行口允许接收时,每接收完一帧数据,硬件自动使RI置1。但CPU响应中断后,硬件并不能自动使RI清0,必须由软件使RI清0。 2)串行口控制寄存器SCON分析中断系统结构图3)IE分析3) 中断允许寄存器IE 中断允许寄存器IE的作用是控制CPU对中断的开放或屏蔽以及每个中断源是否允许中断。IE的格式: IE AFH ACH ABH AAH A9H A8H (A8H) (1) EA(IE.7):CPU中断总允许位。EA=1,CPU开放中断。每个中断源是被允许还是被禁止,分别由各中断源的中断允许位确定;EA=0,CPU屏蔽所有的中断要求,称为关中断。 (2) ES(IE.4):串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。 3)IE分析中断系统结构图null (3) ET1(IE.3):定时器1中断允许位。ET1=1,允许定时器1中断;ETl=0,禁止定时器1中断。 (4) EX1(IE.2):外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。 (5) ET0(IE.1):定时器0中断允许位。ET0=1,允许定时器0中断;ET0=0,禁止定时器0中断。 (6) EX0(IE.0):外部中断0中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。 4)中断优先级寄存器IP 4)中断优先级寄存器IP 中断优先级寄存器IP的作用是设定各中断源的优先级别。IP的格式: IP BCH BBH BAH B9H B8H (B8H) (1) PS(IP.4):串行口中断优先级控制位。PS=1,串行口为高优先级中断;PS=0,串行口为低优先级中断。 (2) PT1(IP.3):定时器1中断优先级控制位。PT1=1,定时器1为高优先级中断;PTl=0,其为低优先级中断。 (3) PX1(IP.2):外部中断1中断优先级控制位。PX1=1,外部中断1为高优先级中断;PXl=0,为低优先级4)中断优先级寄存器IP null (1) PS(IP.4):串行口中断优先级控制位。PS=1,串行口为高优先级中断;PS=0,串行口为低优先级中断。 (2) PT1(IP.3):定时器1中断优先级控制位。PT1=1,定时器1为高优先级中断;PTl=0,其为低优先级中断。 (3) PX1(IP.2):外部中断1中断优先级控制位。PX1=1,外部中断1为高优先级中断;PXl=0,为低优先级 (4) PT0(IP.1):定时器0中断优先级控制位。PT0=1,定时器T0为高优先级中断PT0=0,定时器0为低优先级中断。 (5) PX0(IP.0):外部中断0中断优先级控制位。PX0=1,外部中断0为高优先级中断;PX0=0,为低优先级中断。5.5 中断处理过程 7.5 中断处理过程1)中断响应 2)中断处理 3)中断返回 4)中断的应用实例5.5 中断处理过程 用高级语言进行编程时不必关注其细节null1)中断响应 null2)中断处理 null3)中断返回 中断响应的条件 中断响应的条件1. CPU的中断响应条件 CPU响应中断必须首先满足以下三个基本条件。 (1) 有中断源发出中断请求。 (2) 中断总允许位EA=1。 (3) 请求中断的中断源的中断允许位为1。 在满足以上条件的基础上,若有下列任何一种情况存在,中断响应都会受到阻断。 (1)CPU正在执行一个同级或高优先级的中断服务程序。 (2)正在执行的指令尚未执行完。 (3)正在执行中断返回指令 RETI或者对专用寄存器IE、IP进行读/写的指令。CPU在执行完上述指令之后,要再执行一条指令,才能响应中断请求。优先级的判定优先级的判定2. 中断优先级的判定 中断源的优先级别分为高级和低级,通过由软件设置中断优先级寄存器IP相关位来设定每个中断源的级别。 如果几个同一优先级别的中断源同时向CPU请求中断,CPU通过硬件查询电路首先响应自然优先级较高的中断源的中断请求。 中断可实现两级中断嵌套。高优先级中断源可中断正在执行的低优先级中断服务程序,除非执行了低优先级中断服务程序的CPU关中断指令。同级或低优先级的中断不能中断正在执行的中断服务程序。中断响应的过程中断响应的过程3. 中断响应过程 在满足中断响应条件时,CPU响应中断。首先,将相应的优先级状态触发器置1,以屏蔽同级别中断源的中断请求。其次,硬件自动生成长调用指令(LCALL),把断点地址压入堆栈保护(但不保护状态寄存器PSW及其他寄存器内容),然后将中断源对应的中断入口地址装入程序计数器PC中,使程序转向该中断入口地址,并执行中断服务程序。 8051单片机的中断入口地址(称为中断矢量)由单片机硬件电路决定。5.2.2 中断处理 5.2.2 中断处理 中断处理就是执行中断服务程序,从中断入口地址开始执行,直到返回指令(RETI)为止。此过程一般包括三部分内容,一是保护现场,二是处理中断源的请求,三是恢复现场。 通常,主程序和中断服务程序都会用到累加器A、状态寄存器PSW及其他一些寄存器。在执行中断服务程序时,CPU若用到上述寄存器,就会破坏原先存在这些寄存器中的内容,中断返回,将会造成主程序的混乱。因此,在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前,再恢复现场。5.2.2 中断处理 5.2.2 中断处理 在编写中断服务程序时要注意以下几个方面。 一般在这些中断入口地址区存放一条无条件转移指令,转向中断服务程序的起始地址。 若要求禁止更高优先级中断源的中断请求,应先用软件关闭CPU中断或屏蔽更高级中断源的中断,在中断返回前再开放被关闭或被屏蔽的中断。 在保护现场和恢复现场时,为了不使现场数据受到破坏而造成混乱,在保护现场之前要关中断,在保护现场之后再开中断;在恢复现场之前关中断,在恢复现场之后再开中断。5.2.3 中断返回 5.2.3 中断返回 1. 中断返回 中断返回是指中断服务完成后,CPU返回到原程序的断点(即原来断开的位置),继续执行原来的程序。 中断返回通过执行中断返回指令RETI来实现,该指令的功能是首先将相应的优先级状态触发器置0,以开放同级别中断源的中断请求;其次,从堆栈区把断点地址取出,送回到程序计数器PC中。因此,不能用RET指令代替RETI指令。 中断请求的撤除 中断请求的撤除 2. 中断请求的撤除 CPU响应某中断请求后,在中断返回前,应该撤消该中断请求,否则会引起另一次中断。不同中断源中断请求的撤除方法是不一样的。 (1) 定时器溢出中断请求的撤除 CPU在响应中断后,硬件会自动清除中断请求标志TF0或TFl。见后面P106中断系统结构图 (2) 串行口中断的撤除 在CPU响应中断后,硬件不能清除中断请求标志TI和RI,而要由软件来清除相应的标志。 null(3) 外部中断的撤除 外部中断为边沿触发方式时,CPU响应中断后,硬件会自动清除中断请求标志IE0或IEl。 外部中断为电平触发方式时,CPU响应中断后,硬件会自动清除中断请求标志IE0或IEl,但由于加到INT0或INT1引脚的外部中断请求信号并未撤除,中断请求标志IE0或IEl会再次被置1,所以在CPU响应中断后应立即撤除INT0或INT1引脚上的低电平。一般采用加一个D触发器和几条指令的方法来解决这个问题。 中断系统结构图中断系统结构图中断系统结构启动启动溢出标志溢出标志外部中断1请求标志位外部中断1触发方式选择位P3.2P3.3P3.4P3.5P3.1P3.0MCUnull由下图可知,外部中断请求信号直接加到D触发器的CP端,当外部中断请求的低电平脉冲信号出现在CP端时,D触发器的Q端置0,INT0或INT1引脚为低电平,发出中断请求。在中断服务程序中开始的三条指令可先在P1.0输出一个宽度为2个机器周期的负脉冲,使D触发器的Q端置1,然后由软件来清除中断请求标志IE0或IEl。 外部中断的撤除电路 中断的初始化步骤 中断的初始化步骤 中断系统的初始化步骤: (1) 开放CPU中断和有关中断源的中断允许,设置中断允许寄存器IE中相应的位。 (2) 根据需要确定各中断源的优先级别,设置中断优先级寄存器IP中相应的位。 (3) 根据需要确定外部中断的触发方式,设置定时器控制寄存器TCON中相应的位。 4)中断的应用实例4)中断的应用实例4)中断的应用实例 C51编译器支持在C语言源程序中直接编写51单片机的中断服务程序,比汇编语言编写中断服务程序方便许多。 为了能再C语言中直接编写中断服务程序,C51编译器对函数的定义有所扩展,增加了一个扩展关键字interrupt 。 关键字 interrupt 是函数定义时的一个选项,加上这个选项即可将函数定义成中断服务函数。 下面看看定义中断服务函数的一般形式null 定义中断服务函数的一般形式: 函数类型 函数名(形式参数)[interrupt n] [using n] 例:void intersvr0 (void) interrupt n using 1 其表示:定义外部中断0,使用第一组寄存器 注意:interrupt 后的n表示中断号,取值0~31,编译器从8n+3处产生中断向量。具体的中断号n和中断向量取决于不同的51系里单片机芯片。51常见的中断源和中断向量如下: 下页放大图null51常见的中断源和中断向量如下: 所以在MCS-51中,n的取值为0~3,分别与其4个中断对应。下面看一些例子null外部中断应用范例 利用外部中断(S1)来控制P00口的LED,当有外部中断时LED的状态取反。参考电路如下参考工程 INT0 001 参考程序 INT0 001null实验思路: 1)先用边沿触发方式IT0=1;看看实验结果; 2)再用电平触发方式。看下页的外部中断工作原理。null(3) IT1(TCON.2):外部中断1触发方式选择位。 当ITl=0时,外部中断1为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间对 INT1(P3.3)引脚采样,若采到低电平,则认为有中断申请,硬件自动使IEl置1;若为高电平,认为无中断申请或中断申请已撤除,硬件自动使IEl清0。 在电平触发方式中,CPU响应中断后硬件不能自动使IEl清0,也不能由软件使IEl清0,所以在中断返回前必须撤消INT1引脚上的低电平,否则将再次响应中断造成出错。 当ITl=1,外部中断1为边沿触发方式。CPU在每个机器周期的S5P2期间采样 INT1 (P3.3)。若在连续两个机器周期采样到先高电平后低电平,则认为有中断申请,硬件自动使IEl置1,此标志一直保持到CPU响应中断时,才由硬件自动清0。 在边沿触发方式下,为保证CPU在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续时间至少要保持12个时钟周期。null #include #include #define
本文档为【#MCS-51单片机的基础知识】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_215749
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-06-10
浏览量:26