1 / 17

1. 将下列各二进制数转换为十进制数。 ( 1 ) 11011110B=222D ( 2 ) 01011010B=90D ( 3 ) 10101011B=171D

第二章 练习题答案. 1. 将下列各二进制数转换为十进制数。 ( 1 ) 11011110B=222D ( 2 ) 01011010B=90D ( 3 ) 10101011B=171D ( 4 ) 1011111B=95D 2. 将第一题中各二进制数转换为十六进制数。 ( 1 ) 11011110B=DEH ( 2 ) 01011010B=5AH ( 3 ) 10101011B=ABH ( 4 ) 1011111B=5FH. 第一章 作业答案. 3. 将下列各数转换为十六进制数。 ( 1 ) 224D=E0H ( 2 ) 143D=8FH

opal
Télécharger la présentation

1. 将下列各二进制数转换为十进制数。 ( 1 ) 11011110B=222D ( 2 ) 01011010B=90D ( 3 ) 10101011B=171D

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 练习题答案 • 1.将下列各二进制数转换为十进制数。 • (1)11011110B=222D • (2)01011010B=90D • (3)10101011B=171D • (4)1011111B=95D • 2.将第一题中各二进制数转换为十六进制数。 • (1)11011110B=DEH • (2)01011010B=5AH • (3)10101011B=ABH • (4)1011111B=5FH

  2. 第一章 作业答案 • 3.将下列各数转换为十六进制数。 • (1)224D=E0H • (2)143D=8FH • (3)01010011BCD=35H • (4)00111001BCD=27H • 4. 分别有6根地址线和11根地址线的存储器,各可寻址多少个存储单元? • 答:n条地址线可以寻址2n个存储单元。 • 所以:6根地址线可寻址64个存储单元 • 11根地址线可寻址2048个存储单元

  3. 第一章 作业答案 • 5.半导体存储器可分为几类?各有何特点和用处? • 答:半导体存储器可分为只读存储器(ROM)和随机存储器(RAM)。 • 1)只读存储器ROM(Read Only Memory)在使用时只能读出而不能写入,且断电后ROM中的信息不会丢失。 • ROM按存储信息的方法又可分为: • 掩膜ROM、 可编程的一次只读存储器OTP 、可擦写的只读存储器EPROM 、可电改写只读存储器EEPROM 。新型的非易失性存储器如FLASH,从原理上看,属于ROM型存储器;但是从功能上看,由于可以随时改写信息,又相当于RAM。并且集成度高、成本低、体积小、电擦除,读写方便等。 • 2)随机存储器RAM(Read Access Memory): • 又称读/写存储器。RAM按照存储信息的方式,可分为静态和动态两种。

  4. 第三章 练习题答案 • 1. 什么是指令,什么是程序,什么又是微处理器器的指令集? 指令是微机指挥各部件工作的指示和命令,包括操作码和操作数。 程序是完成特定功能的指令的有序集合。 指令集是一种处理器能够执行的所有指令的集合。 • 2. 简述51单片机的特殊入口地址和上电后程序的执行过程。 • MCS51单片机有6个特殊地址:一个复位入口地址和5个中断入口地址,分别为0000H、 0003H、 000BH、 0013H、 001BH、 0023H • 计算机执行指令的过程分为三个阶段: (1)取指令:根据程序计数器PC中的值(程序指针),从ROM读出现行指令,送到指令寄存器; (2)分析指令:将指令寄存器中的指令操作码取出后进行译码,分析该指令要求实现什么操作,如执行数据传送,还是加、减等运算等,发出相应的控制信号。 (3)执行指令:取出操作数,然后完成操作码规定的操作要求。

  5. 第三章 练习题答案 • 3. 介绍MCS-51对各种存储空间的划分和管理。 • 51单片机的存储器采用哈佛结构,程序存储器和数据存储器是分开寻址的。 • (1)有片内片外统一编址的64KB程序存储器(16位地址);片内ROM(0000H~0FFFH)与片外ROM的低4KB地址空间相同,只能用其中之一; • (2)片内数据存储器,寻址范围:00H~FFH;其中00H~7FH是通用RAM,80H~FFH中有定义的21个特殊功能寄存器。 (3)片外数据存储器64KB(16位地址)。 • 片内RAM(00H~FFH)与片外RAM的低地址相同,要用不同的指令访问。

  6. 第三章 练习题答案 • 5. 复位后,各个SFR中的值是什么?选择了哪个工作寄存器组? MCS51单片机复位后,各个SFR中的值为: ⑴(PC)=0000H; ⑵(SP)=07H; ⑶(PSW)=00H; ⑷ P0~P3口锁存器全为1,可用作输入; ⑸ 除串行数据缓冲器SBUF为随机数外,其余SFR均清0。 • 选择的工作寄存器组为0组。

  7. 第三章 练习题答案 • 6. PSW中都有哪些标志位,它们各有什么作用? • PSW用于记录程序运行结果的状态。常用的状态标志有Cy(进位标志)、AC(半进位标志)、P(A中 “1”个数的奇偶性)、溢出标志OV。 • Cy:加法发生器进位或减法发生借位时置1,否则为0; • AC:加法发生器半进位或减法发生半借位时置1,否则为0; • P :反映A中内容1的个数的奇偶性,偶数个1则P=0,奇数个1则P=1; • OV:带符号数加减法时,运算结果超出8位带符号数所能表示的范围时,OV=1,否则为0。

  8. 第三章 练习题答案 • 7. 8051有几个特殊功能寄存器(SFR)?其中16位的又有哪些? 22个SFR(PC没有地址),11个可位寻址,DPTR和PC16位 • 8. 如果使用一片8031组建一个单片机系统,EA应该如何连接? • 接地

  9. 第三章 练习题答案 9. MCS51共有几个并行端口,它们有什么特殊功能? PIN 1-8:P1.0~P1.7是带有内部上拉电阻的8位准双向I/O口。可驱动4个TTL负载。 PIN 32-39:P0.0~P0.7第一功能是准双向I/O接口,做输出口使用时,需要外接上拉电阻。第二功能是分时复用为低8位地址总线和双向数据总线,在外扩片外存储器或扩展I/O接口时使用。可驱动8个TTL负载。 PIN 10-17:P3.0~P3.7是带有内部上拉电阻的8位准双向I/O口。可驱动4个TTL负载,同时还具有第二功能。 PIN 21-28:P2.0~P2.7第一功能是准双向I/O接口,带有内部上拉电阻。第二功能是在扩展片外存储器时,作高8位地址总线。可驱动4个TTL负载。

  10. 累加器A Direct直接 @Ri间址 Rn寄存器 data立即数 第四章 练习题答案 • 用图示法画出MCS-51的15种片内数据传送指令操作数间的关系: 答: • 试比较MCS-51与片外RAM和ROM进行数据传送的异同。 相同点:片外数据传送指令均以A作为与片外存储器间交换数据的寄存器。 不同点:片外RAM采用间址寻址,有读写两种方式,指令有: MOVX A,@DPTR(/@Ri)、 MOVX @DPTR(/@Ri),A ROM只能用变址寻址读出,指令有:MOVC A,@A+DPTR(/PC)。

  11. 第四章 练习题答案 • 写出程序将片内RAM20H~2FH中的数据传送到片内30H~3FH对应单元中。 SOLUTION sample1: 间址传送 MOV R0,#20H ;source data pointer MOV R1,#30H ;destination pointer MOV R2,#16 ;moving length Loop: MOV A,@R0 ; MOV @R1,A INC R0 ;point to the next datum INC R1 DJNZ R2,Loop SJMP $

  12. 第四章 练习题答案 SOLUTION sample2: 堆栈传送 MOV R2,SP ;it is a good habit to protect stack area MOV R0,#20H ;source MOV SP,#2FH ;destination Loop: MOV A,@R0 PUSH ACC ; ACC should be used to substitute A INC R0 CJNE R0,#30H,Loop MOV SP,R2 ;restore the preserved stack pointer(SP) SJMP $ 这里仅说明片内堆栈共享了片内RAM空间,试编制程序将SP作为源指针进行片内数据传送。

  13. 第四章 练习题答案 • 写出程序将片外RAM2000H~207FH中的数据传送到3000H~307FH的对应单元中。

  14. 第四章 练习题答案 • 将累加器A中的两位16进制数值转化成两个字节的ASCII码,存放到20H、21H单元中。 PUSH ACC ;transfer lower hex digit to ASCII LCALL H2ASC MOV 20H,A ;save results to 20H,21H POP ACC SWAP A ;transfer higher hex digit to ASCII LCALL H2ASC MOV 21H,A SJMP $ ;HALT H2ASC: ANL A,#0FH MOV DPTR,#ASCTAB MOVC A,@A+DPTR ;search for the corresponding AscII code RET ;return to main procedure ASCTAB:DB “0123456789ABCDEF” 说明: • 1.ASCII码表中以字符串形式列出的16进制数,在汇编后是以对应字符的ASCII方式存放到连续的存储单元中的,等价于:DB ‘0’,‘1’,‘2’,‘3’,……,E’,’F’。 • 2.子程序调用能精简代码长度,增加程序可读性;但会增加程序执行时间。 • 3.子程序调用过程中,参数可以通过寄存器、固定RAM单元或堆栈来传递。 • 4.无论是在主程序还是在子程序中,必须维持堆栈平衡才能使程序运行正确。

  15. 第四章 练习题答案 • 补充:由于16进制数和对应的ASCII码之间有如下关系: Hex:0~9 30H~39H +30H Hex:A~F 41H~46H +37H 可以用计算法重写以上程序H2ASC子程序,如下: H2ASC2: ANL A,#0FH CJNE A,#0AH,NEXT NEXT: JC ADD30 ADD A,#7H ADD30: ADD A,#30H RET

  16. 第四章 练习题答案 • 写出将20H~2FH中的非压缩BCD码转换为压缩BCD码存于30H开始连续单元中的程序。 MOV R0,#20H MOV R1,#30H MOV R2,#8 LOOP: ACALL COMP DJNZ LOOP ;8 times SJMP $ ; COMP: param R0 source ptr, R1 dest ptr, function: compress 2 BCD digits into 1 byte COMP: MOV A,@R0 ;read source high4 SWAP A INC R0 XCHD A,@R0 ;compressed with source low4 INC R0 MOV @R1,A ;save to the destination unit INC R1 RET

More Related