单片机原理及应用作业参考答案.docx

上传人:b****3 文档编号:2169162 上传时间:2022-10-27 格式:DOCX 页数:24 大小:73.15KB
下载 相关 举报
单片机原理及应用作业参考答案.docx_第1页
第1页 / 共24页
单片机原理及应用作业参考答案.docx_第2页
第2页 / 共24页
单片机原理及应用作业参考答案.docx_第3页
第3页 / 共24页
单片机原理及应用作业参考答案.docx_第4页
第4页 / 共24页
单片机原理及应用作业参考答案.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

单片机原理及应用作业参考答案.docx

《单片机原理及应用作业参考答案.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用作业参考答案.docx(24页珍藏版)》请在冰豆网上搜索。

单片机原理及应用作业参考答案.docx

单片机原理及应用作业参考答案

单片机原理及应用作业参考答案

1.2单片机的结构特点表现在哪些主要方面?

答:

(1)在存储器结构上,严格将程序存储器和数据存储器在空间上分开,并使用不同的寻址方式,使用两个不同的地址指针;

(2)在内部有一个全双工的串行接口;

(3)有一个独立进行操作的位处理器。

1.4通用单片机的供应状态主要取决于什么?

供应状态有哪几种?

用户选用单片机的供应状态的原则是什么?

答:

通用单片机的供应状态主要取决于片内ROM的配置状态。

(1)片内ROM的配置状态

掩膜ROM,适合于低成本。

大批量产品的场合

(2)片内EPROM配置状态

可通过高压脉冲写入应用程序到EPROM,适合于开发样机,小批量生产。

(3)片内无ROM配置状态

必须外扩EPROM,价格低,使用灵活,适合于需要外接能在现场进行修改和更新程序存储器的应用场合。

2.3单片机的端有何功用?

8031的端应如何处理,为什么?

答:

端是访问外部程序存储器的控制信号:

当无效时,访问内部ROM,当为有效时,访问外部ROM。

由于8031没有内部ROM,所以端必须接低电平。

2.4MCS-51引脚中有多少I/O线?

它们与单片机对外的地址总线、数据总线和控制总线有什么关系?

地址总线和数据总线各是几位?

答:

MCS-51引脚中有32根I/O线,一般由P0口提供单片机对外的数据总线,同时作为分时复用的地址总线的低8位,由P2口作为地址总线的高8位,控制总线由第二功能的状态下的P3口以及RST、、ALE和提供。

2.58051单片机的内部数据存储器可以分为哪几个不同的区域?

各有什么特点?

答:

数据存储器主要分为两个区域:

00H~7FH是真正的RAM区,80H~FFH专门用作特殊功能寄存器的区域。

其中00H~7FH可分为三个区域:

00H~1FH为四组工作寄存器;20H~2FH为128位位寻址区,30H~7FH为一般RAM区。

2.6单片机对外有几条专用控制线?

其功能是怎样的?

答:

单片机对外的专用控制线有4条,分别是:

(1):

外部取指操作,在访问外部ROM时,信号自动产生;

(2)ALE/:

ALE为地址锁存允许信号,在访问外部ROM或RAM时,用来锁存P0口的低8位地址。

第二功能是对8751的EPROM编程时,编程脉冲输入。

(3)/VPP:

是访问外部程序存储器的控制信号,无效时,访问内部ROM,有效时,访问外部ROM,第二功能VPP为对8751EPROM的21V编程电源输入。

(4)RST/VPD:

RST是复位信号输入端,第二功能VPD是备用电源输入端。

2.8有哪几种方法使单片机复位?

复位后各寄存器、RAM中的状态如何?

答:

单片机的复位方式有两种,上电自动复位和按钮复位。

复位后各寄存器状态为:

PC0000HACC00HPSW00HSP07HDPTR0000H

P0~P3FFHIPXX000000BIE0X000000BTMOD00H

TCON00HTL000HTH000HTL100HTH100H

SCON00HSBUFXXHPCON0XXX0000B

2.9在8051扩展系统中,片外程序存储器和片外数据存储器使用相同的地址编址,是否会在数据总线上出现争总线的现象?

为什么?

答:

不会发生争总线的现象,因为从外部ROM取指令需要用ALE和信号控制读取操作,由P2和P0提供地址;而片外数据存储器的读写除了地址之外还要、控制,所以不会争总线。

2.10如果8051端口P0~P3作为通用I/O口使用,则在输入引脚数据时应注意什么?

答:

8051的P1、P2和作为一般输入I/O口的P以及第一功能的P3口均为准双向口,在输入数据时应先向端口写1,然后方可作为高阻输入。

以使其场效应管T2截止,才不会影响输入电平。

3.2若要完成以下的数据传送,应如何用MCS-51的指令实现?

(1)R1的内容传送到R0

MOVA,R1

MOVR0,A

(2)外部RAM20H单元的内容传送到R0

MOVR0,#20H

MOVXA,@R0

MOVR0,A

(3)外部RAM20H单元的内容传送到内部RAM20H单元

MOVR0,#20H

MOVXA,@R0

MOV20H,A

(4)外部RAM1000H单元内容传送到内部RAM20H单元

MOVDPTR,#1000H

MOVXA,@DPTR

MOV20H,A

(5)ROM2000H单元的内容传送到R0

MOVDPTR,#2000H

CLRA

MOVCA,@A+DPTR

MOVR0,A

(6)ROM2000H单元的内容传送到内部RAM20H单元

MOVDPTR,#2000H

CLRA

MOVCA,@A+DPTR

MOV20H,A

(7)ROM2000H单元的内容传送到外部RAM20H单元

MOVDPTR,#2000H

CLRA

MOVCA,@A+DPTR

MOVR0,#20H

MOVX@R0,A

3.3间接转移指令JMP@A+DPTR有何优点?

为什么它能代替众多的判跳指令?

试举例说明。

答:

该间接转移指令的转移地址由A的内容和数据指针DPTR的内容之和决定,且两者都是无符号数,由DPTR决定多分支转移程序的首地址,由A的不同值实现多分支转移。

因为可以根据A的内容进行分支转移,所以可以替代众多判跳指令。

如:

根据A的内容调用相应的程序,如A为0调用OP0,A为1调用OP1,这里A的值小于128。

MOVDPTR,#OPTAB

RLA

JMP@A+DPTR

OPTAB:

ACALLOP0

ACALLOP1

ACALLOP2

3.4设内部RAM的30H单元的内容为40H,即(30H)=40H,还知(40H)=10H,(10H)=00H,端口P1=0CAH。

问执行以下指令后,各有关存储器单元、寄存器以及端口的内容(即R0、R1、A、B、P1以及40H、30H、10H单元的内容)。

MOVR0,#30H;(R0)=30H

MOVA,@R0;(A)=(30H)=40H

MOVR1,A;(R1)=40H

MOVB,@R1;(B)=(40H)=10H

MOV@R1,P1;(40H)=0CAH

MOVP2,P1;(P2)=0CAH

MOV10H,#20H;(10H)=20H

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

3.5已知8751单片机的P1口为输出,经驱动电路接有8只发光二极管。

当输出位是1时,发光二极管点亮;输出位是0时发光二极管熄灭。

试分析下述程序的执行过程及发光二极管的发光情况。

LP:

MOVP1,#81H;10000001B

LCALLDELAY

MOVP1,#42H;01000010B

LCALLDELAY

MOVP1,#24H;00100100B

LCALLDELAY

MOVP1,#18H;00011000B

LCALLDELAY

MOVP1,#24H;00100100B

LCALLDELAY

MOVP1,#42H;01000010B

LCALLDELAY

SJMPLP

答:

程序执行MOVP1,#DATA后,根据DATA的每位的值点亮相应的LED,调用延时程序使点亮的LED保持一段时间。

LED发光的情况为:

每次同时点亮两个LED并从两边向中间移动,然后再向两边移动,并一直循环。

3.6在上题中,若系统的晶体振荡器频率为6MHz,求子程序DELAY的延时时间。

DELAY:

MOVR2,#0FAH;2μS

L1:

MOVR3,#0FAH;2μS

L2:

DJNZR3,L2;4μS

DJNZR2,L1;4μS

RET;4μS

0FAH=250D

其中执行250次,执行时间为250×4μS

其中循环250次,该循环执行时间为(2+250×4+4)×250μS

加上和的执行时间,DELAY的延时时间为2+(2+250×4+4)×250+4=251.506ms

延时程序的设计:

首先设计内循环:

MOVR3,#data1;2μs

NOP;2μs

DJNZR3,$;4μs×data1

延时时间t1=2+2+4×data1=4×(data1+1)=1000μs=1ms,则data1=249

若需要大于1ms时间,则先增加一层循环

MOVR2,#data2;2μs

L1:

MOVR3,#data1;2μs

NOP;2μs

DJNZR3,$;4μs×data1

DJNZR2,L2;(4μs+t1)×data2

延时时间为:

2+(4μs+t1)×data2=2+[4μs+4×(data1+1)]×data2=

=2+4×(data1+2)×data2=250ms,这里将data1修正为248,

2+4×(248+2)×data2=2+1000×data2=250ms则data2=250

3.7根据图3-3线路,试设计灯亮移位程序,使8只发光二极管每次亮一个,循环右移或左移,一个一个地亮,循环不止。

MOVA,#80H

DIS:

MOVP1,A

ACALLDELAY

RRA

AJMPDIS

3.8设逻辑运算表达式为:

其中变量A,B,C分别为P1.0、P1.4、定时器1溢出标志TF1,D,E,F分别为22H.0、22H.3、外中断方式标志IE1;输出变量为P1.5。

试编写实现上述逻辑功能的程序段。

MOVC,P1.4

ORLC,/TF1;

ANLC,P1.0;

MOVF0,A;用户自定义标志位,暂存数据

MOVC,22H.3

ORLC,/IE1;

ANLC,22H.0;

CPLC;

ORLC,/F0;

MOVP1.5,C

 

4.1试设计数据块传送程序,将起始地址为0400H的100个连续单元中的内容送到以4000H为首址的区域中去

解:

分析:

地址为16位,且进行数据传送,所以连续单元应为外部的存储器,只能使用外部数据传送指令,由于源和目的地址都为16位,所以要保存DPTR的值,但源低8位和目的低8位相同,可以用一个寄存器保存。

MOVR0,#00

NEXT:

MOVDPH,#04H

MOVDPL,R0

MOVXA,@DPTR

MOVDPH,#40H

MOVX@DPTR,A

INCR0

CJNER0,#100,NEXT

4.2试编写程序,计算片内RAM区40H~47H8个单元中数的算术平均值,结果存放在4AH中。

解:

分析:

8个数总和最大值为FFH×8=7F8H,所以求和时必须用两字节加法,设R7保存和高8位,R6保存低8位,求和后再除以8即得算术平均值,这里需使用16/8除法,但因为除数为23,所以可以直接通过算术右移3位实现除以8,前提存储的数据为无符号数。

MOVR0,#40H

MOVR6,#00H;和低字节清零

MOVR7,#00H;和高字节清零

NEXT:

MOVA,@R0;取出一个字节

INCR0;地址指针下移

ADDA,R6;低字节求和

MOVR6,A

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

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

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

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