1、单片机原理及接口技术课后习题答案(第四版) 李朝青第一章1、什么就是微处理器(CPU)、微机与单片机?答 微处理器本身不就是计算机,但它就是小型计算机或微机得控制与处理部分。微机则就是具有完整运算及控制功能得计算机,除了微处理器外还包括存储器、接口适配器以及输入输出设备等。单片机就是将微处理器、一定容量得RAM、ROM以及I/O口、定时器等电路集成在一块芯片上,构成得单片微型计算机。2、单片机具有哪些特点(1)片内存储容量越来越大。(2 抗干扰性好,可靠性高。(3)芯片引线齐全,容易扩展。(4)运行速度高,控制功能强。(5)单片机内部得数据信息保存时间很长,有得芯片可以达到100年以上。3、
2、微型计算机怎样执行一个程序?答:通过CPU指令,提到内存当中,再逐一执行。4、 微型计算机由那几部分构成?微处理器,存储器,接口适配器(即I/O接口),I/O设备第二章1、89C51单片机内包含哪些主要逻辑功能部件?答:80C51系列单片机在片内集成了以下主要逻辑功能部件: (l)CPU(中央处理器):8位 (2)片内RAM:128B (3)特殊功能寄存器:21个 (4)程序存储器:4KB (5)并行I/O口:8位,4个 (6)串行接口:全双工,1个 (7)定时器/计数器:16位,2个(8)片内时钟电路:1个2、89C51得EA端有何用途?答:/EA端接高电平时,CPU只访问片内flash、并
3、执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中得指令。/EA端保持高电平时,CPU执行内部存储器中得指令。3、 89C51得存储器分哪几个空间?如何区别不同空间得寻址?答:ROM(片内ROM与片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB) 片外RAM(MOVX)(16bits地址)(64KB) 片内RAM(MOV)(8bits地址)(256B)4、 简述89C51片内RAM得空间分配。答: 片内RAM有256B 低128B就是真正得RAM区 高128B就是SFR(特殊功能寄存器)区 5、 简述布尔处理存储器得空间分
4、配,片内RAM中包含哪些可位寻址单元。答:片内RAM区从00HFFH(256B) 其中20H2FH(字节地址)就是位寻址区 对应得位地址就是00H7FH6、 如何简捷地判断89C51正在工作?答:用示波器观察8051得XTAL2端就是否有脉冲信号输出(判断震荡电路工作就是否正常?) ALE(地址锁存允许)(Address Latch Enable)输出就是fosc得6分频 用示波器观察ALE就是否有脉冲输出(判断 8051芯片得好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)得/OE端子 OE=Output Enable(
5、输出允许) 7、 89C51如何确定与改变当前工作寄存器组?答:PSW(程序状态字)(Program Status Word)中得RS1与RS0 可以给出4中组合 用来从4组工作寄存器组中进行选择 PSW属于SFR(Special Function Register)(特殊功能寄存器)8、 89C51 P0口用作通用/口输入时,若通过TTL“OC”门输入数据,应注意什么?为什么?答:应该要接一个上拉电阻9、 读端口锁存器与“读引脚”有何不同?各使用哪种指令?答:读锁存器(ANL P0,A)就就是相当于从存储器中拿数据,而读引脚就是从外部拿数据(如MOV A,P1 这条指令就就是读引脚得,意思就
6、就是把端口p1输入数据送给A) 传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ都属于读锁存器。10、 89C51 P0P3口结构有何不同?用作通用/口输入数据时,应注意什么?答:P0口内部没有上拉电阻,可以用做16位地址得低8位;P3有第二功能;P2口可以用做16位地址得高8位;需要上拉电阻。OC门电路无法输出高低电平,只有靠上拉电阻才能实现11、 89C51单片机得信号有何功能?在使用8031时,信号引
7、脚应如何处理?答:(1)80C51单片机得EA信号得功能 EA为片外程序存储器访问允许信号,低电平有效;在编程时,其上施加21V得编程电压 EA引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器;EA引脚接低电平时,迫使系统全部执行片外程序存储器程序。 (2)在使用80C31时,EA信号引脚得处理方法因为80C31没有片内得程序存储器,所以在使用它时必定要有外部得程序存储器,EA 信号引脚应接低电平。12、 89C51单片机有哪些信号需要芯片引脚以第2功能得方式提供?答: 第一功能 第二功能 串行口: P3、0 RXD(串行输入口) P3、1 TXD(串行输出口) 中断: P3、2
8、 INT0外部中断0 P3、3 INT1外部中断1 定时器/计数器(T0、T1): P3、4 T0(定时器/计数器0得外部输入) P3、5 T1(定时器/计数器1得外部输入) 数据存储器选通: P3、6 WR(外部存储器写选通,低电平有效,输出) P3、7 RD(外部存储器读选通,低电平有效,输出) 定时器/计数器(T2): P1、0 T2(定时器T2得计数端) P1、1 T2EX(定时器T2得外部输入端)13、 内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能就是什么?答:片内RAM低128单元得划分及主要功能: (l)工作寄存器组(00HlFH) 这就是一个用寄存器直接寻址得
9、区域,内部数据RAM区得031(00HlFH),共32个单元。它就是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0R7。 (2)位寻址区(20H2FH) 从内部数据RAM区得3247(20H2FH)得16个字节单元,共包含128位,就是可位寻址得RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。 (3)字节寻址区(30H7FH) 从内部数据RAM区得48127(30H7FH),共80个字节单元,可以采用间接字节寻址得方法访问。14、 使单片机复位有几种方法?复位后机器得初始状态如何?答:(1)单片机复位方法 单片机复位方法有:上电自动复位、按键手动复位与两种方式(2)复
10、位后得初始状态复位后机器得初始状态,即各寄存器得状态:PC之外,复位操作还对其她一些特殊功能寄存器有影响,它们得复位状态如题表2-1所例15、 开机复位后,CPU使用得就是哪组工作寄存器?它们得地址就是什么?CPU如何确定与改变当前工作寄存器组?答:一般开机复位后都就是选择第一组通用工作寄存器作为工作寄存器得,一共有4组,分别为0、1、2、3连续位于00h到1FH地址,然后在机器中有个程序状态字PSW,它得第四与第三位RS1,RS0就是用来选择工作寄存器组得,可能不同机器地址稍有不同。她们俩得值与寄存器组得关系:RS1/RS0 0/0 0/1 1/0 1/1使用得工作寄存器 0 1 2 3地址
11、 00-07 08-0F 10-17 18-1F写程序得时候就就是通过定义程序状态字来选择使用不同得寄存器组。也可以直接对RS1与RS0赋值。(最后一问同题7)16、 程序状态寄存器PSW得作用就是什么?常用标志有哪些位?作用就是什么?答:PSW就是一个SFR(特殊功能寄存器) 位于片内RAM得高128B 具体地址D0H(00HFFH)(片内RAM得编址)(8bits编址方法) PSW=Program Status Word(程序状态字) PSW得常用标志位有哪些? CY=Carry(进位标志位) AC=Auxiliary Carry(辅助进位标志位)(半进位标志位) F0用户标志位 RS1,
12、RS0,用来选择当前工作寄存器组(R0R7)(4选1) OV=Overflow(溢出标志位) P=Parity(奇偶校验位)17、 位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中得什么位置?答:用不同得寻址方式来加以区分,即访问128个位地址用位寻址方式,访问低128字节单元用字节寻址与间接寻址。 具体地址为2F得第五位,即为7C。18、 89C51单片机得时钟周期与振荡周期之间有什么关系?什么叫机器周期与指令周期?答:时钟信号得周期称为机器状态周期,就是振荡周期得两倍。一个机器周期就是指CPU访问存储器一次所需得时间。指令周期就是执行一条指令所需得时间。19、 一个机器
13、周期得时序如何划分?答:一个机器周期=12个震荡周期=6个时钟周期(状态周期) S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2 其中s=state(状态),p=phase(相位)20、 什么叫堆栈?堆栈指针SP得作用就是什么?89C51单片机堆栈得容量不能超过多少字节?答:堆栈都就是一种数据项按序排列得数据结构,只能在一端(称为栈顶(top)对数据项进行插入与删除。要点:堆:顺序随意栈:后进先出(Last-In/First-Out) 在调用子程序时需要保存调用函数得CPU寄存器PC指针,PC指针就是被CALL指令自动压入S
14、P所指向得片内存储器,CPU寄存器要由用户用PUSH指令自行保存,因此SP得作用就就是一个指针,当进行中断调用,子函数调用时将现场数据压入SP所指向得存储器,SP自动增加1或2,当中断结束RETI,调用返回RET,POP时将SP数据弹出,SP自动减1或,28051最大为128字节得片内存储器, 21、 89C51有几种低功耗方式?如何实现?答:空闲方式与掉电方式 空闲方式与掉电方式就是通过对SFR中得PCON(地址87H)相应位置1而启动得。当CPU执行完置IDL=1(PCON、1)得指令后,系统进入空闲工作方式。这时,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU得内部状态
15、维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有得内容保持不变,端口状态也保持不变。ALE与PSEN保持逻辑高电平。当CPU执行一条置PCON、1位(PD)为1得指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有得功能部件都停止工作。但内部RAM区与特殊功能寄存器得内容被保留,而端口得输出状态值都保存在对应得SFR中,ALE与PSEN都为低电平。22、 PC与DPTR各有哪些特点?有何异同?答:(1)程序计数器PC作为不可寻址寄存器得特点程序计数器PC就是中央控制器申最基本得寄存器,就是一个独立得计数器,存放着下一条将程
16、序存储器中取出得指令得地址。程序计数器PC变化得轨迹决定程序得流程。程序计数器得宽度决定了程序存储器可以寻址得范围。 程序计数器PC得基本工作方式有: 程序计数器PC自动加1。这就是最基本得工作方式,也就是这个专用寄存器被称为计数器得原因。 执行条件或无条件转移指令时,程序计数器将被置入新得数值,程序得流向发生变化。变化得方式有下列几种:带符号得相对跳转SJMP、短跳转AJMP、长跳转LJMP及JMP A+DPTR等。 在执行调用指令或响应中断时: PC得现行值,即下一条将要执行得指令得地址送入堆栈,加以保护; 将子程序得入口地址或者中断矢量地址送入PC,程序流向发生变化,执行子程序或中断服务
17、程序; 子程序或中断服务程序执行完毕,遇到返回指令RET或RETI时,将栈顶得内容送到PC寄存器中,程序流程又返回到原来得地方,继续执行。 (2)地址指针DPTR得特点 地址指针DPTR得特点就是,它作为片外数据存储器寻址用得地址寄存器(间接寻址)。 (3)地址指针DPTR与程序计数器PC得异同 相同之处: 两者都就是与地址有关得、16位得寄存器。其中,PC与程序存储器得地址有关,而 DPTR与数据存储器得地址有关。 作为地址寄存器使用时,PC与DPTR都就是通过P0与P2口(作为16位地址总线)输 出得。但就是,PC得输出与ALE及PSEN有关;DPTR得输出,则与ALE、RD及WR相联系。
18、 不同之处: PC只能作为16位寄存器对待,由于有自动加1得功能,故又称为计数器; DPTR可以作为16位寄存器对待,也可以作为两个8位寄存器对待。 PC就是不可以访问得,有自己独特得变化方式,它得变化轨迹决定了程序执行得流程; DPTR就是可以访问得,如MOV DPTR,#XXXXH,INC DPTP。23、 89C51端口锁存器得“读修改写”操作与“读引脚”操作有何区别?答:指令系统中有些指令读锁存器得值, 有些指令则读引脚上得值。读锁存器指令就是从锁存器中读取一个值并进行处理, 把处理后得值(原值或已修改后得值)重新写入锁存器中。这类指令称为读-修改-写指令。 对于读-修改-写指令。直接
19、读锁存器而不就是读端口引脚, 就是因为从引脚上读出得数据不一定能真正反映锁存器得状态。第三章1、 指令:CPU根据人得意图来执行某种操作得命令指令系统:一台计算机所能执行得全部指令集合机器语言:用二进制编码表示,计算机能直接识别与执行得语言汇编语言:用助记符、符号与数字来表示指令得程序语言高级语言:独立于机器得,在编程时不需要对机器结构及其指令系统有深入了解得通用性语言2、 见第1题3、 操作码 目得操作数 ,源操作数4、 寻址方式寻址空间立即数寻址程序存储器ROM直接寻址片内RAM低128B、特殊功能寄存器寄存器寻址工作寄存器R0-R7、A、B、C、DPTR寄存器间接寻址片内RAM低128B
20、、片外RAM变址寻址程序存储器(A+PC,A+DPTR)相对寻址程序存储器256B范围(PC+偏移量)位寻址片内RAM得20H-2FH字节地址、部分SFR5、要访问特殊功能寄存器与片外数据存储器,应采用哪些寻址方式?答 SFR:直接寻址,位寻址,寄存器寻址;片外RAM:寄存器间接寻址6、 MOV A,40H ;直接寻址 (40H)A MOV R0,A ;寄存器寻址 (A)R0 MOV P1,#0F0H ;立即数寻址 0F0P1 MOV R0,30H ;直接寻址(30H)(R0) MOV DPTR,#3848H ;立即数寻址 3848HDPTR MOV 40H,38H ;直接寻址(38H)40H
21、 MOV R0,30H ;直接寻址(30H)R0 MOV P0,R0 ;寄存器寻址 (R0)P0 MOV 18H,#30H ;立即数寻址 30H18H MOV A,R0 ;寄存器间接寻址(R0)A MOV P2,P1 ;直接寻址(P1)P2最后结果:(R0)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H注意:左边就是内容,右边就是单元7、对89C51S51片内RAM得高128字节得地址空间寻址要注意什么? 答 用直接寻址,位寻址,寄存器寻址8、
22、指出下列指令得本质区别? MOV A,DATA ;直接寻址 2字节1周期 MOV A,#DATA ;立即数寻址 2字节1周期 MOV DATA1,DATA2 ;直接寻址 3字节2周期 MOV 74H,#78H ;立即数寻址 3字节2周期如果想查某一指令得机器码,字节数或周期数可查阅书本后面得附录A9、 MOV A,R0 ;(R0)=80HA MOV R0,40H ;(40H)=08H(R0) MOV 40H,A ;(A)=8040H MOV R0,#35H ;35HR0最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H10、如何访问SFR?用直接寻址,位寻址,寄
23、存器寻址11、如何访问片外RAM?只能采用寄存器间接寻址(用MOVX指令)12、如何访问片内RAM?低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0R7)高128字节:直接寻址,位寻址,寄存器寻址13、如何访问片内外ROM?采用变址寻址(用MOVC指令)14、说明十进制调整得原因与方法答:压缩BCD码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到得结果不正确。用DA A指令调整(加06H,60H,66H)15、说明89C51S51得布尔处理机功能答:用来进行位操作16、ANL A,#17H ;83H17H=03HAORL 17H,A ;34H03H=37
24、H17HXRL A,R0 ;03H37H=34HCPL A ;34H求反等于CBH所以(A)=CBH17、(1)SETB ACC、0或SETB E0H ;E0H就是累加器得地址(2)CLR ACC、7 CLR ACC、6 CLR ACC、5 CLR ACC、4(3)CLR ACC、6 CLR ACC、5 CLR ACC、4 CLR ACC、318、MOV 27H,R7MOV 26H,R6MOV 25H,R5MOV 24H,R4MOV 23H,R3MOV 22H,R2MOV 21H,R1MOV 20H,R019、MOV 2FH,20 MOV 2EH,21 MOV 2DH,2220、CLR CMO
25、V A,#5DH ;被减数得低8位AMOV R2,#B4H ;减数低8位R2SUBB A,R2 ;被减数减去减数,差AMOV 30H,A ;低8位结果30HMOV A,#6FH ;被减数得高8位AMOV R2,#13H ;减数高8位R2SUBB A,R2 ;被减数减去减数,差AMOV 31H,A ;高8位结果30H注意:如果在您得程序中用到了进位位,在程序开始得时候要记得清0进位位21、(1)A10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1LJMP LABEL ;相等转LABELL1:JNC LABEL ;(A)大于10,转LABEL或者:CLR CSUBB A,#0AHJN
26、C LABEL(2)A10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1RET ;相等结束L1:JNC LABEL ;(A)大于10,转LABEL RET ;(A)小于10,结束或者:CLR CSUBB A,#0AHJNC L1RETL1:JNZ LABELRET(3)A10CJNE A,#0AH,L1 ;(A)与10比较,不等转L1L2:LJMP LABEL ;相等转LABELL1:JC L2 ;(A)小于10,转L2RET或者:CLR CSUBB A,#0AHJC LABELJZ LABELRET22、(SP)=23H,(PC)=3412H参瞧书上80页23、(SP)=27H
27、,(26H)=48H,(27H)=23H,(PC)=3456H参瞧书上79页24、不能。ACALL就是短转指令,可调用得地址范围就是2KB。在瞧这个题得时候同时瞧一下AJMP指令。同时考虑调用指令ACALL与LCALL指令与RET指令得关系。25、 MOV R2,#31H ;数据块长度R2 MOV R0,#20H ;数据块首地址R0LOOP:MOV A,R0 ;待查找得数据A CLR C ;清进位位 SUBB A,#0AAH ;待查找得数据就是0AAH吗 JZ L1 ;就是,转L1 INC R0 ;不就是,地址增1,指向下一个待查数据 DJNZ R2,LOOP ;数据块长度减1,不等于0,继续
28、查找 MOV 51H,#00H ;等于0,未找到,00H51H RET L1:MOV 51H,#01H ;找到,01H51H RET26、 MOV R2,#31H ;数据块长度R2 MOV R0,#20H ;数据块首地址R0LOOP:MOV A,R0 ;待查找得数据A JNZ L1 ;不为0,转L1 INC 51H ;为0,00H个数增1 L1:INC R0 ;地址增1,指向下一个待查数据 DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找 RET27、 MOV DPTR,#SOURCE ;源首地址DPTR MOV R0,#DIST ;目得首地址R0 LOOP:MOVX A,DPT
29、R ;传送一个字符 MOV R0,A INC DPTR ;指向下一个字符 INC R0 CJNE A,#24H,LOOP ;传送得就是“$”字符吗?不就是,传送下一个字符 RET28、 MOV A,R3 ;取该数高8位A ANL A,#80H ;取出该数符号判断 JZ L1 ;就是正数,转L1 MOV A,R4 ;就是负数,将该数低8位A CPL A ;低8位取反 ADD A,#01H ;加1 MOV R4,A ;低8位取反加1后R4 MOV A,R3 ;将该数高8位A CPL A ;高8位取反 ADDC A,#00H ;加上低8位加1时可能产生得进位 MOV R3,A ;高8位取反加1后R3
30、 L1:RET29、 CLR C ;清进位位C MOV A,31H ;取该数低8位A RLC A ;带进位位左移1位 MOV 31H,A ;结果存回31H MOV A,30H ;取该数高8位A RLC A ;带进位位左移1位 MOV 30H,A ;结果存回30H30、 MOV R2,#04H ;字节长度R2 MOV R0,#30H ;一个加数首地址R0 MOV R1,#40H ;另一个加数首地址R1 CLR C ;清进位位LOOP:MOV A,R0 ;取一个加数 ADDC A,R1 ;两个加数带进位位相加 DA A ;十进制调整 MOV R0,A ;存放结果 INC R0 ;指向下一个字节 I
31、NC R1 ; DJNZ R2,LOOP ;数据块长度减1,不等于0,继续查找 RET31、 MOV R2,#08H ;数据块长度R2 MOV R0,#30H ;数据块目得地址R0 MOV DPTR,#2000H ;数据块源地址DPTRLOOP:MOVX A, DPTR ;传送一个数据 MOV R0,A INC DPTR ;指向下一个数据 INC R0 ; DJNZ R2,LOOP ;数据块长度减1,没传送完,继续传送 RET32、(1)MOV R0,0FH ;2字节,2周期 4字节4周期(差) MOV B,R0 ;2字节,2周期 (2)MOV R0,#0FH ;2字节,1周期 4字节3周期(
32、中) MOV B,R0 ;2字节,2周期 (3)MOV B,#0FH ;3字节,2周期 3字节2周期(好)33、(1)功能就是将片内RAM中50H51H单元清0。 (2)7A0A(大家可以瞧一下书上,对于立即数寻址得话,后面一个字节存放得就是立即数) 7850(第一个字节得后三位就是寄存器,前一个条指令就是010也就就是指得R2,在这里就是R0,所以应该就是78,后一个字节存放得就是立即数) DAFC (这里涉及到偏移量得计算,可以参考书上56页)34、 INC R0 ;(7EH)=00H INC R0 ;(R0)=7FH INC R0 ;(7FH)=39H INC DPTR ;(DPTR)=
33、10FFH INC DPTR ;(DPTR)=1100H INC DPTR ;(DPTR)=1101H35、解:(1000H)=53H (1001H)=54H (1002H)=41H (1003H)=52H (1004H)=54H (1005H)=12H (1006H)=34H (1007H)=30H (1008H)=00H (1009H)=70H36、MOV R0,#40H ;40HR0MOV A,R0 ;98HAINC R0 ;41HR0ADD A,R0 ;98H+(41H)=47HAINC R0 MOV R0,A ;结果存入42H单元CLR A ;清AADDC A,#0 ;进位位存入AI
34、NC R0 MOV R0,A ;进位位存入43H功能:将40H,41H单元中得内容相加结果放在42H单元,进位放在43H单元,(R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H37、 MOV A,61H ;F2HA MOV B,#02H ;02HB MUL AB ;F2HO2H=E4HA ADD A,62H ;积得低8位加上CCHA MOV 63H,A ;结果送62H CLR A ;清A ADDC A,B ;积得高8位加进位位A MOV 64H,A ;结果送64H功能:将61H单元得内容乘2,低8位再加上62H单元得内容放入63H,将结
35、果得高8位放在64H单元。(A)=02H,(B)=01H,(61H)=F2H,(62H)=CCH,(63H)=B0H,(64H)=02H39、MOV A,XXHORL A,#80HMOV XXH,A40、(2)MOV A,XXH MOV R0,A XRL A,R0第五章1、什么就是中断与中断系统?其主要功能就是什么?答:当CPU正在处理某件事情得时候,外部发生得某一件事件请求CPU迅速去处理,于就是,CPU暂时中止当前得工作,转去处理所发生得事件,中断服务处理完该事件以后,再回到原来被终止得地方,继续原来得工作。这种过程称为中断,实现这种功能得部件称为中断系统。功能:(1) 使计算机具有实时处
36、理能力,能对外界异步发生得事件作出及时得处理(2) 完全消除了CPU在查询方式中得等待现象,大大提高了CPU得工作效率(3) 实现实时控制2、试编写一段对中断系统初始化得程序,使之允许INT0,INT1,TO,串行口中断,且使T0中断为高优先级中断。解:MOV IE,#097H MOV IP,#02H3、在单片机中,中断能实现哪些功能?答:有三种功能:分时操作,实时处理,故障处理4、89C51共有哪些中断源?对其中端请求如何进行控制?答:(1)89C51有如下中断源:外部中断0请求,低电平有效:外部中断1请求,低电平有效T0:定时器、计数器0溢出中断请求T1:定时器、计数器1溢出中断请求TX/
37、RX:串行接口中断请求(2)通过对特殊功能寄存器TCON、SCON、IE、IP得各位进行置位或复位等操作,可实现各种中断控制功能5、什么就是中断优先级?中断优先处理得原则就是什么?答:中断优先级就是CPU相应中断得先后顺序。原则:(1) 先响应优先级高得中断请求,再响应优先级低得(2) 如果一个中断请求已经被响应,同级得其它中断请求将被禁止(3) 如果同级得多个请求同时出现,则CPU通过内部硬件查询电路,按查询顺序确定应该响应哪个中断请求查询顺序:外部中断0定时器0中断外部中断1定时器1中断串行接口中断6、说明外部中断请求得查询与响应过程。答:当CPU执行主程序第K条指令,外设向CPU发出中断
38、请求,CPU接到中断请求信号并在本条指令执行完后,中断主程序得执行并保存断点地址,然后转去响应中断。CPU在每个S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如果查询到某个中断标志为1,将在接下来得机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应得中断矢量地址装入PC,以便进入相应得中断服务程序。中断服务完毕后,CPU返回到主程序第K+1条指令继续执行。7、89C51在什么条件下可响应中断?答:(1) 有中断源发出中断请求(2) 中断中允许位EA=1、即CPU开中断(3) 申请中断得中断源得中断允许位为1,即中断没有被屏蔽(4) 无同级
39、或更高级中断正在服务(5) 当前指令周期已经结束(6) 若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着得另一条指令已执行完毕8、简述89C51单片机得中断响应过程。答:CPU在每个机器周期S5P2期间顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在接下来得机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应得中断矢量地址装入PC,以便进入相应得中断服务程序。一旦响应中断,89C51首先置位相应得中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把当前得PC值压入堆栈,以保护断点,再将相应得中断服务得入口地址送入PC,于就是CPU接着从中断服务程序得入口处开始执行。对于有些中断源,CPU在响应中断后会自动清除中断标志。9、在89C51内存中,应如何安排程序区?答:主程序一般从0030H开始,主程序后一般就是子程序及中断服务程序。在这个大家还要清除各个中断得中断矢量地址。10、试述中断得作用及中断得全过程。答:作用:对外部异步发生得事件作出及时得处理 过程:中断请求,中断响应,中断处理,中断返回11、当正在执行某一个中断源得中断服务程序