当前位置:首页 > 《单片机原理及应用》课后习题
习题5
1.什么叫中断?中断有什么作用?
答:中断就是指CPU正在处理某件事件时,外部发生了另一事件(例如一个电平的变化、一个脉冲沿的发生、定时计数器溢出等)请求CPU迅速去处理,于是,CPU暂停当前的程序,转去处理所发生的事情;当处理完所发生的事情后,再回到原来被暂停的程序处继续原来的工作。
中断的作用:
(1)提高CPU工作效率。在计算机与外围设备之间传送数据,CPU工作速度快,外围设备工作速度慢,形成CPU等待,效率降低。如果没有使用中断,CPU的大量时间可能会浪费在等待操作上。设置中断后,完全消除了CPU在查询方式中的的等待现象,CPU不必花费大量时间等待和查询外围设备工作,就可以使CPU与外设同步工作,大大地提高了CPU的工作效率。
(2)具有实时处理功能。实时控制是微型计算机系统特别是单片机系统应用领域的一个重要内容。在实时控制系统中,现场各种参数和状态的变化是随机发生的,要求CPU能快速响应、及时处理。有了中断系统,这些参数和状态的变化可以作为中断信号,根据要求随时向CPU发出中断申请,请求CPU及时处理,如中断条件满足,CPU马上就会响应进行相应的处理,从而实现实时处理。
(3)具有故障处理功能。单片机应用系统在实际运行中,常会出现一些故障。例如电源突然掉电、硬件自检出错、运算溢出等。利用中断,可通过中断系统由故障源向CPU发出中断请求,再由CPU转到相应的故障处理程序进行处理。
(4)实现分时操作。单片机应用系统通常需要控制多个外围设备同时工作。
2.MCS-51单片机有哪几个中断源?简述各中断源的中断请求方式、中断标志位及中断入口地址?
答:MCS-51单片机共有5个中断源,分别为外部中断请求(外部中断0请求INT0、外部中断1请求INT1)、定时器/计数器T0溢出中断请求TF0、定时器/计数器T1溢出中断请求TF1和串行中断请求RI或TI。
中断源的中断请求方式:中断请求标志位置1的过程就是发出中断请求的过程,外部中断0的中断请求标志位为IE0,外部中断1的中断请求标志位为IE1,定时计数器T0的中断请求标志位为TF0,定时计数器T1的中断请求标志位为TF1,串行中断请求标志位为RI或TI。 各中断所对应的入口地址
中断源 外部中断0 定时器T0中断 外部中断1 定时器T1中断 串行口中断
9
中断号 0 1 2 3 4 入口地址 0003H 000BH 0013H 001BH 0023H
3.MCS-51单片机外部中断有哪两种触发方式?对触发脉冲或电平有什么要求?如何选择和设定?
答:MCS-51单片机外部中断触发方式有电平触发方式和脉冲触发方式。
1)当ITl=0,外部中断1设置为电平触发方式。若INT1 (P3.3)引脚采样到低电乎,则认为有中断申请,随即使IEl标志=1。若为高电平,认为无中断申请或中断申请已撤除,随即清除IEl标志。在电平触发方式中,CPU响应中断后不能自动清除IEl标志,也不能由软件清除IEl标志,所以在中断返回前必须撤消INT1引脚上的低电乎,否则将再次响应中断造成出错。
2)若ITl=1,外部中断1设置为边沿触发方式。若在连续两个机器周期INT1 (P3.3)引脚采样到先高电平后低电平,则使IEl标志=1,此标志一直保持到CPU响应中断时,才由硬件自动清除。
4.MCS-51中断处理过程包括哪几个步骤?简述中断处理过程。
答:中断处理过程可分为三个阶段,即中断响应、中断处理和中断返回。
中断处理(又称中断服务)程序从入口地址开始执行,直到返回指令“RETI”为止,这个过程称为中断处理。此过程一般包括两部分内容,一是保护现场,二是处理中断源的请求。因为一般主程序和中断服务程序都可能会用到累加器、PSW寄存器及其他一些寄存器。CPU在进入中断服务程序后,用到上述寄存器时就会破坏它原来存在寄存器中的内容,一旦中断返回,将会造成主程序的混乱。因而,在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前,再恢复现场。
8.用MCS-51的P1口接8个LED发光二极管,由INT1接一消抖开关,开始P1.0的LED亮,以后每中断一次,下一个LED亮.顺序下移,且每次只一个LED亮,周而复始。画出电路图,编出程序。
10
解:
#include %unsigned char i=0x01; void main() {
EX1=1; EA=1; for(;;) {
P1=i; } }
void int1() interrupt 2 {
if(i<0x80) i=i*2; else i=0x01; }
习题6
2.MCS-51定时/计数器的定时功能和计数功能有什么不同?分别应用在什么场合下? 答:
定时器主要完成系统运行过程中的定时功能,而计数器主要用于对外部事件的计数。此外,定时器/计数器还可作为串行通信中波特率发生器。
3.简述MCS-51单片机定时/计数器四种工作方式的特点、如何选择和设定? 答:四种工作方式的选择是通过设定工作方式寄存器TMOD中的M1M0两位来完成的。 1) 当MlM0=00时,定时/计数器工作于方式0,构成一个13位定时器/计数器。 2) 当M1M0=01时,定时/计数器工作于方式1,构成一个16位定时器/计数器。方
式1与方式0的区别在于方式0是13位计数器
3) 当M1M0=10时,定时/计数器工作于方式2,在方式2情况下,定时/计数器为
8位,能自动恢复定时/计数器初值。在方式0、方式1时,定时/计数器的初值不能自动恢复,计满后若要恢复原来的初值.须在程序指令中重新给TH0、TL0赋值,这不仅导致编程麻烦,而且影响定时时间精度。但方式2时与方式0、方式1不同,方式2具有初值自动装入功能。
4) 当M1M2=11时,定时/计数器处于工作方式3,但方式3 仅适用于T0,T1无方式
3。方式3时,定时器T0被分解成两个独立的8位计数器TL0和TH0。
11
5.定时/计数器初始化包括哪些步骤? 答:初始化步骤如下:
(1) 根据设计要求先给工作方式寄存器TMOD送一个方式控制字,以设定定时/计数器相应的工作方式。
(2) 根据实际需要给定时/计数器选送定时器初值或计数器初值,以确定需要定时的时间和需要计数的初值。
(3) 根据需要给中断允许寄存器IE选送中断控制字,并给中断优先级寄存器IP选送中断优先级字,以开放相应中断并设定中断优先级。
(4) 给控制寄存器TCON送命令字,以便启动或禁止定时器/计数器的运行。
6.已知单片机时钟频率fosc=12MHz,当要求定时时间为2ms或5ms,定时器分别工作在方式0、方式1和方式2时,定时器计数初值各是多少?
解:因为单片机时钟频率fosc=12MHz,所以机器周期Tcy=12/fosc=1us,根据初值公式
Count=2n-Td/Tcy 得
1)Td=2ms=2000us时:
方式0时 Count=213-2000us/1us=8192-2000=6192
方式1时 Count=216-2000us/1us=65536-2000=63536=F830H,即TH0=F8H,TL0=30H TH0=-2000/256;TL0=-2000%6; 方式2时 ,单次溢出最长只能延时256us,因此可设定每次溢出延时200us,累计10次溢出即可得2ms,因此设定初值可设置为
Count=28-200us/1us=256-200=56=38H,即TH0=38H,TL0=38H 2)Td=5ms=5000us时:
方式0时 Count=213-5000us/1us=8192-5000=3192
方式1时 Count=216-5000us/1us=65536-5000=60536=EC78H,即TH0=ECH,TL0=78H TH0=-5000/256;TL0=-5000%6; 方式2时 ,单次溢出最长只能延时256us,因此可设定每次溢出延时200us,累计25次溢出即可得5ms,因此设定初值可设置为
Count=28-200us/1us=256-200=56=38H,即TH0=38H,TL0=38H
7.已知MCS-51单片机的fosc=6MHz,请利用中断技术和T0,从P1.0端输出高电平宽度为50?s、低电平宽度为200?s的矩形波。
解:
设定时长度为Td=50us,高电平延时1个Td,低电平延时4个Td 延时时间较短,可采用方式2,则初值计算为
Count=28-50us/2us=256-25=231=E7H T0工作于方式2,有TOMD.3=0 ,TMOD.2=0,TMOD.1=1,TOMD.0=0;
T1未使用,因此(TMOD)=02H #include
unsigned char Td1=1, Td4=4; void main(void){
12
共分享92篇相关文档