📄 常用接口电路及其编程.htm
字号:
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进入其内部。在给出了</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">8</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个脉冲后,最先进入</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">74LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,就象车站排队买票,栏杆就那么长,要从后面进去一个人,前面必须要从前面走出去一个人才行。</SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">搞清了这一点,下面让我们来看电路,</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">6</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">7LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">首尾相串,而时钟端则接在一起,这样,当输入</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">8</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个脉冲时,从单片机</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">RXD</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">端输出的数据就进入到了第一片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">74LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中了,而当第二个</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">8</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个脉冲到来后,这个数据就进入了第二片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">74LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,而新的数据则进入了第一片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">74LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,这样,当第六个</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">8</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个脉冲完成后,首次送出的数据被送到了最左面的</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中,其他数据依次出现在第一、二、三、四、五片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">74LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中。有个问题,在第一个脉冲到来时,除了第一片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">74LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中接收数据外,其他各片在干吗呢?它们也在接收数据,因为它们的时钟端都是被接在一起的,可是数据还没有送到其他各片呢,它们在接收什么数据呢?。。。。。。其实所谓数据不过是一种说法而已,实际就是电平的高低,当第一个脉冲到来时,第一片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">固然是从单片机接收数据了,而其它各片也接到前一片的</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">Q8</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上,而</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">Q8</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是一根电线,在数字电路中它只可能有两种状态:低电平或高电平,也就是</SPAN><SPAN
lang=EN-US>“</SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">0</SPAN><SPAN
lang=EN-US>”</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN
lang=EN-US>“</SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">1</SPAN><SPAN
lang=EN-US>”</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。所以它的下一片</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">74LS164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">也相当于是在接收数据啊。只是接收的全部是</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">0</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">1</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而已。这个问题放在这儿说明,可能有朋友不屑一顾,而有的朋友可能还是不清楚,这实际上涉及到数的本质的问题,如果不懂的,请仔细思考,并找一些数字电路的数,理解</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">164</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的工作原理,再来看这个问题,或者去看看我的另一篇文章《初学单片机易掌握的概念》。务必搞懂,搞懂了这一点,你的级别就高过初学者,可谓入门者了。</SPAN><SPAN
lang=EN-US><IMG height=222 id=_x0000_i1026 src="常用接口电路及其编程.files/dpj252.gif"
width=582></SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">入口:把要显示的数分别放在显示缓冲区</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">60H-65H</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">共</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">6</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个单元中,并且分别对应各个数码管</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">LED0-LED5</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">出口:将预置在显示缓冲区中的</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">6</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个数成相应的显示字形码,然后输出到显示器中显示。</SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">显示程序如下:</SPAN></P>
<P><SPAN lang=EN-US style="FONT-FAMILY: System">DISP:<SPAN
style="mso-tab-count: 1"> </SPAN>MOV<SPAN style="mso-tab-count: 1">
</SPAN>SCON,#00H</SPAN><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">初始化串行口方式</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">0</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">MOV<SPAN
style="mso-tab-count: 1"> </SPAN>R1,#06H</SPAN><SPAN lang=EN-US><SPAN
style="mso-tab-count: 3">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">显示</SPAN><SPAN
lang=EN-US style="FONT-FAMILY: System">6</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">位数</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">MOV<SPAN
style="mso-tab-count: 1"> </SPAN>R0,#65H</SPAN><SPAN lang=EN-US><SPAN
style="mso-tab-count: 3">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;60H-65H</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为显示缓冲区</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">MOV<SPAN
style="mso-tab-count: 1"> </SPAN>DPTR,#SEGTAB</SPAN><SPAN lang=EN-US><SPAN
style="mso-tab-count: 1">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字形表的入口地址</SPAN></P>
<P><SPAN lang=EN-US style="FONT-FAMILY: System">LOOP:<o:p></o:p></SPAN></P>
<P><SPAN lang=EN-US style="FONT-FAMILY: System"><SPAN
style="mso-tab-count: 2">
</SPAN>MOV<SPAN style="mso-tab-count: 1"> </SPAN>A,@R0</SPAN><SPAN
lang=EN-US><SPAN
style="mso-tab-count: 3">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">取最高位的待显示数据</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">MOVC<SPAN
style="mso-tab-count: 1"> </SPAN>A,@A+DPTR</SPAN><SPAN
lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">查表获取字形码</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">MOV<SPAN
style="mso-tab-count: 1"> </SPAN>SBUF,A</SPAN><SPAN lang=EN-US><SPAN
style="mso-tab-count: 3">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">送串口显示</SPAN></P>
<P><SPAN lang=EN-US style="FONT-FAMILY: System">DELAY:<SPAN
style="mso-tab-count: 1"> </SPAN>JNB<SPAN
style="mso-tab-count: 2"> </SPAN>TI,DELAY</SPAN><SPAN
lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等待发送完毕</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">CLR<SPAN
style="mso-tab-count: 2"> </SPAN>TI</SPAN><SPAN
lang=EN-US><SPAN
style="mso-tab-count: 4">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">清发送标志</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">DEC<SPAN
style="mso-tab-count: 2"> </SPAN>R0</SPAN><SPAN
lang=EN-US><SPAN
style="mso-tab-count: 4">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指针下移一位,准备取下一个待显示数</SPAN></P>
<P><SPAN lang=EN-US><SPAN
style="mso-tab-count: 2">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">DJNZ<SPAN
style="mso-tab-count: 1"> </SPAN>R1,LOOP</SPAN><SPAN
lang=EN-US><SPAN
style="mso-tab-count: 3">
</SPAN></SPAN><SPAN lang=EN-US style="FONT-FAMILY: System">;</SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">直到</SPAN><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -