1第一章一、计算题1、①(10000111)2(87)16②(0.101)2(0.A)16③(101111.1011)2(2F.B)162、①(430)10(1AE)16②(0.6875)10(0.B)16③(110.851563)10(6E.DA0008637BD058)163、①(11101010110)2(1878)10②(1001000.0101101)2(72.351563)10③(0.010101)2(0.328125)104、①00011100B②10000000B③11110000B5、原码反码补码①001001100010011000100110②010000000100000001000000③1111000010001111100100006、XYX+YX-Y①00100110001101110110010110001001真值101-9②01001110000011110101110100111111真值9363③10110011011000010010111001101100s真值461087、(863)10(895)10(365)108、414235H434F4D5055544552H5374756479H二、问答题1、什么是数制?为什么微型计算机要采用二进制?十六进制数能为计算机执行么?为什么要学习十六进制数。答:数制就是计数方式,计算机中采用二进制是由计算机所使用的逻辑器件所决定。这种逻辑器件是具有两种状态的电路(触发器)好处是运算法则简单、实现方便,两个状态的系统具有稳定性。计算机中的数只能用二进制表示,十六进制适合于读写方便需要。2、单片机的发展状况如何?它有哪些应用?试举例说明。答:1971年微处理器研制成功。1974年,美国仙童公司研制出世界第一台单片微型计算机F8。该机由两块集成电路芯片组成,具有与众不同的指令系统,深受民用电器及仪器仪表领域的欢迎和重视。从此单片机开始迅速发展,应用领域也不断扩大。目前,单片机正朝着高性能和多品种方向发展,但以MCS-51为主的8位单片机仍然占据着单片机的主导地位。单片机的应用日益广泛,如应用在仪器仪表、家用电器和专用装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。(1)工业控制。单片机可以构成各种工业控制系统、数据采集系统等。如数控机床、自动生产线控制、电机控制、测控系统等。(2)仪器仪表。如智能仪表、医疗器械、数字示波器等。2(3)计算机外部设备与智能接口。如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。(4)商用产品。如自动售货机、电子收款机、电子秤等。(5)家用电器。如微波炉、电视机、空调、洗衣机、录像机、音响设备等。(6)消费类电子产品。(7)通讯设备和网络设备。(8)儿童智能玩具。(9)汽车、建筑机械、飞机等大型机械设备。(10)智能楼宇设备。(11)交通控制设备。第二章一、填空1、0;低电平2、32;4;8;R0-R73、上电复位;手动按键复位;00;00H-07H;114、内部数据存储器;外部数据存储器;内部程序存储器;外部程序存储器;35、256B;64KB6、0B;4KB7、1.2MHZ;12MHZ;二、选择1、①2、④3、①4、①5、②6、③7、③8、③9、③三、判断1、×2、×3、×4、√5、×6、×7、×8、×9、×四、问答题1、MCS-51单片机内部包含哪些主要逻辑功能部件?答:(1)一个8bitCPU是微处理器的核心,是运算和逻辑计算的中心。(2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。(3)4KROM程序存贮器:存贮程序及常用表格。(4)128BRAM数据存贮器:存贮一些中间变量和常数等。(5)两个16bit定时器/计数器:完全硬件定时器(6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。(7)一个可编程全双工串行口。(8)五个中断源。2、MCS-51系列单片机的存储器可划分为几个空间?各自的地址范围和容量是多少?在使用上有什么不同?答案:MCS-51的存储器空间可以划分为以下4种,分别是:程序存储器;内部数据存储器;内部特殊功能寄存器;外部数据存储器;对89S51来说,程序存储器分为片内程序存储器和片外程序存储器,片内程序存储器地址范围为0000H-0FFFH4KB;片外程序存储器地址范围0000H~FFFFH,64KB。内部程序存储器与外部程序存储器统一编址,当EA为高电平时,从内部程序存储器开始读取程序,达到4KB后跳到片外程序存储器的1000H开始读取程序;当EA3为低电平时,直接从片外程序存储器的0000H开始处读取程序。内部数据存储器地址范围为00H~7FH,128B,在程序中做通用存储器使用。内部特殊功能寄存器地址范围80H~FFH,128B,专用于控制、管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作。外部数据存储器地址范围0000H~FFFFH,64KB,又称为外部数据RAM,当单片机内部128个字节的数据RAM不能满足系统工作的需要时,可以通过它的外部总线扩展外部数据存储器。3、位地址7CH和字节地址7CH有何区别?位地址7CH具体在内存中什么位置?答:字节地址7CH是片内数据存储器中的一个地址单元,该地址单元中可以存放8位二进制数,位地址7CH是内部数据存储器中位寻址区中的一位,该地址单元中可以存放1位二进制数。位地址7CH具体在片内数据存储器字节地址为2FH中的第4位(2FH.4)。4.分别说明程序计数器PC和堆栈指针SP的作用?复位后PC和SP中值各为何?答:程序计数器PC时一个16位的计数器,其内容为将要执行下一条指令的首地址,PC寻址范围达64KB,具有自动加1功能,以实现程序的顺序执行。PC不可寻址,无法对它进行读写。堆栈指针SP的内容就是堆栈栈顶的存储单元地址,向堆栈中每存一个数,SP中的值就自动加1,每取一个数就自动减1,SP始终指在栈顶地址。复位后PC为0000H和SP为07H。5、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么?答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下:PSW.7(Cy):进位标志位。PSW.6(AC):辅助进位标志位,又称为半进位标志位。PSW.5(F0):用户标志位。PSW.4、PSW.3(RS1和RS0):寄存器组选择位。PSW.2(OV):溢出标志位。PSW.1(空缺位):此位未定义。PSW.0(P):奇偶校验位。6、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU在操作中要使用两组工作寄存器,SP应该多大?答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。如果CPU在操作中要使用两组工作寄存器,SP应该至少设置为0FH。7、MCS-51的4个并行I/O口在使用上有哪些特点和分工?89S51/52单片机的4个I/O口在结构上是相同的,但又各具特点。这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端4口使用。在作为一般的通用I/O输入时,都必须先向锁存器写入“1”,使输出驱动场效应管FET截止,以免误读数据。各自特点如下:(1)P0口为双向8位三态I/O口,它既可作为通用I/O口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口。作为通用I/O口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的可靠性。每个引脚可驱动8个TTL负载。(2)P1口为8位准双向I/O口,内部具有上拉电阻,一般作通用I/O口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置1。每个引脚可驱动4个TTL负载。(3)P2口为8位准双向I/O口,内部具有上拉电阻,可直接连接外部I/O设备。它与地址总线高8位复用,可驱动4个TTL负载。一般作为外部扩展时的高8位地址总线使用。(4)P3口为8位准双向I/O口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。作为通用I/O口时,功能与P1口相同,常用第二功能。8、为什么说单片机的P1和P3端口是静态I/O端口,而P2端口是动态I/O端口,用P2端口输出一个字节数据,在端口线上能得到数据么?9、MCS-51的并行I/O信息有哪两种读取方法?读改写操作是针对并行I/O口的那一部分进行的?有何优点?答:读引脚和读锁存器。锁存器。对“读改写”指令,不直接读引脚而读锁存器,是为了避免可能出现的错误。因为在端口已处于输出状态的情况下,如果端口引脚正好驱动一个晶体管基极,导通了的PN结就会把引脚的高电平拉低,这时若直接读端口引脚,将会把原输出的数据“1”误读成“0”。但是,如果从锁存器来读取数据,由于原输出数据在锁存器中已被锁存,即使引脚电平发生变化,也不会出现上述可能的错误。10、若采用6MHz的晶振,8051的振荡周期和机器周期分别是多少微秒?一条单字节双周期指令的指令周期为多少微秒?答:6-1us;2us;4us第三章一、填空1、指令2、111;单;双;三3、74、操作数;A;B;DPTR5、操作数;地址;R0;R1;DPTR6、直接7、DPTR;PC;A;程序存储器8、DPTR;SP;MOVX9、直接;立即10、80H11、68H12、68H13、62H;68H;36H14、41H;39H;88H15、BFH;0;0;016、2EH;1;1;017、26H;118、90H;06H;0;119、10H;03H;0;020、00H;96H5二、选择1、④2、③3、④4、②2.要访问一特殊功能寄存器和外部数据存储器应分别采用哪种寻址方式?答:直接寻址方式、寄存器寻址可用于访问特殊功能寄存器,位寻址方式可对特殊功能寄存器中的可位寻址位进行寻址。外部数据存储器应采用寄存器间接寻址方式。5.请写出能完成每一种操作的指令序列①将R0的内容传送到R1MOVAR0MOVR1A②.将内部RAM20H单元的内容传送到R7MOVR720H③.将外部RAM1000H单元的内容传送到内部RAM30H单元MOVDPTR#1000HMOVXA@DPTRMOV30HA④.将外部RAM1000H单元的内容传送到R1MOVDPTR#1000HMOVXA@DPTRMOVR1A6.阅读下面的程序。要求:说明程序的功能;写出涉及的寄存器及片内RAM单元的最后结果答:该程序是将内部RAM40H中的内容与41H的内容相加,和放在43H,42H中。指令执行后:A的内容为01H,42H的内容为5AH,43H的内容为01H。7、假设在内RAM30H和31H中存放有一个16位的无符号二进制数(高字节在高地址单元),请编写程序对该数乘2,再放回原单元。ORG1000HSTART:MOVA30H;MOVB#2;MULAB;MOV30HA;MOV32HB;MOVA31H;MOVB#2;MULAB;ADDA32H;MOV31HA;END8、写出16位数相加程序,设被加数存放在内RAM20H,21H单元,加数存放在22H,23H单元,并将结果存放在后续单元24H、25H中(要求低位数存放在低地址单元中)。ORG1000HSTART:CLRCMOVA20H;6ADDA22H;MOV24HA;MOVA21H;ADDCA23H;MOV25HA;END9、试编写程序:采用“与”运算,判断内RAM20H单元的8位二进制数是正数还是负数。试根据30H中的值编写程序判断20H单元中数的