单片机基础(第三版)课后答案李广弟

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

单片机基础课后答案

第三版(就是它了)

第一章

一、填空题

1.1110 0EH 10011100 01100100

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.加电手动0000H 07H 第0 00H 07H

4. 6 2 1 12

5.DPTR DPH DPL

6.64KB

单选题

DCCAC AD

第三章

一、填空题:

1.1031

2.34H 1 1 1

3.略

4.1100H

5. 2

6.30H 71H

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. 25H 40H 03H

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 始的存储单元中去。

相关文档
最新文档