中断服务子程序
单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统
5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0
单片机中断的工作原理
单片机中断的工作原理
单片机中断是一种特殊的程序控制方式,它允许程序在正常执行中被突然中断,并优先执行一个称为中断服务子程序(ISR)的特定程序段,然后再返回原来的程序执行点继续执行。
单片机中断的工作原理如下:
1. 程序运行到中断发生的时候,会先暂停当前指令的执行,并保留程序计数器(PC)的值,用于之后继续执行原来的指令。
2. 单片机会检测到中断请求信号,例如外部的硬件事件(如按键触发)或定时器溢出等。
3. 检测到中断请求信号后,单片机会立即跳转到中断向量表中相应的中断向量入口处。
4. 中断向量表是一个存储中断服务子程序地址的表,根据中断请求信号的优先级,选择相应的中断向量入口。
5. 单片机跳转到中断向量入口处后,会执行中断服务子程序的指令。
6. 中断服务子程序可以是事先编写好的、专门用于处理特定中断事件的程序段,也可以是用户自定义的。
7. 中断服务子程序执行完毕后,单片机会返回原来的程序执行点,即将之前保存的PC值恢复,继续执行被中断的程序。
通过中断的机制,单片机能够及时响应外部事件,提高系统的实时性和可靠性,允许程序在特定条件下优先处理重要的任务。
中断可以分为外部中断和内部中断,外部中断来自于外部硬件设备的触发,内部中断来自于单片机内部的定时器、串口等模块的事件触发。
中断服务程序流程图
第一讲:第六章I/O接口原理-接口、端口、编址回顾:微机系统的层次结构,CPU、主机、接口电路及外部设备之间的结构关联,输入/输出的一般概念。
重点和纲要:微机系统主机与外部设备之间的数据传送,包括I/O端口的寻址方式,输入/输出的传送控制方式。
讲授内容:6. 1 输入/输出数据的传输控制方式一、输入/输出的一般概念1.引言输入/输出是微机系统与外部设备进行信息交换的过程。
输入/输出设备称为外部设备,与存储器相比,外部设备有其本身的特点,存储器较为标准,而外部设备则比较复杂,性能的离散性比较大,不同的外部设备,其结构方式不同,有机械式、电动式、电子式等;输入/输出的信号类型也不相同,有数字信号,也有模拟信号;有电信号,也有非电信号;输入/输出信息的速率也相差很大。
因此,CPU与外部设备之间的信息交换技术比较复杂。
CPU与外设之间的信息交换,是通过它们之间接口电路中的I/O端口来进行的,由于同一个外部设备与CPU之间所要传送的信息类型不同,方向不同,作用也不一样(例如数据信息、状态信息、控制信息、输入/输出等),所以接口电路中可以设置多个端口来分别处理这些不同的信息。
2.输入/输出端口的寻址方式微机系统采用总线结构形式,即通过一组总线来连接组成系统的各个功能部件(包括CPU、内存、I/O端口),CPU、内存、I/O端口之间的信息交换都是通过总线来进行的,如何区分不同的内存单元和I/O端口,是输入/输出寻址方式所要讨论解决的问题。
根据微机系统的不同,输入/输出的寻址方式通常有两种形式:(1).存储器对应的输入、输出寻址方式这种方式又称为存储器统一编址寻址方式或存储器映象寻址方式。
方法:把外设的一个端口与存储器的一个单元作同等对待,每一个I/O端口都有一个确定的端口地址,CPU与I/O端口之间的信息交换,与存储单元的读写过程一样,内存单元与I/O端口的不同,只在于它们具有不同的的地址。
51单片机汇编中断程序调用子程序
文章标题:深度解析:51单片机汇编中断程序调用子程序一、介绍在51单片机的汇编编程中,中断程序和子程序的调用是非常重要的内容。
本文将深入讨论51单片机汇编中断程序如何调用子程序的相关知识,帮助读者更加深入地理解这一主题。
二、51单片机汇编中断程序调用子程序的基本原理在51单片机中,中断是指在程序运行过程中,由硬件或者软件主动触发的一种事件,当中断发生时,CPU会立即暂停正在执行的程序,转而去执行与该中断相关的处理程序,当处理完毕后再返回原程序继续执行。
子程序则是一段独立的代码,可以被主程序或其他子程序调用执行。
中断程序调用子程序的基本原理是,当中断发生时,CPU会跳转到中断服务程序进行处理,在中断服务程序中可以调用需要的子程序进行处理,处理完毕后再返回中断服务程序,最终返回到原来的程序中继续执行。
三、中断程序调用子程序的具体实现方法1. 中断程序的编写首先需要编写中断程序,并向51单片机的中断向量表中注册相应的中断号。
在中断程序中,可以调用需要的子程序进行处理。
2. 子程序的编写编写需要被调用的子程序,并保证其能够正确地处理需要的任务。
子程序的调用和返回是通过特定的指令来实现的。
3. 调用和返回在中断程序中,通过特定的指令调用需要的子程序,等待子程序执行完成后再进行返回。
这里需要特别注意子程序调用的参数传递和返回值的处理。
四、中断程序调用子程序的实际应用中断程序调用子程序在实际应用中有着广泛的用途,比如在实时系统中,可以利用中断程序调用子程序来实现即时响应;在通信系统中,可以利用中断程序调用子程序来实现数据处理和通信协议的处理等。
五、个人观点和总结中断程序调用子程序是51单片机汇编编程中的重要内容,掌握了这一技术可以让我们更加灵活地进行程序设计和开发。
通过本文的深度解析,希望读者能够更加深入地理解和掌握这一知识,并在实际应用中发挥其作用。
完整的文章已经写好并按照知识的文章格式进行了排版,总字数超过3000字。
习题答案
5-1 什么是中断系统?中断系统的功能是什么?实现中断功能的硬件和软件称为中断系统.中断系统功能包括进行中断优先排队、实现中断嵌套、自动响应中断和实现中断返回。
5-2 什么是中断嵌套?CPU在响应某一个中断源中断请求而进行中断处理时,若有中断优先级更高的中断源发出中断请求,CPU会暂停正在执行的中断服务程序,转向执行中断优先级更高的中断源的中断服务程序,等处理完后,再返回继续执行被暂停的中断服务程序,这个过程称为中断嵌套。
5-3 什么是中断源?MCS-51有哪些中断源?各有什么特点?①实现中断功能的硬件和软件称为中断系统,产生中断请求的请求源称为中断源.②5个中断源中共有两个外部中断、两个定时中断和一个串行中断。
(1)外部中断源外部中断是由外部原因(如打印机、键盘、控制开关、外部故障)引起的,可以通过两个固定引脚来输入到单片机内的信号,即外部中断0(INT0)和外部中断1(INT1)。
(2)定时中断类定时中断是由内部定时(或计数)溢出或外部定时(或计数)溢出引起的,即T0和T1中断。
(3)串行口中断类串行口中断是为接收或发送一帧串行数据,硬件自动使RI和TI置1,并申请中断5-4 MCS-51单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推迟对外部中断请求的响应?(1)MCS-51单片机的最短响应时间为3个机器周期,最长响应时间8个机器周期。
(2)有下列任何一种情况存在,则中断响应会受到阻断。
① CPU正在执行一个同级或高一级的中断服务程序;②当前的机器周期不是正在执行的指令的最后一个周期,即正在执行的指令还未完成前,任何中断请求都得不到响应;③正在执行的指令是返回指令或者对专业寄存器IE、IP进行读/写的指令,此时。
在执行RETI或者读写IE或IP之后,不会马上响应中断请求,至少在执行一条其他之后才会响应。
若存在上述任何一种情况,中断查询结果就被取消,否则,在紧接着的下一个机器周期,就会响应中断。
sdcc 和keil中断的写法 -回复
sdcc 和keil中断的写法-回复SDCC (Small Device C Compiler)和Keil是两种常用的嵌入式系统开发工具,用于编写和调试嵌入式系统的程序。
在这篇文章中,我们将会一步一步介绍如何使用SDCC和Keil编写和管理中断。
首先,让我们了解一下什么是中断。
在嵌入式系统中,中断是一种特殊的事件,可以在程序执行过程中随时发生,并打断当前正在执行的任务。
中断可以是内部事件,如计时器溢出或按键触发,也可以是外部事件,如数据接收完成或外部设备发出的信号。
在SDCC中编写中断程序需要在函数前加上特殊的关键字,以告知编译器该函数是一个中断服务子程序(Interrupt Service Routine, ISR)。
下面是一个SDCC中编写外部中断服务子程序的示例:c#include <8051.h>void externalInterrupt() __interrupt 0{中断服务子程序的代码}在上面的示例中,函数名为`externalInterrupt`,并使用`__interrupt`关键字告知编译器该函数是一个中断服务子程序。
数字0表示这是一个外部中断的ISR,因为8051芯片有多个中断源,每个中断源都对应一个中断号。
在Keil中编写中断程序相对更加简洁明了,需要使用`interrupt`关键字和中断号。
下面是一个Keil中编写外部中断服务子程序的示例:c#include <reg52.h>void externalInterrupt() interrupt 0{中断服务子程序的代码}同样,在上面的示例中,函数名为`externalInterrupt`,并使用`interrupt`关键字告知编译器该函数是一个中断服务子程序。
数字0表示这是一个外部中断的ISR,这里使用的是reg52头文件,其中定义了8052芯片的寄存器和常量。
在SDCC中,还可以为中断函数指定中断号和优先级。
微型计算机原理与接口技术第七章课后答案
第七章1. 什么叫中断?什么叫可屏蔽中断和不可屏蔽中断?答:当CPU正常运行程序时,由于微处理器内部事件或外设请求,引起CPU中断正在运行的程序,转去执行请求中断的外设(或内部事件)的中断服务子程序,中断服务程序执行完毕,再返回被中止的程序,这一过程称为中断。
可屏蔽中断由引脚INTR引入,采用电平触发,高电平有效,INTR信号的高电平必须维持到CPU响应中断才结束。
可以通过软件设置来屏蔽外部中断,即使外部设备有中断请求,CPU可以不予响应。
当外设有中断申请时,在当前指令执行完后,CPU首先查询IF位,若IF=0,CPU就禁止响应任何外设中断;若IF=1,CPU就允许响应外设的中断请求。
不可屏蔽中断由引脚NMI引入,边沿触发,上升沿之后维持两个时钟周期高电平有效。
不能用软件来屏蔽的,一旦有不可屏蔽中断请求,如电源掉电等紧急情况,CPU必须予以响应。
2. 列出微处理器上的中断引脚和与中断有关的指令。
答:INTR:可屏蔽中断请求输入引脚。
NMI:不可屏蔽中断请求输入引脚INTA:可屏蔽中断响应引脚INT n :软件中断指令,其中n为中断类型号INTO:溢出中断,运算后若产生溢出,可由此指令引起中断。
CLI:中断标志位IF清0STI:置位中断标志位为13. 8086/8088系统中可以引入哪些中断?答:(1)外部中断两种外部中断:不可屏蔽中断NMI和可屏蔽中断INTR(2)内部中断内部中断又称软件中断,有三种情况引起:①INT n :中断指令引起的中断②CPU的某些运算错误引起的中断:包括除法错中断和溢出中断③由调试程序debug设置的中断:单步中断和断点中断。
4. CPU响应中断的条件是什么?简述中断处理过程。
答:CPU响应中断要有三个条件:外设提出中断申请;本中断位未被屏蔽;中断允许。
可屏蔽中断处理的过程一般分成如下几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。
CPU在响应外部中断,并转入相应中断服务子程序的过程中,要依次做以下工作:⑴从数据总线上读取中断类型号,将其存入内部暂存器。
单片机C语言函数中断函数(中断服务程序)
单片机_C语言函数_中断函数(中断服务程序)在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。
中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。
(1)中断源:中断请求信号的来源。
(8051有3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1(这两个低电平有效,上面的那个横杠不知道怎么加上去))(2)中断响应与返回:CPU采集到中断请求信号,怎样转向特定的中断服务子程序,并在执行完之后返回被中断程序继续执行。
期间涉及到C PU响应中断的条件,现场保护,现场恢复。
(3)优先级控制:中断优先级的控制就形成了中断嵌套(8051允许有两级的中断嵌套,优先权顺序为INT0,T0,INT1,T1,串行口),同一个优先级的中断,还存在优先权的高低。
优先级是可以编程的,而优先权是固定的。
80C51的原则是①同优先级,先响应高优先权②低优先级能被高优先级中断③正在进行的中断不能被同一级的中断请求或低优先级的中断请求中断。
80C51的中断系统涉及到的中断控制有中断请求,中断允许,中断优先级控制(1)3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1(2)中断控制寄存器:定时和外中断控制寄存器TCON(包括T0、T1,INT0、INT1),串行控制寄存器SCON,中断允许寄存器IE,中断优先级寄存器IP具体的是什么,包括哪些标志位,在这里不讲了,所有书上面都会讲。
在这里我们讲下注意的事项(1)CPU响应中断后,TF0(T0中断标志位)和TF1由硬件自动清0。
(2)CPU响应中断后,在边沿触发方式下,IE0(外部中断IN T0请求标志位)和IE1由硬件自动清零;在电平触发方式下,不能自动清楚IE0和I E1。
简答题
简答题1. 在8086系统中,若用2048×4位的RAM芯片组成16K×8位的存储器,需要多少片这种RAM芯片?在CPU地址线中有多少位参与片内寻址?多少位用于产生片选信号?2048×4位=2K×4位,1681624KK⨯=⨯片。
需要11位参与片内寻址;其余(9位)用于产生片选信号。
2.接口是CPU与外设的桥梁,简述接口应有哪几个方面的功能。
地址译码与设备选择;状态信息应答;中断管理;数据格式转换;电平转换;速度协调;时序控制。
3.为了传输更加可靠,在UART中可设立各种出错标志位,简述UART中常用的出错标志位及其含义。
奇偶错误:接收时,检测字符中“1”的个数的标志。
帧错误:若收到的字符格式不符合规定(如缺少停止位等),则置位该标志。
丢失(溢出)错误:如果UART收到下一个字符的停止位时,CPU还没有把上一个字符取走,则置位该标志。
4.简述用软件使8251A复位的方法。
线香8251A的控制口连续写入3个0,然后再写入复位控制字40 H。
由于8251A内部操作需要一定的时间,所以写入操作后需要有一定的延迟。
5.CPU响应中断后为什么要自动关闭中断。
对于电平触发的中断,当CPU响应中断后,如果不关中断,则本次中断有可能会触发新的中断;由于中断是从CPU正在执行的主程序转向执行中断服务程序,所以CPU响应中断后要保护断点和现场,这些工作是不允许其他外设的中断请求信号打断的。
6. 简述8259A的中断服务寄存器ISR的作用。
记录正在处理的中断请求。
当任何一级中断被响应,CPU正在执行它的中断服务程序时,ISR 的相应位置“1”,一直保持到该级中断处理过程结束为止。
多重中断情况下,ISR中可有多位被置“1”。
7、在8086系统中,从存储器中读1个奇地址边界字需要几个总线周期?列出每个总线周期中和存储器有关的控制信号和它们的有效电平。
需要2个总线周期。
第一个总线周期的控制信号:A0=0、RD=0、WR=1、BHE=1、/M IO=1。
单片机原理与应用试题及答案
试题1一、填空题25分,每空1分1. AT89S51单片机为位单片机2. MCS-51系列单片机的典型芯片分别为、、 ;3. AT89S51的异步通信口为单工/半双工/全双工4. AT89S51有级中断, 个中断源5. AT89S51内部数据存储器的地址范围是 ,位地址空间的字节地址范围是 ,对应的位地址范围是 ,外部数据存储器的最大可扩展容量是;6. AT89S51单片机指令系统的寻址方式有、_______、_ ___、_ __ __、 ;7. 如果A=34H,R7=0ABH,执行XCH A, R7;结果A= ,R7= ;8. 82C55可以扩展个并行口,其中条口线具有位操作功能;9. 当单片机复位时PSW= H,这时当前的工作寄存器区是区,R4所对应的存储单元地址为 H;10. 若A中的内容为67H,那么,P标志位为 ;11. 74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中片芯片;二、判断以下指令的正误:5分1MOV 28H,R4;2INC DPTR;3DEC DPTR ;4CLR R0 ;5MOV T0,3CF0H;三、简答题1. 如果DPTR=507BH,SP=32H,30H=50H,31H=5FH,32H=3CH,则执行下列指令后:POP DPH;POP DPL;POP SP;则:DPH= __ ___;DPL=____ ____;SP=____ ____;6分2. 采用6MHz的晶振,定时1ms,用定时器方式0时的初值应为多少请给出计算过程6分3. 分析下列程序的功能5分PUSH ACCPUSH BPOP ACCPOP B四、图为8段共阴数码管,请写出如下数值的段码;3____ _ ;_4______ ;5_____ ;;,设有一台主机与三台从机通信,其中一;请给出六、简述一种多外部中断源系统的设计方法;给出图和程序10分七、简述行列式扫描键盘的工作原理;8分八、请回答:共20分1. 下图中外部扩展的数据存储器容量是多少2分2. 三片6264的地址范围分别是多少地址线未用到的位填1 6分,3. 若外部程序存储器已扩展未画出,请编写程序,要求:1将30H~3FH中的内容送入6264 1 的前16个单元中;6分2将6264 2 的前32个单元的内容送入40H~5FH中;6分试题1 参考答案一、填空题25分,每空1分1. AT89S51单片机为 8 位单片机2. MCS-51系列单片机的典型芯片分别为 8031 、 8051 、 8751 ;3. AT89S51的异步通信口为全双工单工/半双工/全双工4. AT89S51有 2 级中断, 5 个中断源5. AT89S51内部数据存储器的地址范围是 00H~7FH ,位地址空间的字节地址范围是 20H~2FH ,对应的位地址范围是00H~7FH ,外部数据存储器的最大可扩展容量是64K ;6. AT89S51单片机指令系统的寻址方式有__寄存器寻址__、____直接寻址____、___寄存器间接寻址_____、_立即寻址____、基址寄存器加变址寄存器寻址;7. 如果A=34H,R7=0ABH,执行XCH A, R7;结果A= 0ABH ,R7= 34H ;8. 82C55可以扩展 3 个并行口,其中8 条口线具有位操作功能;9. 当单片机复位时PSW= 00 H,这时当前的工作寄存器区是0区,R4所对应的存储单元地址为04 H;10. 若A中的内容为67H,那么,P标志位为 1 ;11. 74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中8片芯片;二、判断以下指令的正误:5分1MOV 28H,R4;×2INC DPTR;√3DEC DPTR ;×4CLR R0 ;×5MOV T0,3CF0H;×三、简答题1、如果DPTR=507BH,SP=32H,30H=50H,31H=5FH,32H=3CH,则执行下列指令后:POP DPH;POP DPL;POP SP;则:DPH= ___3CH___;DPL=___5FH___;SP=___50H___;6分2、采用6MHz的晶振,定时1ms,用定时器方式0时的初值应为多少请给出计算过程6分解:∵采用6MHZ晶振∴机器周期为2us213-X×2×10-6=1×10-3∴X=7692D=1E0CH=1 1110 0000 1100B,化成方式0要求格式为 1111 0000 1100 B即0F00CH综上可知:TLX=0CH, THX=0F0H 3. 分析下列程序的功能5分 PUSH ACC PUSH B POP ACCPOP B解: 该程序的功能是通过累加器ACC 与寄存器B 数据交换; 四、图为8段共阴数码管,请写出如下数值的段码;C _39H_五、简述MCS-51系列单片机主从结构多机通信原理,设有一台主机与三台从机通信,其中一台从机通信地址号为01H,请叙述主机呼叫从机并向其传送一个字节数据的过程;请给出原理图 10分 答:激活RI,然后数据进入1机的缓冲区; 六、简述一种多外部中断源系统的设计方法;给出图和程序10分 答:原理电路如图所示程序如下:INT : PUSH PSW PUSH AJNB , IR0 ;扫描中断请求 JNB , IR1 JNB , IR2 JNB , IR3INTIR :POP A ;返回 POP PSW从机 从机 从机IR0: 中断服务子程序;中断服务AJMP INTIRIR1: 中断服务子程序AJMP INTIRIR2: 中断服务子程序AJMP INTIRIR3: 中断服务子程序AJMP INTIP七、简述行列式扫描键盘的工作原理;8分答:扫描键盘工作原理(1)首先X0~X3,始终接高电平,Y0~Y3给低电平,扫描~若全为高电平,则没有键按下,若有低电平,则有键按下;(2)接着Y0输出低电平,Y1~Y3输出高平,扫描~,若全为高电平,则没有键按下,若有低电平,则找出相位,得到所按的键;(3)再Y1输出低电平,Y0,Y2,Y3输出高电平,重复第2 步骤作.(4)再Y2输出低电平,Y0,Y1,Y3输出高电平扫描(5)再Y3输出低电平,Y0,Y1,Y2输出高电平扫描根据据以上扫描,确定以上各键是否按下;八、请回答:共20分1、下图中外部扩展的数据存储器容量是多少2分2、三片6264的地址范围分别是多少地址线未用到的位填1 6分,3、若外部程序存储器已扩展未画出,请编写程序,要求:(1)将30H~3FH中的内容送入6264 1 的前16个单元中;6分(2)将6264 2 的前32个单元的内容送入40H~5FH中;6分解:1.外部扩展的数据存储器为3片8K的RAM,外扩容量为24 K2. A15 A4 A13 地址范围0 1 1 6000H~7FFFH1 0 1 A000H~BFFFH3.1程序如下:ORG 0000HRESET:AJMP MAIN ;复位,转主程序ORG 0100HMAIN:MOV DPL,00H ;初始化DPTRMOV DPH,60HMOV R0,30H. ;初始化R0LOOP: MOV A,R0MOVX DPTR, AINC R0INC DPTRCJNE R0,40H,LOOPNOPRET(1)程序如下:ORG 0000HRESET:AJMP MAIN ;转主程序ORG 0100HMAIN:MOV DPL00H ;初始化DPTRMOV DPH,0A0HMOV R0,40H ;初始化R0LOOP2: MOVX A,DPTRMOV R0,AINC DPTRINC R0CJNE R0,60H,LOOP2NOPRET试题2 参考答案一、填空题24分,每空1分1.AT89S51单片机是 8 位的单片机;2.AT89S51单片机有 5 个中断源, 2 级优先级中断;3.串行口方式3发送的第9位数据要事先写入SCON 寄存器的 TB8位;/12 ;4.串行口的方式0的波特率为fOSC5.AT89S51内部数据存储器的地址范围是00-7FH ,位地址空间的字节地址范围是20-2FH ,对应的位地址范围是00-7FH外部数据存储器的最大可扩展容量是64KB ; 6.在内部RAM中可位寻址区中,位地址为40H的位,该位所在字节的字节地址为28H ; 7.如果A=58H,R1= 49H,49H= 79H,执行指令XCH A, R1后;结果A= 49 H ,49H= 58H ; 8.利用81C55可以扩展3个并行口,256个RAM单元;9.当单片机复位时PSW=00 H,SP= 07H ,P0~P3口均为高电平;10.若A中的内容为88H,那么,P标志位为0 ;11.当AT89S51执行MOVC A,A+ DPTR指令时,伴随着PSEN 控制信号有效;12.AT89S51访问片外存储器时,利用ALE信号锁存来自P0口发出的低8位地址信号;13.已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为1us ;14.若AT89S51外扩8KB 程序存储器的首地址若为1000H,则末地址为2FFF H;二、判断对错,如对则在中写“√”,如错则在中写“×”;10分1.AT89S51单片机可执行指令:MOV 35H,R3; ×2.8031与8751的区别在于内部是否有程序存储器; √3.当向堆栈压入一个字节的数据后,SP中的内容减1;×4.程序计数器PC中装的内容是当前正在执行指令的地址;×5.某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址;√6.AT89S51单片机中的PC是不可寻址的;√7.当AT89S51执行MOVX DPTR,A指令时,伴随着WR信号有效;×8.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期;×9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被WR还是被PSEN信号连接;√10.各中断源发出的中断请求信号,都会标记在AT89S51的TCON寄存器中;×三、简答题1.如果DPTR=5678H,SP=42H,3FH=12H ,40H=34H,41H=50H,42H=80H,则执行下列指令后:POP DPHPOP DPLRET则:PCH =_34H_;PCL=_12H__;DPH=__80H__;DPL=__50H__;4分2.AT89S51采用6MHz的晶振,定时2ms,如用定时器方式1时的初值16进制数应为多少写出计算过程6分答:机器周期6×106=2×10-6s=2uS又方式1为16进制定时器.故 216—X ×2×10-6=2×10-3=>216-X=1000=>X=65536-1000=64536 即初值=FC18H3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么6分答:不发生数据冲突的原因是:AT89S51中访问程序存储器和数据存储器的指令不一样; 选通信号也就不一样,前者为PSEN,后者为WR 与RD; 程序存储器访问指令为MOVC A,DPTR ;MOVC A,A+pc;数据存储器访问指令为:MOVX A,DPTR ; MOVX A,Ri; MOVX DPTR,A; 4.说明AT89S51的外部引脚EA 的作用4分答:当EA 为高电平时,AT89S51访问内部程序存储器,但当地址大于0FFF 时,自动转到外部程序存储器;当EA 为低电平时,AT89S51只读取外部程序存储器;5.写出AT89S51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么6分 答: 外部中断INT0定时器/计数器中断T0 外部中断INT1 定时器/计数器中断T1 串行口中断其中串行口中断TI 与RI 必须用软件清“0”,因为串口中断的输出中断为TI,输入中断为RI,故用软件清“0”;四、下图为某AT89S51应用系统的3位LED 8段共阳极静态显示器的接口电路,1该静态显示器电路与动态扫描的显示器电路相比有哪些优缺点2写出显示字符“3”、“8”、“5”的段码,注意:段码的最低位为“a ” 段,段码的最高位为“dp ” 段3已知8255A 的PA 口、PB 口和PC 口的地址分别为FF7CH 、FF7DH 、FF7EH,且8255A 的这3个端口均已被编写完毕的初始化程序初始化为方式0输出,请编写出使3位LED 共阳极显示器从左至右显示“”的程序段;14分解:1 优点是:亮度高,缺点是:占用的; 2 3.:→B0H 8:→80H5:→92H 3 MOV DPTR,0FF7CHMOV A,30Ha b cd e f g ● dp 来自AT89S51MOVX DPTR,AMOV DPTR,0FF7DHMOV A ,80HMOVX DPTR,AMVOX DPTR,0FF7EHMOV A,92HMOVX DPTR,ARET五、画出AT89S51系列单片机利用串行口进行1台主机与4台从机多机串行通讯连线图,其中1台从机通讯地址号为02H,请叙述主机向02H从机发送一个字节数据的过程10分答:主机发送数据过程如下:1将从机00~03H的REN置1,SM2=1,并使它们工作在串行口工作方式2或3;2由主机向4个从机发出一帧地址址信息02H,第9位为1;从机接到信息后均发生中断,执行中断服务程序,将02H与自身地址做比较;若相同,则清SM2=0,若不同则SM2不变仍为1;3主机发送一帧数据信息,第9位为0,从机接到信息后,只有SM2=0的从机发生中断,将数据信息收取,其余SM2=1的从机不放出中断,信息丢失,从而实现主机向02H从机发送一个字节数据的功能;六、请回答:共16分1.下图中外部扩展的程序存储器和数据存储器容量各是多少2分2.两片存储器芯片的地址范围分别是多少地址线未用到的位填1 6分,3.请编写程序,要求:1将内部RAM 30H~3FH中的内容送入1 6264的前16个单元中;4分2将2 6264的前4个单元的内容送入40H~43中;4分INC DPTRINC R0DJNZ R1,LOOPRET2 MOV R1,04HMOV DPTR,6000HMOV R0 ,40HLOOP:MOVX A ,DPTRMOV R0 ,AINC DPTRINC R0DJNZ R1,LOOPRET试题2一、填空题24分,每空1分1.AT89S51单片机是位的单片机;2.AT89S51单片机有个中断源, 级优先级中断;3.串行口方式3发送的第9位数据要事先写入寄存器的位;4.串行口的方式0的波特率为 ;5.AT89S51内部数据存储器的地址范围是 ,位地址空间的字节地址范围是,对应的位地址范围是外部数据存储器的最大可扩展容量是 ;6.在内部RAM中可位寻址区中,位地址为40H的位,该位所在字节的字节地址为 ; 7.如果A=58H,R1= 49H,49H= 79H,执行指令XCH A, R1后;结果A= ,49H= ; 8.利用81C55可以扩展个并行口,个RAM单元;9.当单片机复位时PSW=H,SP= ,P0~P3口均为电平;10.若A中的内容为88H,那么,P标志位为 ;11.当AT89S51执行MOVC A,A+ DPTR指令时,伴随着控制信号有效;12.AT89S51访问片外存储器时,利用信号锁存来自发出的低8位地址信号; 13.已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为 ;14.若AT89S51外扩8KB 程序存储器的首地址若为1000H,则末地址为H;二、判断对错,如对则在中写“√”,如错则在中写“×”;10分1.AT89S51单片机可执行指令:MOV 35H,R3;2.8031与8751的区别在于内部是否有程序存储器;3.当向堆栈压入一个字节的数据后,SP中的内容减1;4.程序计数器PC 中装的内容是当前正在执行指令的地址;5.某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址; 6.AT89S51单片机中的PC 是不可寻址的;7.当AT89S51执行MOVX DPTR,A 指令时,伴随着WR 信号有效;8.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期;9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被WR 还是被PSEN 信号连接;10.各中断源发出的中断请求信号,都会标记在AT89S51的TCON 寄存器中; 三、简答题2.如果DPTR=5678H,SP=42H,3FH=12H ,40H=34H,41H=50H,42H=80H,则执行下列指令后:POP DPH POP DPLRET则:PCH =_ _;PCL=_ __;DPH=__ _;DPL=__ _;4分2.AT89S51采用6MHz 的晶振,定时2ms,如用定时器方式1时的初值16进制数应为多少写出计算过程6分3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么6分4.说明AT89S51的外部引脚EA 的作用4分5.写出AT89S51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么6分四、下图为某AT89S51应用系统的3位LED 8段共阳极静态显示器的接口电路,1该静态显示器电路与动态扫描的显示器电路相比有哪些优缺点2写出显示字符“3”、“8”、“5”的段码,注意:段码的最低位为“a ” 段,段码的最高位为“dp ” 段3已知8255A 的PA 口、PB 口和PC 口的地址分别为FF7CH 、FF7DH 、FF7EH,且8255A 的这3个端口均已被编写完毕的初始化程序初始化为方式0输出,请编写出使3位LED 共阳极显示器从左至右显示“”的程序段;14分五、画出AT89S51,其中1台从机通讯地址号为分 六、请回答:共16分 1.下图中外部扩展的程序存储器和数据存储器容量各是多少2.两片存储器芯片的地址范围分别是多少地址线未用到的位填a b cdef g ●dp来自AT89S513.请编写程序,要求:1将内部RAM 30H~3FH中的内容送入1 6264的前16个单元中;4分2将2 6264的前4个单元的内容送入40H~43中;4分123456789成数据;接收时又需把数据转换成数据;10.AT89S51内部数据存储器的地址范围是 ,位地址空间的字节地址范围是,对应的位地址范围是 ,外部数据存储器的最大可扩展容量是;11.AT89S51单片机指令系统的寻址方式有、、、、、、 ;12.AT89S51内部提供个可编程的位定时/计数器,定时器有种工作方式; 二、判断对错,如对则在中写“√”,如错则在中写“×”;10分1.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期;2.判断指令的正误:MOV T0,3CF0H;3.定时器T0中断可以被外部中断0中断4.指令中直接给出的操作数称为直接寻址;5.内部RAM的位寻址区,既能位寻址,又可字节寻址;6.特殊功能寄存器SCON与定时器/计数器的控制无关;7.当AT89S51执行MOVX A,R1指令时,伴随着WR信号有效;8.串行口工作方式1的波特率是固定的,为fosc/32;9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被 RD还是被PSEN信号连接;10.逐次比较型A/D转换器与双积分A/D转换器比较,转换速度比较慢;三、简答题1.AT89S51采用12MHz的晶振,定时1ms,如用定时器方式1时的初值16进制数应为多少写出计算过程6分2.中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别4分3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么6分4.图为8段共阴数码管,请写出如下数值的段码;5分4分四、程序分析:10分外部RAM 3000H,3001H单元的内容分别为55H,0DDH,试分析如下程序,并回答问题;程序1:MOV DPTR,3000HMOV R1,40HMOVX A ,DPTRMOV R1,AINC R1INC DPTRMOVX A,DPTRMOV R1,A问题1:若执行上述程序,则结束后,DPTR值为,R1的内容为,8031内部RAM41H单元的内容,40H单元内容为;在上程序中,若继续执行如下程序:程序2:START:MOV DPTR,3000HMOV R1 ,40HMOV A,R1MOVX DPTR,A问题2、START执行结束后,DPTR的值为,4000H单元的内容为,R1的内容为;问题3:执行如下程序,填出A寄存器的内容;程序3、MOV A、88H,AAHMOV R7:A的内容为:ORL A、R7MOV A,37H,89HMOV R7A的内容为:ANL A,R7A的内容为: _XRL A,R7RET五、简述一种多外部中断源系统的设计方法;给出图和程序 10分六、请回答:共14分1.下图中外部扩展的程序存储器和数据存储器容量各是多少2分2.三片存储器芯片的地址范围分别是多少地址线未用到的位填1 4分,3.请编写程序,要求:(3)将内部RAM 40H-4FH中的内容送入1 6264的前16个单元中;4分(4)将2 6264 的前4个单元的内容送入50H-53H中;4分1234.利用82C55可以扩展3个并行口,其中8条口线具有位操作功能;5.AT89S51访问片外存储器时,利用ALE信号锁存来自 P0口发出的低8位地址信号; 6.若AT89S51外扩32KB 数据存储器的首地址若为4000H,则末地址为BFFF H;7.当AT89S51执行MOVC A,A+PC指令时,伴随着PSEN控制信号有效;8.若A中的内容为67H,那么,P标志位为1;9.AT89S51单片机的通讯接口有串行和并行两种形式;在串行通讯中,发送时要把并行数据转换成串行数据;接收时又需把串行数据转换成并行数据;10.AT89S51内部数据存储器的地址范围是00-7FH,位地址空间的字节地址范围是00-2FH,对应的位地址范围是00-7FH ,外部数据存储器的最大可扩展容量是64KB;11.AT89S51单片机指令系统的寻址方式有寄存器寻址方式、直接寻址方式、立即寻址方式、寄存器间接寻址方式、位寻址方式、基址寄存器加变址寄存器、相对寻址方式 ; 12.AT89S51内部提供2个可编程的16位定时/计数器,定时器有4种工作方式;二、判断对错,如对则在中写“√”,如错则在中写“×”;10分1.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器周期;×2.判断指令的正误:MOV T0,3CF0H;×3.定时器T0中断可以被外部中断0中断×4.指令中直接给出的操作数称为直接寻址;×5.内部RAM的位寻址区,既能位寻址,又可字节寻址;√6.特殊功能寄存器SCON与定时器/计数器的控制无关;√7.当AT89S51执行MOVX A,R1指令时,伴随着WR信号有效;×8.串行口工作方式1的波特率是固定的,为fosc/32;×9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被 RD还是被PSEN信号连接;×10.逐次比较型A/D转换器与双积分A/D转换器比较,转换速度比较慢;×三、简答题1.AT89S51采用12MHz的晶振,定时1ms,如用定时器方式1时的初值16进制数应为多少写出计算过程6分解:采用12MH的晶振,Tcy=1/fosc×12=1/12×10-6×12=1usZ采用定时器方式1为16位定时1ms,设初值为X,则:216-X×1×10-6=1×10-3再将其转化为16进制数为:FC18初值为TXH=FCH TXL=18H2.中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别4分答:RETI除了将压栈的内容出栈外即现场恢复,还清除在中断响应时被置1的AT89S51内部中断优先级寄存器的优先级状态;3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么6分答:AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突;这是因为它们的控制信号不同:1 外扩程序存储器是PSEN信号为其控制信号外扩数据存储器是RD与WR信号为其控制信号2 指令不同,程序存储器用MOVC读取,数据存储器用MOVX存取4.图为8段共阴数码管,请写出如下数值的段码;5分答:静态:显示期间,锁存器输出的段码不变;亮度大,各位LED的段选分别控制;位数多硬件电路复杂动态:所有位段码线并连一起,各位的亮灭靠片选控制端控制,亮度较低,多位控制电路简单四、程序分析:10分外部RAM 3000H,3001H单元的内容分别为55H,0DDH,试分析如下程序,并回答问题;程序1:MOV DPTR,3000HMOV R1,40HMOVX A ,DPTRMOV R1,AINC R14000H3001H5BH6DH7FHINC DPTRMOVX A,DPTRMOV R1,A问题1:若执行上述程序,则结束后,DPTR值为3001H,R1的内容为41H ,8031内部RAM41H 单元的内容 DDH,40H单元内容为__55H__;在上程序中,若继续执行如下程序程序2:START:MOV DPTR,3000HMOV R1 ,40HMOV A,R1MOVX DPTR,A问题2、START执行结束后,DPTR的值为_3000H_,4000H单元的内容为_55H_,R1的内容为__40H___;问题3:执行如下程序,填出A寄存器的内容;程序3、MOV A、88HMOV R,AAH7:A的内容为:__AAH__ORL A、R7MOV A,37HMOV R,89H7A的内容为:__01H _ANL A,R7XRL A,RA的内容为:__88H _7RET五、简述一种多外部中断源系统的设计方法;给出图和程序 10分答:程序如下:ORG 0013H ;的中断入口LJMP INT1 ;┇INT1: PUSH PSW ;保护现场PUSH ACCJB ,IR1 ;高,IR1有请求JB ,IR2 ;高,IR2有请求JB ,IR3 ;脚高,IR1有请求JB ,IR4 ;脚高,IR4有请求INTIR: POP ACC ;恢复现场POP PSWRETI ;中断返回IR1: IR1的中断处理程序AJMP INTIR ; IR1中断处理完毕,跳标号INTIR处执行IR2: IR2的中断处理程序AJMP INTIR ;IR2中断处理完毕,跳标号INTIR处执行IR3: IR3的中断处理程序AJMP INTIR ;IR3中断处理完毕,跳标号INTIR处执行IR4: IR4的中断处理程序AJMP INTIR ;IR4中断处理完毕,跳标号INTIR处执行六、请回答:共14分1.下图中外部扩展的程序存储器和数据存储器容量各是多少2分2.三片存储器芯片的地址范围分别是多少地址线未用到的位填1 4分, 3.请编写程序,要求:(5)将内部RAM 40H-4FH中的内容送入1 6264的前16个单元中;4分(6)将2 6264 的前4个单元的内容送入50H-53H中;4分1A15 A14 A131 0 1地址范围为:A000H-BFFFH3.编写程序1 MOV RO, 40HMOV DPTR, 6000H ;设置数据指针为6000HLOOP:MOV A, RO ;将片内RAM40-4FH中的内容送入A中 MOVX DPTR,A ;将A→DPTR中INC ROINC DPTRCJNE RO,50H,LOOP ;将此子程序循环执行16次RET2 MOV RO, 50HMOV DPTR, 0A000H ;设置数据指针为A000HLOOP: MOVX A, DPTRMOVX RO,A ;将外部数据存储器内容送入到片内中INC ROINC DPTRCJNE RO,54H,LOOP ;将此子程序循环执行4次RET试题4一、填空题37分1. AT89S51单片机芯片共有个引脚,MCS-51系列单片机为位单片机;2. AT89S51的异步通信口为单工/半双工/全双工,3. AT89S51内部数据存储器的地址范围是 ,位地址空间的字节地址范围是 ,对应的位地址范围是 ,外部数据存储器的最大可扩展容量是 ;4. 单片机也可称为或 ;5.当MCS-51执行MOVC A,A+PC指令时,伴随着控制信号有效;6. 当单片机复位时PSW= H,这时当前的工作寄存器区是区,R4所对应的存储单元地址为 H;7. 51系列单片机指令系统的寻址方式有、、、、、、相对寻址也可8. 51系列单片机的典型芯片分别为、、;9. AT89S51的口为双功能口;10. 由AT89S51组成的单片机系统在工作时, 引脚应该接;11. AT89S51外部程序存储器的最大可扩展容量是 ,其地址范围是 ;ROM 芯片2764的容量是 ,若其首地址为 0000H,则其末地址 ;12. AT89S51的中断源有 , , , , ,有个中断优先级;13. AT89S51唯一的一条16位数据传送指令为 ;14. LJMP的跳转范围是,AJMP的跳转范围是,SJMP的跳转范围是;15. 若A中的内容为68H,那么P标志位为;二、简答题13分1. 采用6MHz的晶振,定时2ms,用定时器方式1时的初值应为多少请给出计算过程6分2. AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么4分3.说明AT89S51的外部引脚EA 的作用3分三、编写程序,将外部数据存储器中的5000H —50FFH 单元全部清零10分;四、简述AT89S51单片机主从结构多机通信原理,设有一台主机与三台从机通信,其中一台从机通信地址号为01H,请叙述主机呼叫从机并向其传送一个字节数据的过程;请给出原理图 10分五、简述行列式扫描键盘的工作原理;10分六、图为8段共阴数码管,请写出如下数值的段码;5分;图1b ,为使CPU 分 分注:74LS139是2-4译码器,A 为低端,B 为高端,使能端G 接地表示译码器处于正常译码状态;一、填空题37分 1. AT89S51单片机芯片共有2. AT89S51的异步通信口为3. AT89S51内部数据存储器的地址范围是20H-2FH ,对应的位地址范围是4. 单片机也可称为微控制器 或 嵌入式控制器; 5.当MCS-51执行MOVC A,A+PC 指令时,伴随着 PSEN 控制信号有效; 6. 当单片机复位时PSW = 00 H,这时当前的工作寄存器区是 0区,R4所对应的存储单元地址为 04 H;7. MCS-51系列单片机指令系统的寻址方式有 寄存器寻址 、直接寻址、 寄存器间接b cfhROM1ROM2 空 RAM1 RAM2 存储器地址 0000H 4000H 8000H C000HE000H FFFFH 图1a 地址空图1b 地址译码电A 组B 组寻址、立即寻址、基址加变址、位寻址 ;相对寻址也可8. 51系列单片机的典型芯片分别为AT89S51 、8031 、AT89C51 ;9. AT89S51的 P3口为双功能口;10. 由AT89S51组成的单片机系统在工作时,EA引脚应该接地或0;11. AT89S51外部程序存储器的最大可扩展容量是 64K ,其地址范围是0000H - FFFFH ;ROM芯片2764的容量是8 KB,若其首地址为 0000H,则其末地址 1FFFH ;12. AT89S51的中断源有外中断0, T0 ,外中断1, T1,串行口,有2个中断优先级;13. AT89S51唯一的一条16位数据传送指令为 MOV DPTR,data16;14. LJMP的跳转范围是64K,AJMP的跳转范围是2K B,SJMP的跳转范围是±128 B或256B ;15. 若A中的内容为68H,那么P标志位为 1;二、简答题13分1. 采用6MHz的晶振,定时2ms,用定时器方式1时的初值应为多少请给出计算过程6分答:1 Ts=2us216-X×2us=2ms从而X=64536 ……………4分2 64536=FC18H……………2分2. AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,为什么4分答:因为访问外扩的程序存储器和数据存储器执行的指令不同,所发出的控制信号也就不同;2分读外部数据存储器时,RD信号有效;写外部数据存储器时,WR信号有效;而读外部程序存储器时,PSEN信号有效;由于发出的控制信号不同,且只能有一种信号有效,因此,即使MCS-51外扩的程序存储器和数据存储器有相同的地址空间,也不会发生数据冲突;2分3.说明AT89S51的外部引脚EA的作用3分答:EA是内外程序存储器选择控制信号;1分当EA=0时,只选择外部程序存储器;1分当EA=1时,当PC指针≤0FFFH时,只访问片内程序存储器;当PC指针>0FFFH 时,则访问外部程序存储器1分三、编写程序,将外部数据存储器中的5000H—50FFH单元全部清零10分;答: ORG H 1分MOV DPTR 5000HMOV R0,00HCLR A 3分LOOP : MOVX DPTR,AINC DPTR 3分DJNZ R0,LOOP 2分HERE: SJMP HERE RET或SJMP $ 等1分四、简述AT89S51单片机主从结构多机通信原理,设有一台主机与三台从机通信,其中一台从机通信地址号为01H,请叙述主机呼叫从机并向其传送一个字节数据的过程;请给出原理图 10分答:1 原理图 2分2 将所有从机的REN、SM2置1 1分工作在方式2或3 1分3主机发送一个地址桢01H 1分第9位为1即TB8=1 1分4 各从机接收到后,都发生中断,进入中断服务程序,比较自己的地址与01H是否相同,若相同则将本机SM2置0,否则仍为1 1分5主机发送数据桢,TB8=0 1分各从机接收该数据桢,从机中SM2为0的产生中断,而其它SM2为1的从机不产生中断将信息丢弃,从而实现主机与从机传递数据 2。
单片机原理复习题1答案(1)
单片机复习题1一、填空题。
1、对程序存储器的读操作,只能使用MOVC.2、执行中断返回命令,要从堆栈弹出断点地址,以便去执行被中断的主程序。
从堆栈弹出的断点地址送给PC .3、在寄存器间址寻址方式中,指定寄存器中存放的是操作数地址4、某串行通信中有1个起始位、8个数据位和1个停止位,应选择的异步串行通信方式为方式15、当优先级的设置相同时,若以下几个中断同时发生,中断优先响应的是外部中断06、某单片机中,若fosc=12MHz,则定时器T1的最大定时时间可为65536μs。
7、若原来工作寄存器0组为当前寄存器组,现要改为1组,可以使用的指令是SETB RS08、设堆栈指针SP的值为37H,在子程序调用时把断点地址进栈保护后,SP的值为39H9、串行通信的传送速率单位是波特,波特的单位是位/秒10、当使用8031单片机时,需要扩展外部程序存储器,此时EA应为接地。
11、单片机内有组成微机的主要功能部件___CPU_______、____存储器_______和___I/O口________。
12、用户在堆栈区中进行数据存取时,按照先进后出的原则。
13、51系列基本型单片机有___5___个中断源,其中外部中断0的入口地址为____0003H________。
14、写出符号所表示的含义:PSW: 程序状态字RAM:数据存储器CPU: 中央处理器ROM: 程序存储器SP: 堆栈指针 I/O:输入/输出口15、写出MCS-51指令系统的常用寻址方式为:立即寻址、直接寻址、间接寻址、寄存器寻址。
.16、若由程序设定RS1、RS0=11,则选择的当前工作寄存器组为第___D组_____。
17、8051按指令的功能可分为数据传送类,算术运算类,控制转移类,位操作类等类型18、中断源的自然优先级由高到低排序为: INTO 、 TO 、INT1、T1、 RX或TX 。
19、8051的定时器/计数器有______T0__________、____T1__________两个16位的定时器/计数器。
第4章uCOSII的时钟和中断介绍
#define OS_ENTER_CRITICAL()
asm(“PUSH PSW”) asm(“DI”) #define OS_EXIT_CRITICAL() asm(“POP PSW”)
第2种方法可使CPU中 断允许标志的状态在 临界段前和临阶段后 不发生改变。
一些编译器对插入的行汇编代码优化得并不好,上述办法未必可行, 尤其是堆栈指针相对寻址模式时。
10
开关中断的实现方法1
根据微处理器和C编译器的不同,通过在移植文件OS_CPU.H 中配置OS_CRITICAL_METHOD来选择开/关中断的方法:
• OS_CRITICAL_METHOD==1用处理器指令关中断 • 执行OS_ENTER_CRITICAL( ),关中断 • 执行OS_EXIT_CRITICAL( ) ,开中断;
第 四 章: uC/OS-II的中断和时钟
目标:
介绍uc/osII实时操作系统的中断概念及时间管理,通过 本章的学习,应该掌握如下知识: 1)uC/OSII的中断管理和中断服务程序的 结构 2)uC/OSII的系统时钟及实现方法 3)时间管理服务:延时、取消延时
1
4.1 uC/OS-II的中断
中断:任务在运行过程中,应内部或外部异步事件的请求 中止当前任务,而去处理异步事件所要求的任务的过程叫 做中断。
cpu_sr = get_processor_psw();
disable_interrupts(); /* 处理临界代码*/ set_processor_psw(cpu_sr);
}
第3种方法的前提条件:用户使用C编译器具有扩展功能,用户可获得程序状 态字的值,这样就可以把该值保存在C语言函数的局部变量中,而不必压到 堆栈里。
第4章思考题及习题4参考答案
第4章思考题及习题4参考答案一、填空1.外部中断1的中断入口地址为。
定时器T1的中断入口地址为。
答:0013H;001BH2.若(IP)=B,则优先级最高者为,最低者为。
答:外部中断1,定时器T13.AT89S52单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送入,使程序执行转向中的中断地址区。
答:PC、PC、程序存储器4.AT89S52单片机复位后,中断优先级最高的中断源是。
答:外部中断05.当AT89S52单片机响应中断后,必须用软件清除的中断请求标志是。
答:串行中断、定时器/计数器T2中断二、单选1.下列说法错误的是()。
A. 同一级别的中断请求按时间的先后顺序响应B. 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应C. 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求D. 同级中断不能嵌套答:B2.在AT89S52的中断请求源中,需要外加电路实现中断撤销的是()。
A. 电平方式的外部中断请求B.跳沿方式的外部中断请求C.外部串行中断D.定时中断答:A3.中断查询确认后,在下列各种AT89S52单片机运行情况下,能立即进行响应的是()。
A.当前正在进行高优先级中断处理B.当前正在执行RETI指令C.当前指令是MOV A,R3D.当前指令是DIV指令,且正处于取指令的机器周期答:C4.下列说法正确的是()。
A. 各中断源发出的中断请求信号,都会标记在AT89S52的IE寄存器中B. 各中断源发出的中断请求信号,都会标记在AT89S52的TMOD寄存器中C. 各中断源发出的中断请求信号,都会标记在AT89S52的IP寄存器中D. 各中断源发出的中断请求信号,都会标记在AT89S52的TCON、SCON以及T2CON寄存器中答:D三、判断对错1.定时器T0中断可以被外部中断0中断。
ucos中断处理和时间管理
取消延时函数
延时的任务可以不等延时期满,而是通过其
他任务取消延时而使自己进入就绪状态。
取消延时函数为:
INT8U OSTimeDlyResume( INT8U prio);
INT8U OSTimeDlyResume (INT8U prio) {
OS_TCB *ptcb; 。。。。。。
判断优先级是否有效
三、配置中断源和向量中断控制器
1、中断源初始化: 以定时器1为例,让产生周期为10ms的中断 的参数配置如下:
T1IR = 0xFFFFFFFF; T1TC = 0x00; T1PR = 0x00; T1TCR = 0x01; T1MCR = 0x03; //匹配时产生中断并复位定时器1 T1MR0 = Fpclk/100; //定时时间为10ms
μC/OS-II 用硬件定时器产生一个周期为 ms 级的周期性中断来实现系统时钟,时钟 节拍(Time Tick)就是两次中断之间相间 隔的时间。 硬件定时器以时钟节拍为周期定时地产 生中断,该中断的中断服务程序叫做 OSTickISR( )。中断服务程序通过调用函数 OSTimeTick( )来完成系统在每个时钟节拍 时需要做的工作(如确定任务延时时间是 否结束或等待事件的时限是否已到?。
函数OSTimeTick( )的 任务,就是在每个时 钟节拍了解每个任务 的延时状态,使其中 已经到了延时时限的 非挂起任务进入就绪 状态。
时间服务函数
问题:如何使优先级高 的任务不独占CPU,给其他 任务优先级别较低的任务获 得CPU使用权的机会?
调用延时函数OSTimeDly( ),使当前任 务的延时(暂停)一段时间并进行一次 任务调度,以让出CPU的使用权。 调用挂起函数OSTaskSuspend( ),使当前 任务挂起并进行一次任务调度,以让出 CPU的使用权。 调用等待事件函数OSXXXPend( ),使当 前任务等待某一事件发生并进行一次任 务调度,以让出CPU的使用权。
第4章思考题及习题4参考答案
第4章思考题及习题4参考答案一、填空1.外部中断1的中断入口地址为。
定时器T1的中断入口地址为。
答:0013H;001BH2.若(IP)=00010100B,则优先级最高者为,最低者为。
答:外部中断1,定时器T13.AT89S52单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送入,使程序执行转向中的中断地址区。
答:PC、PC、程序存储器4.AT89S52单片机复位后,中断优先级最高的中断源是。
答:外部中断05.当AT89S52单片机响应中断后,必须用软件清除的中断请求标志是。
答:串行中断、定时器/计数器T2中断二、单选1.下列说法错误的是()。
A. 同一级别的中断请求按时间的先后顺序响应B. 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应C. 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求D. 同级中断不能嵌套答:B2.在AT89S52的中断请求源中,需要外加电路实现中断撤销的是()。
A. 电平方式的外部中断请求B.跳沿方式的外部中断请求C.外部串行中断D.定时中断答:A3.中断查询确认后,在下列各种AT89S52单片机运行情况下,能立即进行响应的是()。
A.当前正在进行高优先级中断处理B.当前正在执行RETI指令C.当前指令是MOV A,R3D.当前指令是DIV指令,且正处于取指令的机器周期答:C4.下列说法正确的是()。
A. 各中断源发出的中断请求信号,都会标记在AT89S52的IE寄存器中B. 各中断源发出的中断请求信号,都会标记在AT89S52的TMOD寄存器中C. 各中断源发出的中断请求信号,都会标记在AT89S52的IP寄存器中D. 各中断源发出的中断请求信号,都会标记在AT89S52的TCON、SCON以及T2CON寄存器中答:D三、判断对错1.定时器T0中断可以被外部中断0中断。
中断服务子程序的格式
中断服务子程序的格式在今天的数字时代中,我们常常会使用各种应用程序和服务。
这些应用程序和服务可以帮助我们完成许多任务,例如写作、发送电子邮件、下载音乐和视频,以及进行网上购物等等。
为了确保这些应用程序和服务能够正常运行,我们需要遵循一些规则和准则。
本文将讨论中断服务子程序的格式。
中断服务子程序是许多应用程序中的一部分,用于在应用程序出现错误或异常时提供帮助。
这些程序通常位于应用程序的根目录中,并使用特定的代码和机制来检测和解决各种问题。
它们的主要作用是使应用程序能够在出现问题时能够自我修复,从而避免崩溃或导致数据丢失。
中断服务子程序的格式因应用程序而异。
不同的应用程序需要不同类型的中断服务子程序来检测和解决问题。
例如,一些应用程序可能需要在应用程序中运行自己的中断服务子程序,以监测用户活动并提供相应的反馈。
其他应用程序可能需要使用第三方服务或插件,这些插件需要在中断服务子程序中运行。
中断服务子程序的代码应该具有可读性、可维护性和可扩展性。
这意味着代码应该使用有意义的变量名、注释和空括号,以提高代码的可读性。
代码还应该具有良好的可维护性,这意味着程序应该能够通过修改来解决问题,而不是通过重新编写整个程序。
此外,代码还应该具有可扩展性,以支持不同的应用程序和场景。
中断服务子程序应该能够检测和解决各种不同类型的问题。
这些程序应该能够自动检测并诊断应用程序中的错误和异常,并提供相应的解决方案。
还应该能够提供一些有用的反馈,以帮助用户更好地理解应用程序的问题和解决方法。
在编写中断服务子程序时,应该遵循一些最佳实践。
应该确保代码具有足够的可读性,以支持代码的维护和修改。
还应该确保代码能够正确地处理各种错误和异常情况,并提供有用的反馈和指导。
此外,应该还应该注意代码的安全性,以避免因代码错误而导致的安全漏洞。
中断服务子程序是应用程序中非常重要的组成部分。
正确地编写和维护这些程序可以帮助我们获得更好的用户体验和更高的应用程序可靠性。
嵌入式系统开发模拟试题(附参考答案)
嵌入式系统开发模拟试题(附参考答案)一、单选题(共100题,每题1分,共100分)1、共享型函数库(动态链接库)的后缀为()A、aB、cC、so正确答案:C2、关于嵌入式系统,以下说法不正确的是()A、主要应用于控制领域,兼顾数据处理B、主要用于数据处理,兼顾控制领域C、嵌入式系统功耗低正确答案:B3、下面交互设备常由嵌入式系统采用的是()A、以上都是B、小键盘C、按钮D、触摸屏正确答案:A4、A/D是将()转换成数字信号的意思。
A、模拟信号B、虚拟信号C、物理信号正确答案:A5、嵌入式系统的实时性可分为软实时性和()。
A、硬实时性B、截止时限C、软实时性正确答案:A6、Linux I/O 操作默认是:A、同步非阻塞模式B、同步阻塞模式C、异步阻塞模式正确答案:B7、()(GNU C Compiler的简称)是一组编译工具的总称,主要任务是预处理和编译,并且提供与编译器相关的运行库的支持。
A、GCCB、abcC、GDD正确答案:A8、μC/OS-II是一个()、源码开放、结构小巧、抢占式的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高、占用空间小、()、实时性能优良和可扩展性强等特点。
A、可裁剪,可移植性强B、可裁剪,可移植性弱C、不可裁剪,可移植性强正确答案:A9、当()进行时,可移植性是要重点考虑的问题A、数学建模B、嵌入式软件开发C、电路设计正确答案:B10、以下那个选项不是驱动程序的组成()。
A、终端服务子程序B、自动配置和初始化子程序C、服务于I/O接口的子程序正确答案:A11、vivi(下载模式)启动Linux核心的命令是()。
A、bootB、partC、load正确答案:A12、不属于字符设备的是()A、简单按键B、U盘C、触摸屏正确答案:B13、设计软件子系统:软件总体设计、()设计。
A、函数设计B、硬件总体C、模块设计正确答案:C14、交叉()是指:在宿主机上进行软件编辑、编译、链接等,并生成能够在目标机上运行的可执行程序的过程。
51单片机汇编中断程序调用子程序
51单片机汇编中断程序调用子程序(原创实用版)目录1.51 单片机汇编中断程序概述2.中断程序的调用方式3.子程序的定义与调用4.中断程序调用子程序的实例分析5.总结正文一、51 单片机汇编中断程序概述在 51 单片机汇编语言编程中,中断是一种常见的编程方式,可以实现在特定条件下程序的跳转和执行。
通过中断程序,可以实现对硬件设备的实时控制,提高程序的执行效率。
二、中断程序的调用方式中断程序的调用方式主要有两种:1.通过外部中断引脚(如 P1.0、P2.0 等)触发中断。
这种方式下,当外部中断引脚的状态发生改变时,单片机会立即跳转到中断程序的入口地址执行。
2.通过软件中断实现中断程序的调用。
这种方式下,程序员可以通过设置特定的寄存器值来触发中断,使程序跳转到中断程序的入口地址执行。
三、子程序的定义与调用子程序,也称为子例程,是程序中一段可独立执行的代码段。
子程序可以通过以下方式定义和调用:1.使用“SUB”伪指令定义子程序。
在需要调用子程序的地方,编写“CALL 子程序名”,即可实现子程序的调用。
2.使用“PROG”伪指令定义子程序。
在需要调用子程序的地方,直接编写子程序名,即可实现子程序的调用。
四、中断程序调用子程序的实例分析假设我们有一个 51 单片机汇编语言程序,当外部中断引脚 P1.0 触发时,需要执行一个子程序以完成特定功能。
程序如下:```ORG 00HMOV P1, #00HMOV R4, #0FFHSTART: NOPINT0: MOV R3, #0FFHCALL INT_SUBROUTINESJMP STARTINT_SUBROUTINE: MOV R5, R3// 子程序执行的内容MOV R3, R5SJMP RETURNRETURN: MOV R4, R3SJMP RETURN_SUBROUTINERETURN_SUBROUTINE: MOV R3, #00HSJMP START```在上述程序中,当 P1.0 引脚触发中断时,程序会跳转到“INT0”标签所在的位置,执行子程序“INT_SUBROUTINE”。