《单片机原理及应用》黄友锐主编课后习题答案.doc

上传人:h**** 文档编号:1116254 上传时间:2018-12-09 格式:DOC 页数:32 大小:451.50KB
下载 相关 举报
《单片机原理及应用》黄友锐主编课后习题答案.doc_第1页
第1页 / 共32页
《单片机原理及应用》黄友锐主编课后习题答案.doc_第2页
第2页 / 共32页
《单片机原理及应用》黄友锐主编课后习题答案.doc_第3页
第3页 / 共32页
《单片机原理及应用》黄友锐主编课后习题答案.doc_第4页
第4页 / 共32页
《单片机原理及应用》黄友锐主编课后习题答案.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、第 1 章1-1 什么是单片机?它与一般微型计算机在结构上何区别?答:单片微型计算机简称为单片机(Single Chip Computer),又称为微控制器(MCU 即 Micro-Controller Unit)。它是在一块芯片上集成了中央处理器( CPU) 、存储器(RAM、ROM ) 、定时器/ 计数器、中断控制、各种输入/ 输出(I/O)接口(如并行 I/O 口、串行 I/O 口和 A/D 转换器)等为一体的器件。微型计算机的基本结构由 CPU(运算器、控制器) 、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。单片机的结构是在一块芯片上集成了中央处理器(CP

2、U) 、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行 I/O 口、串行 I/O 口和 A/D 转换器)等,它们通过单片机内部部总线连接而成为一体。1-2 MCS-51 系列单片机内部资源配置如何?试举例说明 8051 与 51 兼容的单片机的异同。答:MCS-51 系列单片机内部资源配置AT89S53 12KB Flash ROM256B 316 32 1 9/2 SPI,WDT,2 个数据指针W77E58 32KB Flash ROM256B+1024B316 36 2 12/2 扩展了 4 位 I/O 口,双数据指针,WDT。资源。第 2 章2-1 MCS-51 系列单片机

3、内部有哪些主要的逻辑部件?答: 一个 8 位 CPU;一个片内振荡器及时钟电路;4K 字节 ROM 程序存储器;128 字节 RAM 数据存储器;两个 16 位定时器/计数器;可寻址 64K 外部数据存储器和 64K 外部程序存储器空间的控制电路;32 条可编程的 I/O 线(四个 8 位并行 I/O 端口) ;一个可编程全双工串行口;具有五个中断源、两个优先级嵌套中断结构2-2 MCS-51 设有 4 个 8 位端口(32 条 I/O 线) ,实际应用中 8 位数据信息由哪一个端口传送?16 位地址线怎样形成?P3 口有何功能?答:实际应用中 8 位数据信息由 P0 口传送。16 位地址线由

4、 P0 口输出低 8 位地址 A7A0,P2 口输出高 8 位地址 A15A8。P3 口是一个多用途的端口,也是一个准双向口,作为第一功能使用时,其功能同 P1 口;当作第二功能使用时,P3.0RXD 串行输入(数据接收)口,P3.1TXD 串行输出(数据发送)口,P3.2 外部中断 0 输入线,P3.3 外部中断 1 输入线,P3.4T0 定时器 0INTINT外部输入,P3.5T1 定时器 1 外部输入,P3.6 外部数据存储器写选通信WR号输出,P3.7 外部数据存储器读选通信号输入。RD2-3 MCS-51 的存储器结构与一般的微型计算机有何不同?程序存储器和数据存储器各有何作用?答:

5、MCS-51 存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自已的寻址系统、控制信号和功能。程序存储器用来存放程序和始终要保留的常数,如经汇编后所编程序的机器码。数据存储器通常用来存放程序运行中所需要的常数或变量,例如模/数转换时实时采集的数据等。2-4 MCS-51 内部 RAM 区功能结构如何分配?4 组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少?答:MCS-51 系列单片机内部数据存储器:00H 7FH 单元组成的低 128 字节地址空间的 RAM 区,又分为为工作寄存器区(00H1FH) 、位寻址区(20H2FH)和用户 RAM 区(30

6、H7FH) 。 80H FFH(128 255)单元组成的高 128 字节地址空间的特殊功能寄存器(又称 SFR)区。对于8032、8052、8752 的单片机还有 80HFFH 单元组成的高 128 字节地址空间的RAM 区。4 组工作寄存区是由程序状态字 PSW(特殊功能寄存器,字节地址为0D0H)中的 D4、D3 位(RS1 和 RS0)来决定的。位寻址区域的字节地址范围是 20H2FH(对应的位地址范围是 00H7FH) 。2-5 特殊功能寄存器中哪些寄存器可以位寻址?它们的字节地址是什么?答:P0 字节地址 80H,TCON 字节地址 88H,P1 字节地址 90H,SCON 字节地

7、址98H,P2 字节地址 A0H,IE 字节地址 A8H,P3 字节地址 B0H,IP 字节地址B8H,PSW 字节地址 D0H,ACC 字节地址 E0H,B 字节地址 F0H。2-6 简述程序状态字 PSW 中各位的含义。答:CY(PSW 7)进位标志,AC(PSW 6)辅助进位标志,F0(PSW 5)用户标志位,RS1、RS0(PSW 4、PSW 3)寄存器区选择控制位, OV(PSW 2)溢出标志,P( PSW0)奇偶标志,每个指令周期都由硬件来置位或清“0”,以表示累加器 A 中 1 的位数的奇偶数.2-7 一个时钟频率为 6MHz 的单片机应用系统,它的振荡信号周期、时钟周期、机器周

8、期分别是多少?答:振荡信号周期=16us、时钟周期=1 3us 、机器周期=2us。2-8 堆栈有何功能?堆栈指针的作用是什么?二者的关系?为什么在程序设计时,要对 SP 重新赋值?答:堆栈的主要功能:保护断点和程序现场,保存用户数据。堆栈指针的作用是:堆栈指针 SP 是一个 8 位特殊功能寄存器,指示出堆栈顶部在内部 RAM 中的位置。两者的关系:堆栈指针 SP 给定当前的栈顶,SP 的初始值越小,堆栈深度就越深。系统复位后,SP 初始化为 07H,使得堆栈事实上由 08H 单元开始。考虑到 08H1FH 单元分属于工作寄存器区 13,若程序设计中要用到这些区,则最好把 SP 值改置为 1F

9、H 或更大的值如 60H,SP 的初始值越小,堆栈深度就越深,堆栈指针的值可以由软件改变,因此堆栈在内部 RAM 中的位置比较灵活。第 3 章3-4:(1)ORG 0000HAJMP STARTORG 0100HSTART:MOV A, #21HADD A, #45HADD A, #78HSJMP $END(2)ORG 0000HAJMP STARTORG 0100HSTART:MOV A, #78HADD A, #45HCLR C;SUBB A, #21HSUBB A, #09HSJMP $END(3)ORG 0000HAJMP STARTORG 0100HSTART:MOV A, #34H

10、ADD A, #0ABHMOV R0, AMOV A, 12ADDC A, #21HMOV R1, ASJMP $END(3)ORG 0000HAJMP STARTORG 0100HSTART:CLR C;MOV A, #0BCHSUBB A, #0CDHMOV R0, AMOV A, 1#2AHSUBB A, #0FHMOV R1, ASJMP $END3-5:请编程实现:将片内 20H 存储单元的 8 位二进制数转换成 BCD 码,并存放在片外以 2000H 起始的单元中,2000H 单元存放转换后的 BCD 码的百位,2001H 单元存放转换后的 BCD 码的十位/个位。ORG 0000

11、HAJMP STARTORG 0050HSTART:MOV A,20H ;A被除数MOV B, #100 ; B除数 100DIV AB ;AB,A商(百位数 BCD 码),B余数MOVX 2000H,A ;(2000H)将百位数 BCD 码MOV A,B ;A余数作被除数MOV B,#10 ;B除数 10DIV AB ;AB,A商(十位数 BCD 码),B余数(个位 BCD 码)SWAP A ;十位 BCD 码调整到 A 中高 4 位ADD A,B ;A 中压缩成 2 位 BCD 码MOVX 2001H,A ; (2001H)十位、个位 BCD 码SJMP $END3-6: 将片内 RAM

12、20H,21H,22H,23H(千/百/十/个位)中的十进制的 ascii 码转换成 bcd 码,并压缩放于片内 30H,31H 两个单元,其中 31H 中放 bcd 码的十位/个位,30H 中放 bcd 码的千位 /百位。MOV A, #00H ;这一句不是必须MOV R0, #20HMOV R1, #21HXCHD A, R0 ;A(20H)SWAP A ;A 高 4 位(20H)的 BCD 码数字XCHD A, R1 ;A 低 4 位(21H) 的 BCD 码数字MOV 30H,AMOV A, #00H ;这一句不是必须MOV R0, #22H MOV R1, #23HXCHD A, R

13、0 ;A(22H)SWAP A ;A 高 4 位(22H)的 BCD 码数字XCHD A, R1 ;A 低 4 位(21H) 的 BCD 码数字MOV 31H,A3-7:片内 RAM 的 30H32H 单元中连续存放了 6 个压缩 BCD 码,编制程序将它们转换为 ASCII 码,存入片外 3000H 开始的连续存储区中MOV R0,#30H MOV DPTR,3000HLOOP: MOV A,R0 SWAP A ANL A,#0FH ADD A,#30H ;30H= 0 MOVX DPTR,A INC DPTRMOV A,R0 ANL A,#0FH ADD A,#30H MOVX DPTR,

14、A INC DPTRINC R0 CJNE R0,#33H, LOOP3-9: 从外部 RAM 2000H 单元开始存放着 100 个无符号数,编写程序统计出:(1)最大数;(2)最小数;(6)大于 50,小于 50,等于 50 的个数。(1) MOV DPTR, #2000H MOV 30H, #0 ;先用 0 当做最大数 (求最小数时,用 255) MOV R2, #100LOOP: MOVX A, DPTR CJNE A, 20H, TTT ;(A)-(20H)TTT: JNC NEXT ;不够减转移 (求最小数时,用 JNC NEXT) MOV 30H, A ;够减,这个数是大数,给(

15、20H)NEXT: INC DPTR DJNZ R2, LOOPSJMP $END(6)ORG 0600HMOV DPTR, #2000HMOV R2, #100 ;总数MOV R3, #0 ; 小于 50 的数的个数MOV R4, #0 ; 等于 50 的数的个数MOV R5, #0 ; 大于 50 的数的个数LOOP:MOVX A, DPTRCLR CSUBB A, #50JZ EQU_50JNC BIGINC R3 ;小于 50 的个数JMP NEXTEQU_50:INC R4JMP NEXTBIG:INC R5NEXT:INC DPTRDJNZ R2, LOOPMOV 30H,R3 ;

16、 小于 50 的数的个数MOV 31H,R4 ; 等于 50 的数的个数MOV 32H,R5 ; 大于 50 的数的个数SJMP $3-10 MCS-51 片外 RAM 区 1000H1007H 单元中存有 8 个无符号数,编程求其平均值,将结果存于 1008H 中。%先加,加的结果可能超出 8 位,所以存储结果于(30H)和(40H)单元中。MOV DPTR, #1000HMOV R7, #08HMOV 30H, #00HMOV 40H, #00HSS1:MOVX A, DPTRADD A, 30HMOV 30H, ACLR AADDC A, 40HMOV 40H, AINC DPTR DJ

17、NZ R7, SS1MOV R7, #03H ;移位 3 次,等于除以 8SS2:CLR C MOV A, 40H RRC AMOV 40H, AMOV A, 30HRRC AMOV 30H, A DJNZ R7, SS2MOVX DPTR, A3-11 下面是以数学公式,X 值存于片内 20H,Y 值存于 21H 单元中。Y=X2(X0) 0(X=0) 2X(X0)MAIN:MOV A,20H JZ SUL JB ACC.7,NEGMOV B,A MUL AB SJMP SULNEG:CLR C RLC A SUL:MOV 21H ,A 3-12 试编写程序,将外部 RAM 2000H20F

18、FH 数据块,传送到 3000H30FFH区域。MOV R6,#0FFHMOV R2,#00HMOV R3,#20H;暂存 2000H 地址MOV R4,#00HMOV R5,#30H;暂存 3000H 地址NEXT:MOV DPL,R2MOV DPH,R3MOVX A,DPTRMOV DPL,R4MOV DPH,R5MOVX DPTR,AINC R2INC R4DJNZ R6,NEXT3-13:振荡频率:6MHz(机器周期:2us ) ,(1)1ms 延时ORG 2000HMOV R7,125LOP1: NOP NOP DJNZ R7,LOP1 RET(2) 100ms 延时ORG 2000

19、HMOV R6,100LOP2: MOV R7,125LOP1: NOP NOP DJNZ R7,LOP1 DJNZ R6,LOP2 RET(3)1s 延时ORG 2000HMOV R5,10LOP3: MOV R6 ,100LOP2: MOV R7,125LOP1: NOP NOP DJNZ R7,LOP1 DJNZ R6,LOP2 DJNZ R5,LOP3 RET3-14:片内 RAM30H 有一数(015 ) ,查表求平方值,存入 31H 中。ORG 1000HMAIN: MOV DPTR,#TABMOV 30H, #13 ;NUMB=015MOV A, 30H MOVC A,A+DPT

20、R MOV 31H,A SJMP $TAB: DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,255第 4 章4-4 试编程实现,将 设为高优先级中断,且为电平触发方式;T0 溢出中断0INT设为低优先级中断,串行口中断为高优先级中断,其余中断源设为禁止状态。SETB PX0CLR IT0 CLR PT0 SETB PS MOV IE,#93H4-9 试用中断技术设计一个秒闪电路,其功能是发光二极管 LED 每秒闪亮400ms。主机频率为 6MHz。(仿真见 exercise4_9.ms11)题意可理解为 LED 每次亮 400ms,灭 600

21、ms。设使用定时器 T1,定时时间为 100ms,用 P1.0 作输出 ,设 P1.0 为高时灯灭。ORG 0000HAJMP STARTORG 000BHAJMP T0INTORG 0050HSTART: MOV SP, #30HMOV TMOD,#01H ;T0 方式 1 计数,MOV TH1, #3CHMOV TL1, #0B0H ;定时 100msMOV R0, #04HSETB F0 ;灯亮(1) 、灭( 0)的转换标志MOV IE, #88HSETB P1.0SETB TR1SJMP $ ORG 0100HT0INT: MOV TH1, #3CHMOV TL1, #0B0HDJNZ

22、 R0, NEXTJNB F0, TURNON ;F0 为 0 转TURNOFF: CPL P1.0CLR F0MOV R0, #06HSJMP NEXTTURNON: CPL P1.0SETB F0MOV R0, #04HNEXT: RETIEND4-1 简述中断、中断源、中断源的优先级及中断嵌套的含义。答: 当 CPU 正在处理某项事件的时,如果外界或内部发生了紧急情况,要求CPU 暂停正在处理的工作转而去处理这个紧急情况,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。向 CPU 提出中断请求的源称为中断源。当系统有多个中断源时,就可能出现同时有几个中

23、断源申请中断,而 CPU 在一个时刻只能响应并处理中断优先高的请求。在实际应用系统中,当 CPU 正在处理某个中断源,即正在执行中断服务程序时,会出现优先级更高的中断源申请中断。为了使更紧急的级别高的中断源及时得到服务,需要暂时中断(挂起)当前正在执行的级别较低的中断服务程序,去处理级别更高的中断源,待处理完以后,再返回到被中断了的中断服务程序继续执行,但级别相同或级别低的中断源不能中断级别高的中断服务,这就是所谓的中断嵌套。4-2 MCS-51 单片机能提供几个中断源?几个中断优先级?各个中断的源的优先级怎样确定?在同一优先级中各个中断源的优先级怎样确定?答: MCS-51 单片机能提供五个

24、中断源,两个中断优先级。中断优先级是由片内的中断优先级寄存器 IP(特殊功能寄存器)控制的。PS:串行口中断优先级控制位。 PS=1,串行口定义为高优先级中断源;PS=0,串行口定义为低优先级中断源。PT1:T1 中断优先级控制位。PT1=1,定时器 /计数器 1 定义为高优先级中断源;PT1=0 ,定时器/计数器 1 定义为低优先级中断源。PX1:外部中断 1 中断优先级控制位。PX1=1,外中断 1 定义为高优先级中断源;PX1=0 ,外中断 1 定义为低优先级中断源。PT0:定时器/计数器 0(T0)中断优先级控制位,功能同 PT1。PX0:外部中断 0 中断优先级控制位,功能同 PX1

25、。在同一优先级中,循环轮流排队。不分级别高低,所有中断源优先级都一律平等,CPU 轮流响应各个中断源的中断请求。4-3 简述 MCS-51 单片机中断响应过程。答:CPU 在每个机器周期的 S5P2 时刻采样中断标志,而在下一个机器周期对采样到的中断进行查询。如果在前一个机器周期的 S5P2 有中断标志,则在查询周期内便会查询到并按优先级高低进行中断处理,中断系统将控制程序转入相应的中断服务程序。4-4 MCS-51 单片机外部中断有哪两种触发方式?如何选择?对外部中断源的触发脉冲或电平有何要求?答:MCS-51 单片机外部中断有:负边沿触发方式和电平触发方式。外部中断 1()触发方式控制位。

26、如果 IT1 为 1,则外中断 1 为负边沿触发方式(CPU 在1INT每个机器周期的 S5P2 采样 脚的输入电平,如果在一个周期中采样到高电INT平,在下个周期中采样到低电平,则硬件使 IE1 置 1,向 CPU 请求中断) ;如果 IT1 为 0,则外中断 1 为电平触发方式。采用电平触发时,输入到 的外1INT部中断源必须保持低电平有效,直到该中断被响应。同时在中断返回前必须使电平变高,否则将会再次产生中断。4-5 在 MCS-51 单片机的应用系统中,如果有多个外部中断源,怎样进行处理?答:当系统有多个中断源时,就可能出现同时有几个中断源申请中断,而CPU 在一个时刻只能响应并处理一个中断请求,为此,要进行排队。排队的方式有:(1)按优先级排队。(2)循环轮流排队。MCS-51 单片机优先级比较简单,只有两级,可以通过优先级控制寄存器设置不同的优先级。当优先级相同时,约定有 5 个中断源优先级顺序由高到低分别为:外部中断 0、定时器/ 计数器 0 溢出、外部中断1、定时器/计数器 1 溢出、串行口中断。4-6 MCS-51 有哪几种扩展外部中断源的方法?各有什么特点?答:1) 利用定时器作为外部中断使用

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

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。