作业4答案
MOV A,P1 MOV direct,P1 (2)执行读锁存器的指令时,CPU 首先完成将锁存器的值通过缓冲器 BUF2 读入内部,进行 修改、改变,然后重新写到锁存器中去,这就是“读一改一写”指令。 这种类型的指令包含所有的口的逻辑操作(ANL、ORL、XRL)和位操作(JBC、CPL、MOV、 SETB、CLR 等)指令。 读锁存器操作可以避免一些错误,如用 Pl.X 去驱动晶体管的基极。当对 Pl.i 写入 1 之后,晶体管导通。若此时 CPU 接着读该位引脚的值,即晶体管基极的值时,则该值为 0。 但是正确的值应该是 1,这却可从读锁存器得到。
18、设有两个长度均为 15 的数组,分别存放在 0200H 和 0500H 为首
地址的片外数据存储器区域中,试编写求其对应项之和的程序,结果
存放在以 0300H 为首地址的片外数据存储器区域内。
MOV RO,#02H MOV R1,#05H MOV R2,#03H MOV R3,#00H MOV A,#0 MOV B,#0 CLR C L1:MOV DPL,R3 MOV DPH,R0
(3) PSW .5 = P1.7 × B.4 + C + ACC.7× P1.0
MOV B.0,C MOV C,/P1.7 ANL C,B.4 MOV B.1,C MOV C,P1.0 ANL C,/ACC.7 ORL C,B.0 ORL C,B.1 MOV PSW.5,C
第四章 2、80C51 端口 P0~P3 作通用 I/O 口时,在输入引脚数据时,应注意 什么?
MOVX A,@DPTR MOV B,A MOV DPH,R1 MOVX A,@DPTR ADDC A,B MOV DPH,R2 MOVX @DPTR,A INC R3 CJNE R3,#15,L1 RET
23、请用位操作指令,求下列逻辑方程。
(1) P1.7 = AANL ORL XRL INC JBC CPL
Pi,A Pi,A Pi,A Pi Pl.j,label Pl.j
第三章
17、试计算片内 RAM 区 40H~47H 八个单元中数的算术平均值,结
果存放在 4AH 中。
MOV R0,#40H MOV 4AH,#0 MOV 4BH,#0 L1:CLR C MOV A,@R0 ADD A,4AH MOV 4AH,A MOV A,4BH ADDC A,#0 MOV 4BH,A INC R0 CJNE R0,#48H,L1 MOV R2, #3 ACALL L2 SJMP $ L2:CLR C MOV A,4BH RRC A MOV 4BH,A MOV A,4AH RRC 4AH,A DJNZ R2,L2 RET
MOV C,B.0 ORL C,P2.0 ANL C,ACC.0 ORL C,/P3.0 MOV P1.7,C
(2) PSW .5 = P1.0× ACC.2 + B.6× P1.4
MOV C,P1.0 ANL C,ACC.2 MOV 20.0, C MOV C,B.6 ANL C,/P1.4 ORL C, 20.0 MOV PSW.5,C
先用软件向口的输出锁存器写 1。
3、“读—改—写”指令有何优点?请至少列出五条不同操作的“读
—改—写”指令。
从 I/O 口的位结构图中可以看出,有两种读口的操作:一种是读引脚操作,一种是读锁 存器操作。 (1)在响应 CPU 输出的读引脚信号时,端口本身引脚的电平值通过缓冲器 BUFl 进入内部总 线。这种类型的指令,执行之前必须先将端口锁存器置 1,使 A 点处于高电平;否则,会损 坏引脚,而且也使信号无法读出,已于前述。 这种类型的指令有: