微机控制技术第三章第四章练习题答案.docx

上传人:b****8 文档编号:10236983 上传时间:2023-02-09 格式:DOCX 页数:19 大小:29.75KB
下载 相关 举报
微机控制技术第三章第四章练习题答案.docx_第1页
第1页 / 共19页
微机控制技术第三章第四章练习题答案.docx_第2页
第2页 / 共19页
微机控制技术第三章第四章练习题答案.docx_第3页
第3页 / 共19页
微机控制技术第三章第四章练习题答案.docx_第4页
第4页 / 共19页
微机控制技术第三章第四章练习题答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

微机控制技术第三章第四章练习题答案.docx

《微机控制技术第三章第四章练习题答案.docx》由会员分享,可在线阅读,更多相关《微机控制技术第三章第四章练习题答案.docx(19页珍藏版)》请在冰豆网上搜索。

微机控制技术第三章第四章练习题答案.docx

微机控制技术第三章第四章练习题答案

微机控制技术第三章、第四章练习题答案

第三章

3-1选择题

1、MOVXA,@DPTR指令中源操作数的寻址方式是(B)

(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址

2.ORG0003H

LJMP2000H

ORG000BH

LJMP3000H当CPU响应外部中断0后,PC的值是(B)

(A)0003H(B)2000H(C)000BH(D)3000H

3.执行PUSHACC指令,MCS-51完成的操作是(A)

(A)

SP+1SP(ACC)(SP)(B)(ACC)(SP)SP-1SP

(B)

(C)SP-1SP(ACC)(SP)(D)(ACC)(SP)SP+1SP

4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)

(C)2000H(B)2001H(C)2002H(D)2003H

5、51执行完MOVA,#08H后,PSW的一位被置位(D)

(A)(A)C(B)F0(C)OV(D)P

6、下面条指令将MCS-51的工作寄存器置成3区(B)

(A)MOVPSW,#13H(B)MOVPSW,#18H

(B)SETBCLR(d)SETBCLR

7、执行MOVXA,DPTR指令时,MCS-51产生的控制信号是(C)

(D)/PSEN(B)ALE(C)/RD(D)/WR

8、MOVC,#00H的寻址方式是(A)

(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址

9、ORG0000H

AJMP0040H

ORG0040H

MOVSP,#00H当执行完左边的程序后,PC的值是(C)

(A)0040H(B)0041H(C)0042H(D)0043H

10、对程序存储器的读操作,只能使用(D)

(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令

3-2判断题。

4.MCS-51的相对转移指令最大负跳距是127B。

(错)128B

5.当MCS-51上电复位时,堆栈指针SP=00H。

(SP=07H)(错)

6.调用子程序指令(如:

CALL)及返回指令(如:

RET)与堆栈有关但与PC无关。

(错)子序的转返与PC也有关(PC入栈与出栈)

7.MOV@R1,#80H(错)

5、INCDPTR(对)

6、CLRR0(错)指令系统中没有。

7、MOV@R1,#80H(对)

8、ANLR1,#0FH(错)

9、ADDCA,C(错)

10、XORP1,#31H(对)

3-3简答题

1简述MCS-51汇编语言指令格式。

答:

MCS-51汇编语言格式如下:

[标号:

]操作码助记符[操作数1][操作数2][操作数3][注释]标号是用户定义的符号,其值代表这条指令的地址。

操作码助记符是指令系统规定的代表特定指令功能的英文缩写符。

每条指令都有操作码记符。

指令的操作数最多有3个,也有无操作数的指令。

注释字段是用户对程序的说明,便于对程序的阅读和理解。

简答

2MCS-51指令系统主要有哪几种寻址方式试举例说明。

答:

MCS-51指令操作数主要有以下7种寻址方式:

寻址方式举例

立即寻址MOVA,#16

直接寻址MOV20H,P1

寄存器寻址MOVA,R0

寄存器间接寻址MOVXA,@DPTR

变址寻址MOVCA,@A+DPRT

相对寻址SJMPLOOP

位寻址ANLC,70H

3对访问内部RAM和外部RAM,各应采用哪些寻址方式

答:

对内部RAM的寻址方式有直接寻址、寄存器间接寻址和可对位寻址的位寻址。

对外部RAM的寻址方式只能用寄存器R0/R1(8位地址)或DPTR(16位地址)间接寻址。

4设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何

MOVR0,#30H;R0=30H

MOVA,@R0;A=5AH

MOVR1,A;R1=5AH

MOVB,R1;B=5AH

MOV@R1,P1;(5AH)=7FH

MOVA,P1;A=7FH

MOV40H,#20H;(40H)=20H

MOV30H,40H;(30H)=20H

解:

每一条指令执行后的结果如注释字段所标。

最后结果为:

R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。

5SJMP(短转移)指令和AJMP(绝对转移)指令的主要区别。

前者提供了以SJMP的下一条指令的起始地址为中心的256字节范围的转移(-128~+127),后者的转移目标地址必须在与AJMP的下一条指令的第一字节相同的2KB区的程序储存器中。

短转移方便了可重定位编码。

SJMP方便了PC可重定位编码,但转移范围小。

而ASJMP转移范围大,但存在跳区的限制,AJMP指令只能位于2KB区的最后2个字节处时,才可跳到下一个区去。

因此用AJMP指令来代替SJMP指令是有条件的,也就是目标地址必须与它下面的指令存放地址在同一个2KB区域内。

3-4编程题

1编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。

 解:

STRAT:

MOVR0,#30H

MOVR7,#0FH

MOVDPTR,#3000H

LOOP:

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

DJNZR7,LOOP

RET

2片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和<256).

   解 ADDIO:

MOVR0,30H

MOVR7,#9

MOVA,@R0

LOOP:

INCR0

ADDA,@R0

DJNZR7,LOOP

MOV30H,A

RET

3编一个程序,将累加器中的一个字符从串行接口发送出去.

   解SOUT:

MOVSCON,#40H;设置串行接口为工作方式

      MOVTMOD,#20H;定时器T1工作于模式2

MOVTL1,#0E8H;;设置波特率为1200b/s

MOVTH1,#0E8H

SETBTR1

MOVSBUF,A

JNBT1,$

CLBT1

RET

4用查表法编一子程序,将R3中的BCD码转换成ASCII码.

解  MAIN:

MOVA,R3;待转换的数送A

MOVDPTR,#TAR;表首地址送DPTR

MOVCA,@A+DPTR;查ASCII码表

MOVR3,A;查表结果送R3

RET

TARDB30H,31H,32H,33H,34H

DB35H,36H,37H,38H,39H

5片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.

解START:

MOVR0,#40H;数据块首地址送R0

MOVR7,#09H;比较次数送R7

        MOVA,@R0;取数送A

  LOOP:

INCR0

MOV30H,@R0;取数送30H

CJNEA,30H,NEHT;(A)与(30H)相比

NEXT:

JNCBIE1(A)≥(30H)转BIR1

MOVA,30H;(A)<(30H),大数送A

   BIE1:

DJNZR7,LOOP;比较次数减1,不为0,继续比较

        MOV50H,A;比较结束,大数送50H

        RET

6编一子程序,从串行接口接受一个字符.

解:

START:

MOVTMOD,#20H;定时器T1工作于模式2

MOVTH1,#0E8H;设置波特率为1200b/s

MOVTL1,#0E8H

SETBTR1;启动T1

MOVSCON,#50H;串行接口工作于方式1,充许接收

L1:

JNBRI,L1;等待接收数据,末接收到数据,继续等待

CLRRI;接收到数据,清RI

MOVA,SBUF;接收到数据送A

RET

7利用调子程序的方法,进行两个无符号数相加。

请编主程序及子程序。

解用R0和R1作数据指针,R0指向第一个加数,并兼作“和”的指针,R1指向另一个加数,字节存放到R2中作计数初值。

  主程序:

    JAFA:

MOVR0,#20H;指向加数最低字节

        MOVR1,#29H;指向另一加数最低字节

        MOVR2,#04H;字节数作计数值

        ACALLJASUB;调用加法子程序

        AJMP$

RTE

多字节加法子程序:

JASUB:

CLRC

JASUB1:

MOVA,@R0;取出加数的一个字节(4B无符号数加数)

    ADDCA,@R1;加上另一数的一个字节 

    MOV@R0,A;保存和数

    INCR0;指向加数的高位

    INCR1;指向另一加数的高位

    DJNZR2,JASUB1;全部加完了吗

    RET

8若图数据块是有符号数,求正数个数,编程并注释。

解ORG0030H

START:

MOV20H,#00H;计正数个数计数器

      MOVDPTR,#0000H;

MOVXA,@DPTR;数据块长度→10H

MOV10H,A

INCDPTR;DPTR指向第一个数的地址

  TWO:

MOVXA,@DPTR;取数→A

JB,ONE;是负数转ONE,准备取下一个数

INC20H;是正数,正数计数器加1

   ONE:

INCDPTR;地址指针加1

     DJNZ10H,TW;数据块长度减1不等于0,继续寻找

      RET

9编制一个循环闪烁灯的程序。

有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。

画出电路图。

8013

D0Q0

74LS240

D7Q7

5V

本程序的硬件连接如图所示。

当输出高电平时,LED灯亮,否则不亮。

其程序如下:

MOVA,#01H;灯亮初值

SHIFT:

LCAILFLASH;调闪亮10次子程序

RRA;右移一位

SJMPSHIFT;循环

FLASH:

MOVR2,#0AH闪烁10次计数

FLASH1;MOVP1,A;点亮

LCALLDELAY;延时

MOVP1,#00H;熄灭

LCALLDELAY;延时

DJNZR2,FLASH1;循环

RET

第四章

4-1填空

的Po口作为输出端口时,每位能驱动8个SL型TTL负载.

有4个并行I\O口,其中P0~P3是准双向口,所以由输出转输入时必须先写入"1"

3.设计8031系统时,_P0、P2口不能用作一般I\O口.

串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器__SCON_加以选择.

5.当使用慢速外设时,最佳的传输方式是中断.

6.当定时器To工作在方式3时,要占定时器T1的TR1和TF1_两个控制位.

有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP加以选择..

8.用串口扩并口时,串行接口工作方式应选为方式0.

9.在串行通信中,有数据传送方向单工、半双工、全双工三种方式.

10.外部中断入口地址为_0013H

4-2判断

的5个中断源优先级相同。

(×)

2.要进行多机通信,MCS-51串行接口的工作方式应为方式1。

(×)

上电复位时,SBUF=00H。

(×)。

有3个中断源,优先级由软件填写特殊功能寄存器IP加以选择..(×)

5.用串口扩并口时,串行接口工作方式应选为方式1.(×)

6.外部中断INTO入口地址为_0013H(×)

外部中断0的入口地址是0003H。

(√).

中的GATE=1时,表示由两个信号控制定时器的启停。

(√)。

9.使用8751且=1时,仍可外扩64KB的程序存储器。

(×)

10.PC存放的是当前执行的指令。

(×)

11.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。

(×)

有4个并行I\O口,其中P0~P3是准双向口,所以由输出转输入时必须先写入"0"(×)

4-3选择

1.在中断服务程序中,至少应有一条(D)

(A)传送指令(B)转移指令(C)加法指法(D)中断返回指令

2.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是(B)

(A)98H(B)84H(C)42(D)22H

MCS-51在响应中断时,下列哪种操作不会发生(D).

(A)保护现场(B)保护PC(C)找到中断入口若悬河(D)保护PC转入中断入口

4.用MCS-51串行接口扩展并行I\O口时,串行接口工作方式应选择(C)

(A)方式0(B)方式1(C)方式2(D)方式3

-51有中断源( A   )

(A)5个   (B)2个   (C)3个   (D)6个

响应中断时,下面哪一个条件不是必须的()

(A)当前指令执行完毕(B)中断是开放的确

(C)没有同级或高级中断服务须(D)必须有RET1指令

7.使用定时器T1时,有几种工作模式( D )

(A)1种   (B)2种   (C)3种     (D)4种

8.计算机在使用中断方式与外界交换信息时,保护现场的工作方式应该是(B)

(A)由CPU自动完成(B)在中断响应中完成功之路

(C)应由中断服务程序完成(D)在主程序中完成

9.下面哪一种传送方式适用于处理外部事件(C)

(A)DMA(B)无条件传递进(C)中断(D)条件传递

1、2、4章的编程

1.8225A控制字地址为300FH,请按:

A口方式0输入,B口方式1输出,C口高位输出,C口低位输入,确定8225A控制字并编初始化程序.

解:

控制字为=95H

初始化程序:

MOVDPTR,#300FH

MOVA,#95H

MOVX@DPTR,A

2.编定一个软件延时1S和1min的子程序.设fosc=6Hz,则一个机器周期1μs。

解:

(1)1S=2US*5*100000

5*100000=250*200*10

(2)ORG1000H

TIME:

MOVR7,#10

T3:

MOVR6,#200

T2:

MOVR6,#250

T1:

DJNZR5,T1

DJNZR6,T2

DJNZR7,T3

RET

(2)1min=60,调用上面1s子程序60次

ORG0030H

MOVR0,#60

LOOP:

LCALLTIME

DJNZR0,LOOP

RET

3.请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设定为方式2,采用偶校验方式。

设晶振频率为6MHz。

解:

查询方式发送程序如下

MOVSCON,#8OH

MOVPCON,#80H

MOVR0,#50H

MOVR7,#16H

LOOP:

MOVA,@R0

MOVC,P

MOVTB8,C

MOVSBUF,A

JNBT1,$

CLRT1

INCR0

DJNZR7,LOOP

RET

4.应用单片机内部定时器T0工作在方式1下,从输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。

(1)计算时间常数X,应用公式X=216-t(f/12)

(2)写出程序清单

解:

X=216-t(F/12)

=216-1*10-3*6*106/12

=OFEOCH

ORG3000H

START:

MOVTMOD,#01H

MOVTL0,#OCH

MOVTHO,#OFEH

SETBTR0

LOOP:

JBCTFO,DONE

SJMPLOOP

DONE:

MOVTL0,#OCH

MOVTHO,#OFEH

CPL

SJMPLOOP

5.应用单片机内部定时器T0工作在方式1下,从输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。

(1)计算时间常数X,应用公式X=216-t(f/12)

(2)写出程序清单

解:

解:

X=216-t(F/12)

=*10-3*6*106/12

=FF06H

ORG3000H

START:

MOVTMOD,#01H

MOVTL0,#06H

MOVTHO,#FFH

SETBTR0

LOOP:

JBCTFO,DONE

SJMPLOOP

DONE:

MOVTL0,#06H

MOVTHO,#FFH

CPL

SJMPLOOP

6、用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。

编出汇编语言程序。

解:

ORG0100H

ABC:

SETB

SETB

JB,$

JNB,$

CLR

MOVR2,#0

DAY:

NOP

NOP

DJNZR2,DAY

SJMPABC

7、设计一个4位数码显示电路,并用汇编语言编程使"8"从右到左显示一遍。

解:

ORG0100H

MOVA,#08H

MOVR2,#01H

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1,A

NEXT:

MOVA,R2

MOVP3,A

ACALLDAY

JB,LPD

RLA

MOVR2,A

AJMPNEXT

LPD:

RET

TAB:

DB

END

7.编制一个循环闪烁的程序。

有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。

画出电路图。

解:

MOVA,#01H

SHIFT:

LCALLFLASH

RR

SJMPSHIFT

FLAH:

MOVR2,#0AH

FLAH1:

MOVP1,A

LCALLDELAY

MOVP,#00H

LCALLDELAY

DJNZR2,FLASH1

RET

9.在8051单片机的INTO引脚外接脉冲信号,要求每送来一个脉冲,把30H单元值加1,若30H单元记满则进位31H单元。

试利用中断结构,编制一个脉冲计数程序。

解:

ORG0000H

AJMPMAIN

ORG0003H

AJMPSUBG

MAIN:

MOVA,#OOH

MOV30H,A

MOV31H,A

MOVSP,#70H

SETBINT0

SETBEA

SETBEX0

AJMP$

ORG0200H

SUBG:

PUSHACC

INC30H

MOVA,30H

JNZBACK

INC31H

BACK:

POP

RET1

10.利用89C51的P1口控制8个发光俄二极管LED。

相邻的4个LED为一组,使2组每隔0。

5S交替发亮一次,周尔复始。

试编写程序。

解:

ORG0100H

MOVA,#0FH

ABC:

MOVP1,A

ACALLD05

SWAPA

SJMPABC

D05:

MOVR6,250

DY:

MOVR7,250

DAY:

NOP

NOP

DJNZR6,DAY

DJNZR7,DAY

RET

END

11.设计89C51和ADC0809的接口,采集2通道10个数据,存入内部RAM的50H~59H单元,画出电路图,编出:

(1)延时方式;

(2)查询方式;

(3)中断方式中的一种程序。

解:

IN2的地址为7FFAH,查询转换结束信号,查询程序如下:

ORG0100H

MOVR7,#0AH

MOVR0,#50H

MOVDPTR,#7FFAH

NEXT:

MOVX@DPTR,A

JB,$

MOVXA,@DPTR

MOV@R0,A

INCR0

DJNZNEXT

SJMP$

精心搜集整理,只为你的需要

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

当前位置:首页 > 高等教育 > 文学

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

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