单片机原理与应用(第五章)
- 格式:doc
- 大小:102.00 KB
- 文档页数:8
单片机原理与应用(C51编程+proteus仿真)第2版-张毅刚课后习题参考答案第5章思考题及习题5参考答案一、填空1. AT89S51单片机任何一个端口要想获得较大的驱动能力,要采用()电平输出。
答:低2.检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的引脚上,另一端接地,然后通过检测()来实现。
答: I/O端口引脚的电平3. “8”字型的LED数码管如果不包括小数点段共计()段,每一段对应一个发光二极管,有()和()两种。
答:7,共阳极,共阴极4. 对于共阴极带有小数点段的数码管,显示字符“6”(a段对应段码的最低位)的段码为(),对于共阳极带有小数点段的数码管,显示字符“3”的段码为()。
答:7DH,B0H5. 已知8段共阳极LED数码显示器要显示某字符的段码为A1H(a段为最低位),此时显示器显示的字符为()。
答:d6. LED数码管静态显示方式的优点是:显示()闪烁,亮度(),()比较容易,但是占用的()线较多。
答:无,较高,软件控制,I/O口7. 当显示的LED数码管位数较多时,一般采用()显示方式,这样可以降低(),减少()的数目。
答:动态,成本,I/O端口8. LCD 1602是()型液晶显示模块,在其显示字符时,只需将待显示字符的()由单片机写入LCD 1602的显示数据RAM(DDRAM),内部控制电路就可将字符在LCD上显示出来。
答:字符,ASCII码9. LCD 1602显示模块内除有()字节的()RAM外,还有()字节的自定义(),用户可自行定义个5×7点阵字符。
答:80,显示数据,64,字符RAM,810.当按键数目少于8个时,应采用()式键盘。
当按键数目为64个时,应采用()式键盘。
答:独立,矩阵11.使用并行接口方式连接键盘,对独立式键盘而言,8根I/O口线可以接()个按键,而对矩阵式键盘而言,8根I/O口线最多可以接()个按键。
答:8,6412.LCD 1602显示一个字符的操作过程为:首先(),然后(),随后(),最后()。
第五章中断系统作业1.外部中断1所对应的中断入口地址为()H。
2.对中断进行查询时,查询的中断标志位共有、__、、_和_、__六个中断标志位。
3.在MCS-51中,需要外加电路实现中断撤除的是:()(A)定时中断(B)脉冲方式的外部中断(C)外部串行中断(D)电平方式的外部中断4.下列说法正确的是:()(A)同一级别的中断请求按时间的先后顺序顺序响应。
()(B)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。
()(C)低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。
()(D)同级中断不能嵌套。
()5.在一般情况下8051单片机允许同级中断嵌套。
()6.各中断源对应的中断服务程序的入口地址是否能任意设定?()7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。
()8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的()中。
(A)TMOD(B)TCON/SCON(C)IE(D)IP9.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是()(A)98H(B)84H(C)42(D)22H10.编写出外部中断1为负跳沿触发的中断初始化程序。
11.什么是中断?其主要功能是什么?12.什么是中断源?MCS-51有哪些中断源?各有什么特点?13.什么是中断嵌套?14.中断服务子程序与普通子程序有哪些相同和不同之处?15.中断请求撤除的有哪三种方式?16.特殊功能寄存器TCON有哪三大作用?17.把教材的P82页的图4.24改为中断实现,用负跳变方式,中断0(INT0)显18.示“L2”,中断1(INT1)显示“H3”。
(可参考第四章的电子教案中的例子)19.第5章课后作业第9题。
第五章中断系统作业答案3.外部中断1所对应的中断入口地址为(0013)H。
4.对中断进行查询时,查询的中断标志位共有IE0、_TF0_、IE1、TF1_和_TI、_RI_六个中断标志位。
第5章 AT89S51的中断系统参考答案及解析:1.答:0013H;001BH解析:P93 表5-2,由表各中断源入口地址2.答:串行口中断;T1溢出中断解析:P92 由于(IP)=00010100B,PS=1,PX1=1,故串行口、外部中断1中断为高优先级,其余为低优先级,再由表5-1,同级中断查询次序T1溢出中断为最低3.答:P96 设置中断允许控制寄存器IE,允许相应的中断请求源中断。
设置中断优先级寄存器IP,确定并分配所使用的中断的优先级。
若是外部中断源,还要设置中断请求的触发方式IT0或IT1,以决定采用电平触发方式还是跳沿触发方式。
中断程序返回使用RETI指令,RETI指令在返回的同时清除相应的优先级触发器,以允许下次中断,而普通子程序RET指令则没有这个操作。
4.答:D解析:P88 5.2.2 5个中断源的中断请求标志分别由特殊功能寄存器TCON和SCON的相应位锁存。
5.答:P94 5.5在一个单一中断的系统里,AT89S51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。
推迟对外部中断请求的响应:P94 5.4(1)A T89S51正在处理同级或更高优先级的中断。
因为当一个中断被响应时,要把对应的中断优先级状态触发器置1(该触发器指出CPU所处理的中断优先级别),从而封锁了低级中断请求和同级请求。
(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。
设定这个限制的目的是只有在当前指令执行完毕后,才能进行中断响应,以确保当前指令执行的完整性。
(3)正在执行的指令是RETI或是访问IE或IP的指令。
因为按照AT89S51中断系统的规定,在执行完这些指令后,需要再执行完一条指令,才能响应新的中断请求。
如果存在上述三种情况之一,AT89S51将丢弃中断查询结果,将推迟对外部中断请求的响应。
6.答:D解析:P94(A)如果已在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间,这种情况下,响应时间就无法计算了。
《单片机原理及应用》习题答案第一章计算机基础知识1-1 微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。
CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。
按其功能可分为RAM和ROM。
输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
1-3 什么叫单片机?其主要由哪几部分组成?答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
1-4 在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。
1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制)1-6 写出下列各数的BCD参与:59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010389.41:001110001001.01000001第二章 MCS-51单片机的硬件结构2-1 8052单片机片内包含哪些主要逻辑功能部件?答:8052单片机片内包括:①8位中央处理器CPU一个②片内振荡器及时钟电路③256B数据存储器RAM。
单片机原理与应用(五)第五章MCS-51单片机的中断系统5.1 中断系统概述中断:CPU暂时停止正在执行的程序,自动转去执行需紧迫处理的事件(程序),并在处理完毕后能够返回原来程序暂停的位置,接着继续执行。
5.2 中断源和中断控制5.2.1 中断源:能够让CPU暂停执行的信号(硬件)。
8051单片机有5个中断源:2个内部定时器/计数器T0和T1溢出中断:TF0和TF1。
2个外部输入INT0(P3.2)和INT1(P3.3)中断:IE0和IE1。
1个串行口发送/接收中断:TI / RI。
1. 定时器/计数器中断控制寄存器TCON (88H)D7 D6 D5 D4 D3 D2 D1 D0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0(1) IT0 为外部中断0的触发方式控制位:(由软件置位)当IT0=0时,为负电平触发方式,即INT0(P3.2脚)为低电平时,置IE0=1。
当IT0=1时,为边沿负跳变触发方式,即INT0从高变为低电平时,置IE0=1。
(2) IE0为外部中断0的触发标志(申请中断):(当INT0的电平变化时由硬件置位)硬件置位IE0=1时,向CPU请求中断。
在CPU响应中断请求后,当IT0=1时,IE0自动清零;而当IT0=0时,IE0不能自动清零。
(3) IT1 为外部中断1的触发方式控制位:(由软件置位)同IT0。
(4) IE1 为外部中断1的触发标志(申请中断):同IE0。
(5) TF0为T0的溢出标志(申请中断):当T0的(TH0、TL0)计满溢出时,硬件置TF0为“1”,并向CPU申请中断。
CPU响应中断后,TF0自动清零。
(6) TF1为T1的溢出标志(申请中断):当T1的(TH1、TL1)计满溢出时,硬件置TF1为“1”,并向CPU申请中断。
CPU响应中断后,TF1自动清零。
2. 串行口控制寄存器SCON (98H)D7 D6 D5 D4 D3 D2 D1 D0SM0 SM1 SM2 REN TB8 RB8 TI RI1) TI:串行口发送中断标志位。
发送完成后TI=1。
2) RI:串行口接收中断标志位。
接收完成后RI=1。
5.2.2 中断控制1. 中断允许控制寄存器IE (A8H)D7 D6 D5 D4 D3 D2 D1 D0EA ---- ---- ES ET1 EX1 ET0 EX01) EA:中断允许总控制位当EA=0时,所有中断都禁止;当EA=1时,所有中断都允许。
2) ES:串行口中断允许控制位当ES=0时,禁止串行口中断;当ES=1时,允许串行口中断。
3) ET1:定时器/计数器T1中断允许控制位当ET1=0时,禁止T1中断;当ET1=1时,允许T1中断。
4) EX1:外部INT1中断允许控制位当EX1=0时,禁止INT1中断;当EX1=1时,允许INT1中断。
5) ET0:定时器/计数器T0中断允许控制位当ET0=0时,禁止T0中断;当ET0=1时,允许T0中断。
6) EX0:外部INT0中断允许控制位当EX0=0时,禁止INT0中断;当EX0=1时,允许INT0中断。
8051单片机系统上电复位后,IE的各位均被置“0”。
2. 中断优先级控制寄存器IP (B8H)D7 D6 D5 D4 D3 D2 D1 D0---- ---- ---- PS PT1 PX1 PT0 PX0如果有多个中断源同时请求中断时,就须分出处理的先后。
8051单片机分为高、低两个中断优先级,由软件设置,当处于同一优先级时,按以下次序的先后进行处理:外部INT0中断(IE0) →定时器T0溢出(TF0) →外部INT1中断(IE1) →→定时器T1溢出(TF1) →串行口中断(TI / RI)1) PS:串行口中断优先级控制位。
当设置PS=1时为高级优先,PS=0时为低级。
2) PT1:定时器/计数器T1中断优先级控制位。
优先级设置同上。
3) PX1:外部INT1中断优先级控制位。
优先级设置同上。
4) PT0:定时器/计数器T0中断优先级控制位。
优先级设置同上。
5) PX0:外部INT0中断优先级控制位。
优先级设置同上。
8051单片机系统上电复位后,IP的各位均被置“0”。
中断优先级控制系统的等效电路逻辑结构图:INT 0& IE0 IE寄存器IP寄存器高级中断请求IT0 触发器低级中断请求INT 1 IE1 EX0TF0TF1 ET0TIRIESEA PX05.3 中断处理5.3.1 中断的响应过程1. 硬件响应:当前程序计数器PC的内容进栈,中断入口地址装入PC中,程序转移到该中断入口地址去执行中断服务子程序。
2. 软件响应:进入中断服务子程序后,执行关中断→保护现场→开中断→中断处理→关中断→恢复现场→开中断→中断返回。
注意:在保护现场和恢复现场时,不允许其他中断进入,必须禁止中断。
中断入口地址表中断源中断入口地址外部输入INT0中断0003H内部定时器/计数器T0溢出中断000BH外部输入INT1中断0013H内部定时器/计数器T1溢出中断001BH串行口发送/接收中断0023H5.3.2 中断的响应时间:一般是3~8个机器周期。
5.3.3 外部中断的方式(IT0 / IT1)1. 电平触发方式:要求在中断返回之前能清除中断源的低电平。
2. 边沿触发方式:要求触发电平至少要保持12个时钟周期。
5.4 外部中断源的扩展(略)5.5 中断系统设计中应注意的几个问题5.5.1 调试时注意开发机上使用的中断入口地址(目前的仿真器已无此问题)5.5.2 保护现场:一般是把累加器A、程序状态字PSW、数据指针DPTR、等进栈。
例:CLR EAPUSH APUSH PSWPUSH DPHPUSH DPLSETB EA恢复现场:以保护现场时进栈的反序出栈。
例:CLR EAPOP DPLPOP DPHPOP PSWPOP ASETB EARETI5.5.3 中断标志的清除(1) T0的TF0、T1的TF1、IT0=1(负边沿触发)时的IE0,IT1=1时的IE1这四个中断标志,在中断响应后,CPU会自动清零。
(2) IT0=0(负电平触发)时的IE0,IT1=0时的IE1这两个中断标志,必须撤消引起外部中断的负电平信号。
(3) 串行口中断信号TI、RI,必须由软件清零。
中断的应用:(1) 设置中断允许控制寄存器IE (EA=0)。
(2) 设置中断优先级控制寄存器IP。
(3) 对于外部中断,还要设置中断请求触发方式IT0 / IT1。
(4) 在相应的中断入口地址处加一条无条件转移指令:LJMP <标号>(5) 在主程序的开头加开中断指令:SETB EA(6) 编写中断处理子程序。
例题1:采用外部中断方式的按键计数程序。
K BIT P3.2S EQU 20HORG 0000HMain: MOV S, #00H ; S置初值0MOV P0, #0C0H ; 显示‘空’L1: SETB KJB K, L1 ; K=1, 无键入LCALL Delay10 ; 消抖处理JB K, L1 ; K=1, 是抖动INC S ; K键按下的处理:S S+1, 显示数值S(0~9)MOV A, SMOV DPTR, #TABMOVC A, @A+DPTR; 取出数值S对应的LED显示段码MOV P0, A ; 显示数值S(0~9)L2: SETB KJNB K, L2 ; K=0, 键没有松开LCALL Delay10 ; 消抖处理JNB K, L2 ; K=0, 是抖动MOV A, SCJNE A, #10, L1SJMP MainTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0HDelay10: MOV R4, #10 ; 10*1ms=10ms ; 延时10msDe1: MOV R5, #250 ; 250*4us=1msDe2: DJNZ R5, De2 ; 4us,设f = 6MHzDJNZ R4, De1RETEND例题2:采用外部中断方式的倒计数程序。
K BIT P3.2S EQU 20H P0ORG 0000HMain: MOV S, #09H KMOV P0, #0FFH ; 显示‘空’P3.2 +5VL1: SETB KJB K, L1 ; K=1, 无键入MOV A, S ; K键按下的处理:显示数值S(9~0) ,S←S-1MOV DPTR, #TABMOVC A, @A+DPTR ; 取出数值S对应的LED显示段码MOV P0, A ; 显示数值S(0~9)LCAL Delay ; 延时1sMOV A, SJZ MainDEC SSJMP L1TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H Delay: MOV R3, #5 ; 5*200ms=1000ms=1sDe0: MOV R4, #200 ; 200*1ms=200msDe1: MOV R5, #250 ; 250*4us=1msDe2: DJNZ R5, De2 ; 4us,设f = 6MHzDJNZ R4, De1DJNZ R3, De0RETEND课堂上机练习题:请把单个LED显示的倒计数例题的按钮输入识别改为中断的方式。
其编程调试步骤如下:①:编写主程序1.编写主程序主程序:ORG 0000HMain: MOV S, #9MOV P0, #0FFH ; 显示‘空’L1: SETB KJB K, L1 ; K=1, 无键入MOV A, S ; K键按下的处理:显示数值S(9~0) ,S←S-1MOV DPTR, #TABMOVC A, @A+DPTR ; 取出数值S对应的LED显示段码MOV P0, A ; 显示数值S(0~9)LCALL Delay ; 延时1sMOV A, SJZ MainDEC SSJMP L1TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0HDelay: MOV R2, #5 ; 延时500msDe0: MOV R3, #100 ; (延时100ms)De1: MOV R4, #250 ;De2: DJNZ R4, De2 ; 250*4us=1ms,设f = 6MHzDJNZ R3, De1DJNZ R2,De0RETEND2.输入并调试、运行通过。
②:在初始化中加入(1) 设置中断允许控制寄存器IE (EA=0)。
(2) 设置中断优先级控制寄存器IP。
(3) 对于外部中断,还要设置中断请求触发方式IT0 / IT1。