Download presentation
Presentation is loading. Please wait.
Published byHendri Sugiarto Modified 5年之前
1
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置 2.4 定时器/计数器 2.5 中断系统
2
2.1 MCS-51单片机组成原理 不同型号MCS-51单片机CPU处理能力和指令系统完全 兼容,只是存储器和I/O接口的配置有所不同。
2. 片内ROM/EPROM、RAM 3. 片内并行 I/O接口 4. 片内16位定时器/计数器 5. 片内中断处理系统 6. 片内全双工串行I/O口
3
MCS-51单片机结构
4
2.2 MCS-51单片机引脚 1.I/O口线功能 2.控制线 4个8位并行 I/O 接口引脚P0.0~
P0.7 、P1.0~P1.7 、P2.0~P2.7 和 P3.0~P3.7 为多功能引脚,可自 动切换用 作数据总线、地址总线、控制总线 和或I/O 接口外部引脚 2.控制线 ALE: 地址锁存允许信号端 PSEN: 外部程序存储器读选通信 号端 EA/VPP:程序存储器选择信号端 和编程电源输入端
5
RST/VPD:复位信号端和后备电源输入端。 输入10ms以上高电平脉冲,单片机复位。 VPD使用后备电源,可实现掉电保护。
复位: RST/VPD:复位信号端和后备电源输入端。 输入10ms以上高电平脉冲,单片机复位。 VPD使用后备电源,可实现掉电保护。 复位电路: 1)上电复位 2)外部信号复位 单片机 RST K +5V 200Ω 1K 30μF 电源 工作电源:VCC、VSS、
6
时钟 时钟频率: 范围要求在1.2MHz~12MHz之间。 一般从外部振荡器输入时钟信号。 机器周期: 完成一个基本操作所需要的时间。
XTAL1 单片机 XTAL2 机器周期: 完成一个基本操作所需要的时间。 一个机器周期由12个时钟周期组成。 指令周期: 一条指令的执行时间。 以机器周期为单位:单周期、双周期和四周期指令。 思考题:设应用单片机晶振频率为12MHz, 问机器周期为多少?指令周期分别为多少?
7
2.3 MCS-51寄存器配置 0000H FFFFH ROM 内RAM 外RAM 00H FFH 寄存器区 位寻址区 数据缓冲区 SFR
E0H A
8
一、物理空间与地址 物理上4个存储器地址空间: 片内/片外程序存储器空间 片内/片外数据存储器空间 逻辑上3个存储器地址空间:
64KB 程序存储器 256B 片内数据存储器 64KB 片外数据存储器
9
二、程序和数据存储器逻辑空间 普林斯顿结构:程序和数据共用一个存储器逻辑空间,统一 编址。
哈佛结构: 程序与数据分为两个独立存储器逻辑空间, 分开编址。
10
三、片内RAM寄存器 MCS-51的寄存器在片内RAM都有映像地址。使用时,既 可用寄存器名,也可用对应单元地址。
11
1. 片内RAM 工作寄存器区: 字节地址:00H~1FH 位寻址区: 字节地址:20H~2FH 位地址为:00H~7FH 数据缓冲区/堆栈区: 字节地址:00H~7FH 一般使用30H~7FH
12
2. 特殊功能寄存器SFR 占用字节地址:80H~FFH 位寻址寄存器: 其字节地址可被8整除。 专用寄存器: A、B、PSW、DPTR、SP I/O接口寄存器: P0、P1、P2、P3、SBUF、 TMOD、TCON、SCON …
13
2.4 MCS-51定时器/计数器 2.4.1 MCS-51 计数/定时器的原理
实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。 计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不准确,这时称为计数器。 +1计数器 溢出 中断 脉冲 控制 开关 8031 有2个可独立控制的16位定时器/计数器:T0、T1。
14
定时器控制、状态寄存器 1)TMOD定时器方式寄存器(89H) T1 T0 1)功能选择位C/T: =0,定时功能,计数内部机器周期脉冲;
2)方式选择位M1、M0: 3)门控方式选择位GATE 计数器启动方式的选择 确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; B
15
2.4.2 定时器工作方式 由方式选择位M1、M0设定 一、 方式0 13位定时/计数器。 THx 8位和TLx低5位组成13位加1
定时器工作方式 由方式选择位M1、M0设定 一、 方式0 13位定时/计数器。 THx 8位和TLx低5位组成13位加1 计数器,此种方式与MCS-48系列兼容,如果不是为了兼容 的目的,一般不用方式0. 方式0的全部功能,方式1都可以代替。
16
二、 方式1 16位定时/计数器。 THx8位和TLx8位组成16位加1计数器
二、 方式1 16位定时/计数器。 THx8位和TLx8位组成16位加1计数器 最大计数脉冲个数:1~65536(216),最长定时时间(晶振12MHz T=1s):1s ~ 65536×T= 65.54ms 启动计数方式: 非门控方式:当GATE=0, 控制权由 TRx 决定 TRx=1 计数开始 TRx =0 计数停止 门控方式:当GATE=1、TRx=1 控制权由 INTx 决定 INTx=1 计数开始 INTx =0 计数停止
17
三、 方式2 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s
自动恢复初值8位定时/计数器。TLx为8位加1计数器, THx为8位初值暂存器。
18
四、方式3 T0分成2个8位定时器:TL0定时/计数器和TH0定时器 TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制
位:TR1。T1不能使用方式3工作
19
2.4.3 计算时间常数X(计算初值) 计数功能:X= 2n -计数值 n:8/13/16 定时功能:X= 2n - t/T
t:定时时间(s) T:机器周期 =12/晶振频率 如:晶振为12MHz时,T=12/12 MHz=12÷(12×10-6) (秒)=1×10-6=1us 一、 MCS-51定时器的应用 定时器初始化编程:使用定时器工作之前,先写入控 制寄存器,确定好定时器工作方式。 初始化编程格式: MOV TMOD,# 方式字 ;选择方式 MOV THx,#XH ;装入Tx时间常数 MOV TLx,#XL SETB EA ;开Tx中断 SETB ETx SETB TRx ;启动Tx定时器。
20
例:由P1.0输出方波信号,周期为2ms,设fosc=12MHz。
解:每隔1ms改变一次P1.0的输出状态,即形成方波,用T0非门控方式1定时。 计算时间常数:X = t/T = 216 –(/1000)/10-6 = = = FC18H ORG 0000H AJMP MAIN ORG 000BH ;T0中断硬件入口地址 AJMP PT0INT ;跳到中断服务程序 ORG 0030H MAIN: MOV TMOD,#01H ;中断方式 MOV TL0,#18H ;计数初值 MOV TH0,#0FCH SETB EA ;开放总中断 SETB ET ;开放T0中断 SETB TR ;启动定时器 HERE: SJMP HERE ;等待中断,相当于执行其它任务 PT0INT: MOV TL0,#18H ;中断服务程序;置初值 CPL P ;取反,产生方波 RETI ;中断返回
21
例 P1.7驱动LED亮1秒灭1秒地闪烁,设时钟频率为12MHz。 长定时方法:增加一个软件计数器(如R7), 记录中断次数,计满n个中断为1秒。
ORG 0000H AJMP MAIN ORG 001BH AJMP PT1INT ORG 0030H START:MOV R7,#00H MOV TMOD,#10H MOV TL1, #0F0H MOV TH1, #0D8H SETB EA SETB ET1 SETB TR1 HERE: SJMP HERE PT1INT: MOV TL1,#0F0H MOV TH1,#0D8H INC R7 CJNE R7,#10, PEND MOV R7, #00H CPL P1.7 PEND: RETI
22
例 定时器外部引脚T0(T1)用作外部中断信号输入端。外部负脉冲引起中断请求,选计数方式,时间常数为FFH。 例:门控方式测量正脉冲宽度 解:INT1引脚输入被检测信号,记录在正脉冲的时间内包含机器脉冲个数。 设脉宽小于65.5ms 等待查询INT0,正脉冲过后,读出TH1TL1。 START: MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00H WAIT1: JB P3.3,WAIT1 SETB TR1 WAIT2 :JNB P3.3,WAIT2 WAIT3 : JB P3.3,WAIT3 CLR TR1 MOV R2,TL1 MOV R3,TH1 … TR1=1 T1启动 TR1= T1停止 INT1
23
2.5 中断系统 2.5.1 中断概念 一、中断系统——重要指标 日常生活中的中断与计算机中断的比较: 某人看书 执行主程序 日常事务
2.5 中断系统 中断概念 日常事务程序 中断服务程序 一、中断系统——重要指标 日常生活中的中断与计算机中断的比较: 某人看书 执行主程序 日常事务 电话铃响 中断信号如INT=0 中断请求 暂停看书 暂停执行主程序 中断响应 书中作记号 当前PC入栈 保护断点 电话谈话 执行中断程序 中断服务 继续看书 返回主程序 中断返回
24
二、中断的定义,与子程序的区别 所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件,处理完毕后,CPU返回原程序的过程。 中断与子程序的最主要区别: 子程序是预先安排好的; 中断是随机发生的。
25
三、MCS-51中断系统内部结构
26
2.5.2 中断系统控制 一、中断控制寄存器 1.中断标志位: TF1、TF0、IE1、IE0、RI 、TI
2.5.2 中断系统控制 一、中断控制寄存器 1.中断标志位: TF1、TF0、IE1、IE0、RI 、TI 登记各中断源请求信号:=1,有中断请求;= 0,无中断请求。 CPU响应中断后,该中断标志自动清零。TI,RI标志必须软件清零。 2.外部中断触发方式选择位:IT0、IT1 =1:负边沿触发中断请求;= 0:低电平触发中断请求。
27
二、 中断允许寄存器 中断允许控制位:EA、ES、ET1、EX1、ET0、EX0 =1开中断;= 0关中断。
例:允许CPU响应INT0的中断请求 SETB EX0 SETB EA
28
三、 中断优先寄存器 中断优先级控制位:PS、PT1、PX1、PT0、PX0 2级优先级:=1为高优先级,= 0为低优先级。
同一优先级别按内部查询顺序排列优先级: 高 INT0、T0、INT1、T1、SIO 低。
29
2.5.3 中断响应和中断返回 一、中断响应周期时序 每个机器周期采样中断标志位,若有中断请求,将在下一 二、各中断源中断服务程序的入口地址
个机器周期按优先级顺序进行中断查询。 二、各中断源中断服务程序的入口地址 三、中断响应阻断 1 . 当CPU未执行完一条指令。 2.当有同级或高级中断服务。 3.执行RETI指令或访问IE、IP 的指令后,不能立即响应中断。 四、中断返回 中断返回指令: RETI= RET指令 + 通知CPU中断服务已 结束。 中断响应时间: 正常中断响应时间至少为3~8个机器周期,如果有同级 或高级中断服务,将延长中断响应时间。
30
2.5.4 中断处理过程(基本理解的要求) 一、中断响应条件 1.有中断请求信号 2. 系统处于开中断状态 二、中断响应过程
中断处理过程(基本理解的要求) 一、中断响应条件 1.有中断请求信号 2. 系统处于开中断状态 二、中断响应过程 1.保护断点:将断点地址压入堆栈保存,即当前PC值入 栈。 2.寻找中断源:中断服务程序硬件入口®PC,转入中断 服务。 3.中断处理:执行中断源所要求的程序处理段。 4.中断返回:执行RETI指令,栈顶内容®PC,程序跳转 回断点处。
31
2.5.5 多中断源系统 当外部中断源多于中断输入引脚时,可采取以下措施: 1.用定时器计数输入信号端T0、T1作外部中断入口引脚
多中断源系统 当外部中断源多于中断输入引脚时,可采取以下措施: 1.用定时器计数输入信号端T0、T1作外部中断入口引脚 2.用串行口接收端RXD作外部中断入口引脚 3.用一个中断入口接受多个外部中断源,并加入中断查询电路。
32
一、跳变触发:每次跳变引起一次中断请求 2.5.6 处理外部中断举例 ORG 0000H
处理外部中断举例 要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。 解:INT0输入按键信号,P1.0输出改变LED状态。 一、跳变触发:每次跳变引起一次中断请求 ORG 0000H AJMP MAIN ORG 0003H ;中断入口 AJMP PINT0 ORG 0100H ;主程序 MAIN:SETB EA ;开总允许开关 SETB EX0 ;开INT0中断 SETB IT0 ;负跳变触发中断 Here:SJMP Here ;相当于执行其 它任务 ORG 0200H ;中断服务程序 PINT0:CPL P1.0 ;改变LED RETI ;返回主程序 单片机 INT0 P1.0 1 +5V
33
二、电平触发:避免一次按键引起多次中断响应。
1.软件等待按键释放。 2.硬件清除中断信号。 ORG H; AJMP MAIN ORG H ;中断入口 AJMP PINT0 ORG H ;主程序 MAIN:SETB EA ;开总允许开关 SETB EX ;开INT0中断 CLR IT0 ;低电平触发中断 Here:SJMP Here ;相当于执行其它 任务 ORG H;中断服务程序 PINT0:CPL P1.0 ;改变LED WAIT:JNB P3.2,WAIT;等按键释放 RETI ;返回主程序 单片机 INT0 P1.0 1 +5V
Similar presentations