习题一参考答案1-1假设某CPU含有16根地址线,8根数据线,那么该CPU的最大寻址能力为多少KB?答:CPU的最大寻址能力为:K64222610161-2在计算机里,一般具有哪三类总线?请说出各自的特征(包括传输的信息类型、单向传输还是双向传输)。答:1、数据总线,双向,输入输出数据信息;2、地址总线,单向,输出地址信息;3、控制总线,具体到某一根控制线为单向,输入或者输出控制信息;1-3MCS-51系列单片机时钟周期、机器周期与指令周期这三者关系如何?CISC指令系统CPU所有指令周期是否均相同?答:时钟周期即为振荡周期,由外接晶振频率或外部输入的时钟频率决定,机器周期由12个时钟周期(或6个)构成,指令周期由1~4个机器周期构成;指令周期因具体指令不同而不同;1-4计算机字长的含义是什么?MCS-51单片机的字长是多少?答:计算机字长是指CPU一次能够处理的信息位长度;MCS-51单片机的字长是8位。1-5ALU单元的作用是什么?一般能完成哪些运算操作?答:ALU单元的作用是进行算术逻辑运算;算术运算主要是加、减、乘、除,逻辑运算主要是与、或、非、异或等。1-6CPU内部结构包含了哪几部分?单片机(MCU)芯片与通用微机CPU有什么异同?答:CPU主要包括算术逻辑单元ALU、控制单元CU和内部寄存器;单片机(MCU)芯片是在通用CPU的基础上增加存储器、定时器/计数器、通信接口以及各种接口电路等构成。1-7在单片机系统中常使用哪些存储器?答:包括程序存储器ROM和数据存储器RAM。1-8指令由哪几部分组成?答:一般由操作码和操作数组成,部分指令只有操作码而无操作数。1-9、什么是汇编语言指令?为什么说汇编语言指令比机器语言指令更容易理解和记忆?通过什么方式可将汇编语言程序转化为机器语言程序?答:【1】用助记符表示的指令【2】因为在汇编语言指令中每条操作码、操作数都是用特定符号表示;而机器语言中的操作码和操作数均用二进制表示,没有明显特征【3】可通过专门的软件或手工查表方式1-10、汇编语言程序和汇编程序这两个术语的含义是否相同?答:两者含义不同;1.汇编语言程序指由汇编语言指令构成的程序;2.汇编程序指将完成汇编语言指令转换为机器语言指令的程序1-11、什么是寻址方式?对于双操作数指令来说,为什么不需要指定操作结果存放位置?答:【1】确定指令中操作数所在存储单元地址的方式【2】在现代计算机系统中,对于双操作数指令,一般将指令执行后的结果放在第一个操作数(即目标操作数),这样可以减少指令码的长度1-12、指出下列指令中每一操作数的寻址方式?答:【1】目标操作数为寄存器寻址,源操作数为立即数寻址【2】目标操作数为直接寻址,源操作数为寄存器寻址【3】目标操作数为直接寻址,源操作数为直接寻址【4】目标操作数为直接寻址,源操作数为寄存器间接寻址【5】寄存器寻址注:在单片机中,问到指令的寻址方式,既要答目标操作数的寻址方式,也要答源操作数的寻址方式,这与微机不同,请切记!1-13、单片机的主要用途是什么?新一代8位单片机芯片具有哪些主要技术特征?列举目前应用较为广泛的8位、32位单片机品种。答:【1】数值计算,能实时监测系统的输入量,控制系统的输出量,从而实现自动控制功能,主要面向工业控制等【2】可参考23页【3】可参考21~22页习题二参考答案2-180C54、80C32、87C54、89C54CPU有什么不同?在由80C32芯片组成的应用系统中引脚是如何连接的?为什么要这样连接?答:略2-28XC5X,如89C52单片机内部含有哪几类存储器?各自的容量分别是多少?答:包括程序存储器8K和数据存储器256B。2-38XC5X系列CPU共有多少根I/O引脚?在什么情况下,不能将P0口作为通常意义上的输入/输出引脚使用?答:共有I/O引脚32根;在P0作为地址数据总线端口使用时就不能作为普通I/O口使用。2-4简述P1口的内部结构。为什么将P1口引脚作为输入引脚使用前,一定要向P1口锁存器相应位写入“1”?答:主要由两个三态门、一个D型锁存器、一个MOS管和一个上拉电阻构成;P1作为输入引脚使用时一定要先写入“1”,其目的是使内部MOS管处于截止状态,避免MOS管对输入信号构成影响。2-5根据8XC5X系列CPUP1~P3口结构,如果用P1.x引脚驱动NPN三极管,则最大集电极电流ICMAX为多少?(假设β取100)。答:假设内部上拉电阻的阻值为K20,三极管发射结正向导通电压为V7.0,则:基极电流:mAKVIB215.0207.05集电极电流:mAmAIIBC5.21215.0*1002-6地址/数据分时复用的含义是什么?8XC5XP0口与存储器,如62256相连时,两者之间需要接什么功能的芯片,才能锁存低8位地址信息?试画出8XC5X与SRAM62256芯片(作数据存储器使用)之间的连接图。答:地址/数据分时复用是指总线既可作为数据线,也可作为地址线,但是具体到某一时刻只能作为数据线或者地址线;与62256相连时,在存储芯片和单片机芯片之间必须加锁存芯片,如74LS373等,用来锁存低8位地址信息;连接电路图(见课本,略)2-78XC5X单片机CPU复位后,使用了哪一工作寄存器区?其中R1对应的物理存储单元地址是什么?答:8XC5X单片机CPU复位后,使用了工作寄存器区0;此时R1对应的物理存储单元的地址为01H。2-8如果希望工作寄存器组中R0对应的物理存储单元为10H,请写出系统复位后,实现这一要求的指令。答:SETBCS1CLRCS02-9说出访问下列寄存器或存储空间可以使用的寻址方式,并举例:(1)8XC5X系列内部RAM前128字节。答:直接和寄存器间接寻址。(2)8XC52/54/58系列内部RAM后128字节。答:寄存器间接寻址(3)特殊功能寄存器。答:直接寻址。(4)外部数据存储器。答:寄存器间接寻址2-108XC5XCPU的机器周期与时钟周期是什么关系?如果晶振频率为12MHz,则一个机器周期是多少微秒?答:1)、12个时钟周期构成1个机器周期。2)、1uS2-118XC5XX2CPU的机器周期与时钟周期是什么关系?为什么说当CKCON寄存器为01H时,时钟频率为6MHz的8XC5XX2系统运行速度与时钟频率为12MHz的8XC5X系统的运行速度相同?答:可以选择“机器周期/12时钟”或“机器周期/6时钟”。当CKCON寄存器为01H时,时钟频率为6MHz的的8XC5XX2机器周期为:uSMHz166。而时钟频率为12MHz的8XC5X系统的机器周期为:uSMHz11212。2-12在晶振输出端X2引脚应观察到什么样的波形?当晶振频率较低时,如何使X2引脚输出为理想状态下的波形?答:方波。2-13分析MCS-51写外部数据存储器写时序,说明为什么可使用74LS573或74LS373芯片扩展MCS-51的输入口,而不能扩展输出口。请画出使用两片74LS373芯片扩展MCS-51的输入口、使用两片74LS237扩展输出口的电路图(假设系统中无需扩展外部存储器)。答:使用边沿触发器作为输出锁存器时可以可靠的锁存输出数据。2-148XC5XCPU复位后内部RAM各单元的内容是否改变?程序计数器PC的值是什么?答:否。此时PC=0000H.2-15MCS-51单片机通过什么指令读/写外部数据存储器?通过什么引脚选通外部数据存储器?答:使用MOVX读写外部数据存储器。通过RD或者WR.2-16画出由一片80C32CPU、一片27128EPROM和一片6264SRAM组成的单片机应用系统,要求给出有关信号的连接以及各自存储空间的地址范围。答:略2-17在图2-7所示的电路中,假设驱动引脚为P1.0,则执行了如下程序段后,累加器Acc的内容为什么?这又说明了什么?SETBP1.0JBP1.0,NEXT1MOVA,#0AAHSJMPEXITNEXT1:MOVA,#55HEXIT:NOP答:Acc的内容为AAH。因为JBP1.0,NEXT1是根据P1.0的电平进行判断转移,如果P1.0引脚的电平为高则转移。因为三极管导通时P1.0引脚被钳位到低电平。习题三参考答案3-1MCS-51内部RAM低128字节支持哪些寻址方式?请写出用不同寻址方式将内部RAM30H单元信息传送到累加器A的指令或程序片段;内部RAM高128字节支持哪些寻址方式?请写出将内部RAM80H单元内容传送到累加器A的指令或程序片段。答:略:3-2简述“RET”与“RETI”指令的区别。答:1)RET是子程序返回指令,RETI是中断服务程序返回指令;2)RETI在返回时会清除有关中断标志位,而RET不具有此功能。3-3指出下列指令中每一操作数的寻址方式。(1)MOV40H,A(2)MOVA,@R0(3)MOVX@DPTR,A(4)MOVCA,@A+DPTR(5)ADDA,#23H(6)PUSHAcc(7)MOVP1,32H(8)MOVC,P1.0(9)INCP0(10)DECR2(11)SJMPEXIT答:略3-4执行“CJNEA,#60,NEXT”指令后,寄存器A中的内容是否被改变?请验证。答:否。3-5写出实现下列要求的指令或程序片段,并在仿真机上验证。(1)将内部RAM20H单元内容与累加器A相加,结果存放在20H单元中。答:ADDA,20HMOV20H,A(2)将内部RAM80H单元内容与内部RAM31H单元内容相加,结果存放到内部RAM的31H单元中。答:MOVR0,#80HMOVA,@R0ADDA,31HMOV31H,A(3)将内部RAM20H单元内容传送到外部RAM20H单元中。答:MOVA,20HMOVDPTR,#0020HMOVX@DPTR,A(4)将程序状态字寄存器PSW内容传送到外部RAM的0D0H单元中。答:MOVA,PSWMOVDPTR,#00D0HMOVX@DPTR,A(5)将内部RAM08H~7FH单元,共120字节传送到以8000H为首地址的外部RAM中。答:MOVDPTR,#8000HMOVR0,#08HMOVR2,#120LOOP:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR2,LOOPEND(6)将外部RAM8000H~0803FH单元,共64字节传送到以40H为首地址的内部RAM中。答:MOVDPTR,#8000HMOVR0,#40HMOVR2,#64LOOP:MOVXA,@DPTRMOV@R0,AINCDPTRINCR0DJNZR2,LOOPEND(7)将外部RAM8000H~0807FH单元,共128字节传送到以0000H为首地址的外部RAM中。答:AURX1EQU0A2H;注意要自己定义MOVDPTR,#8000HINCAUXR1MOVDPTR,#0000HINCAUXR1MOVR0,#128LOOP:MOVXA,@DPTRINCDPTRINCAUXR1MOVX@DPTR,AINCDPTRINCAUXR1DJNZR0,LOOPEND(8)将存放在内部RAM的40H、41H和外部RAM的8000H、8001H的16位二进制数相加,结果存放在内部RAM的40H和41H单元中(假设低位字节存放在低地址中)。答:MOVDPTR,#8000HMOVXA,@DPTR;注意使用MOVX指令,下同ADDA,40HMOV40H,AINCDPTRMOVXA,@DPTRADDCA,41HMOV41H,AEND(9)如果0~9七段数码显示器对应的字模码3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH存放在1000H为首地址的程序存储器中,写出将数字4对应的字模码输出到外部RAM3003H单元(即扩展I/O端口地址)的程序段。答:MOVDPTR,#1000HMOVA,#4MOVCA,@A+DPTR;注意使用MOVC指令MOVDPTR,#3003HMOVX@DPTR,A;注意使用MOVX指令ORG1000HDB03FH,06H,5BH,4FH,5