北京航空航天大学出版社 单片机基础知识(第3版)课后习题答案 李广第
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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