当前位置:文档之家› 单片机习题答案(第四章)

单片机习题答案(第四章)

第四章
程序设计主要分为哪几种各有什么特点
答: 1.机器语言程序设计.指令难记,程序可读性和移植性差,不易查错和修改.
2.汇编语言程序设计. 需用汇编程序编译成机器码后方可执行,可以直接访问和操作单片机中的寄存器及存储器单元,对数据的处理表述的非常具体.
3.高级语言程序设计. 编程效率高,可移植性强,通用性强,但必须经过编译
AT89C51常用的汇编语言伪指令有哪些它们的作用是什么
答:伪指令有: ORG、END、EQU、DATA、DW、DS、BIT等,作用略
汇编语言程序设计分哪几个步骤每个步骤的主要任务是什么
答:P60页略
设内部RAM中存有两个有符号数A和B,求A和B之差,若溢出,则将两数均清零;否则,两数保持不变。

程序如下:
MOV R0,#A
MOV A,@R0
MOV R0,#B
SUBB A,@R0
JNB OV,OVER
MOV @R0,#00H
MOV R0,#A
MOV @R0,#00H
OVER: RET
已知片内30H单元中存有一个8位无符号数。

编程将它们乘2,再存回原处。

设乘完结果不超出一个字节。

程序如下:
ORG 0000H
MOV A,30H
RL A
MOV 30H,A
RET
编写程序,把片外RAM从2000H开始连续存放的8个数据送到片内30H开始的单元中。

程序如下:
ORG 0000H
MOV R7,#08H
MOV DPTR,#2000H
MOV R0,#30H
LOOP1: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R7,LOOP1
RET
已知片内30H,31H中存有一个16位的二进制数,高位在前,低位在后,请编程将它们乘2,再存回原处。

设乘完结果不超出双字节。

程序如下:
ORG 0000H
MOV A,31H
CLR CY
RLC A
MOV 31H,A
MOV A,30H
RLC A
MOV 30H,A
AJMP $
若有两个无符号数X,Y分别存放在外部数据存储器50,51单元中,试编写一个程序,实现X*5+Y,结果高8位存入片内42单元,低8位存入片内43单元。

程序如下:
ORG 0000H
MOV DPTR,#0050H; X先乘2
MOVX A,@DPTR
MOV 43H,A
CLR CY
RLC A
MOV R0,A
CLR A
ADDC A,42H ; 高位存
RL A
MOV 42H,A
MOV A,R0 ;x再乘2
CLR CY
RLC A
MOV R0,A
CLR A
ADDC A,42H ;存高位
MOV 42H,A
MOV A,R0 ;4x再加x
CLR CY
ADD A,43H
MOV 43H,A
CLR A
ADDC A,42H
MOV 42H,A
INC DPTR ;5x+y
MOVX A,@DPTR
CLR CY
ADD A,43H
MOV 43H,A
CLR A
ADDC A,42H
MOV 42H,A
AJMP $
4.9 统计片内RAM20H-50H单元中所有大于0AH的数据的数目,并将结果放入片外RAM1000H单元中。

程序如下:
VOR EQU 0AH
ORG 0000H
MOV R1,#20H
MOV A,#00H
L4: MOV @R1,A
INC R1
INC A
CJNE R1,#51H,L4
L5: MOV DPTR,#1000H
MOV A,#00H
MOVX @DPTR,A
MOV R6,#00H;计数器清零
MOV R0,#20H;地址寄存器初值
L3: MOV A,@R0
CLR C
CJNE A,#VOR,L1
SJMP L2
L1: JC L2
INC R6
L2: INC R0
CJNE R0,#51H,L3
MOV DPTR,#1000H
MOV A,R6
MOVX @DPTR,A
SJMP $
有10个单字节数据,连续存放在片外2000H开始的区域中,试求出这10个数的总
和,并将结果存入片内20H开始的单元,低位先存。

程序如下:
ORG 0000H
MOV R7,#10
MOV DPTR,#20H
MOV 20H,#00H
MOV 21H,#00H
LOOP: MOVX A,@DPTR
ADD A,21H
MOV 21H,A
CLR A
ADDC A,20H
MOV 20H,A
INC DPTR
CLR CY
DJNZ R7,LOOP
AJMP $
编写程序,令其完成立即数6F5DH减去立即数13B4H,并把操作结果存入内部RAM的30H和31H单元,30H单元存放差的低8位,31H单元存放高8位。

程序如下:
ORG 0000H
CLR C
MOV A,#5DH
SUBB A,#0B4H
MOV 30H,A
MOV A,#6FH
SUBB A,#13H
MOV 31H,A
SJMP $。

相关主题