北京航空航天大学出版社 单片机基础知识(第3版)课后习题答案 李广第

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京航空航天大学出版社单片机基础知识(第3版)课后习题答案(1-2章)

第一章:

一、填空题

1.11100EH1001110001100100

2.4

3. 255 -51

4. 输入设备

5. 84

6. 630 * 8 * 1024

7. 位字节字bit btype word

8. 1111 1111 00100100 11011011

9. 110 89 -115 -50

二、单选:

DBCAB BBCB

第二章:

一、填空

1.PC PC

2.反向器晶振两只电容短

3.加电手动0000H07H第000H07H

4.62112

5.DPTR DPH DPL

6.64KB

单选题

DCCAC A D

第三章:

一、填空题:

1.1031

2.34H111

3.略

4.1100H

5.2

6.30H71H

0A5H

0A5H

75H

0A7H

0AAH 0 1

IFH 1 1

0AAH 0 1

20H 1 0

0D5H 1 1

49H 0 0

二、单选题

CCBDCA

三、其它类型题

错错对

错错错

对错错

错错对

对对对

错对对

错对错

错对

(三)其它类型题

3.编写程序将RAM20H-23H单元的高4位写1,低4位写0。

分析:就是把这四个单元写入F0H。用一个DJNZ的循环。

ORG 0000H

MOV R0,#1FH ;R0指向20H单元

MOV R5,#04H;四个数

LOOP: INC R0

MOV @R0,#0F0H ;写入

DJNZ R5,LOOP ;循环4次

END

4.把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成。

(设m=30H, 高位在30H,低数在31H)

ORG 0000H

MOV A,30H

ANL A,#0FH;把它的高四位清零

SWAP A

MOV 30H ,A;高低四位调一下,放回原处

MOV A,31H

ANL A,#0FH

ORL A,30H;合并起来

MOV 30H,A

END

5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255。编写程序完成。

(设data=30H, sun =50H)

ORG 0000H

MOV R0,#2FH ; 指向前一个单元

MOV R5,#0AH;循环10次

CLR A;先加到A中

LOOP: INC R0

ADD A,@R0

DJNZ R5,LOOP

MOV 50H,A

END

6.假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中。

ORG 0000H

MOV A,R0

CPL A;按位取反

ADD A,#01H;+1

MOV R1,A

END

第四章:

一、填空题

1.25H40H03H

2.2.914ms

3.略

4.(A)=((30H) (A) >(30H) (A) < (30H)

5. 32.87ms

编程题

1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位物外部RAM 的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送完毕。试编程实现。

ORG 0030H

MOV R0,#inbuf

MOV R1,#outbuf

MOV R4,#10H

LOOP:MOV A,@R0 ; 从内部RAM取数

CJNE A,#0DH,LL ;是否为回车符CR

SJMP STOP ;是转停止传送

LL: MOVX @R1,A ;不是则传送到外部RAM

INC R0

INC R1

DJNZ R4,LL;沒传送完则循环

STOP: SJMP $

2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。

(3AH存放在运行程序时的最小的数)

ORG 0030H

MOV R0,#list

MOV A,@R0 ;取第一个正数

LOOP: INC R0 ;指向下一个正数

MOV 3AH,@R0

CJNE A,3AH,CHK ;前一个数与后一个数比较

CHK: JC LOOP1 ;前一个数小,则转

MOV A,@R0 ;前一个数大,取后一个数

LOOP1: XCH A,3AH

CJNE A,#0FFH,LOOP

XCH A,3AH ;取最小数

MOV 3BH,A

SJMP $

3.内部RAM的X,Y 单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。

若X为正奇数,Z =X+Y;

若X为正偶数,Z =X∨Y;

若X为负奇数,Z =X∧Y;

若X为负偶数,Z =X⊕Y。

分析:负数:第7位为1,正数:第7位为0

奇数:第0位为1,偶数:第0位为0

ORG 0000H

MOV A,20H

CLR C

RL A

JC FS ;移到负数处处理

RR A

RR A ;第0位移到C 再判定一下是不是1

JC ZJS ;到正奇数处

MOV A,20H

ORL A,21H

MOV 22H,A

SJMP OK

ZJS: MOV A,20H

ADD A,21H

MOV 22H,A

SJMP OK

FS: MOV A,20H

CLR C

RR A

JC FJS ;第0位是1,移到正奇数处理

MOV A,20H

XRL A,21H

MOV 22H,A

SJMP OK

FJS: MOV A,20H

ANL A,21H

MOV 22H,A

OK: END

4、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H 表示,为“1”的位用31H表示)。该数存放在内部RAM中byte单元中。变换后得到的8个ASCII码存放在外部RAM以buf始的存储单元中去。

ORG 0030H

MOV R0,#byte

MOV DPTR,#buf

MOV R5,#08H

MOV A,@R0

相关文档
最新文档