单片机技术音乐门铃

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/8/5
2020/8/5
日常中断的例子
你正在专心看书,突 然电话铃响,于是你记下 正在看的书的页数,去接 电话,接完电话后再回来 接着看书。
2020/8/5
计算机中的中断概念
2020/8/5
▪中断是指由于某种随机事件的发生,
计算机暂停现行程序的运行,转去 执行另一程序,以处理发生的事件, 处理完毕后又自动返回原来的程序 继续运行。
▪ 同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形 成,无法改变)。
2020/8/5
MCS-51的中断系统结构

IT0=0 INT0
IT0=1
T0
IT1=0 INT1
IT1=1 T1
TXD RXD
中断标 志位
TCON
IE
IP
IE0
PX0
EX0
PT0
TF0 ET0
PX1
IE1 EX1
自 然 优 先 级
0003H:外部中断0入口
2020/8/5
0000H:复位后,程序的入口地址(PC=0000H)
包含T0中断服务子程序的
程序结构:
程序存储器ROM
ORG 0000H
002AH
AJMP MAIN
0023H:串行口中断OA入JR口MGP
000BH INTT0
001BH:定时M器A1溢IN出O: 中.RG断入0口100H
➢ 在硬件上,CPU对INT0和INT1引脚的信号不能控制,所
以这个问题要通过硬件,再配合软件来解决。
2020/8/5
外部中断源的扩展
• 单片机仅有两个外部中断输入端. • 可用两种方法扩展:
1. 定时器T0,T1。(工作在计数方式下) 2. 中断和查询结合。
2020/8/5
1.用定时器作外部中断源
2020/8/5
例:歌曲“新年好”的一段简谱, 1=C 1115|3331|1355|432-|
实现方法:用定时器以方式1来产生各音符对应频率的方波,由 P1.0输出驱动喇叭。节拍控制通过调用延时子程序D200(延时 200ms)次数来实现,以每拍800ms节拍时间为例,一拍需循环 调用D200延时子程序4次,同理,半拍就需用2次,设晶振频率为 6MHz,乐曲中的音符、频率、定时常数的关系如下表:
0013H:外部中断..1入口
AJMP INTT0
INTT0:.
000BH:定时器0溢. 出中断入口
. 0003H:外部中断R0E入T口I
AJMP MAIN
END
2020/8/5
0000H:复位后,程序的入口地址(PC=0000H)
中断处理
入口地址
应 响 断 中
▪中断服务程序从中断子程序入 口地址开始执行,直到返回指 令RETI为止,这个过程称为中 断处理(或中断服务)。 ▪中断服务子程序一般包括两部 分内容,一是保护和恢复现场, 二是处理中断源的请求。
单片机技术
音乐门铃
九江职业技术学院 电气工程系孙旭日制
2020/8/5
制作任务
用小喇叭、 单片机及电 阻、电容、 三极管等器 件,在老师 指导下制作 音乐门铃。
2020/8/5
硬件电路图绘制
+5V
4.7k 9012
1 P1.0
Vcc 40
+5V
BUZZER
2 P1.1 3 P1.2 4 P1.3
2020/8/5
中断处理过程
中断处理过程分为三个阶段:中断响应、中断 处理和中断返回。
❖ 中断响应 ❖ 中断处理(又称中断服务) ❖ 中断返回 ❖ 中断请求的撤除
应 响 断 中 中 断 返

2020/8/5
外部中断0入口地址
中断响应(以外部中断0为例ZD0 ) 0003 AJMP
▪中断响应:在满足CPU的中断
例5.5 将定时器T0扩展为外部中断源。
解:将定时器T0设定为方式2(自动恢复计数初值),TH0和TF0的初值均
设置为FFH,允许T0中断,CPU开放中断,源程序如下:
MOV MOV MOV SETB SETB SETB …
TMOD,#06H TH0,#0FFH TL0,#0FFH TR0 ET0 EA
中断返回
应 响 断 中 中 断 返

2020/8/5
▪ RETI指令功能:把断点地 址取出,送回到程序计数器 PC中去。另外,它还通知中 断系统已完成中断处理,将 清除优先级状态触发器。
▪ 特别注意:不能用RET 指令代替RETI指令!
2020/8/5
中断处理过程示意图
中断源发中断请求
N
中断响应条件
高 级 中 断 请
矢量 求
地址
PT1
TF1 ET1
TI
PS
自 然



RI
ES EA
SCON 中断源 允许
总允许
先 级
中断优 先级
矢量 地址
中 断 请 求
2020/8/5
TCON寄存器——T0和T1控制寄存器
76 5 4 3 2 1 0
TCON TF1
TF0
IE1 IT1 IE0 IT0
T1溢出中断标志(TCON.7): T1启动计数后,计满溢出由硬件
▪注意:该寄存器可以位寻址。
2020/8/5
IE寄存器——中断允许寄存器
76 5 4 3 2 1 0
IE
EA
ES ET1 EX1 ET0 EX0
A8H
例:允许定时器T0中断:
SETB EA
SETB ET0
或 MOV IE,#82H
▪注意:该寄存器可以位寻址。
2020/8/5
IP寄存器——中断优先级寄存器
设计思路
通过控制定时器的定时时间产生不同频率的方波,驱 动喇叭发出不同音阶的声音,再利用延时来控制发音时 间的长短,即可控制节拍,把乐谱中的音符和相应的节 拍变换成定常数和延迟常数,作为数据表格存放在存贮 器中。由程序查表得到定时常数和延迟常数,分别用以 控制定时器产生方波的频率和发出该频率方波的持续时 间。当延迟时间到时,再查下一个音符的定时常数和延 迟常数。依次进行下去。
MCS-51的中断系统——中断标志
中断源
INT0 T0 INT1 T1 串口
中断标志位
IE0 TF0 IE1 TF1 TI RI
CPU
主 程 序
▪ 每一个中断源都有相应的中断标志位; ▪ 某一个中断源申请中断,相应中断标志位置1。
2020/8/5
MCS-51的中断系统——中断允 许
中断源
中断标志位
ORG 0003H AJMP ZD0
中断服务 子程序的 入口地址
响应条件之后,CPU对中断源
ZD0
中断请求予以处理。 ▪中断响应过程: ✓ 保护断点地址;
应 响 断 中
✓ 把程序转向中断服务程序的
入口地址(通常称矢量地址)。
▪特别注意:这些工作是硬件
断点 地址
自动完成的!
2020/8/5
中断响应
▪中断服务子程序入口地址又称 为中断矢量或中断向量。 ▪单片机中5个中断源的矢量地 址是固定的,不能改动。
T0引脚每输入一个负跳变,TF0都会置1,向CPU请求中断
T0脚相当于边沿触发的外部中断源输入线。
2020/8/5
2.中断和查询相结合
39
P0.0 P0.1
38
P0.2 37
100Ω
5
6
7
8
+5V
22μF 9
1kΩ
10
11
12 13
14 15
30pF
16
P1.4
P0.3
P1.5 P1.6
P0.4
89C51 P0.5
P1.7
P0.6
P0.7
RESET
P3.0/RXD
EA
P3.1/TXD
ALE
P3.2/INT0
PSEN
P3.3/INT1
IE1=1,外部中断1 向CPU申请中断
▪注意:该寄存器可以位寻址。
2020/8/5
外部中断INT1触发方 式控制位(TCON.2): ▪ IT1=0,电平触发方 式 ▪ IT1=1, 下降沿触发 方式
SCON寄存器——串行口控制寄存器
SCON
76 5 4
3
210
TI RI
98H
▪ TI (SCON.1)——串行发送中断标志。 ▪ RI (SCON.0)——串行接收中断标志。
P2.7
P3.4/T0
P2.6
P3.5/T1
P2.5
P3.6/WR
P2.4
36 35 34 33
32 31 30 29 28 27 26 25
6MHz
17 P3.7/RD
P2.3 24
18 XTAL2
P2.2 23
19 XTAL1
P2.1 22
30pF
20 Vss
P2.0 21
2020/8/5
2020/8/5
置位TF1=1,向CPU请求中断,此标志 一直保持到CPU响应中断后,才由硬件 自动清0。也可用软件查询该标志,并 由软件清0。
2020/8/5
TCON寄存器——T0和T1控制寄存器
76 TCON
TF1 88H
54 TF0
3 210 IE1 IT1 IE0 IT0
外部中断INT1中断标志 位(TCON.3) :
76 5 4 3 2 1 0
IP
PS PT1 PX1 PT0 PX0
B8H
▪ 51单片机有两个中断优先级——高级和低级 ▪ 专用寄存器IP为中断优先级寄存器,用户可用软件设定 ▪ 相应位为1,对应的中断源被设置为高优先级,相应位为0,对应 的中断源被设置为低优先级 ▪ 系统复位时,均为低优先级 ▪ 该寄存器可以位寻址
▪将能引起中断的事件称为中断源。
▪CPU现行运行的程序称为主程序。
▪处理随机事件的程序称为中断服务 子程序。
中断技术的优点
• 分时操作 ——CPU可以同多个外设“同时”工作
• 实时处理 ——CPU及时处理随机事件
• 故障处理 ——电源掉电、存储出错、运算溢出
2020/8/5
MCS-51中断系统
• 中断源 • 中断标志 • 中断允许 • 中断优先级 • MCS-51中断系统结构 • 中断寄存器
2020/8/5
RETI
中断处理
INTT0: PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW 中断源服务
POP PSW
POP DPL
POP DPH
POP ACC
2020/8/5
RETI
保护现场 恢复现场
中断返回
应 响 断 中 中 断 返

2020/8/5
▪ 中断返回是指中断服务完 后,计算机返回到原来暂停 的位置(即断点),继续执行 原来的程序。 ▪ 中断返回由专门的中断返 回指令RETI来实现。
中断服务 子程序的 入口地址
应 响 断 中
2020/8/5
断点 地址
程序存储器ROM
002AH
使用时,通常在这些入口地址 处存放一条跳转指令,使程序 跳转到用户安排的中断服务程 序起始地址上去!
0023H:串行口中断入口
001BH:定时器1溢出中断入口
0013H:外部中断1入口
000BH:定时器0溢出中断入口
保护和恢复现场之后 的开中断是为了允许 有更高级中断打断此 中断服务程序。
硬件自 动完成
中断请求的撤除
CPU响应某中断请求后,在中断返回前,应该撤除该中断 请求,否则会引起另一次中断。
➢定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中
断请求标志TFO或TF1,即中断请求是自动撤除的。
➢边沿激活的外部中断:CPU在响应中断后,也是用硬件自动
2020/8/5
MCS-51的中断系统——中断 源
8051单片机有5个中断请求源:
▪ 外部输入中断源INT0(P3.2)

▪ 外部输入中断源INT1(P3.3)

▪ 片内定时器T0的溢出
▪ 片内定时器T1的溢出 ▪ 片内串行口发送或接收中断源
INT0 INT1
单片机 T0 T1
串行口
2020/8/5
是否满足?
Y
Y
中断是否受阻?
N
把PC断点地址压入堆栈
相应中断源的中断入口地址 送入PC,转向中断服务程序
由硬件 自动完成
中 断 保护现场和
恢复现场的
服 过程中不允 许中断,以
务 免现场遭到 破坏。
程 序
2020/8/5
关中断 保护现场 开中断 中断服务 关中断 恢复现场 开中断 中断返回 断点地址由堆栈弹入PC
自然优先级 中断源
中断标志位 中断允许 优先控制 CPU

INT0
T0
INT1
T1
串口 低
IE0 EX0
PX0
TF0 ET0 IE1 EX1 TF1 ET1
PT0

PX1


PT1
TI
ES
SI
PS EA
▪ 单片机中有两个中断优先级,即高优先级中断和低优先级中断,前 者优先权高于后者(在程序中设置,相应位=1,为高优先级);
中断允许
CPU
INT0
IE0 EX0
T0
TF0 ET0

INT1
IE1 EX1
程序ຫໍສະໝຸດ T1TF1 ET1
串口
TI
ES
RI
EA
▪ EA——总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断;
▪ 某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁 止相应中断源的中断。
2020/8/5
MCS-51的中断系统——中断优先 级
清除有关的中断请求标志IE0或IE1。
➢串行口中断:CPU响应中断后,没有用硬件清除T1、R1,
故这些中断不能自动撤除,而要靠软件来清除相应的标志。
2020/8/5
电平激活的外部中断源中断标志的撤除 ➢电平触发外部中断撤除方法较复杂。
因为在电平触发方式中,CPU响应中断时不会自动清 除IE1或IE0标志,所以在响应中断后应立即撤除INT0或 INT1引脚上的低电平。
相关文档
最新文档