单片机原理接口及应用李群芳版习题解答参考.docx

上传人:b****1 文档编号:1148653 上传时间:2022-10-17 格式:DOCX 页数:37 大小:171.21KB
下载 相关 举报
单片机原理接口及应用李群芳版习题解答参考.docx_第1页
第1页 / 共37页
单片机原理接口及应用李群芳版习题解答参考.docx_第2页
第2页 / 共37页
单片机原理接口及应用李群芳版习题解答参考.docx_第3页
第3页 / 共37页
单片机原理接口及应用李群芳版习题解答参考.docx_第4页
第4页 / 共37页
单片机原理接口及应用李群芳版习题解答参考.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

单片机原理接口及应用李群芳版习题解答参考.docx

《单片机原理接口及应用李群芳版习题解答参考.docx》由会员分享,可在线阅读,更多相关《单片机原理接口及应用李群芳版习题解答参考.docx(37页珍藏版)》请在冰豆网上搜索。

单片机原理接口及应用李群芳版习题解答参考.docx

单片机原理接口及应用李群芳版习题解答参考

单片机原理、接口及应用——嵌入式系统技术基础

习题解答

 

预备篇

 

计算机的基础知识

0.140H,62H,50H,64H,7DH,FFH

0.2812,104,213,256,2936,941

0.3

十进制数

原码

补码

十进制数

原码

补码

28

1CH

1CH

250

FAH

FAH

-28

9CH

E4H

-347

815BH

FEA5H

100

64H

64H

928

03A0H

03A0H

-130

8082H

FF7EH

-928

83A0H

FC60H

0.4机器数真值分别为:

27,233,-128,-8,14717,31467,-27824,-12478

0.5

(1)33H+5AH=8DH,OV=1,CY=0。

(2)-29H-5DH=7AH,OV=0,CY=1。

(3)65H-3EH=27H,OV=0,CY=1。

(4)4CH-68H=E4H,OV=0,CY=0。

0.6

十进制数

压缩BCD数

非压缩BCD数

ASCII码

38

38H

0308H

3338H

255

255H

020505H

323535H

483

483H

040803H

343833H

764

764H

070604H

373634H

1000

1000H

01000000H

31303030H

1025

1025H

01000205H

31303235H

0.7ASCII码表示的十六进制数分别为:

105H,7CAH,2000H,8A50H

 

基础篇

 

第1章、MCS-51单片机结构

1.1单片微型计算机(即单片机)是包含CPU、存储器和I/O接口的大规模集成芯片,即它本身包含了除外部设备以外构成微机系统的各个部分,只需接外设即可构成独立的微机应用系统。

微机处理器仅为CPU,CPU是构不成独立的微机系统的。

1.2参见教材1.1.1节

1.3参见教材第6页表格

1.4参见教材表1.4

1.5参见教材表1.1和表1.2

1.6当PSW=10H表明选中的为第二组通用寄器R0~R7的地址为10H~17H

1.7程序存储器和数据存储器尽管地址相同,但在数据操作时,所使用的指令不同,选通信号也不同,因此不会发生错误。

1.8内部数据程序外部数据程序

1.9振荡周期=0.1667μs机器周期=2μs指令周期=2~8μs

1.10A=0,PSW=0,SP=07,P0~P3=FFH

 

第2章、51系列单片机的指令系统

2.1参见教材2.1节

2.2因为A累加器自带零标志,因此若判断某内部RAM单元的内容是否为零,必须将其内容送到A,JZ指令即可进行判断。

2.3当A=0时,两条指令的地址虽然相同,但操作码不同,MOVC是寻址程序存储器,MOVX是寻址外部数据存储器,送入A的是两个不同存储空间的内容。

2.4目的操作数源操作数

寄存器直接

SP间接寻址直接

直接直接

直接立即

寄存器间址直接

寄存器变址

寄存器间址寄存器

2.5Cy=1,OV=0,A=94H

2.6√×

√×

××

√√

×√

××

××

×√

××

××

××

2.7A=25H(50H)=0(51H)=25H(52H)=70H

2.8SP=(61H)(SP)=(24H)

SP=(62H)(SP)=(10H)

SP=(61H)DPL=(10H)

SP=(60H)DPH=(24H)

执行结果将0送外部数据存储器的2410单元

2.9程序运行后内部RAM(20H)=B4H,A=90H

2.10机器码源程序

7401LA:

MOVA,#01H

F590LB:

MOVP1,A

23RLA

B40AFACJNE,#10,LB

80F6SJMPLA

2.11ANLA,#0FH

SWAPA

ANLP1,#0FH

ORLP1,A

SJMP$

2.12MOVA,R0

XCHA,R1

MOVR0,A

SJMP$

2.13

(1)利用乘法指令

MOVB,#04H

MULAB

SJMP$

(2)利用位移指令

RLA

RLA

MOV20H,A

ANLA,#03H

MOVB,A

MOVA,20H

ANLA,#0FCH

SJMP$

(3)用加法指令完成

ADDA,ACC

MOVR0,A;R0=2A

MOVA,#0

ADDCA,#0

MOVB,A;B存2A的进位

MOVA,R0

ADDA,ACC

MOVR1,A;R1=4A

MOVA,B

ADDCA,B;进位×2

MOVB,A;存积高位

MOVA,R1;存积低位

SJMP$

2.14XRL40H,#3CH

SJMP$

2.15MOVA,20H

ADDA,21H

DAA

MOV22H,A;存和低字节

MOVA,#0

ADDCA,#0

MOV23H,A;存进位

SJMP$

2.16MOVA,R0

JZZE

MOVR1,#0FFH

SJMP$

ZE:

MOVR1,#0

SJMP$

2.17MOVA,50H

MOVB,51H

MULAB

MOV53H,B

MOV52H,A

SJMP$

2.18MOVR7,#0AH

WOP:

XRLP1,#03H

DJNZR7,WOP

SJMP$

2.19单片机的移位指令只对A,且只有循环移位指令,为了使本单元的最高位移进下一单元的最低位,必须用大循环移位指令移位4次。

ORG0

CLRC

MOVA,20H

RLCA

MOV20H,A

MOVA,21H

RLCA

MOV21H,A

MOVA,22H

RLCA

MOV22H,A

MOVA,#0

RLCA

MOV23H,A

SJMP$

 

第3章、MSC-51单片机汇编语言程序设计

3.1因为是多个单元操作,为方便修改地址使用间址操作。

片外地址用DPTR指示,只能用MOVX指令取数到A,片内地址用R0或R1指示,只能用MOV指令操作,因此循环操作外部数据存贮器→A→内部部数据存贮器。

ORG0000H

MOVDPTR,#1000H

MOVR0,#20H

LOOP:

MOVXA,@DPTR

MOV@R0,A

INCDPTR

INCR0

CJNER0,#71H,LOOP

SJMP$

3.2要注意两高字节相加应加低字节相加时产生的进位,同时要考虑最高位的进位。

ORG0

MOVA,R0

ADDA,R6

MOV50H,A

MOVA,R7

ADDCA,R1

MOV51H,A

MOVA,#0

ADDCA,ACC

MOV52H,A

SJMP$

3.3A中放小于14H(20)的数,平方表的一个数据占2个字节,可用BCD码或二进制数存放.(如A中放的是BCD码,则要先化成二进制数再查表。

ORG0

MOVDPTR,#TAB

ADDA,ACC;A*2

PUSHACC

MOVCA,@A+DPTR

MOVR7,A

POPACC

INCA

MOVCA,@A+DPTR

MOVR6,A

SJMP$

TAB:

DB00,00,00,01,00,04,00,09,00,16H,……

DB………04H,00

3.4先用异或指令判两数是否同号,在同号中判大小,异号中正数为大.

ORG0

MOVA,20H

XRLA,21H

ANLA,#80H

JZCMP

JB20H.7,BG

AG:

MOV22H,20H

SJMP$

BG:

MOV22H,21H

SJMP$

CMP:

MOVA,20H

CJNEA,21H,GR

GR:

JNCAG

MOV22H,21H

SJMP$

3.5fosc=6MHZ

机器周期数

DELAY:

MOVR1,#0F8H1

LOOP:

MOVR3,#0FAH1

DJNZR3,$2

DJNZR1,LOOP2

RET2

(1+(1+2*0xFA+2)*0xF8+2)*12/6MHz

=(1+(1+2*250+2)*248+2)*2us

=249.494ms

3.6将待转换的数分离出高半字节并移到低4位加30H;再将待转换的数分离出低半字节并30H,安排好源地址和转换后数的地址指针,置好循环次数。

ORG0000HMOVA,@R0

MOVR7,#05HANLA,#0FH

MOVR0,#20HADDA,#30H

MOVR1,#25HMOV@R1,A

NET:

MOVA,@R0INCR0

ANLA,#0F0HINCR1

SWAPADJNZR7,NE

ADDA,#30HSJMP$

MOV@R1,AEND

INCR1

3.7片内RAM间址寄存器只能有R0和R1两个,而正数、负数和零共需3个寄存器指示地址,这时可用堆栈指针指示第三个地址,POP和PUSH在指令可自动修改地址。

R0指正数存放地址和R1指负数存放地址,SP指源数据存放的末地址,POP指令取源数据,每取一个数地址减1。

ORG0000H

MOVR7,#10H

MOVA,#0MOV@R0,A

MOVR4,AINCR0

MOVR5,AAJMPDJ

MOVR6,ANE:

INCR5

MOVR0,#40HMOV@R1,A

MOVR1,#50HINCR1

MOVSP,#3FHAJMPDJ

NEXT:

POPACCZER0:

INCR6

JZZER0DJ:

DJNZR7,NEXT

JBACC.7,NESJMP$

INCR4END

3.8可直接用P标志判断(JBP,ret)

ORG0000H

MOVA,40H

JBP,EN;奇数个1转移

ORLA,#80H;偶数个1最高位加“1”

EN:

SJMP$

3.9取补不同于求补码,求补码应区别正、负数分别处理,而取补不分正、负,因正、负数均有相对于模的补数。

用取反加1求补也可用模(00

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

当前位置:首页 > IT计算机 > 计算机软件及应用

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

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