MT=125=7DH
将7DH代入上面的程序的MT,计算总的延时时间为 {1+[1+(1+1+2) *125+2]*10}*2μs=10062μs=10.062ms 3.10编写多字节数*10程序。 解:
ORG 0000H PUSH PSW INC R1 CLR C MUL AB DJNZ R7,SH10 MOV R1, #20H POP PSW MOV @R1, B MOV R2, #00H ADDC A, R2 SJMP $ SH10: MOV A, @R1 MOV @R1, A MOV B#0AH MOV R2, B
3.11把片内RAM中地址30H~39H中的10个无字符号逐一比较,并按小到大的顺序依次排列这片单元中 ORG 0000H MOV R2, A XCH A,@R0 START:CLR 00H SUBB A, @R0 INC R0 CLR C MOV A, R2 NEXT: MOV A,@R0 MOV R7, #0AH JC NEXT DJNZ R7,LOOP MOV R0, #30H SETB 00H JB 00H, START MOV A, @R0 XCH A,@R0 SJMP $ LOOP: INC R0 DEC R0 312编写多字节BCD码减法程序 ORG 0000H ADD, A,@R1 CPL C SUBCD: MOV R3, #00H DA A DJNZ R2,SUBCD1
CLR 07H MOV @R0, A JNC SUBCD2 CLR C INC R0 SETB 07H
SUBCD1:MOV A, #9AH INC R1 SUBCD2:SJMP $
SUBB A, @R0 INC R3
3.13编写将十进制数转换成二进制的程序 解:
ORG 0000H MOV R3,A ADD A,@R0 DCB: MOV R0,#40H MOV A,B MOV R3,A
MOV R1,#03 XCH A,R2 MOV A,R2 MOV R2,#0 MOV B,#10 ADDC A,#0 MOV A, @R0 MUL AB MOV R2,A MOV R3, A ADD A,R2 DJNZ R1,LOOP LOOP: MOV A,R3 MOV R2,A SJMP $
MOV B,#10 INC R0 END MUL AB MOV A,R3
3.14编写一程序,以实现图3-7中的逻辑运算电路。其中,p1,1和p1。2分别是端口线上的信息,TF0和IE1分别是定时器定时一出标志和外部中断请求标志,25H和26H分别是两个位地址,运算结果由端口线P1.3输出
MOV C, IE1 MOV P1.3,C 解:START: MOV C, P2.2
ORL C,TF0 ORL C,/25H SJMP $ ANL C,P1.1 ANL C,F0 MOV F0,C ANL C,/26H