单片机原理及接口技术第三版李朝青著课后习题答案文档内容摘要:

不可以 ⑹ 外中断 0,外中断 1,定时器 0,串行口中断,定时器 1。 不可以 ⑺ 外中断 0,定时器 1,定时器 0,外中断 1,串行口中断。 可以, MOV IP,09H 1 89C51 各中断源的中断标志是如何产生的。 又是如何清 0 的。 CPU 响应中断时,中断入口地址各是多少。 答:各中断标志的产生和清“ 0”如下: ( 1) 外部中断类 外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断 0 和外部中断 1 输入信号。 外部中断 0 请求信号,由 脚输入。 通过 IT0 来决定中断请求信号是低电平有效还是下跳变有效。 一旦输入信号有效,则向 CPU申请中断,并且使 IE0=1。 硬件复位。 外部中断 1 请求信号,功能与用法类似外部中断 0 ( 2) 定时中断类 定时中断是 为满足定时或计数溢出处理需要而设置的。 当定时器 /计数器中的计数结构发生计数溢出的,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位。 这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引入端,但在计数方式时,中断源可以由外部引入。 TF0:定时器 T0 溢出中断请求。 当定时器 T0 产生溢出时,定时器 T0请求标志 TF0=1,请求中断处理。 使用中断时由硬件复位,在查询方式下可由软件复位。 TF1:定时器 T1溢出中断请求。 功能与用法类似定时器 T0 ( 3) 串行口中断类 串行口中断是为串行数据的传送需要而设置的。 串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从 RI 端引入芯片,才可能引发中断。 RI 或 TI:串行口中断请求。 当接收或发送一串帧数据时,使内部串行口中断请求标志 RI或 TI=1,并请求中断。 响应后必须软件复位。 CPU响应中断时,中断入口地址如下: 中断源 入口地址 外部中断 0 0003H 定时器 T0中断 000BH 外部中断 1 0013H 定时器 T1中断 001BH 串行口中 断 0023H 1中断响应时间是否为确定不变的。 为什么。 答:中断响应时间不是确定不变的。 由于 CPU不是在任何情况下对中断请求都予以响应的;此外,不同的情况对中断响应的时间也是不同的。 下面以外部中断为例,说明中断响应的时间。 在每个机器周期的 S5P2 期间, 端的电平被所存到 TCON 的 IE0 位, CPU在下一个机器周期才会查询这些值。 这时满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令“ LCALL”,使程序转入中断矢量入口。 调用本身要用 2 个机器周期,这样,从外部中断请求有效到开始执行 中断服务程序的第一条指令,至少需要 3 个机器周期,这是最短的响应时间。 如果遇到中断受阻的情况,这中断响应时间会更长一些。 例如,当一个同级或更高级的中断服务程序正在进行,则附加的等待时间取决于正在进行的中断服务程序:如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为 1~3 个机器周期;如果正在执行的是 RETI 指令或者访问 IE或 IP 的指令,则附加的等待时间在 5 个机器周期内。 若系统中只有一个中断源,则响应时间为 3~8 个机器周期。 1中断响应过程中,为什么通常要保护现场。 如何保护。 答 :因为一般主程序和中断服务程序都可能会用到累加器, PSW寄存器及其他一些寄存器。 CPU 在进入中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一旦中断返回,将会造成主程序的混乱。 因而在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前再恢复现场。 保护方法一般是把累加器、 PSW 寄存器及其他一些与主程序有关的寄存器压入堆栈。 在保护现场和恢复现场时,为了不使现场受到破坏或者造成混乱,一般规定此时 CPU不响应新的中断请求。 这就要求在编写中断服务程序时,注意在保护现场 之前要关中断,在恢复现场之后开中断。 如果在中断处理时允许有更高级的中断打断它,则在保护现场之后再开中断,恢复现场之前关中断。 1清叙述中断响应的 CPU操作过程,为什么说中断操作是一个 CPU的微查询过程。 答:在中断响应中, CPU要完成以下自主操作过程: a) 置位相应的优先级状态触发器,以标明所响应中断的优先级别 b) 中断源标志清零( TI、 RI 除外) c) 中断断点地址装入堆栈保护(不保护 PSW) d) 中断入口地址装入 PC,以便使程 序转到中断入口地址处 在计算机内部,中断表现为 CPU的微查询操作。 89C51 单片机中, CPU在每个机器周期的S6 状态,查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的 S1 状态中,响应最高级中断请求。 但是以下情况除外: a) CPU正在处理相同或更高优先级中断 b) 多机器周期指令中,还未执行到最后一个机器周期 c) 正在执行中断系统的 SFR 操作,如 RETI 指令及访问 IE、 IP 等操作时,要延后一条指令 1在中断请求有效并开中断 状况下,能否保证立即响应中断。 有什么条件。 答:在中断请求有效并开中断状况下,并不能保证立即响应中断。 这是因为,在计算机内部,中断表现为 CPU 的微查询操作。 89C51 单片机中, CPU 在每个机器周期的 S6 状态下,查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的 S1 状态中,响应最高级中断请求。 在以下情况下,还需要有另外的等待: a) CPU正在处理相同或更高优先级中断 b) 多机器周期指令中,还未执行到最后一个机器周期 c) 正在执行中断系统的 SFR 操作,如 RETI 指令及访问 IE、 IP 等操作时,要延后一条指令第 6 章习题答案 定时器模式 2 有什么特点。 适用于什么场合。 答: ( 1) 模式 2 把 TL0(或 TL1)配置成一个可以自动重装载的 8 位定时器 /计数器。 TL0 计数溢出时不仅使溢出中断标志位 TF0置 1,而且还自动把 TH0 中的内容重新装载到 TL0 中。 TL0 用作 8 位计数器, TH0 用以保存初值。 ( 2) 用于定时工作方式时间( TF0 溢出周期)为 ,用于计数工作方式时,最大计数长度( TH0 初值 =0)为 28=256 个外部脉冲。 这种工作方式可省去用户软件重装初值的语句,并可产生相当精确定时时间,特别适于作串行波特率发生器。 单片机内部定时方式产生频率为 100KHZ等宽矩形波,假定单片机的晶振频率为 12MHZ,请编程实现。 答: T0低 5 位 :1BH T0高 8 位: FFH MOV TMOD,00H。 设置定时器 T0工作于模式 0 MOV TL0,1BH ;设置 5ms 定时初值 MOV TH0,0FFH SETB TR0 ;启动 T0 LOOP:JBC TF0,L1 ;查询到定时时间到。 时间到转 L1 SJMP LOOP ;时间未到转 LOOP,继续查询 L1: MOV TL0,1BH。 重新置入定时初值 MOV TH0,0FFH CPL。 输出取反,形成等宽矩形波 SJMP LOOP ;重复循环 89C51 定时器有哪几种工作模式。 有何区别。 答:有四种工作模式:模式 0,模式 1,模式 2,模式 3 ( 1) 模式 0:选择定时器的高 8 位和低 5 位组 成一个 13 位定时器 /计数器。 TL低 5 位溢出时向 TH进位, TH溢出时向中断标志位 TF 进位,并申请中断。 定时时间 t=(213初值 )振荡周期 12;计数长度位 213=8192 个外部脉冲 ( 2) 模式 1:与模式 0 的唯一差别是寄存器 TH和 TL以全部 16 位参与操作。 定时时间t=(216初值 )振荡周期 12;计数长度位 216=65536 个外部脉冲 ( 3) 模式 2:把 TL0 和 TL1 配置成一个自动重装载的 8 位定时器 /计数器。 TL用作 8 位计数器, TH用以保存初值。 TL计数溢出时不仅使 TF0置 1,而且还自动将 TH中的内容重新装载到 TL中。 定时时间 t=(28初值 )振荡周期 12;计数长度位 28=256 个外部脉冲 ( 4) 模式 3:对 T0和 T1 不大相同 若设 T0位模式 3, TL0 和 TH0 被分为两个相互独立的 8 位计数器。 TL0 为 8 位计数器,功能与模式 0 和模式 1 相同,可定时可计数。 TH0 仅用作简单的内部定时功能,它占用了定时器 T1的控制位 TR1 和中断标志位 TF1,启动和关闭仅受 TR1 控制。 定时器 T1无工作模式 3,但 T0在工作模式 3 时 T1仍可设置为 0~2。 89C51 内部设有几个定时器 /计数器。 它们是由哪些特 殊功能寄存器组成。 答: 89C51 单片机内有两个 16 位定时器 /计数器,即 T0和 T1。 T0由两个 8 位特殊功能寄存器 TH0 和 TL0 组成; T1由 TH1 和 TL1 组成。 定时器用作定时器时,其定时时间与哪些因素有关。 作计数器时,对外界计数频率有何限制。 答:定时时间与定时器的工作模式,初值及振荡周期有关。 作计数器时对外界计数频率要求最高为机器振荡频率的 1/24。 简述定时器 4 种工作模式的特点,如何选择设定。 答: ( 1) 模式 0:选择定时器的高 8 位和低 5 位组成一个 13 位定时器 /计数器。 TL低 5 位溢出时 向 TH进位, TH溢出时向中断标志位 TF 进位,并申请中断。 定时时间 t=(213初值 )振荡周期 12;计数长度位 213=8192 个外部脉冲 置 TMOD 中的 M1M0 为 00 ( 2) 模式 1:与模式 0 的唯一差别是寄存器 TH和 TL以全部 16 位参与操作。 定时时间t=(216初值 )振荡周期 12;计数长度位 216=65536 个外部脉冲 置 TMOD 中的 M1M0 为 01 ( 3) 模式 2:把 TL0 和 TL1 配置成一个自动重装载的 8 位定时器 /计数器。 TL用作 8 位计数器, TH用以保存初值。 TL计数溢出时不仅使 TF0置 1,而且还自动将 TH中的内容重新装载到 TL中。 定时时间 t=(28初值 )振荡周期 12;计数长度位 28=256 个外部脉冲 置 TMOD 中的 M1M0 为 10 ( 4) 模式 3:对 T0和 T1 不大相同 若设 T0位模式 3, TL0 和 TH0 被分为两个相互独立的 8 位计数器。 TL0 为 8 位计数器,功能与模式 0 和模式 1 相同,可定时可计数。 TH0 仅用作简单的内部定时功能,它占用了定时器 T1的控制位 TR1 和中断标志位 TF1,启动和关闭仅受 TR1 控制。 定时器 T1无工作模式 3,但 T0在工作模式 3 时 T1仍可设置为 0~2。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。