《单片机原理与应用课后答案(第二版).pdf》由会员分享,可在线阅读,更多相关《单片机原理与应用课后答案(第二版).pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机原理与应用课后答案(第二版)单片机原理与应用课后答案(第二版)2-1.80512-1.8051单片机芯片内部包含哪些主要逻辑功能部件?答:一个8位微处理器(CPU);片内数据存储器RAM;片内程序存储器ROM;四个8位并行I/O口P0P3;两个定时器/计数器;五个中断源的中断控制系统;一个UART(通用异步接收发送器)的串行I/O口;片内振荡器和时钟产生电路。2-22-2、80518051存储器分哪几个地址空间?如何区别不同空间寻址?答:片内、外统一编址的64KB程序存储器;片内256B数据存储器;片外64KB数据存储器。硬件:引脚接高电平时CPU从片内0000H单元开始取指令,接低电平
2、时CPU直接访问片外EPROM。EA 软件:MOV指令访问片内数据存储器,MOVX 指令访问片外数据存储器,MOVC指令用于读取程序存储器中的常数。2-3.2-3.简述80518051片内RAMRAM的空间分配。答:低128B位数据存储器区分为:工作寄存器区(00H1FH);位寻址区(20H2FH);一般数据存储区(30H7FH)高128B数据存储器区离散地分布着21个特殊功能寄存器2-4.2-4.简述直接位寻址区的空间分配,片内RAMRAM中包含哪些可位寻址单元?答:MCS-51单片机片内RAM中有两个区域可进行位寻址:(1)片内RAM低128字节的位寻址区,地址为20H2FH的16个字节单
3、元共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作,128位的位地址定义为00H7FH。(2)片内RAM高128字节的存储器区,有21个特殊功能寄存器。其中字节地址正好能被8整除的字节单元中的每一位都可以按位寻址、操作。14 2-52-5 80518051的P0P3P0P3口有何不同,用作通用I/OI/O口输入数据时应注意什么?答:P0P3口功能不完全相同。(1)访问外扩展存储器时,P2口送出16位地址的高8位地址,P0口先送出16位地址的低8位地址,再做数据的输入/输出通道。(2)在无片外扩展存储器的系统中,P0、P2口不需要做地址口时,和P1、
4、P3口一样,都可作为准双向通用I/O口使用。P0的输出级无上拉电阻,在作为通用I/O口时需外接上拉电阻,且P0口的每一位输出可驱动8个TTL负载,而P0P3口的输出级接有上拉负载电阻,每一位输出可驱动4个TTL负载。在作通用I/O输入数据时应注意:应先对相应的端口锁存器写1,防止误读。2-6.80512-6.8051单片机引脚有何功能?在使用80318031时,引脚应如何处理?EAEA 答:引脚为外部程序存储器地址允许输入端,其电平的高低决定了系统复位后CPU是从片内程序存储器还是片外扩展存储器的0000H字节单元开始取指令。EA(1)当引脚接成高电平时,CPU首先从片内0000H字节单元开始
5、取指令执行程序,当指令地址寄存器PC中的内容超过0FFFH后,就自动转向片外扩展的EPROM中取指令执行,这时芯片外部的重叠地址为0000H0FFFH的低4KB EPROM忽略不用。EA(2)当引脚接成低电平时,复位后CPU直接从片外EPROM的0000H字节单元开始取指令执行,这时芯片内部0000H0FFFH的4KB单元被忽略不用。EA 在使用8031时,由于其内部没有ROM/EPROM,所以必须使用外部扩展程序存储器,它的引脚应该接成低电平,CPU直接从片外扩展的EPROM中取指令执行。EA 2-7.80512-7.8051单片机有哪些信号需要芯片以第二功能的方式提供?答:(1)VPD(9
6、脚):片内RAM备用电源的输入端。(2)(30脚):对于片内带有可编程序存储器的芯片,作为编程写入的编程脉冲输入端,把编写好的程序指令代码存入程序存储器中。PROG(3)VPP(31脚):对于片内有EPROM的芯片固化程序时,它作为是加高编程电压的输入端。(4)RXD(10脚):串行口通信数据输入线。(5)TXD(11脚):串行口通信数据输出线。(6)(12脚):外部中断0输入信号。INT0(7)(13脚):外部中断1输出信号。INT1(8)T0(14脚):定时器0的脉冲信号外部输入。(9)T1(15脚):定时器1的脉冲信号外部输入。15(10)(16脚):CPU至片外数据存储器的“写选通控制
7、”输出。WR(11)(17脚):CPU至片外数据存储器的“读选通控制”输出。RD 2-8.2-8.内RAMRAM低128B128B单元划分为哪三个主要区域?各区域主要功能是什么?答:地址范围为00H7FH的128字节单元,按功能特点划分为不同的几个区,分述如下。(1)工作寄存器区地址范围为00H1FH的32字节存储器单元,分为四个组,每组有8个工作寄存器字节单元,定名为R0、R1、R2、R3、R4、R5、R6和R7。通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可选作CPU的当前工作寄存器组。(2)位寻址区地址为20H2FH的16个字节单元中共128位,每一
8、位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。(3)一般数据存储区地址范围为30H7FH的区域,可用于原始数据及运算结果的存储。值得注意的是,30H7FH中一部分字节单元可以开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区堆栈。2-9.2-9.单片机系统复位有哪几种方法?复位后特殊功能寄存器初始状态如何?答:使单片机系统复位有两种方法:上电自动复位和按键手动复位系统复位的主要功能就是把PC初始化为0000H,使单片机从0000H单元开始执行程序,另外,系统复位还使一些特殊功能寄存器恢复到复位状态。PC:0000H ACC:00H PSW:00H SP:
9、07H DPTR:0000H P03:FFH IP:*000000B IE:0*000000B TMOD:00H TCON:00H TL0:00H TH0:00H TL1:00H TH1:00H SCON:00H SBUF:不定PCON:0*0000B 2-10.2-10.开机复位后,CPUCPU使用那组工作寄存器作为当前工作寄存器?它们的地址是什么?答:开机复位后,由于(RS1=0,RS0=0),CPU使用第0组工作寄存器作为当前工作寄存器,它的地址为00H07H.2-11.CPU2-11.CPU如何确定和改变当前工作寄存器组?答:通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的
10、内容,每组工作寄存器均可被选作当前工作寄存器。RS1 RS0 当前工作寄存器0 0 第0组0 1 第1组16 1 0 第2组1 1 第3组2-132-13位寻址与字节单元地址7CH7CH如何区别?位地址7CH7CH、具体在片内RAMRAM的什么位置?答:8051采用不同的寻址方式和指令分别对位和字节进行不同的操作,如SETB 20H指的是20H位单元的内容置为1,而MOV 20H,#0FFH指的是内RAM20H字节单元的内容变为FFH。位地址7CH在内RAM低128字节的2FH字节单元的第四位。2-14.80512-14.8051单片机时钟周期与振荡周期之间有什么关系?答:8051单片机的时钟
11、周期为振荡周期的两倍。2-152-15 一个机器周期的时序是怎样划分的?答:MCS-51系列单片机工作的一个机器周期由6个S状态周期组成,即S1S6,每个状态又持续两个振荡周期,即P1和 P2 两 拍,故 一 个 机 器 周 期 包 括 12 个 振 荡 周 期。一 个 机 器 周 期 具 体 分 为S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,S5P2,S6P1,S6P2共12状态拍。若采用12MHZ晶体振荡器,则每个机器周期恰为1 s。2-16.2-16.什么叫堆栈?堆栈指针SPSP的作用是什么?80518051单片机堆栈容量不能超过多少字节?答
12、:一般在30H7FH的地址范围内,有一部分字节单元可开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区,就叫堆栈。SP为堆栈指针,它始终存放堆栈顶部字节单元的地址(栈顶指针),数据压栈时,SP首先自动加1,然后数据压入SP内容指示的字节单元中;而数据出栈时,SP内容指示的字节单元中的数据弹出,然后SP自动减1,这样SP始终指向堆栈顶部字节单元的地址。8051单片机堆栈容量最多不能超过128字节。初始化后,(SP)=07H,如果CPU使用工作寄存器1组,那么堆栈和工作寄存器将发生冲突,因此常把堆栈移至307FH区域之中。2-17.2-17.分析原教材中说明图2-162-16系统中各信号线的
13、作用。答:P1口用作一般I/O口,P1.0,P1.1,P1.2通过光电隔离电路向三相步进电机的功率放大电路顺序地发出步进脉冲信号;P1.6和P1.7作为输入,检测控制步进电机的正反转的按键状态;XTAL1和XTAL2接外部时钟电路,为系统提供振荡时钟;P0口分时用作地址/数据总线,取指令时输出低8位地址,经地址锁存器74LS373锁存,其它时间P0口用作数据总线输出8位数据;高5位地址由P2.0P2.4提供;ALE作为地址输出锁存控制端;接地,CPU直接从外扩EPROM中取指令执行;为程序存储器输出允许控制端,在CPU读取EPROM中数据时,EAPSEN17 使 EPROM 输出指令。3-1
14、3-1 什么是寻址方式?MCS-51MCS-51单片机有哪几种寻址方式?对80318031内部RAMRAM的128255128255字节地址的空间寻址要注意什么?答:寻址方式是如何找到存放被操作数据的位置(地址)的方法;MCS-51单片机有七种寻址方式:寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址间接寻址、相对寻址和位寻址;8031内部RAM的128255字节为特殊功能寄存器区,只允许使用直接寻址方式。3-6 3-6 若要完成以下数据传送,如何应用MCS-51MCS-51指令予以实现?(1)R1的内容传送到R0:MOV A,R1 MOV R0,A(2)外部RAM 20H单元的内容送入
15、R0:MOV R1,#20H MOVX A,R1 MOV R0,A(1)外部RAM 0020H单元的内容送内部RAM 20H单元:MOV R0,#20H MOVX A,R0 MOV 20H,A(2)外部RAM 1000H单元内容送内部RAM 20H单元:MOV DPTR,#1000H MOVX A,DPTR31 MOV 20H,A(3)外部ROM 2000H单元内容送R0:MOV A,#00H MOV DPTR,#2000H MOVC A,A+DPTR MOV R0,A(4)外部ROM 2000H单元内容送内部RAM 20H单元:MOV A,#00H MOV DPTR,#2000H MOVC
16、A,A+DPTR MOV 20H,A(5)外部ROM 2000H单元内容送外部RAM 0020H单元:MOV A,#00H MOV R0,#20H MOV DPTR,#2000H MOVC A,A+DPTR MOVX R0,A 3-8 3-8 已知SP=25HSP=25H,PC=2345HPC=2345H,标号LABELLABEL所在的地址为3456H3456H,问执行长调用指令LCALL LCALL LABELLABEL后,堆栈指针和堆栈的内容发生什么变化?PCPC值等于什么?答:(SP)=27H,(26H)=48H,(27H)=23H;(PC)=3456H 3-9 3-9 上题中的LCAL
17、LLCALL指令能否直接换成ACALLACALL指令,为什么?如果使用ACALLACALL指令,则可调用的地址范围是什么?答:不能,因为LABEL所在地址3456H与PC不在同一2 KB范围内,即高5位地址不同。若要使用ACALL指令,可调用的地址范围是2000H27FFH。3-10 3-10 有一个1616位二进制数,高8 8位存于21H21H单元,低8 8位存于20H20H单元。执行如下程序段,试问:程序段功能是什么?能否用MOVMOV代替程序段中的XCHXCH语句而不改变程序的逻辑功能?写出相应程序段。两个程序段结果是否相同?差别在哪里?CLR C CLR C XCH AXCH A,21
18、H 21H RRC A RRC A XCH AXCH A,21H21H32 XCH AXCH A,20H 20H RRC A RRC A XCH AXCH A,20H 20H 答:(1)程序段的功能是将此16位二进制数除2后取整(2)能用MOV代替程序段中的XCH语句而不改变程序的逻辑功能,如下:CLR C MOV A,21H RRC A MOV 21H,A MOV A,20H RRC A MOV 20H,A 两个程序段结果不相同。原程序执行后A的内容为程序运行前A中内容,即此程序没有改变A中内容;MOV语句程序中A 的内容为原20H单元内容右移一位后的内容。3-11 3-11 分析以下程序段
19、运行的结果。若将DA ADA A指令取消,则结果会有什么不同?CLR C CLR C MOV 20HMOV 20H,#99H#99H MOV AMOV A,20H 20H ADD AADD A,#01H#01H DA A DA A MOV 20HMOV 20H,A A 答:结果为(20H)=00H,CY=1。若取消DA A指令,(20H)=9AH,CY=0。3-12 3-12 由于SJMPSJMP指令的转移范围是256B256B,而AJMPAJMP指令转移范围是2KB2KB,所以在程序中SJMPSJMP指令都可以用AJMPAJMP指令来代替。”请问这种说法是否正确,为什么?答:不正确。AJMP
20、转移的目标地址必须在AJMP后面指令的第一个字节开始的同一2KB范围内,不能改变高5位地址,因此,即使相邻很近的两个地址,只要它的高5位发生改变,就不能跳转。而SJMP可以通过几次跳转,最终到任意目标地址。3-13 3-13 使用位操作指令实现下列逻辑操作,要求不更改单元其他位的内容。解:(1)使Acc.0置1:SETB Acc.0(2)清除累加器的高四位:ANL A,#0FH 或 CLR Acc.733 CLR Acc.6 CLR Acc.5 CLR Acc.4(3)清除Acc.3,Acc.4,Acc.5,Acc.6:ANL A,#87H 或 CLR Acc.3 CLR Acc.4 CLR
21、Acc.5 CLR Acc.6 3-14 3-14 将片内RAM RAM 中0FH0FH单元的内容传送到寄存器B B,对0FH0FH单元的寻址可有三种方法:R R寻址、R R间址、DirectDirect寻址。请分别编出相应的程序,比较其字节数、机器周期和优缺点。答:R寻址:MOV R0,0FH;2字节,双周期MOV 0F0H,R0;2字节,双周期R间址:MOV R0,#0FH;2字节,单周期MOV 0F0H,R0;2字节,双周期Direct寻址:MOV A,#0FH;2字节,单周期MOV 0F0H,A;2字节,单周期3-15 3-15 怎样把位40H40H的内容移至30H30H位?答:MOV
22、 C,40H MOV 30H,C 3-16 3-16 编写一段程序,模拟如图3-13-1所示逻辑电路的逻辑功能。要求将4 4个输入与非门的功能模拟先写成一个子程序,然后多次调用得到整个电路的功能模拟。设X X,Y Y,Z Z、WW和F F都已定义为位地址,若程序中还需要其它位地址,也可另行定义。提示:首先用伪指令定义X,Y,Z,W,F是单片机引脚端口位,然后再编程,注意34 操作对象是位单元,应该使用位逻辑指令。4-1 4-1 两个4 4位BCDBCD码数相加求和。设被加数存于内部RAMRAM的40H40H、41H41H单元,加数存于45H45H、46H46H单元,要求和数存于50H50H、5
23、1H51H单元(均前者为低二位,后者为高二位)。请编制加法程序段。若进行BCDBCD码减法运算,应如何考虑。解:程序如下:CLR C MOV A,40H ADD A,45H DA A MOV 50H,A MOV A,41H ADDC A,46H DA A MOV 51H,A CLR A ADDC A,#00H MOV 52H,A 编写多字节十进制(BCD码)减法程序段:设被减数低字节地址存R0中,减数低字节地址存R1中,字节数存R3中。相减的结果依次存于原被减数单元。START:SETB C SUBA:CLR A ADDC A,#99H;加99 SUBB A,R1;减去减数ADD A,R0;作
24、加法,加上被加数DA A;十进制调整MOV R0,A;存入对应的被减数单元INC R0;指向下一个字节单元INC R1 DJNZ R3,SUBA;若(R3)一10,继续作减法RET 注意:80C51中的十进制调整指令(DA A)只能用于二进制加法指令之后,不能用于二进制减法结果的调整。进行十进制(BCD码)减法只能采用先求减数的十进制补码,然后把结果与被减数相加。如果被减数为A,减数为B,十进制的位数为n,则A-BA+BbuA+10n-BA+99+1-B99+1-B+A 式中:99的个数为n。4-2 4-2 试编写程序,查找在内部RAM 20H-50HRAM 20H-50H单元中出现00H00
25、H的次数,并将查找的结果存入51H51H单元。解:程序如下:MOV R0,#20H MOV R7,#31H MOV 51H,#00H LOOP1:CJNE R0,#00H,LOOP INC 51H LOOP:INC R0 DJNZ R7,LOOP1 HERE:SJMP HERE 4-3 4-3 晶振频率为12MHz12MHz,请用循环转移指令编制延时20ms20ms的延时子程序。解:一个机器周期为1us,延时20ms需要机器周期数20000us/1us=20000 延时程序如下:MOV R5,#T1;1个机器周期LOOP2:MOV R4,#T2;T1个机器周期LOOP1:NOP;T1*T2个机
26、器周期NOP;T1*T2个机器周期DJNZ R4,LOOP1;2*T1*T2个机器周期DJNZ R5,LOOP2;2*T1个机器周期RET;1个机器周期总计时:1+3T1+4T1T2+1=20000 则:T1=202=0CAH,T2=24=18H(答案不唯一,T1与T2的值255)4-4 4-4 已知两个八位无符号数a a、b b存放在BUFBUF和BUF+1BUF+1单元,编写程序计算5a+b5a+b,结果可能大于8 8位,仍放回BUFBUF和BUF+1BUF+1单元(BUF+1(BUF+1单元为高字节)。解:根据题意,编写程序如下:MOV A,BUF MOV B,#05H MUL AB C
27、LR C ADD A,BUF+1 MOV BUF,A MOV A,BADDC A,#00H MOV BUF+1,A 4-5 4-5 外部数据RAMRAM从2000H2000H到2100H2100H有个数据块,现要将它们传送到从3000H3000H到3100H3100H的区域,试编写有关程序。方法1:MOV P2,#20H MOV R0,#00H MOV R2,#00H LOOP:MOVX A,R0;P2口即高八位地址SETB P2.4;20H30H MOVX R0,A CLR P2.4;30H20H INC R0 DJNZ R2,LOOP MOV DPTR,#2100H MOVX A,DPTR
28、 MOV DPTR,#3100H MOVX DPTR,A 方法2 MOV DPTR,#3000H PUSH DPL PUSH DPH;压栈保护目标地址MOV DPTR,#2000H MOV R2,#01H MOV R3,#01H;数据长度送R3R2 LOOP:MOVX A,DPTR INC DPTR MOV R5,DPH MOV R4,DPL;源地址加1保护POP DPH POP DPL;弹出目标地址MOVX DPTR,A INC DPTR PUSH DPL PUSH DPH;目标地址加1 压栈保护MOV DPH,R5 MOV DPL,R4;取出源地址37 CLR C MOV A,R2 SUB
29、B A,#01H MOV R2,A;数据区长度低8位减1 MOV A,R3 SUBB A,#00H MOV R3,A;数据区长度高8位减借位位ORL A,R2;(R3)与(R2)相或JNZ LOOP;两者全零时,101H个数传送完毕。HERE:SJMP HERE 4-6 4-6 求1616位带符号二进制补码数的绝对值。假定补码放在内部RAMRAM的numnum和num+1num+1单元,求得的绝对值仍放在原单元中。(设num+1num+1中内容为高8 8位)解:根据题意,编写子程序如下:ABC:MOV A,num+1 JB ACC.7,FUSHU;最高位为1,负数,转移处理RET;正数,补码即
30、绝对值FUSHU:MOV R0,#num MOV A,R0 CPL A ADD A,#01H;低8位取反加1 MOV R0,A INC R0 MOV A,R0 CPL A ADDC A,#00H;高8位取反加1,同时加进位位MOV R0,A RET 4-7 4-7 下列程序段经汇编后,从1000H1000H开始的各有关存储单元的内容是什么?ORG 1000H TAB1 EQU 1234H TAB2 EQU 3000H DB“START”DW TAB1,TAB2,70H 答:1000H:53H;1001H:54H;1002H:41H;1003H:52H;1004H:54H 1005H:12H;1
31、006H:34H;1007H:30H;1008H:00H;1009H:00H38 100AH:70H 4-8 4-8 编程将20H20H单元中的两个BCDBCD数拆开,并变成相应的ASCIIASCII码存入21H21H和22H22H单元。解:根据题意,编写程序如下:MOV R0,#22H MOV R0,#00H MOV A,20H XCHD A,R0 ORL 22H,#30H;转换低4位SWAP A ORL A,#30H;转换高4位MOV 21H,A HERE:SJMP HERE 4-9 4-9 存放在片内RAMRAM的DATDAT单元中的自变量X X中是一个无符号数,试编写程序求下面函数的函
32、数值并存放到片内RAMRAM的FUNCFUNC单元中。解:根据题意设计程序如下:MOV A,DAT CJNE A,#32H,LOOP LOOP:JNC DONE CJNE A,#14H,LOOP1 LOOP1:JC LOOP2 RL A RL A ADD A,DAT SJMP DONE LOOP2:RL A DONE:MOV FUNC,A HERE:SJMP HERE 4-11 4-11 已知片内RAMRAM以ADDRADDR为起始地址的区域中存放着2424个无符号数,试编写程序找出最小值,并存入MINMIN单元。解:根据题意,编写程序如下:MOV R0,#ADDR;数据区首地址39 MOV
33、R7,#18H;数据区长度MOV A,R0;读第一个数DEC R7 LOOP:INC R0 MOV 2AH,R0;读下一个数CJNE A,2AH,CHK;数值比较CHK:JC LOOP1;A值小转移MOV A,R0 LOOP1:DJNZ R7,LOOP;继续MOV 2BH,A;极值送2BH单元HERE:AJMP HERE;停止6-16-1什么是中断?什么是中断源?答:当CPU正在运行时,外部发生的某一随机事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是,CPU暂时中止现行的程序,转去处理所发生的事件。处理完该事件以后,再回到原来被中止的地方,继续原来的工作
34、。这种在程序执行过程中由于外界的原因而被中间打断的情况称为中断。产生中断的请求源称为中断源。6-26-2MCS-51MCS-51提供了哪几种中断源?在中断管理上有什么特点?各中断源中断优先权的高低是如何排列确定的?答:MCS-51单片机设立了5个中断源,其中两个为外部中断源,外部中断0即,外部中断1即,三个为片内中断源(内部中断源),分别为定时器/计数器T0溢出中断、定时器/计数器T1溢出中断和串行口中断。由特殊功能寄存器TCON和SCON的相应位表示了各中断源的状态。提供2个中断优先级,中断处理程序可实现二级中断嵌套。各中断源可以由中断优先级控制寄存器IP程控为高优先级或低优先级中断。中断源
35、的排列顺序由中断优先级控制寄存器和内部查询电路共同决定,并且各中断源可以由中断允许控制寄存器IE定义为开放或屏蔽状态。0INT1INT6-36-3MCS-51MCS-51响应中断的条件是什么?CPUCPU响应中断时,不同的中断源,其中断入口地址各是多少?答:MCS-51响应中断的基本条件有:1.有中断源发出中断请求。2.中断总允许位EA=l,即CPU开中断。3.发出中断请求的中断源所对应的中断允许位为1,即该中断没有被屏蔽。若上述条件满足,并且不存在任意一种下列情况,则CPU会相应中断:1、CPU正在执行同级或更高级中断服务程序。2、当前的指令周期还未结束。这样可保证指令的完整,防止中断返回后
36、出现错误指令。3、现行指令为RETI或者是访问IE或IP的指令,该指令以及紧接着的另一条指令还未执行完。为了保证CPU能正确返回,CPU在执行RETI或访问IE、IP的指令后,至少需要再执行一条指令,才会响应新的中断请求。若存在上述任何一种情况,则CPU将丢弃中断查询结果,此次中断申请无效,不会再被响应。若没有上述情况,CPU将在紧接着的下一个机器周期内响应中断。各中断源及与之对应的矢量地址略。6-46-4MCS-51MCS-51的外部中断有哪两种触发方式?它们对触发脉冲或电平有什么要求?应如何选择和设定?答:MCS-51的外部中断有两种触发方式:边沿触发方式和电平触发方式。对于边沿触发方式,
37、CPU在每一个机器周期S5P2期间采样外部中断l请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求信号为高电平,接着的下一个机器周期采样到外部中断1请求信号为低电平,出现了下跳沿,则使IEl置1。直到CPU响应该中断时,才由硬件使IEl清0。对于电平触发方式,CPU在每一个机器周期S5P2期间采样外部中断1请求引脚的输入电平。若外部中断l请求信号为低电平,则使IE1置1,若外部中断1请求信号为高电平,则使IEl清0。可由TCON中对应的IT0(或IT1)位程控为低电平或下降沿有效。IT0(或IT1)=1时,外部中断0(或1)程控为边沿触发方式。IT0(或I
38、T1)=0时,外部中断0(或1)程控为电平触发方式。6-56-5MCS-51MCS-51单片机的中断系统中有几个优先级?如何设定?答:MCS-51单片机的中断系统中有两个中断优先级。每一个中断请求源均可编程为高优先级中断或低优先级中断,可以实现二级中断嵌套。MCS-51的中断系统中设置了一个中断优先级寄存器IP,可按位寻址。IP中的低5位为各中断源优先级的控制位,可用软件来设定。若某几个控制位为1,则相应的中断源就规定为高级中断;反之,若某几个控制位为0,则相应的中断源就规定为低级中断。6-66-6某MCS-51MCS-51系统用于定时测试压力、温度,定时用T0T0来实现,压力超限和温度超限的报警信号分别由和输入,中断优先权排列顺序依次为压力超限温度超限定时检测,试确定专用寄存器IEIE和IPIP的内容,并编写初始化程序。0INT1INT