北京交通大单片机第4章参考答案.docx

上传人:b****2 文档编号:11404193 上传时间:2023-05-31 格式:DOCX 页数:35 大小:267.60KB
下载 相关 举报
北京交通大单片机第4章参考答案.docx_第1页
第1页 / 共35页
北京交通大单片机第4章参考答案.docx_第2页
第2页 / 共35页
北京交通大单片机第4章参考答案.docx_第3页
第3页 / 共35页
北京交通大单片机第4章参考答案.docx_第4页
第4页 / 共35页
北京交通大单片机第4章参考答案.docx_第5页
第5页 / 共35页
北京交通大单片机第4章参考答案.docx_第6页
第6页 / 共35页
北京交通大单片机第4章参考答案.docx_第7页
第7页 / 共35页
北京交通大单片机第4章参考答案.docx_第8页
第8页 / 共35页
北京交通大单片机第4章参考答案.docx_第9页
第9页 / 共35页
北京交通大单片机第4章参考答案.docx_第10页
第10页 / 共35页
北京交通大单片机第4章参考答案.docx_第11页
第11页 / 共35页
北京交通大单片机第4章参考答案.docx_第12页
第12页 / 共35页
北京交通大单片机第4章参考答案.docx_第13页
第13页 / 共35页
北京交通大单片机第4章参考答案.docx_第14页
第14页 / 共35页
北京交通大单片机第4章参考答案.docx_第15页
第15页 / 共35页
北京交通大单片机第4章参考答案.docx_第16页
第16页 / 共35页
北京交通大单片机第4章参考答案.docx_第17页
第17页 / 共35页
北京交通大单片机第4章参考答案.docx_第18页
第18页 / 共35页
北京交通大单片机第4章参考答案.docx_第19页
第19页 / 共35页
北京交通大单片机第4章参考答案.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

北京交通大单片机第4章参考答案.docx

《北京交通大单片机第4章参考答案.docx》由会员分享,可在线阅读,更多相关《北京交通大单片机第4章参考答案.docx(35页珍藏版)》请在冰点文库上搜索。

北京交通大单片机第4章参考答案.docx

北京交通大单片机第4章参考答案

3-5指出下列指令中45H代表什么。

MOVA,#45H

MOVA,45H

MOV45H,46H

MOVC,45H

MOVA,#45H中的45H代表立即数45H,该立即数为16进制。

MOVA,45H中的45H代表直接地址45H单元。

MOV45H,46H中的45H代表目的操作数所指定的单元为45H。

MOVC,45H中的45H代表45H位。

3-6分析下列程序执行的结果。

(1)MOVA,#60H

MOVR0,#40H

MOV@R0,A

MOV41H,R0

XCHA,R0

执行结果为:

(A)=40H(R0)=60H(40H)=60H(41H)=40H

(2)MOVDPTR,#2003H

MOVA,#18H

MOV20H,#38H

MOVR0,#20H

XCHA,@R0

执行结果为:

(DPH)=20H(DPL)=03H(A)=38H(20H)=18H

(R0)=20H

(3)MOV20H,#01H

MOVA,20H

INCA

CPLA

MOVDPTR,#2000H

MOVX@DPTR,A

执行结果为:

(20H)=01H(A)=FDH(DPTR)=2000H

(2000H)=FDH

3-8按要求写出相应的指令。

(1)把寄存器R6的内容送到累加器A中。

(2)把外部RAM1000H单元的内容传送到内部RAM30H单元中。

(3)清除内部RAM3FH单元的高4位。

(4)使累加器A的最低位置1。

(5)清除进位位。

(6)使ACC.4和ACC.5置1。

(7)把外部ROM2000H单元中的内容送到内部RAM的20H单元中。

(8)把外部ROM2000H单元中的内容送到外部RAM的3000H单元中。

(1)MOVA,R6

(2)MOVDPTR,#1000H

MOVXA,@DPTR

MOVR0,#30H

MOV@R0,A

(3)ANL3FH,#0FH

(4)ORLA,#01H

(5)CLRC

(6)ORLA,#30H

(7)CLRA

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOV20H,A

(8)CLRA

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOVDPTR,#3000H

MOVX@DPTR,A

3-10编写程序段完成如下要求。

(1)将寄存器R0中的内容乘以10(积小于256)。

(2)将片内RAM30H单元开始的15个字节的数据传送到片外RAM3000H开始的单元中。

(3)将片外RAM2000H开始的5个字节的数据传送到片内RAM20H开始的单元中。

(4)有10个字节的二进制数存放在片内RAM以40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。

(5)将片外RAM空间2000H~200AH中的数据的高4位变零,低4位不变,原址存放。

(6)将外部RAM2040H单元的内容与3040H单元的内容互换。

(1)MOVB,#0AH

MOVA,R0

MULAB

MOVR0,A

(2)ORG0000H

MOVR0,#30H

MOVDPTR,#3000H

MOVR7,#0FH

LOOP:

MOVA,@R0

MOVX@DPRT,A

INCR0

INCDPTR

DJNZR7,LOOP

SJMP$

END

(3)MOVDPTR,#2000H

MOVR0,#20H

MOVR7,#05H

LOOP:

MOVXA,@DPTR

MOV@R0,A

INCR0

INCDPTR

DJNZR7,LOOP

SJMP$

END

(4)ORG0000H

MOV50H,40H;50H放最大值,且初始化最大值(默认第一个数)

MOVR3,#09H;比较次数

MOVR0,#41H

START:

MOVA,@R0

CJNEA,50H,LOOP

LOOP:

JCLOOP1;如果A比50H的值小,则跳转到LOOP1

MOV50H,@R0;如果比50H的值大,则更新50H(最大值)的值

LOOP1:

INCR0

DJNZR3,START

SJMP$

END

(5)MOVDPTR,#2000H

MOVR1,#0BH

LOOP:

MOVXA,@DPTR

ANLA,#0FH

MOVX@DPTR,A

INCDPTR

DJNZR1,LOOP

SJMP$

(6)MOVDPTR,#2040H

MOVXA,@DPTR

MOVR0,#20H

MOV@R0,A

MOVDPTR,#3040H

MOVXA,@DPTR

XCHA,@R0

MOVX@DPTRA

MOVA,@R0

MOVDPTR,#2040H

MOVX@DPTR,A

3-15设有一带符号的十六位数以补码形式存放在R2、R3寄存器中,试编制求其原码的程序。

ORG0000H

START:

MOVA,R3

JBACC.7,NEXT;判读符号位,如果是正数则原码与补码一样,如果为负,求原码的方法是符号位不变,其余位取反加1

MOVR3,A

HERE:

SJMP$

NEXT:

XRLA,#7FH;高八位,符号位不变,其余取反

MOVR3,A;放回R3

MOVA,R2;低八位

XRLA,#0FFH;取反

ADDA,#01H;加1

MOVR2,A;放回R2

MOVA,R3;看低八位是否有向高八位进位

ADDCA,#00H

MOVR3,A

SJMP$

END

3-16设有一不带符号的十六进制数组,存放在8031单片机片内RAM以BUFFER为首址的连续单元中,其长度为30个字节,要求统计小于10,等于10及大于10的数的个数,并把它们分别存放到片内RAM的LESS、EQUAL、BIG单元中,试编制实现上述要求的程序并画出相应的流程图。

ORG0000H

BUFFERDATA10H

LESSDATA30H

EQUALDATA31H

BIGDATA32H

MOVR0,#BUFFER

MOVR7,#1EH

MOVLESS,#00H

MOVEQUAL,#00H

MOVBIG,#00H

NEXT:

CJNE@R0,#0AH,LOOP1;循环次数

INCEQUAL

AJMPLOOP3

LOOP1:

JCLOOP2

INCBIG

AJMPLOOP3

LOOP2:

INCLESS

LOOP3:

INCR0

DJNZR7,NEXT

SJMP$

END

3-17在外部RAM1000H单元开始的存储区域存放着10个用ASCII码表示的0~9之间的数字,请编程将它们转换成BCD码,然后存放在2000H~2004H单元(以压缩BCD码存放)。

方法一:

ORG0000H

MOVR2,#05H

MOVDPTR,#1000H

MOVR0,#20H

LOOP:

MOVXA,@DPTR

ANLA,#0FH

MOVR4,A

INCDPTR

MOVXA,@DPTR

ANLA,#0FH

SWAPA

ADDA,R4

MOV@R0,A

INCR0

INCDPTR

DJNZR2,LOOP

MOVR5,#05H

MOVR0,#20H

MOVDPTR,#2000H

LOOP1:

MOVA,@R0

MOVX@DPTR,A

INCR0

INCDPTR

DJNZR5,LOOP1

SJMP$

END

方法二:

ORG0000H

MOVR2,#05H

MOVDPTR,#1000H

MOVR1,#20H

LOOP:

MOVXA,@DPTR

ANLA,#0FH

MOVR4,A

INCDPTR

MOVXA,@DPTR

ANLA,#0FH

SWAPA

ADDA,R4

MOVP2,#20H

MOVX@R1,A

INCDPTR

INCR1

DJNZR2,LOOP

SJMP$

END

3-18设有50个无符号8位二进制数,存放在8031单片机内部RAM以BOFER为首址的连续单元中,试编制将其中最小数存放到内部RAM的MIN单元的程序并画出相应的流程图。

BOFERDATA20H

MINDATA60H

ORG0000H

MOVR2,#31H;循环49次

MOVR1,#BOFER+1

MOVMIN,BOFER;把最小值放MIN,且初始化时把第一个数放入MIN

LOOP:

MOVA,@R1

CJNEA,MIN,LOOP1

LOOP1:

JNCLOOP2;@R1>MIN

MOVMIN,@R1;MIN>@R1,MIN要更新

LOOP2:

INCR1

DJNZR2,LOOP

SJMP$

END

3-19设有一字符串存放在8031单片机内部RAM以20H为首址的连续单元中,字符串以回车结束。

要求统计该字符串中字符B(‘B’=42H)的个数,并将其存入外部RAM的40H单元中。

试编写实现上述要求的程序并画出相应的流程图。

ORG0000H

MOVR0,#20H

MOVR1,#00H;‘B’的个数初始化

LOOP:

MOVA,@R0

CJNEA,#0DH,LOOP1;判断是否结束(回车键)

MOVDPTR,#0040H;把结果放外部RAM中

MOVA,R1

MOVX@DPTR,A

SJMP$

LOOP1:

CJNEA,#42H,NEXT;不为B则跳转

INCR1;为B则使计数器加1

NEXT:

INCR0

AJMPLOOP

END

3-23已知MDA和MDB单元内分别存有两个小于10的整数a和b,试用查表子程序实现c=a2+2ab+b2,并把和存于MDC和MDC+1单元中(MDC单元中放低字节,MDC+1单元中放高字节)。

ORG0000H

MDADATA20H

MDBDATA21H

MDCDATA22H

MOVA,MDA

ACALLSQR

MOVR2,A

MOVA,MDB

ACALLSQR

ADDA,R2

MOVR2,A;a2+b2结果暂时放入R2

MOVB,MDA;下面算2*a*b

MOVA,MDB

MULAB

RLA

ADDA,R2

MOVMDC,A

CLRA

ADDCA,#00H

MOVMDC+1,A

SJMP$

SQR:

ADDA,#01H

MOVCA,@A+PC

RET

SQRTAB:

DB0149162536496481100

END

3-25设有一长度为20H的字符串,存放在8031单片机片内RAM以10H为首地址的连续单元中,试编制将其中数字与字母分开并将它们分别送到以30H和50H为首地址的连续单元中的程序。

g

ORG0000H

MOVR2,#20H;循环次数

MOVR1,#10H

MOV60H,#30H;数字存储首地址

MOV61H,#50H;字母存储首地址

LOOP:

MOVA,@R1

CJNEA,#40H,NEXT

NEXT:

JNCNEXT1;如果是字母则跳转到NEXT1

MOVR0,60H;是数字,把数字的存储地址给R0

MOV@R0,A

INC60H

SJMPLOOP1

NEXT1:

MOVR0,61H

MOV@R0,A;是字母,把字母的存储地址给R0

INC61H

LOOP1:

INCR1

DJNZR2,LOOP

SJMP$

END

4-3外端口有哪两种编址方法?

各有什么特点?

答:

微型计算机对I/O端口进行编址的方式有两种:

单独编址和统一编址。

1.外设端口单独编址

特点:

(1)需要专用I/O指令,实现CPU和外设间数据传送。

(2)I/O端口的地址独立,外设不占用存储器的地址。

2.外设端口与存储器统一编址

特点:

(1)无需专用I/O指令

(2)I/O端口地址是内存地址中的一部分,外设的地址可在内存的空间中灵活安排。

4-4I/O数据有哪四种传送方式?

各有什么特点?

CPU与外设之间的数据传送方式有无条件传输方式、查询方式、中断方式和DMA方式。

1.无条件传输方式

无条件传送又称为同步传送或直接传送方式。

CPU在与外设进行数据交换时,外设随时处于准备好的状态,这样CPU不必查询外设的状态,也不必等待,而是直接进行数据的输入输出。

2.查询传输方式

查询传输方式也称为异步传输、条件传输方式。

采用查询方式时,CPU每次与外设进行数据传输前,都要先读取状态端口的信息,查询外设是否准备就绪,只有在外设处于“就绪”状态时,才能向外设的数据端口发送数据或从其中读取数据,如果外设未就绪,就需要CPU原地循环等待外设完成准备工作,所以CPU的工作效率不高。

3.中断传输方式

在中断传输方式中,以外设为主动方,每次外设准备好就可以向CPU发出一次中断请求,使CPU暂停当前正在执行的程序,转去与外设进行一次数据传输工作,当完成了本次数据的输入或输出后,再回到原先被打断的地方继续执行原来的程序。

中断方式可以大大提高CPU的效率和系统的实时性。

4.DMA方式

DMA方式即直接存储器存取方式,是一种在DMA控制器的控制下实现的外设与存储器之间的直接数据传输方式。

在整个DMA传输过程中,是不需要CPU参与的,完全是通过硬件逻辑电路用固定的顺序发地址和读写信号来实现的,数据不需要经过CPU而是在外设和存储器之间高速传输。

4-58051内部的并行I/O口有哪些?

各有什么功能?

1.P0口:

P0口的第一功能是作为通用I/O口使用。

P0口的第二功能是作为地址(低8位地址)/数据总线的复用口。

2.P1口:

P1口的第一功能是作为通用I/O口使用

3.P2口:

P2口的第一功能是通用I/O口

P2口的第二功能是作为地址总线,输出高8位地址信号,与P0口输出的低8位地址组合,共同完成外部存储器单元16位地址信号的输出。

4.P3口:

P3口的第一功能是通用I/O口,且各引脚有不同的第二功能。

见下表:

口线

第二功能

信号名称

P3.0

RXD

串行数据接收

P3.1

TXD

串行数据发送

P3.2

————————INT0

外部中断0申请

P3.3

——I——N——T——1

外部中断1申请

P3.4

T0

定时器/计数器0计数输入

P3.5

T1

定时器/计数器1计数输入

P3.6

————WR

外部RAM写选通

P3.7

——R——D

外部RAM读选通

4-8中断处理的过程是怎样的?

CPU与外设之间一个完整的可屏蔽中断传输过程包括:

中断请求、中断响应、中断处理和中断返回。

CPU执行中断服务程序的过程如图4-7所示。

4-98051单片机有几个中断源?

各自对应的中断标志是什么?

对应的中断服务子程序入口地址是什么?

IE寄存器的作用是什么?

8051单片机提供5个中断源,其中2个外部中断,2个定时器/计数器中断,1个串行口中断。

外部中断

/

以各自引脚上输入低电平或负跳变信号作为中断触发事件。

当检测到外部中断请求时,外部中断的标志IE0/IE1被置为1

定时器/计数器中断是由8051内部的定时器/计数器计满溢出产生的。

T0或T1计满溢出时,中断标志TF0或TF1被置1.

串行口中断包括发送中断和接收中断,当串行口接收完一组数据时,串行口接收中断标志RI被置1;当串行口发送完一组数据时,串行口发送中断标志TI被置1。

8051中断入口地址表:

中断源

中断服务程序入口

0003H

定时器T0

000BH

0013H

定时器T1

001BH

串行口中断

0023H

IE寄存器:

通过中断允许寄存器IE可以对中断实现两级控制。

每个中断源都对应有各自的中断屏蔽位,当中断屏蔽位为1时允许中断,当中断屏蔽位为0时禁止中断;IE寄存器还有一个总中断允许位EA,对整个中断系统进行开中断或关中断的控制。

4-16设单片机时钟为12MHz,请利用定时器T0编出令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:

2(高电平时间短)。

高电平:

2ms/3=667μs

初值:

低电平:

初值:

ORG0000H

AJMPMAIN

ORG000BH

AJMPT0INT

MAIN:

MOVTMOD,#01H;T0选择工作方式1,16位定时器

MOVTH0,#0FDH;初始化T0值

MOVTL0,#65H

MOVIE,#82H;开T0中断,开总中断

SETBTR0;启动T0定时器

SETBP1.0

SJMP$

T0INT:

MOVC,P1.0

JCNEXT;判断P1.0的高低电平

MOVTH0,#0FDH;P1.0为低则装入高电平的初始值

MOVTL0,#65H

SJMPCOM

NEXT:

MOVTH0,#0FAH;P1.0为高则装入低电平的初始值

MOVTL0,#0CBH

COM:

CPLP1.0

RETI

END

4-17已知8051单片机内部RAM中以10H为起始地址的数据区有50个字节,要求每隔100ms向内部RAM中以70H为起始地址的数据区传送10个字节,通过5次传送完毕。

要求采用定时器T1定时,单片机时钟为12MHz,请编写程序。

定时器50ms,循环2次可得100ms,设定初值3CB0H

ORG0000H

AJMPMAIN

ORG001BH

AJMPBRT1

MAIN:

MOVTMOD#10H;T1选择工作方式1,16位定时器

MOVTH1,#3CH;计数器初始化

MOVTL1,#0B0H

MOVR1,#10H

MOVR0,#70H

MOVR2,#05H;传送次数

MOVR3,#02H;定时两次,每次50ms

MOVIE,#88H;开T1中断,开总中断

SETBTR1;启动T1计数器

LOOP:

SJMP$

BRT1:

MOVTH1,#3CH;重装定时50ms

MOVTL1,#0B0H

DJNZR3,DONE

MOVR3,#02H

DJNZR2,LOOPD

CLRET1;传送数据完毕,关闭T1中断

CLRTR1;停止T1

SJMPDONE

LOOPD:

MOVR4,#10;每次传10个字节

LOOP1:

MOVA,@R1

MOV@R0,A

INCR1

INCR0

DJNZR4,LOOP1

DONE:

RETI

END

4-18异步通信和同步通信的主要区别是什么?

MCS-51串行口有没有同步通信功能?

异步通信是字符帧通信:

通信原理:

1、发送/接收端有两个相互独立时钟源;2、接收端检测到RXD线的低电平(起始位)接收端便知发送端已开始发送。

同步通信靠同步头通信:

通信原理:

接收端检测RXD线上有同步头便知对方已开始发送。

MCS-51串行口无同步通信功能。

4-21串行通信有哪几种制式?

各有什么特点?

通信方式可分为:

单工通信、半双工通信与全双工通信。

(1)单工通信只支持数据在一个方向上传输

(2)半双工通信允许数据在两个方向上传输,但在同一时刻,只允许数据在一个方向上传输

(3)全双工通信允许数据同时在两个方向上传输,即通信的双方可以同时发送和接收数据。

4-22、MCS-51串行口工作方式有哪4种?

如何设定?

串行口的工作方式有方式0、方式1、方式2和方式3四种工作方式。

(1)方式0:

在方式0下,方式0时SM2位必须为0。

其波特率是固定的,为

(2)方式1:

在方式1下,串行口为10位通用异步接口。

(3)方式2:

在方式2下,串行口为11位通用异步接口。

先根据通信协议用软件设置TB8。

其信息传送波特率与SMOD有关。

(4)方式3:

方式3为波特率可变的11位异步通信方式。

4-26请用中断法编出串行口方式1下的接收程序。

设8051单片机主频为6MHz,波特率为600b/s,接收数据缓冲器在外部RAM,起始地址为RBLOCK,接收数据区长度为30,采用偶校验(数据块长度不发送)。

主程序:

设ACC.7为偶校验位。

RBLOCKDATA2000H

LENDATA30H

ORG0000H

LJMPSTART

ORG0023H

LJMPRXSVE

START:

MOVTMOD,#20H;T1为方式2

MOVTL1,#0E6H;时间常数初值送T1

MOVTH1,#0E6H;波特率为600bps

MOVPCON,#00H;SMOD=0

SETBTR1;启T1,以上设置T1作为串口波特率发生器

MOVSCON,#50H;串口方式1,允许接收

MOVDPTR,#RBLOCK;接收数块始址送DPTR

MOVR2,LEN;块长送R2

SETBEA;开所有中断

SETBES;允许串口中断

WAIT:

SJMPWAIT;等待中断

ORG0150H

RXSVE:

CLRES;关串口中断

CLRRI;清接收中断标志

MOVA,SBUF;读接收缓冲区中内容

MOVC,P;取出校验位

JCERROR;若有错,则转ERROR

ANLA,#7FH;无就删去校验位

MOVX@DPTR,A;送入接收缓冲区

DJNZR2,NEXT;若接收未完,则NEXT

CLREA;关所有中断

RETI;中断返回

NEXT:

INCDPTR;接收区指针加1

SETBES;重开串口中断

RETI;中断返回

ERROR:

…….;出错处理ERROR,本题未给具体程序

RETI

END

当PCON的值为80H时(SMOD=1),定时器初值应设TH1为0CCH,TL1为0CCH。

5-8要在单片机片外扩展16KB数据存储器,选择其地址为0000~3FFFH。

如选用6264为存储器芯片,74LS138为译码器,

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2