8085程序:带指定延时的D0位交替


现在让我们来看一个Intel 8085微处理器的程序。在这个程序中,我们将看到如何交替D0位并将其作为输出发送。

问题陈述

编写8085汇编语言程序以交替D0位,并将其作为输出发送。

讨论

交替D0位并将其作为输出发送就像生成方波一样。我们在每个阶段都增加了额外的延迟。为了用8085生成方波,我们将连续旋转10101010 (AAH),并将D0作为输出。我们将使用01H屏蔽累加器的内容。如果为0,则输出为0;如果为1,则输出为1,从而生成脉冲。发送后,它将使用延迟子程序等待一段时间。

输入

此情况下没有输入。

流程图

 

程序

地址
十六进制代码
标签
助记符
注释
8000
16, AA
 
MVI D,AAH
将10101010加载到D中
8002
7A
ROTATE
MOV A,D
将D加载到A中
8003
07
 
RLC
将A左移旋转
8004
57
 
MOV D,A
再次将A存储到D中
8005
E6, 01
 
ANI 01H
用01H屏蔽A
8007
D3, 10
 
OUT 10H
将输出发送到10端口
8009
CD, 0F, 80
 
CALL DELAY
等待一段时间
800C
C3, 02, 80
 
JMP ROTATE
跳转到ROTATE进行下一阶段
800F
C5
DELAY
PUSH B
保存B。此延迟子程序使用2个单寄存器A & D和1个寄存器对BC
8010
F5
 
PUSH PSW
保存PSW
8011
16, 0F
 
MVI D, 0F H
加载外部循环计数器
8013
01, 00, 10
ST
LXI B, 1000 H
加载内部循环计数器
8016
0B
L
DCX B
递减内部计数器
8017
79
 
MOV A, C
如果未耗尽,则再次进行内部循环
8018
B0
 
ORA B
 
8019
C2, 27, 80
 
JNZ L
 
801C
15
 
DCR D
递减外部计数器
801D
C2, 24, 80
 
JNZ ST
如果未耗尽,则再次进行外部循环
8020
F1
 
POP PSW
恢复PSW
8021
C1
 
POP B
恢复B
8022
C9
 
RET
返回调用程序

 

输出

交替的D0将像方波一样反映为输出。

 

更新于:2019年10月7日

276 次浏览

启动您的职业生涯

完成课程后获得认证

开始学习
广告