单片机课后题原题_第1页
单片机课后题原题_第2页
单片机课后题原题_第3页
单片机课后题原题_第4页
单片机课后题原题_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第一章通过堆栈操作实现子程序调用,首先要把(Pc)的内容入栈,以进行断点保护,调用返回时再进行出栈操作,把保护的断点送回(Pc)1.80C51单片机的时钟电路包括两个部分,芯片内的(反向器)和芯片外的(晶振)与(两只电 容),若提高单片机的晶振频率,则单片机的机器周期会变(短)。通常单片机两种复位操作,(加电)和(手动),复位后Pc值为(0000H),SP值为(07H),通用寄存器当前寄存器组为(第0组),该组寄存器的寄存范围从(00H)到(07H)3.80C51单片机中,一个机器周期包含(6个)状态周期,一个状态周期又分为(两个)节拍,一个节拍为一个(震荡脉冲周期),因此,一个机器周期应包含(12)个脉冲震荡范围。4.80C51中唯一可供用户使用的16位寄存器是(DPTR),可拆分为两个八位寄存器使用,名称(DPH)和(DPL)。单片机程序存储器的寻址范围由PC的位数决定,80C51的PC为16位,因此程序存储器的地址空间(64KB).下列概念中叙述正确的是(D)。A,80C51中共有5个中断源,因此在芯片上相应的有5个中断请求输出引脚B,特殊的存取规则堆栈已不是数据存储器的一部分 C,可以把PC看成是数据存储空间的地址指针 D,CPU中反映程序运行状态和运行结果特征的寄存器是PSW取质操作后,PC的值是(C)。 A,当前指令前一条指令的地址 B,当前正在执行指令的地址 C,下一条指令的地址D,控制器中指令寄存器的地址8.80C51单片机中,设置堆栈指针SP为37H后就发生子程序调用,这时SP的值变为(C)。A,37H B,38H C,39HD,3AH设置堆栈指针SP=30H后,进行一系列的堆栈操作,当进栈数据全部弹出后,SP应指向(A)。A,30H单元B,07H单元C,31H单元D,2FH单元下列关于堆栈的描述中错误的是(C)。A,80C51的堆栈在内部RAM中开辟,所以SP只需8位就够了B,堆栈指针SP的内容是堆栈栈顶单元的地址C,在80C51中堆栈操作过程与一般RAM单元的读写操作没有区别D,在中断响应中,断点地址自动进栈在单片机芯片内设置通用寄存器的好处不包括(A)。 A,提高程序运行可靠性 B,提供程序运行速度 C,为程序设计提供方便 D,减小程序长度下列叙述中正确的是(D)。 A,SP内装的是堆栈栈顶单元的内容B,在中断服务程序中没有Push和Pop指令,说明此次中断与堆栈无关 C,在单片机中配合实现“程序存储自动执行”的寄存器是累加器D,两数相加后,若A中数据为66H,则PSW中最低位的状态为0第二早假定累加器A的内容为30H,执行指令“1000H:MOVCA,@A+PC”后,会把程序(1031)单元的内容送累加器A中。假定(A)=85H,(R0)=20H,(20H)=0AFH,执行指令“ADDA,@R0”后,累加器A的内容为(34H),CY的内容为(1),AC的内容为(1),OV的内容为(1)。假定addr11=00100000000B,标号qaz的地址为1030H,执行指令”qaz:AJMPaddr11”,程序转移到地址(1100H)去执行。累加器A中存放着其值小于或等于127的8位无符号数,CY清零后执行“RLCA”指令,则A中的数变为原来的(2)倍。已知A=7AH,R0=30H,(30H)=A5H,,PSW=80H,请按要求填写指令结果:XCHA,R0A=30H,R0=71HXCHA,30HA=0A5HXCHA,@R0A=0A5HXCHDA,@R0A=75HSWAPAA=0A7HADDA,R0A=0AAH,CY=0,OV=1ADDA,30HA=IFH,CY=1,OV=1ADDA,#30HA=0AAH,CY=0,OV=1ADDCA,30HA=20H,CY=1,OV=0

SUBBA,30HA=0D5H,CY=1,OV=1SUBBA,30HA=0D5H,CY=1,OV=1SUBBA,#30H A=49H,CY=0,OV=0下列指令中,不能实现PSW内容送A的是(C)。 A,MOVA,PSW B,MOVA,0D0HC,MOVR0,#0D0HMOVA,@R0 D,PUSHPSWPOPACC在相对寻址方式中,相对两个字是指相对于(C)。A,地址偏移量relB,当前指令的首地址 C,下一条指令的首地址D,DPTR的值下列指令中,能将外部数据存储器3355H单元内容传送给A的是(B)。 A,MOVXA,3355HB,MOVDPTR,#3355H MOVX A,@DPTRC,MOVP0,#33HMOVR0,#55HMOVXA,@R0DMOVP2,#33HMOVR2,#55HMOVXA,@R2对程序存储器的读操作,只能使用(D)。A,MOV指令B,PUSH指令 C,MOVX指令 D,MOVC指令执行返回指令后,返回的断点是(C)。 A,调用指令的首地址B,调用指令的末地址 C,调用指令的下一条指令的首地址 D,返回指令的末地址以下各项中不能用来对内部数据存储器进行访问的是( A)。C,堆栈指针SP D,由R0或R1作间址寄存器12.判断下列指令的合法性:MOVA,@R2(错) MOVR0,R1 (错)INCDPTR(对)MOVPC,#2222H(错)DECDPTR(错)RLCR0(错)MOV0E0H,@R0 (对)CPLR5(错)CLRRO(错)CPLF0H(错)PUSHDPTR(错)POP30H(对)MOVXA,@R1(对)MOVA,1FH(对)MOVC,1FH(对)MOVF0,ACC.3(错)MOV0,C(对)MOVP1,R3(对)MOVDPTR,#0FCH(错)CPL30H(对)PUSHR0(错)MOVC,#0FFH(错)MOVA,0D0H(对)13.利用位操作指令序列实现下列逻辑运算:(1):D=(10H并P1.0)A,数据指针A,数据指针DPTRB,按存储单元地址或名称交(11H并CY) (2):E=ACC.2交P2.7并ACC.1交P2.014.编写程序将内部RAM20H-23H单元的高4位写1,低四位写0.分析:就是把这四个单元写入F0H。用一个DJNZ的循环。MOVR0,#1FH;R0指向20H单元MOVR5,#04H;四个数LOOP:INCR0MOV@R0,#0F0H;写入DJNZR5,LOOP;循环4次END15.在m和m+1单元中存在两个BCD数。将他们合并到m单元中,编写程序完成。(设m=30H,高位在30H,低数在31H)ORG0000HMOVA,30HANLA,#0FH;把它的高四位清零SWAPAMOV30H,A;高低四位调一下,放回原处MOVA,31HANLA,#0FHORLA,30H;合并起来MOV30H,AEND16.将内部RAM中从date单元开始的10个无符号数相加,其和送sum单元。假定相加结果小于255,编写程序完成。(设data=30H,sun=50H)ORG0000HMOVR0,#2FH;指向前一个单元MOVR5,#0AH;循环10次CLRA;先加到A中LOOP:INCR0ADDA,@R0DJNZR5,LOOPMOV50H,AEND17.假定8位二进制带符号数存于R0中,要求编写一个求补程序,所得补码放入R1中。ORG0000HMOVA,R0CPLA;按位取反ADDA,#01H;+1MOVR1,AEND第四章假定A=40H,R1=23H,40H=05H.执行以下两条指令后,A=(25H),R1=(40H),40H=(03H). XCHA,R1XCHDA,@R1假定80C51的晶振频率为6MHz,执行下列程序后,在P1.1引脚产生的方波宽度为(2.914ms)。分析下列跳转程序,程序中A与30H单元中的数都是符号数,说明当(A=30H)时转向Loop1,当(A〉30H)时转向LOOP2,当(A〈30H)时转向LOOP3o假定80C51的晶振频率为6MHz,下列程序的执行时间为(32.87ms)。已知程序中前两条指令机器周期数为1,后四条指令机器周期数为2。把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位于外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车符CR或整个字符串传送完毕,是编程实现。ORG0030HMOVR0,#inbufMOVR1,#outbufMOVR4,#10HLOOP:MOVA,@R0 ;从内部RAM取数CJNEA,#0DH,LL;是否为回车符CR

LL:MOVX@R1,A;不是则传送到外部RAMINCR0INCR1DJNZ R4,LL;没传送完则循环STOP:SJMP$内部RAM从list单元开始存放一正数表,表中数作无序排列,并以-1作结束标志。编程实现找出表中最小数。(3AH存放在运行程序时的最小的数)ORG0030HMOVR0,#listMOVA,@R0 ;取第一个正数LOOP:INCR0;指向下一个正数MOV3AH,@R0CJNEA,3AH,CHK;前一个数与后一个数比较CHK:JCLOOP1 ;前一个数小,则转MOVA,@R0 ;前一个数大,取后一个数LOOP1: XCHA,3AHCJNEA,#0FFH,LOOPXCHA,3AHMOV3BH,AXCHA,3AHMOV3BH,A;取最小数SJMP$内部RAM的X和Y单元中各存放一个带符号数,编程实现如下条件进行的运算,并将结果存入Z单元。若X为正奇数,Z=X+Y;若X为正偶数,Z=XVY;若X为负奇数,Z=XAY;若X为负偶数,Z=X©Yo分析:负数:第7位为1,正数:第7位为0奇数:第0位为1,偶数:第0位为0ORG0000HMOVA,20HCLRCRLAJCFS ;移到负数处处理RRARRA;第0位移到C再判定一下是不是1JCZJS ;到正奇数处MOVA,20HORLA,21HMOV22H,AZJS:MOVA,20HADDA,21HMOV22H,ASJMPOKFS:MOVA,20HCLRCRRAJCFJS;第0位是1,移到正奇数处理MOVA,20HXRLA,21HMOV22H,ASJMPOKFJS:MOVA,20HANLA,21HMOV22H,AOK:END把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。该数存放在内部RAM中byte单元中。变换后得到的8个ASCII码存放在外部RAM以buf始的存储单元中去。ORG0030HMOVR0,#byteMOVDPTR,#bufMOVR5,#08HMOVA,@R0LOOP:RLCAMOVR7,AJCLOOP1MOVA,#30HSJMPLOOP2LOOP1:MOV A,#31HLOOP2:MOVX @DPTR,AMOVA,R7INCDPTRDJNZR5,LOOP编程实现运算式c=a2+b2假定a、b、c3个数分别存放在内部RAM的DA、DB、DC单元中,别有平方运算子程序调用。(内部RAM的DA、DB、DC单元设为20H21H22H)ORG0000HMOVA,20HPUSHACCAJMPSQRPOPACCMOV22H,AMOVA,21HPUSHACCAJMPSQRPOPACCADDA,22HMOV22H,AEND编程实现比较两个ASCII码字符串是否相等。字符串的长度在内部RAM41H单元,第一个字符串的首地址为42H,第二个字符串的首地址为52H。如果两个字符串相等,则置内部RAM40H单元为00H;否则置40H单元为FF。ORG0030HMOVR0,#42HMOVR1,#52HMOVR7,41H;字符串长度LOOP:MOVA,@R0MOV30H,@R1CJNEA,30H,LKINCR0INCR1DJNZR7,LOOPMOV40H,#00HSJMPDDLK:MOV40H,#0FFHDD:SJMPDD在外部RAM首址为table的数据表中,有10个字节的数据。编程将每个字节的最高位无条件地置“1”。ORG0030HMOVDPTR,#tableMOVR6,#10LOOP:MOVXA,@DPTRSETBE7H;E7H就是累加器A的最高位(ACC.7),也可:SETBACC.7MOVX@DPTR,AINCDPTRDJNZR6,LOOP12.编写程序将RAM20H-23H单元的高4位写1,低4位写0。分析:就是把这四个单元写入F0H。用一个DJNZ的循环。ORG0000HMOVR0,#1FH;R0指向20H单元MOVR5,#04H;四个数LOOP:INCR0MOV@R0,#0F0H;写入DJNZR5,LOOP;循环4次END13.把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成。(设m=30H,高位在30H,低数在31H)ORG0000HMOVA,30HANLA,#0FH;把它的高四位清零SWAPAMOV30H,A;高低四位调一下,放回原处MOVA,31HORLA,30H;合并起来MOV30H,AEND14.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255。编写程序完成。(设data=30H,sun=50H)ORG0000HMOVR0,#2FH;指向前一个单元MOVR5,#0AH;循环10次CLRA;先加到A中LOOP:INCR0ADDA,@R0DJNZR5,LOOPMOV50H,AEND15.假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中。ORG0000HMOVA,R0CPLA;按位取反MOVR1,AENDAA*尤弟五早中断技术是解决资源竞争的有效方法,因此可以说中断技术实质上是一种资源(各项任务)共享技术。上电复位后,各中断优先级从高到低的次序(INTO)(TO)(INT1)(T1)和(串口)。响应中断后,产生长调用指令LCALL,执行该指令的过程包括,首先把(PC)的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(PC),使程序执行转向(ROM)的中断地址区。当计数器产生计数溢出时,把定时器的控制寄存器的TFO位置1。对计数溢出的处理,在中断方式时,该位作为(中断源)使用,在查询方式时,该位作为(查询状态)使用。定时器1工作于方式3做波特率发生器使用时,若系统晶振频率为12MHz,可产生的最低波特率为(1000000),最高波特率为(1000000/65536=15.26)。定时器0工作于方式2的计数方式,预制的计数初值为156,若通过引脚丁0输入周期为1ms的脉冲,则定时器0的定时时间为(100ms)。用于定时测试压力和温度的单片机应用系统,以定时器0实现定时,中断优先顺序:压力超限-温度超限-定时检测。为此,中断允许控制寄存器IE最低三位的状态应是(111),中断优先级控制寄存器IP最低三位的状态应是(101)。可利用定时器来扩展外部中断源,若以定时器1扩展外部中断源,则该扩展外中断的中断请求输入端应为(T1)引脚,定时器1应取工作方式(2),预置的计数初值应为(0FFH),扩展外中断的入口地址应为(001BH)。下列有关80C51中断优先级控制的叙述中,错误的(D)。A,低优先级不能中断高优先级,但高优先级能中断低优先级B,同级中断不能嵌套 C,同级中断请求按时间的先后顺序响应 D,同一时刻,同级的多中断请求,形成阻塞无法响应10.80C51有两个定时器,下列有关这两个定时器级联时间问题的叙述中,正确的(C)。 A,可以实现软件级联定时,而不能实现硬件级联定时 B,可以实现硬件级联定时,而不能实现软件级联定时 C,软件级联定时和硬件级联定时都可以实现 D,软件级联定时和硬件级联定时都不能实现11.在工作方式0下,计数器由TH的全部8位和TL的低五位组成,因此其计数范围(A)。 A,1-8192B,0-8191C,0-8192D,1-4096对于由80C51构成的单片机应用系统,中断响应并自动生成调用指令LCALL后,应(A).A,转向外部程序存储器去执行中断服务程序 B,转向内部程序存储器去执行中断服务程序C,转向外部数据存储器去执行中断服务 D,转向内部数据存储器去执行中断服务程序中断查询确认后,在下列各种单片机运行情况中,能立即响应的(D)。 A,当前正在进行高优先级中断处理B,当前正在进行RETI指令 C,当前指令是DIV指令,且正处于取指机器周期D,当前指令是“MOVA,Rn”指令下列条件中,不是中断响应必要条件的(D)A,串行数据传送操作 B,实时处理C故障处理 D存储器读写操作第六早使用8KB*8的RAM芯片,用译码法扩展64KB*8的外部数据存储器,需要(8)片存储芯片,共需要使用(16)条地址线。其中(13)条用于存储单元选择,(2)条用于芯片选择。三态缓冲器的三态(高电平)(低电平)(高阻)3.80C51单片机系统整个存储空间由是四个部分组成,分别为(256)个地址单元的内部(数据)存储器,(4KB)个地址单元的内部(程序)存储器,(64KB)个地址单元的外部(数据)存储器,(64KB)个地址单元的外部(程序)存储器。在80C51单片机系统中,为外扩展存储器准备了(16)条地址线,其中低地址位由(P0)提供,高位地址线由(P2)提供。在80C51单片机系统中,存储器并行外扩展涉及的控制信号有(PSEN)(RD)(WR)(ALE)(CE)。其中用于分离低8位地址和数据的控制信号是(ALE),他的频率是晶振频率的(1/6)。起止地址为0000H-3FFFH的外扩展存储器芯片的容量是(16KB),若外扩展存储器芯片为2KB,起止地址为3000H,则终止地址应(31FFH)。与微型计算机相比,单片机必须具有足够的容量的程序存储器是因为没有(外存)。在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的(片选)引脚端提供信号。由一片80C51和一片2716组成的单片机最小系统,若2716片选信号CE接地,则该存储芯片连接共需(3)条地址线。除数据线外,系统中连接的信号线只有你(PSEN)和(ALE)。下列有关单片机程序存储器的论述中,错误的(D)。A,用户程序保存在程序存储器中B,断电后程序存储器仍能保存程序 C,对于程序存储器只使用MOVC一种指令D,执行程序需要使用MOVC指令从程序存储器中逐条读出指令下列有关单片机数据存储器的论述中,错误的(A)。A,数据存储器只使用MOV指令进行读写 B,堆栈在数据存储器中开辟 C,数据存储器只用于保存临时数据D,专用寄存器也是数据存储器的一部分在单片机系统中,1KB表示的二进制数(8*1024)。在下列信号中,不是供外扩展程序存储器使用的(D)。A,PSEN B,EAC,ALED,WRRAM是随机存储器的意思,随机存储器的准确含义是(C)。A,存储器内各单元的存取时间相等 B,可以在任何时刻随机读写存储器内个存储单元 C,随机表示即可读又可写若在系统中只扩展一片Intel2732(4K*8),除应使用P0口的8条口线外,至少还应使用P2口的口线(4条)。下列叙述中,不属于单片机存储器系统特点是(D)。A,程序和数据两种类型的存储器同时存在 B,芯片内外存储器同时存在 C,扩展数据存储器与片内数据存储器存储空间重叠D,扩展程序存储器与片内程序存储空间重叠在80C51单片机系统中,为解决内外程序存储器衔接问题所使用的信号是(EA)。第七章80C51单片机I/O扩展占据的是(外部数据)存储器的地址空间,因此,其扩展连接只涉及(ALE)、(WR)和(RD)3个控制信号。在单片机中,为实现数据的I/O传送,可使用3种控制方式,即(无条件)方式、(查询)方式和(中断)方式。其中效率较高的是(中断方式)。简单输入口扩展是为了实现输入数据的(缓冲)功能,而输出口扩展是为了实现输出数据的(锁存)功能。接口一个36键的行列式键盘,最少需要(12)条I/O线,接口4位七段LED显示器,最少需要(11)条I/O线。可编程接口芯片使用中往往需要多条指令。。。。。。其中8255的标志位在命令字的最(高),位,为1时是(口方式定义)命令,为0时是(C位置/复位)命令。向8255写入的工作方式命令为0A5H,所定义的工作方式为:A口为(方式1输出),B口为(方式1输出),C口高位部分为(输出),C口低位部分为(输入)。通过8255口8输入8个按键的状态,然后通过口A输出送LED显示器,按键状态输入由PC2位控制,则8255的工作方式命令为(10100111)。下列有关8255并行接口芯片的叙述中,错误的(在8255工作方式1下,只能使用中断而不能使用查询方法进行I/O操作)。9.I/O接口位于(总线与设备之间)。在接口电路中口的精确定义(可寻址的可读或可读写的寄存器)。下列理由中,不能说明80C51的I/O编址是统一方式而非独立方式的(D)。 A,没有专用的I/O指令B,没有区分存储器和I/O的控制信号 C,使用存储器指令进行I/O操作 D,通过地址先进行编址在LED显示中,为了输出位控和段控指令,应使用指令(MOVX)。下列有关可编程并行接口芯片的叙述中,不正确的(B)。A,可编程并行接口芯片使用前进行初始化,向其控制寄存器写入相关信息 B,各可编程并行接口芯片内具有数目相同的控制寄存器,数据存储器和状态存储器C,可编程并行接口芯片只供并行数据输入输出使用,不能用于串行数据传送 D,I/O编址就是给每个接口芯片分配唯一的地址第八章异步串行数据通信的帧格式由(起始)位、(数据)位、(奇偶校验)位、(停止)位组成。若串行异步通信每帧为11位,串行口每秒传送250个字符,则波特率应为(2750b/s)。串行通信有(单工)、(

温馨提示

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

评论

0/150

提交评论