ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:33.82KB ,
资源ID:7786787      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7786787.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片微型计算机原理与应用课后答案华中科技大学.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片微型计算机原理与应用课后答案华中科技大学.docx

1、单片微型计算机原理与应用课后答案华中科技大学习题22.1 MCS-51单片机部包含哪些主要逻辑功能部件?答:微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、特殊功能寄存器(SFR)、并行I/O口、串行通信口、定时器/计数器及中断系统。2.2 说明程序计数器PC和堆栈指针SP的作用。复位后PC和SP各为何值?答:程序计数器PC中存放将要执行的指令地址,PC有自动加1功能,以实现程序的顺序执行。它是SFR中唯一隐含地址的,因此,用户无法对它进行读写。但在执行转移、调用、返回等指令时能自动改变其容,以实现改变程序的执行顺序。程序计数器PC中容的变化决定程序的流程,在执行程

2、序的工作过程中,由PC输出将要执行的指令的程序存储器地址,CPU读取该地址单元中存储的指令并进行指令译码等操作,PC则自动指向下一条将要执行的指令的程序存储器地址。SP是一个8位的SFR,它用来指示堆栈顶部在部RAM中的位置。系统复位后SP为07H,若不对SP设置初值,则堆栈在08H开始的区域,为了不占用工作寄存器R0R7的地址,一般在编程时应设置SP的初值(最好在30H7FH区域)。2.3 程序状态字寄存器PSW的作用是什么?其中状态标志有哪几位?它们的含义是什么?答:PSW是保存数据操作的结果标志,其中状态标志有CY(PSW.7):进位标志,AC(PSW.6):辅助进位标志,又称半进位标志

3、,F0、F1(PSW.5、PSW.1):用户标志;OV(PSW.2):溢出标志;P(PSW.0):奇偶标志。2.4 什么是堆栈? 堆栈有何作用? 为什么要对堆栈指针SP重新赋值? SP的初值应如何设定?答:堆栈是一种数据结构,所谓堆栈就是只允许在其一端进行数据写入和数据读出的线性表。其主要作用有两个:保护断点和保护现场。堆栈区的设置原则上可以在部RAM的任意区域,但由于MCS-51单片机部RAM的00H1FH地址单元已被工作寄存器R0R7占用,20H2FH为位寻址区,故堆栈一般设在30H7FH(对于8032系列芯片可为30H0FFH)的区域。单片机复位后,SP的容为07H,堆栈事实上由08H单

4、元开始,考虑到08H1FH单元分别属于13组的工作寄存器区,则最好把SP值改置为1FH或更大的值。2.5 开机复位后,CPU使用的是哪组工作寄存器? 它们的地址如何? CPU如何指定和改变当前工作寄存器组?答:开机复位后使用的是0组工作寄存器,它们的地址是00H07H,对程序状态字PSW中的RS1和RS0两位进行编程设置,可指定和改变当前工作寄存器组。RS1、RS0=00H时,当前工作寄存器被指定为0组;RS1、RS0=01H时,当前工作寄存器被指定为1组;RS1、RS0=10H时,当前工作寄存器被指定为2组;RS1、RS0=11H时,当前工作寄存器被指定为3组。2.6 MCS-51的时钟周期

5、、机器周期、指令周期是如何定义的?当振荡频率为12MHz时,一个机器周期为多少微秒?答: 时钟周期也称为振荡周期,定义为时钟脉冲的倒数,是计算机中最基本的、最小的时间单位。 CPU取出一条指令至该指令执行完所需的时间称为指令周期,因不同的指令执行所需的时间可能不同,故不同的指令可能有不同的指令周期。 机器周期是用来衡量指令或程序执行速度的最小单位。它的确定原则是以最小指令周期为基准的,即一个最小指令周期为一个机器周期。当振荡频率为12MHz时,一个机器周期1微秒2.7 MCS-51单片机的控制信号、有哪些功能?答:是访问程序存储器控制信号。当端接低电平时,则不管芯片部是否有程序存储器,CPU只

6、访问外部程序存储器。对8031来说,因其部无程序存储器,所以该引脚必须接地。当端接高电平时,CPU访问部程序存储器,但当PC(程序计数器)值超过某一值时,将自动转向片外程序存储器1000H地址继续执行程序。是地址锁存允许信号。当CPU访问外部存储器或I/O接口时,ALE输出脉冲的下降沿用于锁存16位地址的低8位。在不访问外部存储器或I/O接口时,ALE端有周期性正脉冲输出,其频率为振荡频率的1/6。但是,每当访问外部数据存储器或I/O接口时,在第二个机器周期中ALE只出现一次,即丢失一个ALE脉冲。片外程序存储器读选通信号。在CPU从外部程序存储器读取指令(或常数)期间,每个机器周期两次有效,

7、但在访问外部数据存储器或I/O接口时,信号将不出现。端可以驱动8个TTL负载。2.8 MCS-51的片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突?答:MCS-51的片外程序存储器和片外数据存储器共处同一地址空间,地址围都是0000HFFFFH(64 KB),但不会发生总线冲突。因片外程序存储器和片外数据存储器的读写控制信号不同,片外程序存储器的读信号是,而片外数据存储器的读信号为、写信号为,访问片外程序存储器和片外数据存储器的指令也不同,所以它们不会发生总线冲突。2.9 简述MCS-51部数据存储器的存储空间分配。答:部数据存储器分为3个区域:工作寄存器区(00H1FH

8、);位寻址区(20H2FH);堆栈和数据缓冲器区(30H7FH或30H0FFH)。2.10 位地址和字节地址有何区别? 位地址20H具体在存中什么位置?答:MCS-51的位存储器由以部RAM中20H2FH单元和特殊功能寄存器中地址为8的倍数的特殊功能寄存器两部分组成。其中每个单元的每一位都有一个位地址映像,它们既可以像普通部RAM单元一样按字节存取,也可以对单元中的任何一位单独存取。字节地址是部RAM中和特殊功能寄存器中每个存储单元的地址。位地址20H是部RAM24H中的D0位。2.11 8051的4个IO口作用是什么? 8051的片外三总线是如何分配的?答:MCS-51单片机有4个8位并行I

9、/O端口,分别记作P0、P1、P2、P3口。 在访问片外扩展存储器时, P0口分时传送低8位地址和数据, P2口传送高8位地址。P1口通常作为通用I/O口供用户使用。P3口具有第二功能,为系统提供一些控制信号。在无片外扩展存储器的系统中,这4个口均可作为通用I/O端口使用。在作为通用I/O端口使用时,这4个口都是准双向口。 在访问片外扩展存储器时,片外三总线的构成:P0口传送低8位地址经锁存器所存构成低8位地址总线,高8位地址总线由P2口构成。P0口作为单片机系统的低8位地址/数据线分时复用,在低8位地址锁存后,P0口作为双向数据总线。由P3口的第二功能输出数据存储器的读、写控制信号与片外程序

10、存储器读选通信号,访问程序存储器控制信号,地址锁存允许信号构成控制总线。习题33.1 汇编语句是由4个部分(字段)构成的,简述各部分的含义。答:汇编语句的4个部分为:标号: 操作码 操作数;注释标号是用户设定的一个符号,表示存放指令或数据的存储单元地址。标号由以字母开始的18个字母或数字串组成,以冒号结尾。不能用指令助记符、伪指令或寄存器名来作标号。标号是任选的,并不是每条指令或数据存储单元都要标号,只在需要时才设标号。如转移指令所要访问的存储单元前面一般要设置标号。一旦使用了某标号定义一个地址单元,在程序的其它地方就不能随意修改这个定义,也不能重复定义。操作码是指令或伪指令的助记符,用来表示

11、指令的性质或功能。对于一条汇编语言指令,这个字段是必不可少的。操作数给出参加运算(或其它操作)的数据或数据的地址。操作数可以表示为工作寄存器名、特殊功能寄存器名、标号名、常数、表达式等。这一字段可能有,也可能没有。若有两个或三个操作数,它们之间应以逗号分开。注释字段不是汇编语言的功能部分,只是增加程序的可读性。言简意赅的注释是汇编语言程序编写中的重要组成部分。3.2举例说明MCS-51单片机的7种寻址方式,各寻址方式的寻址空间。立即寻址立即寻址方式的寻址空间为程序存储器。 例如: MOV A,#3FH ;3FHA直接寻址直接寻址方式中操作数存储的空间有三种: 部数据存储器的低128个字节单元(

12、00H7FH)例如: MOV A,30H ;(30H)A指令功能是把部RAM 30H单元中的容送入累加器A。 位地址空间例如: MOV C,00H ;直接位00H容进位位 特殊功能寄存器例如: MOV IE,#85H ;立即数85H中断允许寄存器IE。寄存器寻址寄存器寻址方式的寻址空间为工作寄存器和特殊功能寄存器等。 例如: MOV A,R6 ;(R6)A寄存器间接寻址寄存器间接寻址空间为部RAM 128字节,外部RAM例如: MOV A,R0 ;((R0))A变址寻址变址寻址空间为程序存储器。例如: MOVC A,ADPTR ;(DPTR)()AMOVC A,APC ;(PC)()A相对寻址

13、相对寻址空间为程序存储器。当前PC值是指相对转移指令所在地址(源地址)加转移指令字节数。即:当前PC值 = 源地址 + 转移指令字节数偏移量rel 是有符号的单字节数,以补码表示,相对值在-128+127围,负数表示从当前地址向上转移,正数表示从当前地址向下转移。所以转移的目的地址为:目的地址 = 当前PC值 + rel = 源地址 + 转移指令字节数 + rel例如: JNC 2AH , JZ F8H位寻址位寻址空间为部RAM 20H2FH的128位和SFR中的83位。例如: MOV C,30H, MOV P1.0, C3.3指出下列指令的寻址方式和操作功能:INC 40H ;直接寻址 (4

14、0H)+140HINC A ;寄存器寻址 (A)+1AINC R2 ;寄存器间接寻址 (R2)+1(R2)MOVC A, A+DPTR ;基址加变址寄存器寻址 (A)+(DPTR) AMOV A, #6EH ;立即寻址 6EHASETB P1.0 ;位寻址 P1.0置13.4 设部RAM中3AH单元的容为50H,写出当执行下列程序段后寄存器A、R0和部RAM 50H,51H单元的容为何值?MOV A,3AH ;(A)=50HMOV R0,A ;(R0)=50HMOV A,#00H ;(A)=00HMOV R0,A ;(50H)=00HMOV A,#25H ;(A)=25HMOV 51H,A ;

15、(51H)=25H答:(A)=25H, (3AH)=50H, (R0)=50H, (50H)=00H, (51H)=25H3.5 设堆栈指针SP中的容为60H,部RAM 30H和31H单元的容分别为27H和1AH,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的容将有何变化?PUSH 30H ;(SP)+1SP, (30H) 61HPUSH 31H ;(SP)+1SP, (31H) 62HPOP DPL ; (62) DPL, (SP)-1SPPOP DPH ; (61) DPH, (SP)-1SPMOV 30H,#00H ; 00H30HMOV 31H,#0FFH ; F

16、FH31H答:(61H)=27H, (62H)=1AH, (30H)=00H, (31H)=FFH, (DPTR)=271AH, (SP)=60H3.6 设(A)=30H,(R1)=23H,(30H)=05H。执行下列两条指令后,累加器A和R1以及部RAM 30H单元的容各为何值?XCH A,R1XCHD A,R1答:(A)=25H, (R1)=30H, (30H)=03H3.7 设(A)=01010101B,(R5)=10101010B,分别写出执行下列指令后的结果ANL A, R5 ; (A)=0000 0000B, (R5)=10101010BORL A, R5 ; (A)= 10101

17、010B, (R5)=10101010BXRL A, R5 ; (A)=00000000B3.8 设指令SJMP rel=7FH,并假设该指令存放在2113H和2114H单元中。当该条指令执行后,程序将跳转到何地址?答:程序将跳转到2194H地址3.9 简述转移指令AJMP addr11,SJMP rel, LJMP addr16及JMP A+DPTR的应用场合。答:AJMP addr11这是在当前PC的2K字节围的无条件转移指令,把程序的执行转移到指定的地址。SJMP rel 这是相对跳转指令,其中rel为相对偏移量。转向的目标地址是在当前PC的前128字节到后127字节之间。LJMP ad

18、dR16 执行这条指令时把指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向指定地址。转移的目标地址可以在64KB程序存储器地址空间的任何地方,不影响任何标志。JMP A+DPTR 把累加器A中8位无符号数与数据指针DPTR中的16位数相加,将结果作为转移的目标地址送入PC,不改变累加器A和数据指针DPTR容,也不影响标志。本指令以DPTR容作为基址,A的容作为变址。只要把DPTR的值固定,而给A赋予不同的值,即可实现程序的多分支转移。3.10 查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序的特点。MOV 78H,80H ;85 80 78MOV 78H,#

19、80H ;75 78 80答:直接寻址单元传送到直接寻址单元的机器码是第二个操作数在前,而立即数传送到直接地址单元是第一个操作数在前,次序正好相反。3.11 试编写程序,查找在部RAM 30H50H单元中1AH这一数据。若找到1AH则将51H单元置为01H;没找到则将51H单元置为00H。答:参考程序如下MOV R1, #2FHLOOP1: INC R1CJNE R1, #1AH, LOOP2SJMP LOOP3LOOP2: CJNE R1, #51, LOOP1MOV 51H, #00HSJMP ENDLOOP3: MOV 51H, #01HEND: RET3.12 若SP=60H,子程序标

20、号MULT所在的地址为3A40H。执行LCALL MULT指令后,堆栈指针SP和堆栈容发生了什么变化?答:(SP)=62H, (61H)=40H, (62H)=3AH3.13 假设外部存储器215AH单元的容为3DH,执行下列指令后,累加器A中的容为何值?MOV P2,#21HMOV R0,#5AHMOVX A,R0答:(A) = 3DH习题44.1 编程将数据存储器中以2A00H为首地址的100个连续单元清零。CLR AMOV R0, #64HMOV DPTR, #2A00HLOOP: MOVX DPTR,AINC DPTRDJNZ R0, LOOPEND4.2 编程将片50H70H单元中的

21、容传送到以5C00H为起始地址的存储区中。MOV DPTR, #5C00HMOV R0, #50HLOOP: MOV A,R0MOVX DPTR,AINC R0INC DPTRCJNE R0,#70H,LOOPEND4.3 片外RAM区从1000H单元开始存有100个单字节无符号数,找出最大值并存入1100H单元中,试编写程序。MOV DPTR, #1000H ;置片外RAM区首地址MOV R0,#00H ;清 R0MOV R1,64H ;置计数初值100LOOP: MOVX A, DPTR ;取片外RAM区的某个数送ACJNZ A,R0,NT1 ;与R0中的数比较NT1: JC NT2 ;(

22、A)(R0)跳转到NT2MOV RO,A ;若(A)(R0),则大数送RONT2: INC DPTR ;修改数据块指针DJNZ R1,LOOP ;未完,循环RET4.4 设有100个单字节有符号数,连续存放在以2100H为首地址的存储区中,试编程统计其中正数、负数、零的个数。MOV R0, #00H ; 置负数的计数初值MOV R1, #00H ; 置正数的计数初值MOV R2, #00H ; 置0的计数初值MOV R4, #64H ; 置循环计数初值MOV DPTR, #2100H ; 置数据区首地址START:MOVX A, DPTR ; 取某一数据送入AJZ EQUAL ;为0转EQUA

23、LJNB ACC.7, POSI ;为正数转POSIINC R0 ; 负数计数值加1INC DPTR ; 修改数据块指针DJNZ R4, START ; 未完,返回POSI: INC R1 ; 正数计数值加1INC DPTR ; 修改数据块指针DJNZ R4, STARTEQUAL:INC R2 ; 0计数值加1INC DPTRDJNZ R4, STARTEND4.5 从2030H单元开始,存有100个有符号数,要求把它传送到从20BOH开始的存储区中,但负数不传送,试编写程序。MOV R1, #64H ;置计数初值MOV R0, #B0H ;目标数据区首地址低8位,高8位为20HMOV DP

24、TR, #2030H ;源数据区首地址START:MOVX A, DPTR ;取源数据区某数据送入A ACC.7, D1 ;负数,转D1MOVX R0,A ;正数,送入目标数据区INC DPTR ; 修改源数据块指针INC R0 ; 修改目标数据块指针DJNZ R1, START ;未完,继续RET ;返回D1: INC DPTR ;修改源数据块指针INC R0 ;修改目标数据块指针DJNZ R1, START ;未完,继续RET ;返回4.6 若从30H单元开始有100个数,编一个程序检查这些数,正数保持不变,负数取补后送回。MOV R0, #30H ;数据区首地址MOV R1, #64H

25、;计数初值START: MOVX A, R0 ;取某个数JNB ACC.7, POSI ;正数,转POSICPL A ;负数,取补ADD A, #01HMOVX R0, A ;送回原地址INC R0 ;修改数据块指针DJNZ R1, START ;未完,继续RETPOSI: INC R0 ;修改数据块指针DJNZ R1, START ;未完,继续RET4.7 试编程把以2040H为首地址的连续10个单元的容按升序排列,存到原来的存储区中。SORT: MOV DPTR, #2040H;MOV R3, #09H;CLR F0;D1: MOVX A,DPTR ;MOV R2, A ;前一个数送R2I

26、NC DPTRMOVX A, DPTR ;MOV R4, A ;后一个数送R4MOV A, R2 ;前一个数送ACLR CSUBB A, R4 ;前一个数减后一个数JC NEXT ;MOV A, R2 ;相邻数互换MOVX DPTR,AMOV R0,DPL ;数据指针低8位减1DEC R0MOV DPL,R0MOV A, R4 ;MOVX DPTR,AINC DPTR;SETB F0NEXT: DJNZ R3, D1; F0,SORTRET4.8 设在2000H2004H单元中存放有5个压缩BCD码,编程将它们转换成ASCII码,存放到以2005H为首地址的存储区中。MOV DPTR,#200

27、0H;MOV R0, #05H;MOV R1, #04H;D1: MOVX A, DPTR;ANL A, #0FHCLR C;ADD A,#30H;MOV P2,#20HMOVX R0,AINC DPTR;INC R0DJNZ R1, D1;RET在以2000H为首地址的存储区中,存放着20个用ASCII码表示的O9之间的数,试编程,将它们转换成BCD码,并以压缩BCD码的形式存放在3000H3009H单元中。MOV DPTR, 2000H;MOV R0, #20H;MOV R1, #00H;ASCBIN: MOVX A, DPTR;CLR CSUBB A, #30H;MOV P2, 30H;

28、MOVX R1,A;INC R1;INC DPTR;DJNZ R0, ASCBIN;RET4.10 试编写多字节BCD码数加法、减法子程序。4.11 若晶振为6MHz,试编写延时100ms、1s的子程序。ORG 2000H 周期数MOV R0, #0AH ;毫秒数R0 1DL2: MOV R1, #MT ;1ms延时值R1 1DL1: NOP 1NOP 1DJNZ R1,DL1 ;1ms延时循环 2DJNZ R0,DL2 ;10ms延时循环 2END4.12 试设计一个子程序,其功能为将片RAM 20H21H中的压缩BCD码转换为二进制数,并存于以30H开始的单元。BCDB: MOV A,20

29、HMOV R2,A ;取千位、百位BCD码ACALL BCDB1 ;调用子程序MOV B,#0AHMUL AB ;乘以10MOV R6,A ;乘积低8位送R6XCH A,B ;交换乘积高、低位MOV R5,A ;乘积高位送R5MOV A,21H ;取十位、个位BCD码MOV R2,A ;送入R2ACALL BCDB1 ;调用子程序ADD A,R6 ;加千位、百位乘积低8位MOV 31H,A ;低8位送入31HMOV A,R5 ;乘积高8位送AADDC A,#00H ;加进位位MOV 30H,A ;结果高8位送入30HHERE: SJMP HERE子程序清单:BCDB1: MOV A,R2 ;取

30、压缩BCD码ANL A,#0F0H ;屏蔽低4位SWAP AMOV B,#0AHMUL AB ;高位BCD码乘以10MOV R3,A ;乘积送R3MOV A,R2 ;取压缩BCD码ANL A,#0FH ;屏蔽高4位ADD A,R3 ;高位BCD码乘以10后加低位BCD码MOV R2,A ;送R2RET习题55.1 什么是中断系统?中断系统的功能是什么?答:当CPU正在处理某件事情(例如,正在执行主程序)的时候,外部或部发生的某一事件(如某个引脚上电平的变化,一个脉冲沿的发生或计数器的计数溢出等)请求CPU迅速去处理,于是,CPU暂时终止当前的工作,转去处理所发生的事件。中断服务程序处理完该事件后,再回到原来被终止的地方,继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统。中断系统的功能:(1)实现中断及中断返回,(2)实现优先级排队,(3)实现优先级控制。5.2 什么是中断嵌套?答:当CPU响应某一中断源的请求而进行中断处理时,若有优先级更高的中断源发出中断请求,则CPU中断正在执行的中断服务程序,保留程序的断点和现场,响应更高一级的中断,即是中断嵌套。5.3 什么是中断源?MCS-51有哪些中断源?各有什么特点?答:向CPU发出中断请求的来源称为中断源。MC5-51单片机的中断系统有5个中断请求源:外部中断0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1