📄 dpjjx14.htm
字号:
<P ALIGN="JUSTIFY">RL			A</P>
<P ALIGN="JUSTIFY">CLR			C</P>
<P ALIGN="JUSTIFY">RRC			A</P>
<P ALIGN="JUSTIFY">SETB		 C</P>
<P ALIGN="JUSTIFY">RLC			A</P>
<P ALIGN="JUSTIFY">SWAP		 A</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY">通过前面的学习,我们已经掌握了相当一部份的指令,大家对这些枯燥的指令可能也有些厌烦了,下面让我们轻松一下,做个实验。</P>
<P ALIGN="JUSTIFY">实验五:</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"> ORG 0000H</P>
<P ALIGN="JUSTIFY"> LJMP START</P>
<P ALIGN="JUSTIFY"> ORG 30H</P>
<P ALIGN="JUSTIFY">START:</P>
<P ALIGN="JUSTIFY"> MOV SP,#5FH</P>
<P ALIGN="JUSTIFY"> MOV A,#80H</P>
<P ALIGN="JUSTIFY">LOOP:</P>
<P ALIGN="JUSTIFY"> MOV P1,A</P>
<P ALIGN="JUSTIFY"> RL A</P>
<P ALIGN="JUSTIFY"> LCALL DELAY</P>
<P ALIGN="JUSTIFY"> LJMP LOOP</P>
<P ALIGN="JUSTIFY">delay:</P>
<P ALIGN="JUSTIFY">	mov	 r7,#255</P>
<P ALIGN="JUSTIFY">d1:	mov	 r6,#255</P>
<P ALIGN="JUSTIFY">d2:	nop</P>
<P ALIGN="JUSTIFY">	nop</P>
<P ALIGN="JUSTIFY">	nop</P>
<P ALIGN="JUSTIFY">	nop</P>
<P ALIGN="JUSTIFY">	djnz	 r6,d2</P>
<P ALIGN="JUSTIFY">	djnz 	r7,d1</P>
<P ALIGN="JUSTIFY">	ret</P>
<P ALIGN="JUSTIFY">	END</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="JUSTIFY">先让我们将程序写入片中,装进实验板,看一看现象。</P>
<P ALIGN="JUSTIFY">。</P>
<P ALIGN="JUSTIFY">。</P>
<P ALIGN="JUSTIFY">看到的是一个暗点流动的现象,让我们来分析一下吧。</P>
</FONT><P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN">前而的</font><FONT FACE="System" LANG="ZH-CN">ORG 0000H</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">LJMP	START</FONT><FONT FACE="宋体" LANG="ZH-CN">、</FONT><FONT FACE="System" LANG="ZH-CN">ORG	30H</FONT><FONT FACE="宋体" LANG="ZH-CN">等我们稍后分析。从</FONT><FONT FACE="System" LANG="ZH-CN">START</FONT><FONT FACE="宋体" LANG="ZH-CN">开始,</FONT><FONT FACE="System" LANG="ZH-CN">MOV	SP</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">#5FH</FONT><FONT FACE="宋体" LANG="ZH-CN">,这是初始化堆栈,在本程序中有无此句无关紧要,不过我们慢慢开始接触正规的编程,我也就慢慢给大家培养习惯吧。</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="System" LANG="ZH-CN">MOV 	A</font><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">#80H</FONT><FONT FACE="宋体" LANG="ZH-CN">,将</FONT><FONT FACE="System" LANG="ZH-CN">80H</FONT><FONT FACE="宋体" LANG="ZH-CN">这个数送到</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">中去。干什么呢?不知道,往下看。</font></P>
<P ALIGN="JUSTIFY"><FONT FACE="System" LANG="ZH-CN">MOV	P1</font><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">。将</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">中的值送到</FONT><FONT FACE="System" LANG="ZH-CN">P1</FONT><FONT FACE="宋体" LANG="ZH-CN">端口去。此时</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">中的值是</FONT><FONT FACE="System" LANG="ZH-CN">80H</FONT><FONT FACE="宋体" LANG="ZH-CN">,所以送出去的也就是</FONT><FONT FACE="System" LANG="ZH-CN">80H</FONT><FONT FACE="宋体" LANG="ZH-CN">,因此</FONT><FONT FACE="System" LANG="ZH-CN">P1</FONT><FONT FACE="宋体" LANG="ZH-CN">口的值是</FONT><FONT FACE="System" LANG="ZH-CN">80H</FONT><FONT FACE="宋体" LANG="ZH-CN">,也就是</FONT><FONT FACE="System" LANG="ZH-CN">10000000B</FONT><FONT FACE="宋体" LANG="ZH-CN">,通过前面的分析,我们应当知道,此时</FONT><FONT FACE="System" LANG="ZH-CN">P1</FONT><FONT FACE="宋体" LANG="ZH-CN">。</FONT><FONT FACE="System" LANG="ZH-CN">7</FONT><FONT FACE="宋体" LANG="ZH-CN">接的</FONT><FONT FACE="System" LANG="ZH-CN">LED</FONT><FONT FACE="宋体" LANG="ZH-CN">是不亮的,而其它的</FONT><FONT FACE="System" LANG="ZH-CN">LED</FONT><FONT FACE="宋体" LANG="ZH-CN">都是亮的,所以就形成了一个“暗点”。继续看,</FONT><FONT FACE="System" LANG="ZH-CN">RL	A</FONT><FONT FACE="宋体" LANG="ZH-CN">,</FONT><FONT FACE="System" LANG="ZH-CN">RL	A</FONT><FONT FACE="宋体" LANG="ZH-CN">是将</FONT><FONT FACE="System" LANG="ZH-CN">A</FONT><FONT FACE="宋体" LANG="ZH-CN">中的值进行左移,算一下,移之后的结果是什么?对了,是</FONT><FONT FACE="System" LANG="ZH-CN">01H</FONT><FONT FACE="宋体" LANG="ZH-CN">,也就是</FONT><FONT FACE="System" LANG="ZH-CN">00000001B</FONT><FONT FACE="宋体" LANG="ZH-CN">,这样,应当是接在</FONT><FONT FACE="System" LANG="ZH-CN">P1</FONT><FONT FACE="宋体" LANG="ZH-CN">。</FONT><FONT FACE="System" LANG="ZH-CN">0</FONT><FONT FACE="宋体" LANG="ZH-CN">上的</FONT><FONT FACE="System" LANG="ZH-CN">LED</FONT><FONT FACE="宋体" LANG="ZH-CN">不亮,而其它的都亮了,从现象上看“暗点”流到了后面。然后是调用延时程序,这个我们很熟悉了,让这个“暗点”“暗”一会儿。然后又调转到</FONT><FONT FACE="System" LANG="ZH-CN">LOOP</FONT><FONT FACE="宋体" LANG="ZH-CN">处(</FONT><FONT FACE="System" LANG="ZH-CN">LJMP	LOOP</FONT><FONT FACE="宋体" LANG="ZH-CN">)。请大家计算一下,下面该哪个灯不亮了。。。。。对了,应当是接在</FONT><FONT FACE="System" LANG="ZH-CN">P1</FONT><FONT FACE="宋体" LANG="ZH-CN">。</FONT><FONT FACE="System" LANG="ZH-CN">1</FONT><FONT FACE="宋体" LANG="ZH-CN">上灯不亮了。这样依次循环,就形成了“暗点流动”这一现象。</font></P><FONT FACE="宋体" LANG="ZH-CN">
<P ALIGN="JUSTIFY">问题:</P>
<OL>
<P ALIGN="JUSTIFY"><LI>如何实现亮点流动?</LI><p></P>
<P ALIGN="JUSTIFY"><LI>如何改变流动的方向?</LI><p></P></OL>
<P ALIGN="JUSTIFY">答案:</P>
<P ALIGN="JUSTIFY">1、将A中的初始值改为7FH即可。	</P>
<P ALIGN="JUSTIFY">2、将RL A改为RR A即可。</P>
<P ALIGN="JUSTIFY"> </P>
</FONT></BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -