单片机课后答案.docx

上传人:b****1 文档编号:10488318 上传时间:2023-05-26 格式:DOCX 页数:18 大小:204.41KB
下载 相关 举报
单片机课后答案.docx_第1页
第1页 / 共18页
单片机课后答案.docx_第2页
第2页 / 共18页
单片机课后答案.docx_第3页
第3页 / 共18页
单片机课后答案.docx_第4页
第4页 / 共18页
单片机课后答案.docx_第5页
第5页 / 共18页
单片机课后答案.docx_第6页
第6页 / 共18页
单片机课后答案.docx_第7页
第7页 / 共18页
单片机课后答案.docx_第8页
第8页 / 共18页
单片机课后答案.docx_第9页
第9页 / 共18页
单片机课后答案.docx_第10页
第10页 / 共18页
单片机课后答案.docx_第11页
第11页 / 共18页
单片机课后答案.docx_第12页
第12页 / 共18页
单片机课后答案.docx_第13页
第13页 / 共18页
单片机课后答案.docx_第14页
第14页 / 共18页
单片机课后答案.docx_第15页
第15页 / 共18页
单片机课后答案.docx_第16页
第16页 / 共18页
单片机课后答案.docx_第17页
第17页 / 共18页
单片机课后答案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课后答案.docx

《单片机课后答案.docx》由会员分享,可在线阅读,更多相关《单片机课后答案.docx(18页珍藏版)》请在冰点文库上搜索。

单片机课后答案.docx

单片机课后答案

2-4

DPTR由两个特殊功能寄存器DPH和DPL组成,分别存放16为地址的高字节与低字节。

2-5

堆栈指针初始值为07H,可以设置在内部RAM区的30~7FH空间内;

实现方法包括压栈和出栈,采用“先进后出“或”后进先出“的原则。

设置好栈底指针后,压栈时,是sp先加1,再从栈顶压栈;出栈时,是先从栈顶出栈,再sp减1。

2-13

不存在地址重叠,采用不同的操作指令来区分。

当读取外部程序存储器时,采用MOVC指令,同时产生PSEN有效信号,配合ALE、P0和P2地址线进行读取。

当读写外部数据存储器时,采用MOVX指令,同时产生RD/WR有效信号,配合ALE、P0和P2地址线进行读写。

2-17

不存在冲突,采用不同的操作指令来区分。

分别采用字节操作指令和位操作指令对字节地址和位地址操作。

3-4

MOVP1,#0FFH;设置P1口为高阻抗输入状态

MOV@R0,P1

(70H)=B7H,(B)=20H,(R1)=60H,(R0)=70H

3-5

CLRA

MOVR2,A

MOVR7,#4

LOOP:

CLRC

MOVA,R0

RLCA

MOVR0,A

MOVA,R1

RLCA

MOVR1,A

MOVA,R2

RLCA

MOVR2,A

DJNZR7,LOOP

SJMP$

把R2R1R0左移4位

3-6

START:

SETBP1.0

NEXT:

MOV30H,#10;2us

LOOP2:

MOV31H,#0FAH;2us

LOOP1:

NOP;1us

NOP;1us

DJNZ31H,LOOP1;2us

DJNZ30H,LOOP2;2us

CPLP1.0;1us

AJMPNEXT;2us

SJMP$

方波周期为=2×(2+(2+(1+1+2)×250+2)×10+1+2)

=20090us=20.090ms

3-8

MOVSP,#2FH

MOVDPTR,#2000H

MOVR7,#50H

NEXT:

MOVXA,@DPTR

PUSHA

DJNZR7,NEXT

SJMP$

Sp指向2FH+50H=7FH

3-10

XCHA,30H

MOVB,A

ANLA,#0FH

MOV33H,A

MOVA,B

SWAPA

ANLA,#15

MOV34H,A

SJMP$

结果:

(30H)的低4位送到33H单元,高4位送到34H单元

3-20

MOVA,R0

CPLA

JZLABEL1

INCA

JZLABEL2

当(R0)=FFH时转向LABEL1;

当(R0)=00H时转向LABEL2;

3-24

PSW.5=P1.3^ACC.2vB.5^P1.1

MOVC,P1.3

ANLC,ACC.2

ORLC,B.5

ANLC,P1.1

MOVPSW.5,C

4-5求8个数的平均值

设计思路:

先用8次循环求8个数的和(和用两个字节表示),再将该和右移三位以实现除8运算。

方法一:

ORG1000H

MOVR0,#30H

MOVR7,#08H

MOVR2,#00H

MOVR3,#00H

LOOP1:

MOVA,R3

ADDA,@R0

MOVR3,A

MOVA,R2

ADDCA,#00H

MOVR2,A

INCR0

DJNZR7,LOOP1

;右移3位相当于除8

MOVR7,#03H

LOOP2:

CLRC

MOVA,R2

RRCA

MOVR2,A

MOVA,R3

RRCA

MOVR3,A

DJNZR7,LOOP2

MOV38H,R3

SJMP$

END

方法二:

ORG0030H

START:

MOVR7,#7

MOVR3,#0

MOVA,30H

MOVR0,#31H

LOOP:

ADDA,@R0

JNCNEXT

INCR3

NEXT:

INCR0

DJNZR7,LOOP

MOVR2,A

;右移3位相当于除8

MOVR7,#03H

LOOP2:

CLRC

MOVA,R2

RRCA

MOVR2,A

MOVA,R3

RRCA

MOVR3,A

DJNZR7,LOOP2

MOV38H,R3

SJMP$

END

4-6把外部RAM的数据移入内部RAM

方法一:

ORG1000H

MOVDPTR,#2000H

MOVR7,#50H

MOVR0,#30H

LOOP:

MOVXA,@DPTR

MOV@R0,A

INCR0

INCDPL

DJNZR7,LOOP

SJMP$

END

方法二:

MOVSP,#2FH

MOVDPTR,#2000H

MOVR7,#50H

NEXT:

MOVXA,@DPTR

PUSHA

INCDPL;或者INCDPTR

DJNZR7,NEXT

SJMP$

END

4-7求内部RAM数据块最小数

ORG1000H

BLOCKDATA30H

LENDATA10H

MINIDATA20H

MOVR0,#BLOCK

MOVR7,LEN

DECR7

MOVA,@R0

LOOOP:

CLRC

MOVB,A

SUBBA,@R0

JCNOP1

MOVA,@R0

SJMPNOP2

NOP1:

MOVA,B

NOP2:

INCR0

DJNZR7,LOOP

MOVMINI,A

SJMP$

END

4-13SIGN函数

ORG1000H

VARDATA30H

FUNCDATA31H

MOVA,VAR

JNBACC.7,GOE

MOVFUNC,#FFH

SJMPFINISH

GOE:

JNZGR

MOVFUNC,#0

SJMPFINISH

GR:

MOVFUNC,#1

FINISH:

SJMP$

END

注意:

使用CJNE指令,会影响Cy位

4-1616分支跳转

JMP16:

MOVA,R3

RLA

ADDA,R3

MOVDPTR,#PRGTBL

JMP@A+DPTR

PRGTBL:

LJMPROOT00

LJMPROOT01

LJMPROOT02

……………………………

LJMPROOT15

注意:

LJMPAddr16和AJMPAddr11的区别

4-18查平方表

SQR:

MOVA,R3;R3是入口参数,也是出口参数

ANLA,#15

ADDA,#02H

MOVCA,@A+PC

MOVR3,A

RET

SQRTAB:

DB00,01,04,09,16

DB25,36,49,64,81

DB100,121,144,169,196

4-23测试芯片功能

方法一:

ORG1000H

A1BITP1.0

B1BITP1.1

C1BITP1.2

D1BITP1.3

E1BITP1.4

F1BITP1.5

G1BITP1.6

H1BITP1.7

Y1BITP3.0

TEST:

MOVC,A1

ANLC,B1

ANLC,C1

ANLC,D1

MOVF0,C

MOVC,E1

ANLC,F1

ANLC,G1

ANLC,H1

ORLC,F0

CPLC

MOVY1,C

SJMP$

END

方法二:

ORG1000H

A1BITP1.0

B1BITP1.1

C1BITP1.2

D1BITP1.3

E1BITP1.4

F1BITP1.5

G1BITP1.6

H1BITP1.7

Y1BITP3.0

TEST:

MOVC,A1

ANLC,B1

ANLC,C1

ANLC,D1

JCLOOP

MOVC,E1

ANLC,F1

ANLC,G1

ANLC,H1

JCLOW

SETBY1

SJMPNEXT

LOW:

CLRY1

NEXT:

SJMP$

END

5-5答:

当使用MOVC和MOVX对外部存储器(外部程序存储器和外部数据存储器)进行读写操作时,会产生地址锁存ALE信号,接在地址锁存器的使能端G;

当对外部程序存储器进行读操作,即MOVC指令,会产生PSEN信号;

当对外部数据存储器进行读/写操作,即MOVX指令,会产生WR和RD信号

5-10答:

1)

2)采用线选法译码,不重叠时地址分配应为:

P2.7=1,P2.6=1,P2.5=0地址为C000H~DFFFH

P2.7=1,P2.6=0,P2.5=1地址为A000H~BFFFH

P2.7=0,P2.6=1,P2.5=1地址为6000H~7FFFH

5-11答:

1)

2)如果RAM地址为

8000H~BFFFH时两片6264的CE端分别接Y4,Y5

C000H~FFFFH时两片6264的CE端分别接Y6,Y7

5-12答

1)

2)再加16k的ROM——27128应注意的问题

方法:

地址总线D0~D7,数据总线A0~A13,PSEN接27128的OE端,27128的CE端接地或者接P2.6/P2.7(访问ROM时,地址中P2.6/P2.7应为0)。

第六章作业讲解

6-712Mhz时,一个机器周期为1us,则

a)设置1ms对称方波时,应定时0.5ms,P1.0取反输出,T0方式0时,应设置TH0=F0H,TL0=0CH

b)设置2ms(1:

3)不对称方波时,应设置定时,高电平0.667ms,低电平1.333ms,T1方式1时,应设置TH1=FDH,TL1=65H,并设置高电平计数1次,低电平计数2次

参考程序

ORG0000H

LJMPSTART

ORG000BH

SJMPTIME0

ORG001BH

SJMPTIME1

ORG0030H

START:

MOVSP,#60H

MOVTMOD,#10H

MOVTH0,#0F0H

MOVTL0,#0CH

MOVTH1,#0FDH

MOVTL1,#65H

SETBEA

SETBET0

SETBET1

SETBTR0

SETBTR1

MOVR7,#03H

SJMP$

TIME0:

MOVTH0,#0F0H

MOVTL0,#0CH

CPLP1.0

RETI

TIME1:

MOVTH1,#0FDH

MOVTL1,#65H

DJNZR7,FAN

SETBP1.1

MOVR7,#03H

SJMPFINISH

FAN:

CLRP1.1

FINISH:

RETI

END

TIME1:

CLRP1.1

MOVTH1,#0FDH

MOVTL1,#65H

INCR1

CJNER1,#3,FINISH

CLRR1

CPLP1.1

FINISH:

RETI

END

6-812Mhz,定时最长时间为65.536ms,

最简单方式:

利用T0定时30ms取反一次(周期是60ms)和T1计数1000次共同完成。

ORG0000H

LJMPSTART

ORG000BH

SJMPTIME0

ORG001BH

SJMPCOUNT1

ORG0030H

START:

MOVSP,#60H

MOVTMOD,#51H

MOVTH0,#0FCH

MOVTL0,#18H

MOVTH1,#03H

MOVTL1,#0E8H

SETBEA

SETBET0

SETBET1

SETBTR0

SETBTR1

SJMP$

TIME0:

MOVTH0,#0FCH

MOVTL0,#18H

CPLP1.0

RETI

TIM30:

MOVTH1,#03H

MOVTL1,#0E8H

CLRP1.1

RETI

6-9答:

12MHZ晶振,则1个机器周期1us,0.5MHZ方波的周期是2us。

不能用普通的定时方式,应采用门控方式。

参考程序:

MOVTMOD,#09H

MOVTH0,#0H

MOVTL0,#0H

JBP3.2,$

SETBTR1

JNBP3.2,$

CLRTR1

6-23答:

有两种方式:

电平触发和边沿触发

电平触发方式要求中断响应之前中断信号维持低电平,且在中断服务程序返回之前撤销,否这会引起低二次中断

边沿触发要求输入外部中断信号至少大于12个机器周期,可被TCON记忆直到中断响应

6-25答:

可以,在中断矢量地址入口处放一条长跳转指令可跳转至64K存储器空间任一地址。

6-29答:

1)字节操作方式

MOVIE,#97H

MOVIP,#02H

2)位操作方式

SETBEA

SETBES

SETBEX1

SETBET0

SETBEX0

SETBPT0

6-31答:

1)T0和T1都工作于方式1,定时器方式,16位计数器

2)T0计数次数25000,定时50ms,T1计数次数4000,定时值8ms,(主频6MHZ)

3)T0为低优先级,T1为高优先级

4)T0的中断矢量地址为000BH,T1的中断矢量地址为001BH

5)启动T0和T1。

(相当于执行了SETBTR1和SETBT

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

当前位置:首页 > 经管营销

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

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