文档库 最新最全的文档下载
当前位置:文档库 › 第四章作业答案

第四章作业答案

第四章作业答案
第四章作业答案

1.试编写程序,查找在内部RAM的20H-40H单元中出现“00H”这一数据的次数,并将

结果存入41H单元。

ORG 1000H

START: MOV 40H,#00H ;关键字

MOV R0,#20H ;首地址

MOV R1,#21H ;单元个数

MOV R2,#00H ;关键词出现个数

LOOP: MOV A,@R0 ;取数据

CJNE A,40H,LOOP1 ;比较

INC R2 ;查到R2加1

LOOP1: INC R0 ;下一个地址

DJNZ R1,LOOP ;没查完则继续查

MOV 41H,R2 ;出现次数存在41H中

RET

2.试编写程序,查找内部单元的30H-50H单元中是否有0AAH这一数据,若有,则将51H

单元置为“01H”;若未找到,则将51H单元置为“00H”

ORG 1000H

START: MOV 40H,#0AH ;关键词

MOV R0,#30H ;首地址

MOV R1,21H ;单元个数

LOOP: MOV A,@R0 ;取数据

CJNE A,40H,LOOP1 ;比较

MOV 51H,#01H ;查到51H赋值01H

LJMP SJP

LOOP1: INC R0 ;下一个地址

DJNZ R1,LOOP ;没查完则继续查

MOV 51H,#00H ;查不到51H赋值00H

SJP: RET

3.实验三内容3

要求(1)使8在数码管上从右向左逐位移动,时间间隔0.5s;

(3)改变速度,只需修改R2的值;

(4)修改显示字符,MAIN: MOV A,#4FH

(5) RL A以后判断ACC.5这一位,如果为1则给A重新赋值#01H,否则继续循

环;

(6)只需将RL改成RR

提问:(1)给延时程序传递参数,可以改变延时时间

(2)动态显示中每位点亮后延时一段时间,然后再点亮下一位;

(3)因为数码管只有6个,而RLA则要移动到第八位再返回,所以到最左边要延时一会。

4.实验三内容4

(2)右移,则字位码首先赋值40H,然后右移,移到01H时重新赋值40H;ZWMADDR EQU 8002H

ZXMADDR EQU 8004H

ORG 0000H

ST: LJMP MAIN

ORG 0100H

MAIN: MOV R3,#40H ;字位码

MOV R4,#00H ;被显数字

LOOP: MOV DPTR,#CHAR ;字型码表首地址送DPTR

MOV A,R4

MOV A,@A+DPTR ;

MOV DPTR,#ZXMADDR

MOVX @DPTR,A

MOV A,R3

MOV DPTR,#ZWMADDR

MOVX @DPTR,A

MOV R2,#25H

LCALL DELAY

MOV A,R3

RR A

MOV R3,A

CJNE R3,#01H,NEXT

MOV R3,#40H

NEXT: INC R4 ;

CJNE R4,#10H,LOOP

SJMP MAIN

DELAY:…………

CHAR: DB 3FH,06H,……

(3)慢速一边,快速一边

ZWMADDR EQU 8002H

ZXMADDR EQU 8004H

ORG 0000H

ST: LJMP MAIN

ORG 0100H

MAIN: MOV R3,#40H ;字位码

MOV R4,#00H ;被显数字

LOOP: MOV DPTR,#CHAR ;字型码表首地址送DPTR

MOV A,R4

MOV A,@A+DPTR ;

MOV DPTR,#ZXMADDR

MOVX @DPTR,A

MOV A,R3

MOV DPTR,#ZWMADDR

MOVX @DPTR,A

MOV R2,#25H ;延时时间长则显示慢

LCALL DELAY

MOV A,R3

RR A

MOV R3,A

CJNE R3,#01H,NEX

MOV R3,#40H

NEX: INC R4 ;

CJNE R4,#10H,LOOP ;未显示完则loop,显示完了则loop1

MOV R3,#40H ;重新赋值字位码

MOV R4,#00H ;重新赋值被显数字

LOOP1: MOV DPTR,#CHAR ;字型码表首地址送DPTR

MOV A,R4

MOV A,@A+DPTR ;

MOV DPTR,#ZXMADDR

MOVX @DPTR,A

MOV A,R3

MOV DPTR,#ZWMADDR

MOVX @DPTR,A

MOV R2,#15H ;修改延时时间则显示快

LCALL DELAY

MOV A,R3

RR A

MOV R3,A

CJNE R3,#01H,NEXT

MOV R3,#40H

NEXT: INC R4 ;

CJNE R4,#10H,LOOP1

SJMP MAIN

DELAY:…………

CHAR: DB 3FH,06H,……

(4)慢速两遍,快速两遍

ZWMADDR EQU 8002H

ZXMADDR EQU 8004H

ORG 0000H

ST: LJMP MAIN

ORG 0100H

MAN0: MOV R5,#02H ; 慢显次数

MAN1:MOV R3,#40H ;字型码

MOV R4,#00H ;被显数字

LOOP: MOV DPTR,#CHAR ;字型码表首地址送DPTR

MOV A,R4

MOV A,@A+DPTR ;

MOV DPTR,#ZXMADDR

MOVX @DPTR,A

MOV A,R3

MOV DPTR,#ZWMADDR

MOVX @DPTR,A

MOV R2,#25H ;延时时间长则显示慢

LCALL DELAY

MOV A,R3

RR A

MOV R3,A

CJNE R3,#01H,NEX

MOV R3,#40H

NEX: INC R4 ;

CJNE R4,#10H,LOOP ;未显示完16个字符则loop,显示完了则往下执行

DJNZ R5, MAN1 ;慢显次数减一不为零则继续慢显,否则进入快显

KUAI0:MOV R6,#02H ; 快显次数

KUAI1:MOV R3,#40H ;重新赋值字位码

MOV R4,#00H ;重新赋值被显数字

LOOP1: MOV DPTR,#CHAR ;字型码表首地址送DPTR

MOV A,R4

MOV A,@A+DPTR ;

MOV DPTR,#ZXMADDR

MOVX @DPTR,A

MOV A,R3

MOV DPTR,#ZWMADDR

MOVX @DPTR,A

MOV R2,#15H ;修改延时时间则显示快

LCALL DELAY

MOV A,R3

RR A

MOV R3,A

CJNE R3,#01H,NEXT

MOV R3,#40H

NEXT: INC R4 ;

CJNE R4,#10H,LOOP1

DJNZ R6, K UAI1 ;快显次数减一不为零则继续快显,

SJMP MAIN ;快显两遍完成则重新开始

DELAY:…………

CHAR: DB 3FH,06H,……

相关文档