2023年《单片机原理及接口技术》第二版余锡存著 课后习题超详细解析超详细解析超详细解析答案.pdf

上传人:H****o 文档编号:92579830 上传时间:2023-06-08 格式:PDF 页数:51 大小:1.86MB
返回 下载 相关 举报
2023年《单片机原理及接口技术》第二版余锡存著 课后习题超详细解析超详细解析超详细解析答案.pdf_第1页
第1页 / 共51页
2023年《单片机原理及接口技术》第二版余锡存著 课后习题超详细解析超详细解析超详细解析答案.pdf_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《2023年《单片机原理及接口技术》第二版余锡存著 课后习题超详细解析超详细解析超详细解析答案.pdf》由会员分享,可在线阅读,更多相关《2023年《单片机原理及接口技术》第二版余锡存著 课后习题超详细解析超详细解析超详细解析答案.pdf(51页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 第二章 1.89C51、87C51、80C51 和 80C31 单片机的主要区别在那里?答:相同之处是:制造工艺都为 CHMOS,都有 128 字节片内 RAM、两个定时/计数器、4 个 8 位 I/O 并行口,一个串行口和 5 个中断源。主要区别:89C51 片内 4K 字节 FLASHROM;87C51 片内 4K 字节 EPROM;80C51 片内 4K 字节 掩膜 ROM;80C31 片内无程序存储器。2.MCS-51 单片机引脚有多少 I/O 线?它们和单片机对外的地址总线和数据总线有何关系?答:4 个 8 位 I/O 并行口,一个串行口;其中 P0 口为外接程存和数存的地址低 8

2、 位和数据总线的时分复用接口;其中 P2 口为外接程存和数存的地址高 8 位总线接口;其中 P1 口为真正的用户口线;其中 P3 口有第 2 功能;以上 4 个口线在没有专用功能时,也可以做通用 I/O 口线用。3.简述 8031 片内 RAM 区地址空间的分配特点。答:MCS-51 单片机片内 RAM 为 256 字节,地址范围为 00H FFH,分为两大部分:低 128 字节(00H 7FH)为真正的 RAM 区;高 128 字节(80H FFH)为特殊功能寄存器区 SFR。在低 128 字节 RAM 中,00H 1FH 共 32 单元是 4 个通用工作寄存器区。每一个区有 8 个通用寄存

3、器 R0 R7。4.MCS-51 单片机由哪几个部分组成。答:一个 8 位 CPU;4KB ROM or EPROM(8031 无 ROM);128 字节 RAM 数据存储器;21 个特殊功能寄存器 SFR;4 个 8 位并行 I/O 口,其中 P0、P2 为地址/数据线,可寻址 64KB 程序存储器和 64KB 数据存储器;一个可编程全双工串行口;具有 5 个中断源,两个优先级,嵌套中断结构;两个 16 位定时器/计数器;一个片内振荡器及时钟电路。5.MCS-51 单片机的,EA ALE PSEN 信号各自的功能是什么?答:都是控制总线 PPV EA/:访问内部程序存储器的控制信号/编程电压

4、输入端。1 EA 时,CPU 从片内读取指令,0 EA CPU 从片外读取指令。PROG ALE/:地址锁存允许/编程信号线。PSEN:外部程序存储器读选通信号。VPD RSE/:复位输入信号/掉电保护后备电源引脚。6.MCS-51 单片机如何实现工作寄存器组的选择?RS1(PSW.4)、RS0(PSW.3)为工作寄存器组的选择位;取值为 00 时选择第 0 组工作寄存器,片内 RAM 地址是 00H 07H,名称为 R0 R7;取值为 01 时选择第 1 组工作寄存器,片内 RAM 地址是 08H 0FH,名称为 R0 R7;取值为 10 时选择第 2 组工作寄存器,片内 RAM 地址是 1

5、0H 17H,名称为 R0 R7;取值为 11 时选择第 3 组工作寄存器,片内 RAM 地址是 18H 1FH,名称为 R0 R7。7.什么是时钟周期、机器周期、指令周期?当单片机的时钟频率为 12MHz 时,一个机器周期是多少?ALE 引脚的输出频率是多少?(1)振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。(2)状态周期:每个状态周期为时钟周期的 2 倍,是振荡周期经二分频后得到的。(3)机器周期:一个机器周期包含 6 个状态周期 S1S6,也就是 12 个时钟周期。在一个机器周期内,CPU 可以完成一个独立的操作。(4)指令周期:它是指 CPU 完成一条操作所需的

6、全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51 系统中,有单周期指令、双周期指令和四周期指令。当单片机的时钟频率为 12MHz 时,一个机器周期是多少 1 s(微秒);ALE引脚的输出频率是多少 2 s(微秒)。第三章 1.MCS-51 指令系统按功能分为几类?具有几种寻址方式?他们的寻址范围如何?答:按功能分为 5 类,分别是:数据传送类、算术操作类、逻辑操作类、控制转移类和位操作类;具有 7 种寻址方式;立即寻址,寻址范围是程序存储器;直接寻址,寻址范围是内部 RAM 低 128 字节和高 128 字节;寄存器寻址,寻址范围是四组工作寄存器 R0 R7;寄存器间接寻址

7、,寻址范围是内部 RAM 的低 128 和外部 RAM 低 64K 可寻址空间;基址寄存器加变址寄存器间接寻址,寻址范围是程序存储器;相对寻址,寻址范围是以下一条指令为相对地址的-128+127 字节范围内;位寻址,寻址范围是可位寻址空间,包括内部 RAM 的可寻址位,特殊功能寄存器中的可寻址位。2.设内部 RAM 中 59H 单元的内容为 50H,写出当执行下列程序段后寄存器A,R0,和内部 RAM 中 50H、51H 单元的内容为和值?答:MOV A,59H;(A)=(59H)=50H MOV R0,A;(R0)=50H MOV A,#00;(A)=00 MOV R0,A;(R0)=(50

8、H)=00 MOV A,#25H;(A)=25H MOV 51H,A;(51H)=25H MOV 52H,#70H;(52H)=70H 执行下列程序段后:(A)=25H,(R0)=50H,(50H)=00、(51H)=25H 3.PSW 中 Cy 与 OV 有何不同?下列程序段执行后(Cy)=?(OV)=?。MOV A,#56H ADD A,#74H 答:Cy 进位、借位标志位;OV 溢出标志位。MOV A,#56H;(A)=56H=0101 0110 B ADD A,#74H;(A)=56H+74H=0CAH=1100 1010B,程序执行后:(Cy)=0(OV)=1 4.MOVC A,A+

9、DPTR 与 MOVX A,DPTR 指令有何不同?答:MOVC A,A+DPTR;寻找的操作数在程序存储器中,地址是:(A)+(DPTR);MOVX A,DPTR;寻找的操作数在外部数据存储器中,地址是:(DPTR)。5.AJMP、LJMP、SJMP 指令功能上有何不同?答:相同之处,都是无条件转移指令。AJMP addr11;下调指令为基准的 2KB 范围内的跳转指令。LJMP addr16;转移的目标地址可以在 64KB 程序存储器的任何地方。SJMP rel;下调指令为基准的-128B+127B 范围内的短跳转指令。6.设堆栈指针 SP 中的内容为 60H,内部 RAM 中 30H 和

10、 31H 单元的内容分别为 24H 和 10H,执行下列程序段后,61H,62H,30H,31H,DPTR 及 SP中的内容将有何变化?PUSH 30H PUSH 31H POP DPL POP DPH MOV 30H,#00H MOV 31H,#0FFH 答:PUSH 30H;(61H)=(30H)=24H PUSH 31H;(62H)=(31H)=10H POP DPL;(DPL)=(62H)=10H POP DPH;(DPH)=(61H)=24H MOV 30H,#00H;(30H)=00H MOV 31H,#0FFH;(31H)=0FFH 程序执行后:(61H)=24H,(62H)=1

11、0H,(30H)=00H,(31H)=0FFH,(DPTR)=2410H 7.试分析下列程序段,当程序执行后,位地址 00H 和 01H 中的内容将为何值?P1 口的 8 条 I/O 线为何状态?CLR C MOV A,#66H JC LOOP1 CPL C SETB 01H LOOP1:ORL C,ACC.0 JB ACC.2,LOOP2 LOOP2:MOV P1,A 答:CLR C;(Cy)=0 MOV A,#66H;(A)=66H=0110 0110 B JC LOOP1;因 此时(Cy)=0,所以不跳转 CPL C;(Cy)=1 SETB 01H;(01H)=1 LOOP1:ORL C

12、,ACC.0;(Cy)=(Cy)(ACC.0)=1 JB ACC.2,LOOP2;因(ACC.2)=1 LOOP2:MOV P1,A;(P1)=0110 0110 B 8.要完成以下的数据传送,应如何用 MCS-51 指令实现?R1 的内容传送到 R0;片外 RAM 20H 单元的内容送 R0;片外 RAM 20H 单元的内容送片内 RAM 20H 单元;片外 RAM 1000H 单元的内容送片内 RAM 20H 单元;ROM 2000H 单元的内容送 R0;ROM 2000H 单元的内容送片内 RAM 20H 单元;ROM 2000H 单元的内容送片外 RAM 20H 单元。答:R1 的内容

13、传送到 R0;MOV A,R1 MOV R0,A 片外 RAM 20H 单元的内容送 R0;MOV R1,#20H MOVX A,R1 MOV R0,A 片外 RAM 20H 单元的内容送片内 RAM 20H 单元;MOV R1,#20H MOVX A,R1 MOV 20H,A 片外 RAM 1000H 单元的内容送片内 RAM 20H 单元;MOV DPTR,#20H MOVX A,DPTR MOV 20H,A ROM 2000H 单元的内容送 R0;MOV DPTR,#2000H CLR A MOVC A,A+DPTR MOV R0,A ROM 2000H 单元的内容送片内 RAM 20H

14、 单元;MOV DPTR,#2000H CLR A MOVC A,A+DPTR MOV 20H,A ROM 2000H 单元的内容送片外 RAM 20H 单元。MOV DPTR,#2000H CLR A MOVC A,A+DPTR MOV R0,#20H MOVX R0,A 9.分析以下程序每条指令执行的结果:MOV A,#25H;(A)=25H MOV R1,#33H;(R1)=33H MOV 40H,#1AH;(40H)=1AH MOV R0,40H;(R0)=1AH ADD A,R1;(A)=25H+33H=58H ADDC A,R0;(A)=58H+(1AH)+(Cy)=58H ADD

15、C A,40H;(A)=58H+1AH+(Cy)=72H 10.设 A=83H,R0=17H,(17H)=34H,执行下列程序后,(A)=?ANL A,#17H;(A)=1000 0011B 0001 0111B=0000 0011B ORL 17H,A;(17H)=0011 0100B 0000 0011B=0011 0111B XRL A,R0;(A)=0000 0011B 0011 0111=0011 0100B CPL A;(A)=1100 1011B 11.两个 4 位 BCD 码数相加,被加数和加数分别存于 30H、31H 和 40H、41H 单元中(次序为千位、百位在低地址中,十

16、位、个位在高地址中),和数放在 50H、51H、52H 中(52H 用于存放最高位的进位),试编写加法程序。解:ORG 00H MOV 30H,#12H;MOV 31H,#34H;MOV 40H,#56H;MOV 41H,#78H;MOV A,31H;取被加数十个位 ADD A,41H;相加,(A)=(31H)+(41H)DA A;十进制调整 MOV 51H,A;存十位个位运算结果 MOV A,30H;取被加数千百位 ADDC A,40H;相加,(A)=(30H)+(40H)DA A;十进制调整 MOV 50H,A;存千位百位运算结果 CLR A;清 A ADDC A,#0;将进位加到 A 中

17、 MOV 52H,A;存进位 SJMP$12.试编写一程序,查找内部 RAM 单元的 20H 50H 中是否有 0AAH 这一数据,若有,则将 51H 单元置为 01H,若没有,则使 51H 单元置 0。解:ORG 00H MOV 30H,#0AAH;MOV R1,#31H;MOV R0,#20H;BIJIAO:MOV A,R0 CJNE A,#0AAH,LOOP;MOV 51H,#01H SJMP JIESHU LOOP:INC R0 DJNZ R1,BIJIAO MOV 51H,#00H JIESHU:SJMP$第四章 1、若有两个符号数 X,Y 分别存放在内部存储器 50H、51H 单元

18、中,试编写一个程序实现 X*10+Y,结果存入 52H、53H 中。1 ORG 00H 0000 7850 2 MOV R0,#50H 0002 E6 3 MOV A,R0 0003 75F00A 4 MOV B,#0AH 0006 A4 5 MUL AB 0007 08 6 INC R0 0008 26 7 ADD A,R0 0009 08 8 INC R0 000A A6F0 9 MOV R0,B 000C 08 10 INC R0 000D F6 11 MOV R0,A 12 END 2、在以 3000H 为首地址的外部 RAM 中,存放了 14 个以 ASCII 码表示的 09的数,试

19、编写程序将它们转换成 BCD 码,并以压缩 BCD 形式存放在以 2000H为首地址的外部 RAM 中。1 ORG 00H 0000 903000 2 MOV DPTR,#3000H;原始数据首地址 0003 7807 3 MOV R0,#07;循环次数 0005 7930 4 MOV R1,#30H;转换结果暂存区指针 0007 E0 5 CH1:MOVX A,DPTR 0008 550F 6 ANL A,#00001111B 000A C4 7 SWAP A 000B F5F0 8 MOV B,A 000D A3 9 INC DPTR 000E E0 10 MOVX A,DPTR 000F

20、 550F 11 ANL A,#00001111B 0011 45F0 12 ORL A,B 0013 F7 13 MOV R1,A 0014 09 14 INC R1 0015 A3 15 INC DPTR 0016 D8EF 16 DJNZ R0,CH1 0018 902000 17 MOV DPTR,#2000H;转换结 果存储区 001B 7A07 18 MOV R2,#07H;结果个数 001D 7930 19 MOV R1,#30H 001F E7 20 CH2:MOV A,R1;3、采样的 5 个值分别存放在 R0、R1、R2、R3、R4 中,求出它们的中间值,并存放在 R2 中

21、。1 ORG 00H 0000 7805 2 MOV R0,#5 0002 7906 3 MOV R1,#6 0004 7A07 4 MOV R2,#7 0006 7B08 5 MOV R3,#8 0008 7C09 6 MOV R4,#9 000A E4 7 CLR A;000B C3 8 CLR C;000C E8 9 MOV A,R0;000D 29 10 ADD A,R1;000E 2A 11 ADD A,R2;000F 2B 12 ADD A,R3 0010 2C 13 ADD A,R4 0011 75F005 14 MOV B,#5 0014 84 15 DIV AB 0015 F

22、A 16 MOV R2,A 0016 17 END 18 END 4、以 BUF1 为起始地址的外部数据存储区中存放着 16 个单字节的无符号数,求其平均值并送入 R2 中。1 ORG 00H 2 BUF1 EQU#1000H 0000 901000 3 MOV DPTR BUF1 0003 AA00 4 MOV R2,0 0005 7816 5 MOV R0,#16H 0007 E0 6 SUM:MOVX A,DPTR 0008 2A 7 ADD A,R2 0009 FA 8 MOV R2,A 000A A3 9 INC DPTR 000B D8FA 10 DJNZ R0,SUM 000D

23、75F010 11 MOV B,#10H 0010 84 12 DIV AB 0011 FA 13 MOV R2,A 14 END 5、试编写程序,将内部 RAM 单元中 DATA1 开始的 20 个单字节数依次与DATA2 单元为起始地址的 20 个单字节数据进行交换。1 DATA1 EQU#30H 2 DATA2 EQU#50H 3 LEN EQU#16 4 ORG 0H 0000 7830 5 MOV R0,DATA1 0002 7950 6 MOV R1,DATA2 0004 7A10 7 MOV R2,LEN 0006 E6 8 EXC:MOV A,R0 0007 C7 9 XCH

24、A,R1 0008 F6 10 MOV R0,A 0009 08 11 INC R0 000A 09 12 INC R1 000B DAF9 13 DJNZ R2,EXC 14 END 6、某场歌手赛,共有 10 个评委,试编写一程序,输入 10 个评分,去掉最高分和最低分,求平均分(均为 BCD 码)。ORG 0H N EQU#5 BLOCK EQU#30H ISELSORT:MOV R7,N DEC R7 MOV R1,BLOCK ISST1:MOV R0,BLOCK MOV A,R7 MOV R6,A MOV A,R0 MOV B,A ISST2:INC R1 MOV A,R1 CLR

25、C SUBB A,B JC ISST3 MOV A,R1 MOV R2,A MOV B,R1 ISST3:DJNZ R6,ISST2 MOV A,B XCH A,R1 MOV B,R2 MOV R1,B MOV R1,A DJNZ R7,ISST1 MOV R0,BLOCK MOV R0,#0;去掉最低分 MOV A,BLOCK ADD A,#9 MOV R0,A MOV R0,#0;去掉最高分 AD:MOV R0,BLOCK INC RO MOV R1,#8 CLR A CLR C MOV B,#0 ADL:ADD A,R0 DA A MOV R2,A ADDC A,#0 MOV B,A M

26、OV A,R2 DJNZ R1,ADL MOV R5,0 MOV R4,B MOV R3,A MOV R2,#0 MOV R1,#8 R5R4R3/R2R1=R4R3 MOV R1,#00H MOV R2,#0FH MOV R3,#04H MOV R4,#05H MOV R5,#06H LCALL _DIV AJMP$_DIV:;CLR C MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 _DIV_LOOP:CLR C MOV A,R3 SUBB A,R1 MOV R3,A MOV A,R4 SUBB A,R2 MOV R4,A MOV A,R5 SUBB A,#0 MOV

27、R5,A JC _DIV_END _INC_SHANG:CLR C MOV A,30H ADDC A,#1 MOV 30H,A MOV A,31H ADDC A,#0 MOV 31H,A MOV A,32H ADDC A,#0 MOV 32H,A LJMP _DIV_LOOP _DIV_END:CLR C MOV A,R1 ADDC A,R3 MOV A,R2 ADDC A,R4 MOV R3,30H MOV R4,31H END 7、编写将一个十六进制数转换为十进制数的子程序。0000 78FE 2 MOV R0,#FEH 0002 7930 3 MOV R1,#30H 0004 E8 4

28、HEXBCD:MOV A,R0 0005 75F064 5 MOV B,#100 0008 84 6 DIV AB 0009 F7 7 MOV R1,A 000A 740A 8 MOV A,#10 000C C5F0 9 XCH A,B 000E 84 10 DIV AB 000F 09 11 INC R1 0010 F7 12 MOV R1,A 0011 09 13 INC R1 0012 A7F0 14 MOV R1,B 15 RET 8、在内部 RAM 的 BLOCK 开始的单元中有一无符号数据块,数据长度为 LEN。试编程求其中最大的数并存入 MAX 中。MCS51 1 ORG 0H

29、2 LEN EQU#10;数据块长度 3 MAX EQU#40H 0000 7830 4 MOV R0,#30H;BLOCK 首地址 0002 790A 5 MOV R1,LEN 0004 19 6 DEC R1;循环次数 0005 C3 7 CLR C 0006 E6 8 LOOP:MOV A,R0 0007 08 9 INC R0 0008 96 10 SUBB A,R0 0009 4002 11 JC EXCHANG 000B 8002 12 SJMP NEXT 000D 86F0 13 EXCHANG:MOV B,R0 000F C3 14 N EXT:CLR C 0010 D9F4

30、15 DJNZ R1,LOOP 0012 85F040 16 MOV 40H,B;MAX 单元 17 END 9、试编程将内部 RAM 中 41H43H 单元中的数左移 4 位,移出部分送 50H。题意不清。10、在外部 RAM 中 BLOCK 开始的单元中有一数据块,数据长度为 LEN,试编程统计其中的正数、负数和零的个数分别存入内部 RAM 的 Pcount、Mcoun和 Zcount 单元。MCS51 1 ORG 0H 2 LEN EQU#10;数据块长度 3 PCOUNT EQU#30H 4 MCOUNT EQU#31H 5 ZCOUNT EQU#32H 6 BLOCK EQU#40H

31、 0000 7840 7 MOV R0,BLOCK;BLOCK 首地址 0002 790A 8 MOV R1,LEN 0004 E6 9 LOOP:MOV A,R0 0005 C3 10 CLR C 0006 B40004 11 CJNE A,#0H,SULT1 0009 0532 12 INC 32H 000B 8009 13 SJMP SULT2 000D 33 14 SULT1:RLC A;移出符号位以判断正负!000E 4004 15 JC NEG 0010 0530 16 INC 30H 0012 8002 17 SJMP SULT2 0014 0531 18 N EG:INC 31

32、H 0016 08 19 SULT2:INC R0 0017 D9EB 20 DJNZ R1,LOOP 11、试编写一查表求平方的子程序 SQR(设 X 在累加器 A 中,A 小于 15,平方数存入工作寄存器 R7 中)。0000 900008 2 MOV DPTR,#TAB 0003 7830 3 MOV R0,#30H 0005 E6 4 MOV A,R0 0006 93 5 MOVC A,A+DPTR 0007 FF 6 MOV R7,A 0008 01010409 7 TAB:DB 1,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225 00

33、0C 10 19 24 31 0010 40 51 64 79 0014 90 A9 C4 E1 8 END 12、试编写一程序,将外部数据区 DATA1 单元开始的 50 个单节数逐一依次移动到内部 RAM 中 DATA2 单元开始的数据区中。MCS51 1 ORG 0H 2 DATA1 EQU#1000H 3 DATA2 EQU#30H 4 LEN EQU#10H 0000 901000 5 MOV DPTR,DATA1 0003 7830 6 MOV R0,DATA2 0005 7910 7 MOV R1,LEN 0007 E0 8 LOOP:MOVX A,DPTR 0008 F6 9

34、MOV R0,A 0009 A3 10 INC DPTR 000A 08 11 INC R0 000B D9FA 12 DJNZ R1,LOOP 13 END 13、14,略 第五章 1、简述中断、中断源、中断源优先级及中断嵌套的含义。中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使 CPU 暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去、。中断的意义在于资源共享和应急处理。中断的功能有四:一、调整 CPU 与外设的速度配合;二、实时控制的实现;三、故障检测;四、实现人机交流 引起中断的原因

35、,或者能够发出中断请求信号的来源统称为中断源。通常中断源有以下几种:()外部设备请求中断。一般的外部设备(如键盘、打印机和 A/D 转换器等)在完成自身的操作后,向 CPU 发出中断请求,要求 CPU 为他服务。由计算机硬件异常或故障引起的中断,也称为内部异常中断。()故障强迫中断。计算机在一些关键部位都设有故障自动检测装置。如运算溢出、存储器读出出错、外部设备故障、电源掉电以及其他报警信号等,这些装置的报警信号都能使 CPU 中断,进行相应的中断处理。()实时时钟请求中断。在控制中遇到定时检测和控制,为此常采用一个外部时钟电路(可编程)控制其时间间隔。需要定时时,CPU 发出命令使时钟电路开

36、始工作,一旦到达规定时间,时钟电路发出中断请求,由 CPU 转去完成检测和控制工作。(4)数据通道中断。数据通道中断也称直接存储器存取()操作中断,如磁盘、磁带机或等直接与存储器交换数据所要求的中断。为了使得系统能及时响应并处理发生的所有中断,系统根据引起中断事件的 重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行,这个过程称为是中断嵌套。2、M CS-51 单片机提供了几个中断源?

37、几个中断优先级?MCS-51 单片机的中断源共有三类,分别是外部中断、定时计数器中断和串行通信口中断,第一类有 IE0 和 IE1,第二类有 TF0 和 TF1,第三类的 RI、TI 合二为一。MCS-51 单片机分两个优先级,每个中断源的优先级都可以通过中断优先级寄存器 IP 中的相应位进行设定。在同级优先级中,五个中断源的优先级次序由高到低分别是:IE0、TF0、IE1、TF1、RI 或 TI。3、简述 TCON、SCON、IE、IP 四个特殊功能寄存器各位的定义及功能。TCON(Timer Control Register)定时器/计数器控制寄存器 TCON 在特殊功能寄存器中,字节地址

38、为 88H,位地址(由低位到高位)为 88H 一 8FH,由于有位地址,所以可以于进行位操作。TCON 的作用是控制定时器的启、停,标志定时器溢出和中断情况。其中,TFl,TRl,TF0 和 TR0 位用于定时器计数器;IEl,ITl,IE0 和IT0 位用于中断系统。如图所示:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 其中,TF1:定时器 1 溢出标志位。当定时器 1 计满溢出时,由硬件使TF1 置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。TR1:定时器 1 运行控制位。由软件清“0”关闭定时器 1。当 GATE=1,且

39、INT1 为高电平时,TR1 置“1”启动定时器1;当 GATE=0,TR1 置“1”启动定时器 1。TF0:定时器 0 溢出标志。其功能及操作情况同 TF1。TR0:定时器 0 运行控制位。其功能及操作情况同 TR1。IE1:外部中断 1 请求标志位。IT1:外部中断 1 触发方式选择位。当 IT1=0,为低电平触发方式;当 IT1=1,为下降沿触发方式。IE0:外部中断 0 请求标志位。IT0:外部中断 0 触发方式选择位。当 IT0=0,为低电平触发方式;当 IT0=1,为下降沿触发方式。TCON 中低 4 位与中断有关。由于 TCON 是可以位寻址的,因而如果只清溢出或启动定时器工作,

40、可以用位操作命令。例如:执行“CLR TF0”后则清定时器 0 的溢出;执行“SETB TR1”后可启动定时器 1 开始工作。SCON(Serial Port Control Register)串行口控制寄存器 寄存器地址 98H,位寻址 9FH 98H。位地址 9F 9E 9D 9C 9B 9A 99 98 位符号 SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1:串行口工作方式选择位 SM2:多机通信控制位 REN:允许/禁止串行口接收的控制位 TB8:在方式 2 和方式 3 中,是被发送的第 9 位数据,可根据需要由软件置 1或清零,也可以作为奇偶校验位,在方式

41、 1 中是停止位。RB8:在方式 2 和方式 3 中,是被接收的第 9 位数据(来自第 TB8 位);在方式 1 中,RB8 收到的是停止位,在方式 0 中不用。TI串行口发送中断请求标志位 当发送完一帧串行数据后,由硬件置 1;在转向中断服务程序后,用软件清0。RI串行口接收中断请求标志位 当接收完一帧串行数据后,由硬件置 1;在转向中断服务程序后,用软件清0。此处的“软件清零”,意指需要用户用指令清零。IE(interrupt Enable Register):中断允许控制寄存器 寄存器地址 A8H,位寻址 AFH A8H。位地址 AF AE AD AC AB AA A9 A8 位符号 E

42、A/ET2 ES ET1 EX1 ET0 EX0 EA:中断允许总控制位 当 EA=0 时,中断总禁止。当 EA=1 时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。EX0(EX1):外部中断允许控制位 当 EX0(EX1)0 禁止外中断 当 EX0(EX1)1 允许外中断 ET0(EX1):定时/计数中断允许控制位 当 ET0(ET1)0 禁止定时(或计数)中断 当 ET0(ET1)1 允许定时(或计数)中断 ET2:定时器 2 中断允许控制位,在 AT89S52、AT89C52 中 ES:串行中断允许控制位 当 ES 0 禁止串行中断 当 ES 1 允许串行中断 IP(

43、Interrupt Priority Register):中断优先级控制寄存器 寄存器地址 B8H,位寻址 BFH B8H。位地址 BF BE BD BC BB BA B9 B8 位符号/PT2 PS PT1 PX1 PT0 PX0 PX0 外部中断 0 优先级设定位;PT0 定时中断 0 优先级设定位;PX1外部中断 1 优先级设定位;PT1 定时中断 1 优先级设定位;PS 串口中断优先级设定位;PT2 定时器 2 优先级设定位(8052 才有)。4、简述 MCS-51 单片机的中断响应过程。MCS-51 单片机的中断响应过程可简单归纳为 5 步:(1)中断源检测:在每条指令结束后,系统都

44、自动检测中断请求信号,如果有中断请求,且 CPU 处于开中断状态下,则响应中断。(2)保护现场:在保护现场前,CPU 自动将当前 PC 压入堆栈。此时,一般要关中断,以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。(3)中断服务:即为相应的中断源服务。(4)恢复现场:用堆栈指令将保护在堆栈中的数据弹出来,在恢复现场前要关中断,以防止现场被破坏。在恢复现场后应及时开中断。(5)返回:CPU 将推入到堆栈的断点地址弹回到程序计数器,从而使CPU 继续执行刚才被中断的程序。5、说明 MCS-51 单片机响应中断后,中断服务程序的入口地址。MCS-51 单片机响应中断后,其中

45、断矢量是由硬件自动生成的。各中断源的中断服务程序的入口地址如下表。6、指出哪几个中断申请标志在 CPU 响应中断响应后能被硬件自动清零。除了串行通信中断申请标志在 CPU 响应中断后需要用户用软件指令清零中断申请标志外,其余的中断源的申请标志都是在 CPU 响应后由硬件自动清零的。它们分别是:外部中断 0 申请标志(IE0)、外部中断 1 申请标志(IE1)、定时计数器 0 溢出标志(IT0)和定时计数器 1 溢出标志(IT1)。7、在 MCS-51 单片机的应用系统中,如果有多个外部中断源,怎样进行处理?在多中断源的系统中,假如各中断源之间很少发生竞争,那么采用“线或非”连接,用软件查询的方

46、式进行控制如图。如果个中断源之间有优先级的区别,固定优先级时用“菊花链”电路,不定优先级时用 8259.8、外部中断 INT0、INT1 的两种触发方式在原理上有何区别?如何用软件设置?ITx 为外部中断触发方式选择。当 ITx 为 0 时为低电平触发方式,CPU 在每个机器周期的 S5P2 采样 ITx,当 Itx 输入低电平的时,就置位 IEx,采用这种触发方式时,外部中断源的低电平必须保持到 CPU 响应为止。ITx 为 1 的时候边沿触发方式,CPU 在每个机器周期的 S5P2 采样 ITx,如果在相邻的两个机器周期内,前一个机器周期为高,后一个机器周期为低,则置位 IEx,因此,采用

47、边沿触发时,高电平和低电平的保持时间需在 12 拍以上。设置外部中断信号触发方式,可通过对 TCON 寄存器(字节地址 88H,位地址 88H8FH)中的 ITx 位置一或置零进行。9、在一个应用系统中,晶振频率为 12MHz,一个外部中断请求信号的宽度是300ns 的负脉冲,该采用哪种触发方式?如何实现?晶振频率为 12MHz 时,机器周期为 1 微秒,采用边沿触发时,请求信号至少应该保持 1 微秒,所以只能对原信号进行展宽,常用的方法是连接一个单稳态电路,其时常数不在 1-1.5 微秒之间即可。10、MCS-51 的中断服务程序能否放在 65KB 程序存储器的任意区域?如何实现?MCS-5

48、1 的中断服务程序可以放在 65KB 程序存储器的任意区域,只要在对应的中断矢量入口填写相应的跳转指令即可。例如外部中断 IE1 的中断服务程序的起始地址为 3400H,则在 0013H 单元内填写 LCALL 3400H。第六章 1、8051 单片机内设几个可编程的定时/计数器?它们有几种工作方式?如何选择和设定?作为定时器或计数器,它们的波特率各为多少?8051 单片机内设有两个钧为 16 位的可编程的定时/计数器,共有 4 种工作方式,即:方式 0 13 位定时/计数器、方式 1 16 位定时/计数器、方式 2 自动重载初值得 8 位定时/计数器和方式 3 T0 为两个独立的 8 位定时

49、/计数器,在方式 3 下,T1 停止工作。8051 定时/计数器的工作方式由控制寄存器 TMOD 的 M0、M1 两位设置,因为 TMOD 的地址为 89H,所以 M0、M1 不能位寻址,只能通过字节操作的方式对 M0、M1 的值进行设定。当用定时计数器作为波特率发生器时,根据串口的工作模式,有三种情形:方式的波特率为主振频率 fosc 的十二分之一;方式 2 的波特率依照下式确定:oscSMODf 642 rate Baud,其中,SMOD 为 PCON寄存器中的波特率倍增位。方式 1 和方式 3 的波特率计算依照下列关系求的即可:)1 256(12 322 rate BaudTHfoscS

50、MOD 2、定时/计数器作定时器用时,其定时时间有哪些因素有关?做计数器用时,对外部计数频率有何限制?8051 的定时/计数器工作在定时器状态时,输入的时钟脉冲是由晶体振荡器的输出经 12 分频得到的,故其频率为晶振频率的十二分之一。所以,定时输出是晶振频率处以 12再除以计数值。8051 的定时/计数器工作在计数器状态时,需要两个机器周期才能识别一个从“1”到“0”的跳变,故最高计数频率不大于晶振频率的二十四分之一。3、8051 单片机的晶振频率为 6MHz,若只使用 T0 产生 500 微秒定时,可以选择哪几种定时方式?分别写出定时器的方式控制字和计数器初值。选择方式 0 或方式 1,计数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com