单片机课后题原题.docx

上传人:b****4 文档编号:1490945 上传时间:2022-10-22 格式:DOCX 页数:14 大小:60.84KB
下载 相关 举报
单片机课后题原题.docx_第1页
第1页 / 共14页
单片机课后题原题.docx_第2页
第2页 / 共14页
单片机课后题原题.docx_第3页
第3页 / 共14页
单片机课后题原题.docx_第4页
第4页 / 共14页
单片机课后题原题.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机课后题原题.docx

《单片机课后题原题.docx》由会员分享,可在线阅读,更多相关《单片机课后题原题.docx(14页珍藏版)》请在冰豆网上搜索。

单片机课后题原题.docx

单片机课后题原题

单片机课后题原题

第一章

1.通过堆栈操作实现子程序调用,首先要把(Pc)的内容入栈,以进行断点保护,调用返回时再进行出栈操作,把保护的断点送回(Pc)

1.80C51单片机的时钟电路包括两个部分,芯片内的(反向器)和芯片外的(晶振)与(两只电容),若提高单片机的晶振频率,则单片机的机器周期会变(短)。

2.通常单片机两种复位操作,(加电)和(手动),复位后Pc值为(0000H),SP值为(07H),通用寄存器当前寄存器组为(第0组),该组寄存器的寄存范围从(00H)到(07H)

3.80C51单片机中,一个机器周期包含(6个)状态周期,一个状态周期又分为(两个)节拍,一个节拍为一个(震荡脉冲周期),因此,一个机器周期应包含(12)个脉冲震荡范围。

4.80C51中唯一可供用户使用的16位寄存器是(DPTR),可拆分为两个八位寄存器使用,名称(DPH)和(DPL)。

5.单片机程序存储器的寻址范围由PC的位数决定,80C51的PC为16位,因此程序存储器的地址空间(64KB).

6.下列概念中叙述正确的是(D)。

A,80C51中共有5个中断源,因此在芯片上相应的有5个中断请求输出引脚B,特殊的存取规则堆栈已不是数据存储器的一部分C,可以把PC看成是数据存储空间的地址指针D,CPU中反映程序运行状态和运行结果特征的寄存器是PSW

7.取质操作后,PC的值是(C)。

A,当前指令前一条指令的地址B,当前正在执行指令的地址C,下一条指令的地址D,控制器中指令寄存器的地址

8.80C51单片机中,设置堆栈指针SP为37H后就发生子程序调用,这时SP的值变为(C)。

A,37HB,38HC,39HD,3AH

9.设置堆栈指针SP=30H后,进行一系列的堆栈操作,当进栈数据全部弹出后,SP应指向(A)。

A,30H单元B,07H单元C,31H单元D,2FH单元

10.下列关于堆栈的描述中错误的是(C)。

A,80C51的堆栈在内部RAM中开辟,所以SP只需8位就够了B,堆栈指针SP的内容是堆栈栈顶单元的地址C,在80C51中堆栈操作过程与一般RAM单元的读写操作没有区别D,在中断响应中,断点地址自动进栈

11.在单片机芯片内设置通用寄存器的好处不包括(A)。

A,提高程序运行可靠性B,提供程序运行速度C,为程序设计提供方便D,减小程序长度

12.下列叙述中正确的是(D)。

A,SP内装的是堆栈栈顶单元的内容B,在中断服务程序中没有Push和Pop指令,说明此次中断与堆栈无关C,在单片机中配合实现“程序存储自动执行”的寄存器是累加器D,两数相加后,若A中数据为66H,则PSW中最低位的状态为0

第三章

1.下列指令中,不能实现PSW内容送A的是(C)。

A,MOVA,PSWB,MOVA,0D0HC,MOVR0,#0D0HMOVA,@R0D,PUSHPSWPOPACC

2.在相对寻址方式中,相对两个字是指相对于(C)。

A,地址偏移量relB,当前指令的首地址C,下一条指令的首地址D,DPTR的值

3.下列指令中,能将外部数据存储器3355H单元内容传送给A的是(B)。

A,MOVXA,3355HB,MOVDPTR,#3355HMOVXA,@DPTRC,MOVP0,#33HMOVR0,#55HMOVXA,@R0DMOVP2,#33HMOVR2,#55HMOVXA,@R2

4.对程序存储器的读操作,只能使用(D)。

A,MOV指令B,PUSH指令C,MOVX指令D,MOVC指令

5.执行返回指令后,返回的断点是(C)。

A,调用指令的首地址B,调用指令的末地址C,调用指令的下一条指令的首地址D,返回指令的末地址

6.以下各项中不能用来对内部数据存储器进行访问的是(A)。

A,数据指针DPTRB,按存储单元地址或名称C,堆栈指针SPD,由R0或R1作间址寄存器

7.判断下列指令的合法性:

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(对)

8.利用位操作指令序列实现下列逻辑运算:

(1):

D=(10H并P1.0)交(11H并CY)

(2):

E=ACC.2交P2.7并ACC.1交P2.0

9.编写程序将内部RAM20H-23H单元的高4位写1,低四位写0.

分析:

就是把这四个单元写入F0H。

用一个DJNZ的循环。

  ORG0000H

MOVR0,#1FH;R0指向20H单元

MOVR5,#04H; 四个数

LOOP:

INCR0

MOV@R0,#0F0H; 写入

DJNZR5,LOOP; 循环4次

END

15.在m和m+1单元中存在两个BCD数。

将他们合并到m单元中,编写程序完成。

(设m=30H,高位在30H,低数在31H)

   ORG0000H

MOVA,30H

ANLA,#0FH ;把它的高四位清零

SWAPA

MOV30H,A ;高低四位调一下,放回原处

MOVA,31H

ANLA,#0FH

ORLA,30H ;合并起来

MOV30H,A

END

16.将内部RAM中从date单元开始的10个无符号数相加,其和送sum单元。

假定相加结果小于255,编写程序完成。

(设data=30H,sun=50H)

ORG0000H

MOVR0,#2FH;指向前一个单元

MOVR5,#0AH ;循环10次

CLRA  ;先加到A中

LOOP:

INCR0

ADDA,@R0

DJNZR5,LOOP

MOV50H,A

END

17.假定8位二进制带符号数存于R0中,要求编写一个求补程序,所得补码放入R1中。

 ORG0000H

MOVA,R0

CPLA ;按位取反

ADDA,#01H ;+1

MOVR1,A

END

 

第四章

1.假定A=40H,R1=23H,40H=05H.执行以下两条指令后,A=(25H),R1=(40H),40H=(03H).XCHA,R1XCHDA,@R1

2.假定80C51的晶振频率为6MHz,执行下列程序后,在P1.1引脚产生的方波宽度为(2.914ms)。

3.分析下列跳转程序,程序中A与30H单元中的数都是符号数,说明当(A=30H)时转向Loop1,当(A〉30H)时转向LOOP2,当(A〈30H)时转向LOOP3。

4.假定80C51的晶振频率为6MHz,下列程序的执行时间为(32.87ms)。

已知程序中前两条指令机器周期数为1,后四条指令机器周期数为2。

5.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位于外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车符CR或整个字符串传送完毕,是编程实现。

ORG 0030H

        MOV R0,#inbuf

        MOV R1,#outbuf       

        MOV R4,#10H

  LOOP:

MOV A,@R0;从内部RAM取数

CJNE A,#0DH,LL;是否为回车符CR

       SJMP STOP;是转停止传送

 LL:

 MOVX @R1,A;不是则传送到外部RAM

      INC R0

      INC R1 

      DJNZ R4,LL;沒传送完则循环

STOP:

 SJMP$

 

6.内部RAM从list单元开始存放一正数表,表中数作无序排列,并以-1作结束标志。

编程实现找出表中最小数。

(3AH存放在运行程序时的最小的数)   

ORG 0030H

      MOVR0,#list

      MOVA,@R0;取第一个正数

 LOOP:

INCR0;指向下一个正数

      MOV3AH,@R0

   CJNEA,3AH,CHK;前一个数与后一个数比较

CHK:

 JC LOOP1;前一个数小,则转

      MOVA,@R0;前一个数大,取后一个数

LOOP1:

XCHA,3AH

      CJNEA,#0FFH,LOOP

      XCHA,3AH;取最小数

      MOV 3BH,A

      SJMP$

7.内部RAM的X和Y单元中各存放一个带符号数,编程实现如下条件进行的运算,并将结果存入Z单元。

 若X为正奇数,Z =X+Y;

若X为正偶数,Z =X∨Y;

若X为负奇数,Z =X∧Y;

若X为负偶数,Z =X⊕Y。

  分析:

负数:

第7位为1,正数:

第7位为0

     奇数:

第0位为1,偶数:

第0位为0 

ORG0000H

MOVA,20H

CLRC

RLA

JCFS;移到负数处处理

RRA

RRA;第0位移到C 再判定一下是不是1

JCZJS;到正奇数处

MOVA,20H

ORLA,21H

MOV22H,A

SJMPOK

ZJS:

MOVA,20H

ADDA,21H

MOV22H,A

SJMPOK

FS:

MOVA,20H

CLRC

RRA

JCFJS;第0位是1,移到正 奇数处理

MOVA,20H

XRLA,21H

MOV22H,A

SJMPOK

FJS:

MOVA,20H

ANLA,21H

MOV22H,A

OK:

END

8.把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。

该数存放在内部RAM中byte单元中。

变换后得到的8个ASCII码存放在外部RAM以buf始的存储单元中去。

   

   ORG 0030H

     MOV R0,#byte

     MOV DPTR,#buf

     MOV R5,#08H

     MOV A,@R0

 LOOP:

RLC A

    MOV R7,A

     JC LOOP1

      MOV A,#30H

      SJMP LOOP2

 LOOP1:

 MOV A,#31H

 LOOP2:

MOVX @DPTR,A

      MOV A,R7

      INC DPTR

       DJNZ R5,LOOP

9.编程实现

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1