《单片机原理及应用》复习试题整理版_第1页
《单片机原理及应用》复习试题整理版_第2页
《单片机原理及应用》复习试题整理版_第3页
《单片机原理及应用》复习试题整理版_第4页
《单片机原理及应用》复习试题整理版_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长江大学《单片机原理及应用》试题库一、填空题※001、单片机片内程序存储器按编程方式可分为ROM型(掩模型)OTP型(一次性编程)EPROM(紫外线擦除编程)EEPROM(电擦除编程)FLASH(闪速编程)。002、MCS-51的物理地址空间由片内数据存储区片外数据存储区片内程序存储区片外程序存储区四个存储器组成。003、MCS-51系列单片机的存储器,是由三个彼此独立的地址空间来组织的,它们分别为片内数据存储区片外数据存储区程序存储区。004、单片机复位时,PC=0000H,ACC=00H,PSW=00H,SP=07H,P0-P3=0FFH。005、MCS-51系列单片机的地址总线是16位,数据总线是8位。006、MCS-51系统单片机的数据总线由P0提供,低八位地址总线由P0提供,高八位地址总线由P2提供。007、MCS-51系列单片机的一个机器周期包含12个时钟周期;设晶振频率为6MHz,则时钟周期为0.167微秒,机器周期为2微秒。008、8051型号单片机内部有21个特殊功能寄存器,它们可以分为4组。009、堆栈在片内数据存储区,程序存放在程序存储区,外部IO接口设置片外数据存储区,中断服务程序存入在程序存储区。010、指令MOVCA,@A+DPTR属于变址寻址方式,指令MOVA,R3属于寄存器寻址方式,指令MOVC,04H属于直接寻址方式,MOV30H,#24H属于直接寻址方式。011、8051型号的单片机内部有11个用户可位寻址单元。012、8031单片机有32个IO线。013、执行下列程序后,CY=1、OV=0、A=94H。MOVA,#56HADDA,#74HADDA,A014、设内部RAM中(59H)=50H,执行一列程序段后,A=25H、(50H)=0、(51H)=25H、(52H)=70H。MOVA,59HMOVR0,AMOVA,#00HMOV@R0,AMOVA,#25HMOV51H,AMOV52H,#70H015、执行下列程序段后,A=0A7H、R0=7AH、(R0)=0A7H。MOVR0,#0A7HXCHA,R0SWAPAXCHA,R0MOV@R0,A016、执行下列程序段后,A=6EH、(30H)=0EEH、(R0)=0EEH。MOV30H,#0A4HMOVA,#0D6HMOVR0,#30HMOVR2,#47HANLA,R2ORLA,@R0SWAPACPLAXRLA,#0FFHORL30H,A017、下述程序执行后,SP=42H、A=30H、B=30H。ORG2000HMOVSP,#40HMOVA,#30HLCALL2500HADDA,#10HMOVB,AL1:SJMPL1ORG2500HMOVDPTR,#2009HPUSHDPLPUSHDPHRET018、若指令CJNE@R1,#7AH,10H的地址为1800H,则其转移地址为1813H。019、已知:A=0C9H,B=8DH,CY=1,则指令ADDCA,B执行之后,A=57H、B=8DH。020、已知:A=0C9H,B=8DH,CY=1,则指令SUBBA,B执行之后,A=3BH、B=8DH。021、已知:A=0C9H,B=8DH,CY=1,则指令ADDA,B执行之后,A=56H、B=8DH。022、已知:A=0C9H,B=8DH,CY=1,则指令SUBA,B执行之后,A=题错、B=题错。023、下述程序段执行之后,A=64H、(50H)=00H。CLRAMOV50H,#64HL1:INCADJNZ50H,L1※024、执行下列程序段后,内部RAM中的(90H)=30H、(0A0H)=0CFH。MOVP1,#30HMOVA,90HCPLAMOVP2,A025、在程序存储器中,数据表格为:1010H:02H1011H:04H1012H:06H1013H:08H执行下列程序之后,A=02H、R0=02H、PC=1004H。1000H:MOVA,#0DH1002H:MOVCA,@A+PC1003H:MOVR0,A026、在程序存储器中,数据表格为:7010H:02H7011H:04H7012H:06H7013H:08H执行下列程序段之后,A=02H、DPH=70H、PC=1009H。1004H:MOVA,#10H1006H:MOVDPTR,#7000H1008H:MOVCA,@A+DPTR027、已知A中内容为34H,执行下列程序之后,A=34H、R6=92H。MOVR6,#29HXCHA,R6SWAPAXCHA,R6028、设SP=60H,内部RAM的(30H)=24H,(31H)=10H,在下列程序段注释下画线下填写执行结果。PUSH30HPUSH31HPOPDPL;SP=61H、(SP)=24H。;SP=62H、(SP)=10H。;SP=61H、DPL=10H。;SP=60H、DPH=24H。POPDPHMOVA,#00HMOVX@DPTR,A029、执行下列程序段后,内部RAM的(20H)=0B0H、A=90H。MOV20H,#0A4HMOVA,#0D6HMOVR0,#20HMOVR2,#57HANLA,R2ORLA,@R0SWAPACPLAORL20H,ACLR01HCLR02H※030、执行下列程序段后,A=77H、PC=1004H。1000H:MOVA,#02H1002H:MOVCA,@A+PC1003H:RET1004H:66H,77H,88H,99H031、子程序返回指令是RET,中断服务程序返回指令是RETI。032、已知内部RAM的(40H)=20H,(41H)=10H,执行下列程序段后,A=30H、PC=1020H。1020H:PUSH40H1022H:PUSH41H1024H:MOVA,#30HRET033、已知A=55H,CY=1,执行下列程序段后,A=55H、CY=1。MOVR2,#04HLOOP:RRADJNZR2,LOOP034、已知A=55H,CY=1,执行下列程序段后,A=5AH、CY=1。MOVR2,#04HLOOP:RRCADJNZR2,LOOP035、已知A=55H,CY=1,执行下列程序段后,A=55H、CY=1。MOVR2,#04HCLRCLOOP:RRCADJNZR2,LOOP036、MCS-51系列单片机访问内部RAM数据存储器时用MOV指令,访问外部数据存储器时用MOVX指令,访问程序存储器时用MOVC指令。037、MOVX@DPTR,A指令作用是对片外数据存储器或片外IO口写操作。038、MOVXA,@DPTR指令作用是对片外数据存储器或片外IO口读操作。039、MCS-51系列单片机中对SFR(特殊功能寄存器)采用直接寻址方式。040、8051单片机内部有2个可编程定时计数器。041、8051单片机的定时计数器T0由TH0和TL0专用寄存器组成。042、8051单片机的定时计数器T1由TH1和TL1专用寄存器组成。043、MCS-51系列单片机的定时计数器作为计数时,最高计数频率为振荡频率的1/24倍,当晶振频率为12MHz时,则其最高计数频率为0.5MHz。044、MCS-51系列单片机的定时计数器作为定时时,计数频率为时钟频率的1/12,设时钟频率为12MHz,则其最高计数频率为1.0MHz。045、设单片机的定时计数器0选方式2作为计数功能,定时计数器1选方式1作为定时,初始化方式寄存器为MOVTMOD,#16H。046、指令MOVTMOD,#22H的功能是定时计数器0和定时计数器1都是以方式2作为定时功能。047、设晶振频率为6MHz,定时器处于不同的工作方式时,最大定时范围分别是512us16384us131072us。048、设晶振频率为6MHz,用定时器1产生100ms的定时,则计数初值应为3CB0H。049、设晶振频率为6MHz,用定时器1产生100us的定时,则计数初值应为FF78H。050、单片机的发展大致可分为2个阶段。051、单片机与普通计算机不同之处在于其将CPU、存储器和I/O三部分集成于一块芯片之上。052、单片机的存储设计采用哈佛结构,它的特点是将程序存储空间和数据存储空间在物理上分开。053、CPU主要由运算器和控制器组成。CPU中的布尔处理器用来处理位操作。054、第四代计算机所采用的主要器件是中大规模以上集成电路。055、MCS-51系列单片机中,片内元ROM的机型是8031,有4KBROM的机型是8051,而有4KBEPROM的机型是8751。056、-32的补码是11100000B,补码11011010B代表的真值是-38D。057、原码数BFH=-63D,原码数6EH=110D。058、100的补码=64H,-100的补码=9CH。059、在8031单片内部,其RAM高端128个字节的地址空间称为特殊功能寄存器区或SFR区,但其中仅有个字节有实际意义。060、通常单片机复位时,PC=0000H,SP=07H,通用寄存器则采用第0组,这一组寄存器的地址范围是从00H到07H。061、若PSW=18H,则选取的是第3组通用寄存器。062、8031单片机复位后,R4所对应的存储单元地址为04HH,因上电时PSW=00HH。063、若A中的数据为63H,那么PSW的最低位(即奇偶位P)为0。064、在微机系统中,CPU是按照程序计数器PC来确定程序的执行顺序的。065、堆栈遵循先进后出(或后进先出)的数据存储原则,针对堆栈的两种操作是PUSH和POP。066、在8031单片机中,使用P2、P0口传送地址信号,且使用了P0口来传送数据信号,这里采用的是总线复用技术。067、使用8031单片机时需将EA引脚接低电平,因为其片内无程序存储器,8031片外可直接寻址的存储空间达128KB。068、8位机中的补码数80H和7FH的真值分别为-128和127。069、配合实现“程序存储自动执行”的寄存器是PC,以其操作的一个特别之处是每取完一字节指令后PC自动加1。070、MCS-51单片机的PC的长度为16位,SP的长度为8位,数据指针DPTR的长度为16位。071、指令格式由操作码和操作数或操作数地址这两部分组成。072、寻址方式分为对指令的寻址和对数据的寻址两大类。073、访问8031片外数据存储器采用的是寄存器间接寻址方式。074、设A=55H,R5=AAH,则执行ANLA,R5指令后的结果是A=00H,R5=AAH。075、计算机对输入输出设备的控制方式主要有三种,其中,程序查询方式硬件设计最简单,但要占用不少CPU的运行时间;直接存储器访问方式的硬件线路最复杂,但可大大提高数据传送效率,而程序中断方式则介于上述两者之间。076、IO端口与外部设备之间传送的信息可分为3类。077、MCS-51单片机系列有5个中断源,上电复位时,同级中断的优先级别从高至低为外部中断0定时计数器0外部中断1定时计数器1和串行口中断,若IP=00010100B,则优先级别最高者为外部中断1、最低者为定时计数器1。078、在MCS-51单片机系统中,当某个中断源发出中断请求,单片机予以响应时,它必须处于源允许和总允许两级开中断状态。079、中断请求信号有电平触发和边沿触发两种触发方式。080、若系统晶振频率为12MHz,则T0工作于定时和计数方式时的最高(计数)信号频率分别为1000KHz和500KHz。081、要对300W个外部事件计数,可以选用定时计数器T1的模式0或模式1。082、MCS-51单片机8031中有2个16位的定时计数器,可以被设定的工作方式有4种。083、在串行通信中采用偶校验,若传送的数据为0A5H,则其奇偶位应为0(用“0”,“1”表示)。084、在异步通信中若每个字符由11位组成,串行口每秒传送250个字符,则对应波特率为2750。085、CPU寻址外设端口地址的方法有统一编址和独立编址两种。086、当8051的RST端上保持两个机器周期以上的低电平时,8051即发生复位。087、若系统晶振频率为6MHz,则时钟周期为0.33us,机器周期为2us,最短和最长的指令周期分别2us和8us。088、若系统晶振频率为8M,则执行一条MULAB指令所需时间为6us。089、当单片机的型号为8031/8032时,其芯片引线EA一定要接低电平。090、CPU与内存或IO接口相连的系统总线通常由地址数据控制等三种信号组成。091、MCS-51机中扩展IO口占用片外数据存储器的地址空间。092、MCS-51单片机访问片外存储器利用ALE信号锁存来自P0口的低八位地址信号。093、12根地址线可选4096个存储单元,32KB存储单元需要15根地址线。094、若LED为共阳极接法(即负逻辑控制),则提示符P的七段代码值应当为0CH或8CH。095、用并行口扩展一个有32只按键的行列式键盘,最少需要12根IO线。096、若增加8KBX8位的RAM区,请问选用Intel2114(1KBX4位)需购16片;若改用6116(2KBX8)需购4片;若改用6264(8KBX8)需购1片。097、三态缓冲寄存器的“三态”是指低电平态,高电平态和高阻态。098、74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中8块芯片。099、74LS273通常用来作简单输出接口扩展,而74LS244则常用来作简单输入接口扩展。100、存储器的主要功能是存储指令和数据。101、半导体存储器的最重要的两个指标是存储容量和存取速度。102、若你正在编辑某个文件,突然断电,则计算机中RAM类型存储中的信息全部丢失,且通电后也不能自动恢复。103、MCS-51单片机的外部存储器分为程序和数据两部分,要将这两部分合二为一使用时,需用RD和PSEN两个控制信号相与后产生的信号对存储器进行选通。104、32KBRAM的首地址若为2000H,则末地址为9FFFH。105、一个8路数据选择器有3个选择输入端。106、起址范围为0000H-3FFFH的存储器容量为16KB。107、已知RAM芯片6116(2KBX8)的内部存储单元排列为128行X16列,请问所采用的内部双译码行输入地址线为7根,列输入地址线为4根,该片共占用11根地址线。108、已知RAM芯片6116(2KBX8)有24条外引脚,请问应分配11个引脚给地址线,分配8个引脚给数据线,再分配2个引脚给电源和地线外,剩余的3个引脚应该分配给CEOEWE。109、一个2输入二进制译码器,共有4个输出。110、8255可编程芯片通常作为并行接口扩展之用。111、8253可编程芯片通常作为定时计数器扩展之用。112、8155可编程芯片通常作为并行接口,计数器,存储器扩展之用。113、8279可编程芯片通常作为键盘、显示控制器扩展之用。114、若用8255或8155来扩展一个有36只按键的行列式键盘,最少需要12根IO线。115、MCS-51单片机的51子系列含有2个16位的定时器,52子系列含有3个16位的定时器。116、用一处8279芯片最多可扩展64只按键和16只长段显示器。117、8279芯片中的16字节显示缓冲区,其数据应该送待显字符的七段代码码。118、A/D转换器的作用是将模拟量转为数字量;D/A转换器的作用是将数字量转为模拟量。119、A/D转换器的两个最重要指标是转换速度和转换精度。120、不带输入数据锁存器的D/A转换器,应当通过锁存件与CPU传送数据。121、无三态输出功能的A/D转换器,应当通过三态器件与CPU传送数据。122、从输入模拟量到输出稳定的数字量的时间间隔是A/D转换器的技术指标之一,称为转换速度。123、若有8位D/A转换器的输出满刻度电压为+5V,则该D/A转换器的分辨率为0.0196V。二、选择题※001、有下述程序段,LOOP:MOVA,P1CJNEA,#55H,LOOP其中MOVA,P1是2字节指令,CJNE是3字节指令,则CJNE指令的偏移量是()。①、05H②、06H③、0FCH④、0FBH002、已知PSW=10H,通用寄存器R0-R7的地址是()。①、00H-07H②、08H-0FH③、10H-17H④、18H-1FH003、已知8031单片机的晶振频率为12MHz,2字节指令周期是()。①、1us②、2us③、3us④、4us004、8051单片机复位后,第一个被压入栈的数据被写入()单元中。①、06H②、07H③、08H④、09H005、要使8051单片机正常可靠复位,则RESET复位信号至少保持()。①、0.5个机器周期②、1个机器周期③、2个机器周期④、10个机器周期006、单片机执行MOV90H,#00H指令之后,对()SFR(特殊功能寄存器)有影响。①、TMOD②、P0③、P1④、P2007、当8051CPU访问SFR(特殊功能寄存器)时,采用()寻址方式。①、直接寻址②、立即寻址③、间接寻址④、寄存器寻址008、8051单片机堆栈操作遵循()原则。①、先加后压、先弹后减②、先压后加、先弹后减③、先加后压、先减后弹④、先压后加、先减后弹※009、已知子程序调用指令ACALL在程序存储器中的首地址为0100H,子程序入口地址为0250H。该指令的机器码是()。①、5100H②、5120H③、5140H④、5150H010、已知绝对转移指令AJMP在程序存储器中的首地址为2500H,要求转移到2250H地址处执行程序,该指令的机器码是()。①、4120H②、4130H③、4140H④、4150H011、执行下列程序段后,A=()MOV23H,#0AHCLRALOOP:ADDA,23HDJNZ23H,LOOPSJMP$①、45②、55③、56④、46012、设晶振频率为6MHz,下述子程序DELAY的延时时间为()。DELAY:MOVR2,#0FAHL1:MOVR3,#0FAHL2:DJNZR3,L2DJNZR2,L1RET①、251506us②、251504us③、250006us④、250004us013、设晶振频率为6MHz,下述子程序NOPA的延时时间为()。NOPA:MOVR2,#0FAHLOOP:NOPDJNZR2,LOOPRET①、1500us②、1502us③、1504us④、1506us014、下面四种指令中,哪一条指令属于变址寻址方式()。①、MOVA,R0②、MOVCA,@A+DPTR③、MOVTMOD,#20H④、MOVDPTR,#2000H015、下面哪条指令不属于直接寻址方式()。①、MOVA,3AH②、MOVTCON,A③、SETB20H④、MOVTMOD,#20H016、下面哪条指令属于寄存间接寻址方式()。①、ORLA,#20H③、MOVA,@R0②、ANL30H,#40H④、MOVTMOD,#00H017、下面哪条指令是错误的()。①、INC30H③、DEC30H②、INCDPTR④、DECDPTR018、要把外部RAM的20H单元的内容传送到R0;以下哪种选项正确()。①、MOVR1,#20HMOVA,@R1②、MOVR1,#20HMOVXA,@R1MOVR0,AMOVR0,A③、MOVDPTR,#0020HMOVX@DPTR,A④、MOVR1,20HMOVXA,@R1MOVR0,AMOVR0,A019、要把外部RAM的1060H中的内容送到片内RAM的54H单元中,以下哪种程序段是错误的()。①、MOVR0,#60HMOVXA,@R0MOVR0,#54HMOV@R0,A②、MOVDPH,#10HMOVDPL,#60HMOVXA,@DPTRMOV54H,A③、MOVR1,#60HMOVP2,#10HMOVXA,@R1MOV54H,A④、MOVDPL,#60HMOVDPH,#10HMOVXA,@DPTRMOVR0,#54HMOV@R0,A020、要实现寄存器R7内容传送到R1中去,以下哪种程序段不正确()。①、MOVA,R7MOV@R1,A②、MOV30H,R7MOV@R1,30H④、MOVB,R7③、MOV@R1,R7MOV@R1,B021、电子计算机技术在半个世纪中虽有很大进步,但至今其运行仍遵循着一位科学家提出的基本原理。这位科学家是()。①、牛顿②、爱因斯坦③、爱迪生④、冯。诺伊曼022、用晶体管作为电子器件制成的计算机属于()。(1)、第一代(2)、第二代(3)、第三代(4)、第四代023、通常所说的主机是指()。(1)、运算器和控制器(2)、CPU和磁盘存储器(3)、CPU和主存(4)、硬件和软件024、计算机能直接识别的语言是()。(1)、汇编语言(2)、自然语言(3)、机器语言(4)、高级语言025、在CPU中,控制器的功能是()。(1)、进行逻辑运算(2)、进行算术运算(3)、分析指令并发出相应的控制信号(4)、只控制CPU的工作026、所谓“祼机”是指()。(1)、单片机(2)、单板机(3)、只装备操作系统的计算机(4)、不装备任何软件的计算机027、下列数据中有可能是八进制数的是()。(1)、764(2)、238(3)、396(4)、789028、下列4种不则进制的无符号数中最小的数是()。(1)、11011001B(2)、37O(3)、75(4)、2AH029、PC是()。(1)、一根硬件信号线(2)、一个可由用户直接读写的8位RAM寄存器(3)、一个不可寻址的特殊功能寄存器(4)、一个能自动1计数的ROM存储单元。030、在CPU内部,反映程序运行状态或反映运算结果的一些特征寄存器是()。(1)、PC(2)、PSW(3)、ACC(4)、SP031、外部中断1固定对应的中断入口地址为()。(1)、0003H(2)、000BH(3)、0013H(4)、001BH032、各中断源发出的中断请求信号,都会标记在MCS-51系统中的()。(1)、TMOD(2)、TCON/SCON(3)、IE(4)、IP033、MCS-51的并行IO口信息有两种读取方法,一种是读引脚,还有一种是()。(1)、读锁存(2)、读数据(3)、读A累加器(4)、读CPU034、MCS-51的并行IO口读-改-写操作,是针对该口的()。(1)、引脚(2)、片选信号(3)、地址线(4)、内部锁存器035、以下指令中,属于单纯读引脚的指令是()。(1)、MOVP1,A(2)、ORLP,#0FH(2)、MOVC,P1.5(4)、DJNZP1,short-lable036、以下哪种情况不属于微型机引入中断技术后的好处()。(1)、分时操作(2)、实时处理(3)、故障处理(4)、高速传送数据037、下面哪种情况并不是单片机系统响应中断的必要条件()。(1)、TCON或SCON寄存器内的有关中断标志位为1。(2)、IE中断允许寄存器内的有关中断允许位置1。(3)、IP中断优先级寄存器内的有关位置1。(4)、当前一条指令执行完。038、CPU寻址外设端口地址的方法有两种,一种是统一编址,另一种是()。(1)、混合编址(2)动态编址(3)独立编址(4)变址编址039、访问片外数据存储器时,不起作用的信号是()。(1)、RD(2)、WR(3)PSEN(4)ALE040、下列四条叙述中,有错误的一条是()。(1)、16根地址线的寻址空间可达1MB。(2)、内存储器的存储单元是按字节编址的。(3)、CPU中用于存放地址的寄存器称为地址寄存器。(4)、地址总线上传送的只能是地址信息。041、20根地址线的寻址范围可达()。(1)、512KB(2)、1024KB(3)、640KB(5)、4096KB042、主存储器系统中使用Cache的目的是()。(1)、增加主存容量(2)、存放常用的系统程序(3)、存放固化的软件(4)、提高CPU存取主存的速度043、MCS-51系列单片机外扩存储器芯片时,4个IO口中用作数据总线的是()。(1)、P0和P2口(2)、P0口(3)、P2和P3口(4)、P2口044、计算机工作时,能写入也能读出的半导体存储器是()。(1)、RAM(2)、ROM(3)、磁盘(4)、磁带045、区分片外程序存储器还是数据存储器的最可靠方法是()。(1)、看其芯片型号是RAM还是ROM(2)、看其位于地址范围的低端还是高端(3)、看其离MCS-51芯片的远近(4)、看其是被RD信号连接还是被PSEN信号连接046、指令AJMP的跳转范围是()。(1)、256(2)、1KB(3)、2KB(4)、64K三、编程题001、编写程序实现两个4位BCD数相加,设被加数存放在内部RAM40H和41H单元,加数存放在45H和46H单元,和数存入50H和51H单元,并设最高位不产生进位。解:程序如下:MOVA,41HADDA,46HDAAMOV51H,AMOVA,40HADDCA,45HDAAMOV50H,ASJMP$002、编写程序,将1字节的压缩BCD数转换为二进制数,并存入内部RAM30H单元中。解:程序如下:MOVA,40HSWAPAANLA,#0FHMOVB,#10MULABANL40H,#0FHADDA,40HMOV30H,ASJMP$003、编写程序,将一个字节的二进制数转换为BCD数(0-255),并存入内部RAM31H和32H单元中。解:程序如下:MOVA,30HMOVB,#10DIVABMOV32H,BMOVB,#10DIVABXCHA,BSWAPAORL32H,AMOV31H,BSJMP$004、试编写一个程序,将内部RAM中45H单元的高4位清0,低4位置1。解:程序如下:MOVA,#0FHXCHA,45H005、设有字无符号数X、Y存放在内部RAM30H、31H和32H、33H,试编写求|X-Y|的程序。解:程序如下:CLRCMOVA,31HSUBBA,33HMOV35H,AMOVA,30HSUBBA,32HJNCNNCPLAMOV34H,AMOVA,35HCPLAADDA,#1MOV35H,AMOVA,34HADDCA,#0NN:MOV34H,ASJMP$006、设平面上一点P的直角坐标为(X,Y),X、Y为字节符号数,试编写若P落在第I象限内,则令K=I;若P落在坐标轴上,则令K=0的程序。解:程序如下:XDATA30HYDATA31HKDATA33HMOVA,YJZK0MOVA,XJZK0JNBACC。7,K14MOVA,YJNBACC。7,K2MOVK,#3SJMP$K2:MOVK,#2SJMP$K0:MOVK,#0SJMP$K14:MOVA,YJNBACC。7,K1MOVK,#4SJMP$K1:MOVK,#1SJMP$007、编写程序把起始地址为1000H的100个连续单元中的内容送到以2000H开始的单元中。解:程序如下:MOVDPTR,#1000HAG1:MOVXA,@DPTRXRLDPH,#30HMOVX@DPTR,AXRLDPH,#30HINCDPTRMOVA,DPLCJNEA,#04H,AG1SJMP$008、编程求内部RAM中40H-49H10个单元中的内容的平均值,并放入4AH单元中。解:程序如下:MOVR0,#40HCLRAMOV4AH,AAG1:ADDA,@R0JNCNINCINC4AHNINC:INCR0CJNER0,#4AH,AG1XCHDA,@R0SWAPAMOVB,#10DIVABXCHA,@R0XCHA,BSWAPAORLA,BMOVB,#10DIVABSWAPAORLA,@R0SWAPAMOV@R0,ASJMP$009、从2000H地址单元开始,连续存有200W个字节补码数,编写程序将它们改变为各自的绝对值。解:程序如下:MOVDPTR,#2000HAG1:MOVXA,@DPTRJNBACC。7,NNCPLAINCAMOVX@DPTR,ANN:INCDPLMOVA,DPLCJNEA,#200,AG1SJMP$010、编写程序把内部RAM20H-23H单元的内容分别送到2000H、2004H、2008H和200CH单元中。解:程序如下:MOVDPTR,#2000HMOVR0,#20HAG1:MOVA,@R0MOVX@DPTR,AINCR0MOVA,DPLADDA,#4MOVDPL,ACJNER0,#24H,AG1SJMP$011、编写程序求放在3000H单元开始的5个字无符号数的和,并将和存放在3100H开始的单元中。解:程序如下:MOVDPTR,#3000HMOV40H,#0MOV41H,#0MOV42H,#0MOVR7,#5AG1:MOVXA,@DPTRMOV4AH,AINCDPLMOVXA,@DPTRADDA,42HMOV42H,AMOVA,41HADDCA,4AHMOV41H,AJNCNIINC40HNI:INCDPLDJNZR7,AG1MOVR0,#40HMOVDPTR,#3100HAGI1:MOVA,@R0MOVX@DPTR,AINCDPLINCR0CJNER0,#43H,AGI1SJMP$012、从内部RAM的DATA单元开始,存有H个数。请设计一个程序,将其中正数,零及负数分选出来,将数据块中的正数和零传送到自ZHEN单元开始的存贮区,而把其中的负数送到FUSH单元开始的存贮区。解:程序如下:ORG300HSTART:MOVR1,#HMOV20H,#ZHENMOV21H,#FUSHMOVR0,#DATALOOP:MOVA,@R0JBACC。7,NEGMOVVR1,#20HMOV@R1,AINC20HSJMPHEDNEG:MOVR1,21HMOV@R1,AHED:INCR0DJNZR2,LOOPSJMP$013、从20H单元开始存一组带符号数,数组长度存于1FH单元,要求统计出其中大于零、等于零和小于零的数的数目,并把统计结果分别存入ONE,TWO,THREE三个单元。解:程序如下:START:MOVR0,#20HMOVR2,#1FHCLRAMOVONE,AMOVTWO,AMOVTHREE,ALOOP:MOVA,@R0JZZEROJBACC。7,NEGINCONESJMPNEXTZERO:INCTWONEXT:INCR0DJNZR2,LOOPSJMP$014、从2000H单元开始的外部RAM中存有100个数,要求把它传送到自2500H单元开始的存贮区中去,但在传递过程中要检查数的值,遇到第一个零就停止传送,编制完成此功能的程序。解:程序如下:START:MOVR7,#64HMOVR2,#00HMOVR3,#20HMOVR4,#00HMOVR5,#25HLOOP:MOVDPL,R2MOVDPH,R3MOVXA,@DPTRJZSTOPMOVDPL,R4MOVDPH,R5MOVX@DPTR,AINCR2INCR4DJNZR7,LOOPSTOP:SJMPSTOP015、设有一个巡回检测报警装置,需对16路输入值进行比较,当每一路输入值超过该路的报警值时,实现报警,下面根据这一要求,编制一个查表程序,X为路数,查表时X按0、1、2、…15(n=15)取ii数,Yi为最大值,二字节数,依Xi顺序列成表格放在TABi中,进入查表程序前,路数Xi放在R2中,查表后的最大值放在R3,R4中。解:程序如下:TB1:MOVA,R2ADDA,R2MOVR3,AADDA,#TABMOVCA,@A+PCMOVR4,ASJMP$TAB:DW05F0H,0E89H,0A695H,1EAAHDW0D9BH,7F93H,0373H,26D7HDW2710,9E3FH,1A66H,22E3HDW1174H,16EFH,33E4H,6CA0H016、从DATA单元开始,有10个8位无符号数,编写求这10个数和的程序,其和放到SUM和SUM+1单元中(低位先存)解:程序如下:START:MOVR0,#DATAMOVR2,#0AHMOVR3,#00HMOVR4,#00HLOOP:MOVA,R3ADDA,@R0MOVR3,AMOVA,R4ADDCA,#00HMOVR4,AINCR0DJNZR2,LOOPMOVSUM,R3MOVSUM+1,R4SJMP$017、自内部RAM的BUFF单元开始,放有一个数据块,BUFF单元中放的是数据块的长度,从BUFF+1开始存放的是以ASCII码表示的10进制数码,把它们转换为BCD码,且把两个相邻单元的数码并成一个单元(地址高的放高四位),放到从BUFF+1开始的存贮区中。解:程序如下:START:MOVR2,BUFFMOVR0,#BUFF+1MOVR1,#BUFF+1LOOP:MOVA,@R0MOV@R1,AINCR0MOVA,@R0SWAPAXCHDA,@R1MOV@R1,AINCR0INCR1DJNZR2,LOOPSJMP$018、从内部RAM的BLOCK地址开始有一个无符号数据块,长度存于LEN单元,求出数据块中的最小元素,并将其存入MINI单元。解:程序如下:MINIDATA20HLENDATA21HBLOCKDATA22HMOVR0,#BLOCKMOVR1,LENMOVMINI,#0FFHMOVA,R1JZFINILOOP:MOVA,@R0INCR0CJNEA,MINI,NEXTJNCNEXTMOVMINI,ANEXT:DJNZR1,LOOPFINI:SJMP$019、在内部RAM的BLOCK单元开始的数据内存放着若干带符号数,数据块长度存于LEN单元。要求对数据块内的正数和负数分别相加,相加的结果分别存入SUM1和SUM2单元。设相加的结果不超过8位二进制数。解:程序如下:SUM1DATA20HSUM2DATA21HLENDATA22HBLOCKDATA23HMOVR0,#BLOCKMOVR1,LENMOVSUM1,#00HMOVSUM2,#00HMOVA,R1JZFINILOOP:MOVA,@R0INCR0JBACC。7,NEXT1ADDA,SUM1MOVSUM1,ASJMPNEXT2NEXT1:ADDA,SUM2MOVSUM2,ANEXT2:DJNZR1,LOOPFINI:SJMP$020、求内部RAM的50H-5AH中的最大值并放入5AH单元。解:程序如下:MOVR0,#50HMOVR2,#10MOVA,@R0LOOP:INCR0MOVB,@R0CJNEA,B,$+3JNCNEXTMOVA,@R0NEXT:DJNZR2,LOOPMOV@R0,ASJMP$四、问答题001、MCS-51引脚中有多少IO线?它们和单片机对外的地址总线和数据有什么关系?地址总线和数据总线各是几位?答:MCS-51芯片的引脚中有32条IO线,因为有4个8位并行口共32条,51系列单片机没有独立的数据总线和地址总线,而是和一部分IO线复用。具体来说,P0口的8条线从那时起用作地址总线低8位和8位数据总线,而P2口8位线用作地址总线高位。所以是16位地址总线和8位数据总线。002、什么叫堆栈?堆栈指示器SP的作用是什么?8051单片机堆栈的容量不能超过多少字节?答:堆栈是数据存贮器的一部分,这一部分数据的存取是按照先入后出,后入先出的原则进行的。堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。如在8051芯片复位后,SP的值为07H,则RAM的其它部分。在堆栈启用之后,SP指向堆栈的顶部,好由SP来决定数据读出和存入堆栈的地十。8051单片机内部用作数据区的RAM的容量为128字节,前8个字节要用来作为工作寄存器R0-R7。堆栈可以从08H开邕设直到7FH,共120个节。但这只是最大可能的容量。一般情况下,内部RAM还要分出一部分用作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。所以8051的堆栈区是比较小的,使用时要注意到这个限制。003、8051单片机的内部数据存贮器可以分为几个不同区域?各有什么特点?答:8051单片机的内部数据存贮器的容量为256字节(地址为00H-FFH)。它可以分为两大部分,各占128个字节。前128字节为读写数据区,地址为00H-7FH。后128个字节为特殊功能寄存器区,21个特殊功能寄存分散地分布在这人区域,各有自己特定的地址。而这个区域中,没有被特殊功能寄存器占用的单元也不能当作一般的RAM单元使用。00H-7FH的RAM单元,都可按它们的直接地址来读写数据。而其中的前32个单元。即00H-1FH单元又称为工作寄存器区,安排了4组工作寄存器,每组8个,都用R0-R7表示,并通过PSW寄存器中RS1和RS0来选组。通过工作寄存器R0---R7来对这部分数据单元读写数据不仅速度快而且指令字节数也少。另一个区域为位寻制区。占用20H-2FH共16个单元,这16个单元的每一位都可以独立进行操作,共用128个可单独操作的位。而30H-7FH这80个单元只能接它们的直接地址来操作。004、MCS-51单片机的寻址范围是多少?8051单片机可以配置的存贮器最大容量是多少?而用户可以使用的最大容量又是多少?答:MCS-51单片机的指令存贮器寻址范围为64KB,数据存贮器也有64KB寻址范围,地址都是从0000H-FFFFH,总共有2*64KB的寻址范围。8051可以配置的外部存贮器就是2*64KB容量。但8051片内还配有存贮器,包括4KB容量的只读存贮器和256字节的数据存贮器,总共容量为132,25KB。但用户可以使用的容量只有2*64KB再加上256字节的数据存贮器。005、8051单片机对外有几条专用控制线?其功能是什么?答:一般的说法是8051单片机有4条专用控制线。它们是复位信号线RST,高电位有效,当有复位信号从此线输入时,使单片机复位。访问外部存贮器控制信号EA,低电平有效,当此控制线为低电平时,单片机全部使用外部指令存贮器,而当此控制线为高电平时,先使用片内的4KB指令存贮器(0000H-0FFFH),在4KB范围之外,才使用外部指令存贮器(地址为1000H-FFFFH)。另有两条输出控制线,外部程序存贮器的读选通信号PSEN和外部地址锁存器允许信号ALE。前者是低电平有效,在读外部程序存贮器时使用。后者是高电平有效,在锁存P0口输出的低8位地址时使用。006、什么叫指令周期?什么叫机器周期?MCS-51的一个机器周期包括多少时钟周期?答:完成一条指令的执行所需的时间叫做指令周期。对不同的指令,指令周期的长短是不一定相同的。机器周期则是指计算机完成某种基本操作所需的时间,一个指令周期由一个或几个机器周期组成,一个机器周期则包括若干个时钟周期。MCS-51单片机的一个机器周期包括12个时钟周期。但对有些微处理器来说,不同的机器周期所包含的时钟周期可能是不相同的。007、为什么要了解CPU的时序?答:了解CPU时序就是了解在执行不同类型指令时CPU发出的控制信号有什么不同。了解CPU的时序至少有两个目的,其一是掌握不同的指令或操作使用不同的控制信号后,便于CPU对外部设备的连接而不致于发生错误。其二是知道不同指令需要不同的机器周期后,可以选用功能相同而机器周期较少的指令,以减少程序的执行时间。当然,也可以有一些其它的作008、在读外部程序存贮器时,P0口上一个指令周期中出现的数据序列是什么?在读外部数据存贮器时,P0口上出现的数据序列是什么?答:读外部程序存贮器(ROM)时,有两种情况,一种是单纯地取指令,这时P0口上先送出指令所在地址低8位,然后从ROM中取回指令码。按照指令字节数的不同,这人数据序列可能重复若干次。另一种情况,则是执行从外部ROM中读取固有数据的指令,这时,P0口上先送出指令地址低8位,再从ROM中取回指令码,然后开始执行指令,接着从P0口上送出ROM数据单元地址低8位,再读回ROM中的数据。而在读外部数据存贮器(RAM)时,P0口上先送出指令地址低8位,然后读回指令码,再送出数据存贮单元地址低8位,再读回数据单元的内容009、为什么外扩存贮器时,P0口要外接地址锁存器,而P2口却不接?答:这是因为在读写外部存贮器时,P0口上先送的低8位地址只维持很短的时间,然后P0口就要当作数据总线用。为了使对外在整个读写外部存贮器期间,都存在有效的低8位地址信号,P0口就要外接一个地址锁存器,再从这个锁存器对外送同低8位地址。而P2口只用作高8位地址线,并在整个读写期间不变,所以不必外接地址锁存器。010、在使用外部程序存贮器时,MCS-51单片机还有多少条IO线可用?在使用外部数据存贮器时,还有多少条IO线可用?答:使用外部程序存贮器时,原则上说,P0口和P2口要用作数据总线和地址总线,所以只有P1口和P3口可用作IO口,共16条IO线。在使用外部数据存贮器时,除了占用P0和P2口之外,还需用WR和RD控制线,而这两条线就是P3口中的两条:P3。6和P3.7,所以这时只有14条IO线可以用了,当然取于所配置的外部程序存贮器或数据存贮器的容量,P2口的8条线并一定全部占用,有时还有几条没有用,但即使如此,这几条线也不能再用作IO线,而只能留作系统扩展时再用011、程序存贮器和数据存贮器的扩展有何相同点及不同点?试将8031芯片外一片2716EPROM和一片2128RAM组成一人扩展后的系统,画出扩展后的连接图。答:两者的相同点是,都借用P0口和P2作为数据总线和地址总线,也就是说,地址线和数据线的连接方法是相同的,地址范围都是在0000H-FFFFH之间。两者的不同点是,所用的读写选通信号不同,扩展程序存贮器时用控制线PSEN,而扩展数据存贮器时使用读写控制线RD和WR。当然每块芯片具体需要几条地址线,是由芯片的容量来决定的,容量大的芯片需要借用P2的IO线的数量多。而数据线则都是8条。2716是2K*8的EPROM,2128是2K*8的RAM,两者都只需11条地址线。由于题目中没有规定地址范围,帮可按最简单的方式来连接,即只用PSEN来控制EPROM的读出,用RD和WR控制RAM的读写,两块芯片的片选端都固定接地,连接图如图所示。这种连接方式可以省去地址译码器,但它有一个缺点,那就是系统的扩充能力很差,因此,在实用时还是考虑使用译码器为好。012、8051芯片需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论