中断系统、定时计数习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6/8章 MCS-51中断系统和定时/计数器
(习题)
1、什么是中断?51单片机有哪几个中断源?各自对应的中断入口地址是什么?中断入口地址与中断服务子程序入口地址有区别吗?
中断是指CPU暂时中止其正在执行的程序,转去执行请求中断的那个外围设备或事件的服务程序,等处理完后再返回执行原来中止的程序。
MCS-51有5个中断源,其中断源与中断入口地址分别为:
INT 0003H
T 000BH
INT 0013H
1
1
T 001BH
串行口 0023H
中断入口地址与中断服务子程序的入口地址是有区别的,中断入口地址如上,而中断服务子程序的入口地址就是中断服务子程序名称所在的地址即中断服务子程序第一句所在的地址。
2、试编写一段对中断系统初始化的程序,使之允许/INT0、/INT1、T0、串行口中断,且使T0中断为高优先级中断。
MOV IE,#10010111B
MOV IP,#00000010B
3、试分析以下几个中断优先级的排列顺序(级别由高到低)是否有可能实现?若能,应如何设置中断源的中断优先级别?若不能,试述理由。
1)T0、T1、/INT0、/INT1、串行口;
2)串行口、/INT0、T0、/INT1、T1;
3)/INT0、T1、/INT1、T0、串行口;
4)/INT0、/INT1、串行口、T0、T1;
5)串行口、T0、/INT0、/INT1、T1;
6)/INT0、/INT1、T0、串行口、T1;
7)/INT0、T1、T0、/INT1、串行口。
(1)可以,MOV IP,#00001010B
(2)可以,MOV IP,#00010000B
(3)不能
(4)可以,MOV IP,#00010101B
(5)不能
(6)不能
(7)可以,MOV IP,#00001001B
4、已知负跳变脉冲从51单片机P3.3引脚输入,且该脉冲数少于65535个,试利用/INT1中断,统计输入脉冲个数。脉冲数存内RAM30H(低位)31H(高位),并调用数据处理子程序WORK和显示子程序DIR(已知,可直接调用)显示,要求用边沿触发方式。
org 0000h
ljmp main
org 0013h;中断入口设置即中断入口地址
ljmp i_int1;跳到中断服务子程序入口地址
org 50h
main: mov sp,#60h
mov tcon,#00000100b;/INT1边沿触发方式。
mov ie,#10000100b;仅开放/INT1中断
mov 30h,#0
mov 31h,#0
sjmp $
i_int1: mov a,#1
add a,30h
mov 30h,a
clr a
addc a,31h
mov 31h,a
acall work
acall dir
reti
work: :
:
ret
dir: :
:
ret
end
5、51单片机,当fosc=6MHz和fosc=12MHz时,最大定时各为多少?
131.072ms,65.536ms
6.应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。
(1)计算时间常数X,应用公式X=216-t(f/12)(2)写出程序清单
解:X=216-t(f /12)
=216-1*10-3*6*106/12
=OFEOCH
ORG 3000H
MOV TMOD,#01H
MOV TL0,#OCH
MOV THO,#OFEH
SETB TR0
LOOP: JBC TFO,DONE
SJMP LOOP
DONE: MOV TL0,#OCH
MOV THO,#OFEH
CPL P1.0
SJMP LOOP
7、若f OSC=6MHZ,要求T1定时10ms,选择方式0,装入时间初值后T1计数器自启动。计算时间初值X=?并填入TMOD、TCON和TH1、TL1的值?解:x=3192=c78h,th1=63h,tl1=18h,tmod=00h,tcon=40h
8、要求T0工作在计数器方式(方式0),计满1000个数申请中断。计算计数初值X及填写TMOD、TCON和TH0、TL0?
解:x=7192h=1c18h,th0=e0h,tl0=18h,tmod =04h,tcon=10h