问题–编写一个程序来生成连续方波。使用D 0位输出方波。所需波形为:
解释 –
可以通过向累加器加载AAH(10101010)并在每个循环中旋转一次模式来提供0/1位的备用模式。输出端口的位D 0用于证明逻辑0和1。因此,可以通过将累加器与01H进行“与”运算来屏蔽所有其他位。
例子 –
Accumulator : 1 0 1 0 1 0 1 0
And with 01H : 0 0 0 0 0 0 0 1
Output : 0 0 0 0 0 0 0 0
So output => 0
After RLC :
Accumulator : 0 1 0 1 0 1 0 1
And with 01H : 0 0 0 0 0 0 0 1
Output : 0 0 0 0 0 0 0 1
So output => 1
程序 –
Address | Label | Mnemonics | Comments |
---|---|---|---|
2000H | MVI D, AAH | Load bit pattern AAH | |
2002H | ROTATE | MOV A, D | Load bit pattern in A |
2003H | RLC | Change data to AAH to 55H and vica versa | |
2004H | MOV D, A | Save A | |
2005H | ANI 01H | Mask bits D7 to D1 | |
2007H | OUTPORT 1 | Output the D0 bit | |
2009H | JMP ROTATE | Jump to ROTATE to change logic level |
计划说明–
- 寄存器D装入AAH(10101010)。
- 位模式移至累加器。
- 位模式左移并再次保存在寄存器D中。由于累加器在程序中再次使用,因此必须进行保存。
- 屏蔽除第0位以外的所有位。
- 端口1的输出A