📄 常用接口电路及其编程.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0047)http://www.onestudy.net/download/elec/dpj23.htm -->
<!-- saved from url=(0048)http://www.21icsearch.com/pmcu/dpjjx/dpjjx25.htm --><HTML><HEAD><TITLE>常用接口电路及其编程</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<META content="D:\MICROSOFT OFFICE\OFFICE\html.dot" name=Template></HEAD>
<BODY vLink=#800080 link=#0000ff background=""><FONT lang=ZH-CN face=宋体>
<P align=justify>常用接口电路及其编程</P></FONT>
<OL><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN face=System>
<P align=justify></FONT>
<LI><FONT lang=ZH-CN face=System>LED</FONT><FONT lang=ZH-CN
face=宋体>数码显示器的连接与编程</FONT><FONT lang=ZH-CN face=宋体>
<P></P></FONT></LI></OL>
<P align=justify><FONT lang=ZH-CN face=宋体>在单片机系统中,通常用</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN
face=宋体>数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。</FONT></P>
<OL><FONT lang=ZH-CN face=宋体>
<P align=justify></FONT>
<LI><FONT lang=ZH-CN face=宋体>八段</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN face=宋体>显示器</FONT> <FONT lang=ZH-CN
face=宋体>
<P></P></FONT>
<P align=justify><FONT lang=ZH-CN
face=宋体>引入:还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,可以拼成各种各样的图形,</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN face=宋体>显示器实际上也是这么一个东西。</FONT></P>
<P><FONT lang=ZH-CN face=宋体><IMG height=255 src="常用接口电路及其编程.files/dpj251.gif"
width=566></FONT></P>
<P><FONT lang=ZH-CN face=宋体>八段</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN face=宋体>显示器由</FONT><FONT lang=ZH-CN
face=System>8</FONT><FONT lang=ZH-CN face=宋体>个发光二极管组成。基中</FONT><FONT
lang=ZH-CN face=System>7</FONT><FONT lang=ZH-CN
face=宋体>个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。</FONT><FONT
lang=ZH-CN face=System>LED</FONT><FONT lang=ZH-CN
face=宋体>显示器有两种不同的形式:一种是</FONT><FONT lang=ZH-CN face=System>8</FONT><FONT
lang=ZH-CN face=宋体>个发光二极管的阳极都连在一起的,称之为共阳极</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN face=宋体>显示器;另一种是</FONT><FONT lang=ZH-CN
face=System>8</FONT><FONT lang=ZH-CN
face=宋体>个发光二极管的阴极都连在一起的,称之为共阴极</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN face=宋体>显示器。如下图所示。</FONT><FONT
lang=ZH-CN face=System>`</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体>共阴和共阳结构的</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN
face=宋体>显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。</FONT><FONT
lang=ZH-CN face=System>8</FONT><FONT lang=ZH-CN face=宋体>个笔划段</FONT><FONT
lang=ZH-CN face=System>hgfedcba</FONT><FONT lang=ZH-CN
face=宋体>对应于一个字节(</FONT><FONT lang=ZH-CN face=System>8</FONT><FONT lang=ZH-CN
face=宋体>位)的</FONT><FONT lang=ZH-CN face=System>D7 D6 D5 D4 D3 D2 D1
D0,</FONT><FONT lang=ZH-CN face=宋体>于是用</FONT><FONT lang=ZH-CN
face=System>8</FONT><FONT lang=ZH-CN
face=宋体>位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴</FONT><FONT lang=ZH-CN
face=System>LED</FONT><FONT lang=ZH-CN
face=宋体>显示器,当公共阴极接地(为零电平),而阳极</FONT><FONT lang=ZH-CN
face=System>hgfedcba</FONT><FONT lang=ZH-CN face=宋体>各段为</FONT><FONT lang=ZH-CN
face=System>0111011</FONT><FONT lang=ZH-CN face=宋体>时,显示器显示</FONT><FONT
lang=ZH-CN face=System>"P"</FONT><FONT lang=ZH-CN
face=宋体>字符,即对于共阴极</FONT><FONT lang=ZH-CN face=System>LED</FONT><FONT
lang=ZH-CN face=宋体>显示器,“</FONT><FONT lang=ZH-CN face=System>P</FONT><FONT
lang=ZH-CN face=宋体>”字符的字形码是</FONT><FONT lang=ZH-CN face=System>73H</FONT><FONT
lang=ZH-CN face=宋体>。如果是共阳</FONT><FONT lang=ZH-CN face=System>LED</FONT><FONT
lang=ZH-CN face=宋体>显示器,公共阳极接高电平,显示“</FONT><FONT lang=ZH-CN
face=System>P</FONT><FONT lang=ZH-CN face=宋体>”字符的字形代码应为</FONT><FONT lang=ZH-CN
face=System>10001100</FONT><FONT lang=ZH-CN face=宋体>(</FONT><FONT lang=ZH-CN
face=System>8CH</FONT><FONT lang=ZH-CN
face=宋体>)。这里必须注意的是:很多产品为方便接线,常不按规则的方法去对应字段与位的关系,这时字形码就必须根据接线来自行设计了,后面我们会给出一个例子。</FONT></P><FONT
lang=ZH-CN face=宋体>
<P align=justify></P>
<LI>静态显示接口
<P></P></FONT></LI></OL>
<P align=justify><FONT lang=ZH-CN
face=宋体>在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的</FONT><FONT
lang=ZH-CN face=System>I/O</FONT><FONT lang=ZH-CN
face=宋体>接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中</FONT><FONT
lang=ZH-CN face=System>CPU</FONT><FONT lang=ZH-CN
face=宋体>的开销小。可以提供单独锁存的</FONT><FONT lang=ZH-CN face=System>I/O</FONT><FONT
lang=ZH-CN face=宋体>接口电路很多,这里以常用的串并转换电路</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=System>MCS-51</FONT><FONT lang=ZH-CN
face=宋体>单片机串行口方式押为移们寄存器方式,外接</FONT><FONT lang=ZH-CN face=System>6</FONT><FONT
lang=ZH-CN face=宋体>片</FONT><FONT lang=ZH-CN face=System>74LS164</FONT><FONT
lang=ZH-CN face=宋体>作为</FONT><FONT lang=ZH-CN face=System>6</FONT><FONT
lang=ZH-CN face=宋体>位</FONT><FONT lang=ZH-CN face=System>LED</FONT><FONT
lang=ZH-CN face=宋体>显示器的静态显示接口,把</FONT><FONT lang=ZH-CN
face=System>8031</FONT><FONT lang=ZH-CN face=宋体>的</FONT><FONT lang=ZH-CN
face=System>RXD</FONT><FONT lang=ZH-CN face=宋体>作为数据输出线,</FONT><FONT lang=ZH-CN
face=System>TXD</FONT><FONT lang=ZH-CN face=宋体>作为移位时钟脉冲。</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN face=宋体>为</FONT><FONT lang=ZH-CN
face=System>TTL</FONT><FONT lang=ZH-CN face=宋体>单向</FONT><FONT lang=ZH-CN
face=System>8</FONT><FONT lang=ZH-CN face=宋体>位移位寄存器,可实现串行输入,并行输出。其中</FONT><FONT
lang=ZH-CN face=System>A</FONT><FONT lang=ZH-CN face=宋体>、</FONT><FONT lang=ZH-CN
face=System>B</FONT><FONT lang=ZH-CN face=宋体>(第</FONT><FONT lang=ZH-CN
face=System>1</FONT><FONT lang=ZH-CN face=宋体>、</FONT><FONT lang=ZH-CN
face=System>2</FONT><FONT lang=ZH-CN face=宋体>脚)为串行数据输入端,</FONT><FONT lang=ZH-CN
face=System>2</FONT><FONT lang=ZH-CN
face=宋体>个引脚按逻辑与运算规律输入信号,公一个输入信号时可并接。</FONT><FONT lang=ZH-CN
face=System>T</FONT><FONT lang=ZH-CN face=宋体>(第</FONT><FONT lang=ZH-CN
face=System>8</FONT><FONT lang=ZH-CN face=宋体>脚)为时钟输入端,可连接到串行口的</FONT><FONT
lang=ZH-CN face=System>TXD</FONT><FONT lang=ZH-CN
face=宋体>端。每一个时钟信号的上升沿加到</FONT><FONT lang=ZH-CN face=System>T</FONT><FONT
lang=ZH-CN face=宋体>端时,移位寄存器移一位,</FONT><FONT lang=ZH-CN face=System>8</FONT><FONT
lang=ZH-CN face=宋体>个时钟脉冲过后,</FONT><FONT lang=ZH-CN face=System>8</FONT><FONT
lang=ZH-CN face=宋体>位二进制数全部移入</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN face=宋体>中。</FONT><FONT lang=ZH-CN
face=System>R</FONT><FONT lang=ZH-CN face=宋体>(第</FONT><FONT lang=ZH-CN
face=System>9</FONT><FONT lang=ZH-CN face=宋体>脚)为复位端,当</FONT><FONT lang=ZH-CN
face=System>R=0</FONT><FONT lang=ZH-CN face=宋体>时,移位寄存器各位复</FONT><FONT lang=ZH-CN
face=System>0</FONT><FONT lang=ZH-CN face=宋体>,只有当</FONT><FONT lang=ZH-CN
face=System>R=1</FONT><FONT lang=ZH-CN face=宋体>时,时钟脉冲才起作用。</FONT><FONT
lang=ZH-CN face=System>Q1</FONT><FONT lang=ZH-CN face=宋体>…</FONT><FONT
lang=ZH-CN face=System>Q8</FONT><FONT lang=ZH-CN face=宋体>(第</FONT><FONT
lang=ZH-CN face=System>3-6</FONT><FONT lang=ZH-CN face=宋体>和</FONT><FONT
lang=ZH-CN face=System>10-13</FONT><FONT lang=ZH-CN
face=宋体>引脚)并行输出端分别接</FONT><FONT lang=ZH-CN face=System>LED</FONT><FONT
lang=ZH-CN face=宋体>显示器的</FONT><FONT lang=ZH-CN face=System>hg---a</FONT><FONT
lang=ZH-CN face=宋体>各段对应的引脚上。关于</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>还可以作如下的介绍:所谓时钟脉冲端,其实就是需要高、低、高、低的脉冲,不管这个脉冲是怎么来的,比如,我们用根电线,一端接</FONT><FONT
lang=ZH-CN face=System>T</FONT><FONT lang=ZH-CN
face=宋体>,一端用手拿着,分别接高电平、低电平,那也是给出时钟脉冲,在</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>获得时钟脉冲的瞬间(再讲清楚点,是在脉冲的沿),如果数据输入端(第</FONT><FONT lang=ZH-CN
face=System>1</FONT><FONT lang=ZH-CN face=宋体>,</FONT><FONT lang=ZH-CN
face=System>2</FONT><FONT lang=ZH-CN face=宋体>引脚)是高电平,则就会有一个</FONT><FONT
lang=ZH-CN face=System>1</FONT><FONT lang=ZH-CN face=宋体>进入到</FONT><FONT
lang=ZH-CN face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>的内部,如果数据输入端是低电平,则就会有一个</FONT><FONT lang=ZH-CN face=System>0</FONT><FONT
lang=ZH-CN face=宋体>进入其内部。在给出了</FONT><FONT lang=ZH-CN face=System>8</FONT><FONT
lang=ZH-CN face=宋体>个脉冲后,最先进入</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,就象车站排队买票,栏杆就那么长,要从后面进去一个人,前面必须要从前面走出去一个人才行。</FONT></P>
<P align=left><FONT lang=ZH-CN face=宋体>搞清了这一点,下面让我们来看电路,</FONT><FONT lang=ZH-CN
face=System>6</FONT><FONT lang=ZH-CN face=宋体>片</FONT><FONT lang=ZH-CN
face=System>7LS164</FONT><FONT lang=ZH-CN
face=宋体>首尾相串,而时钟端则接在一起,这样,当输入</FONT><FONT lang=ZH-CN face=System>8</FONT><FONT
lang=ZH-CN face=宋体>个脉冲时,从单片机</FONT><FONT lang=ZH-CN face=System>RXD</FONT><FONT
lang=ZH-CN face=宋体>端输出的数据就进入到了第一片</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN face=宋体>中了,而当第二个</FONT><FONT
lang=ZH-CN face=System>8</FONT><FONT lang=ZH-CN
face=宋体>个脉冲到来后,这个数据就进入了第二片</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN face=宋体>,而新的数据则进入了第一片</FONT><FONT
lang=ZH-CN face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>,这样,当第六个</FONT><FONT lang=ZH-CN face=System>8</FONT><FONT lang=ZH-CN
face=宋体>个脉冲完成后,首次送出的数据被送到了最左面的</FONT><FONT lang=ZH-CN
face=System>164</FONT><FONT lang=ZH-CN
face=宋体>中,其他数据依次出现在第一、二、三、四、五片</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>中。有个问题,在第一个脉冲到来时,除了第一片</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>中接收数据外,其他各片在干吗呢?它们也在接收数据,因为它们的时钟端都是被接在一起的,可是数据还没有送到其他各片呢,它们在接收什么数据呢?。。。。。。其实所谓数据不过是一种说法而已,实际就是电平的高低,当第一个脉冲到来时,第一片</FONT><FONT
lang=ZH-CN face=System>164</FONT><FONT lang=ZH-CN
face=宋体>固然是从单片机接收数据了,而其它各片也接到前一片的</FONT><FONT lang=ZH-CN
face=System>Q8</FONT><FONT lang=ZH-CN face=宋体>上,而</FONT><FONT lang=ZH-CN
face=System>Q8</FONT><FONT lang=ZH-CN
face=宋体>是一根电线,在数字电路中它只可能有两种状态:低电平或高电平,也就是“</FONT><FONT lang=ZH-CN
face=System>0</FONT><FONT lang=ZH-CN face=宋体>”和“</FONT><FONT lang=ZH-CN
face=System>1</FONT><FONT lang=ZH-CN face=宋体>”。所以它的下一片</FONT><FONT lang=ZH-CN
face=System>74LS164</FONT><FONT lang=ZH-CN
face=宋体>也相当于是在接收数据啊。只是接收的全部是</FONT><FONT lang=ZH-CN face=System>0</FONT><FONT
lang=ZH-CN face=宋体>或</FONT><FONT lang=ZH-CN face=System>1</FONT><FONT lang=ZH-CN
face=宋体>而已。这个问题放在这儿说明,可能有朋友不屑一顾,而有的朋友可能还是不清楚,这实际上涉及到数的本质的问题,如果不懂的,请仔细思考,并找一些数字电路的数,理解</FONT><FONT
lang=ZH-CN face=System>164</FONT><FONT lang=ZH-CN
face=宋体>的工作原理,再来看这个问题,或者去看看我的另一篇文章《初学单片机易掌握的概念》。务必搞懂,搞懂了这一点,你的级别就高过初学者,可谓入门者了。<IMG
height=222 src="常用接口电路及其编程.files/dpj252.gif" width=582></FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体>入口:把要显示的数分别放在显示缓冲区</FONT><FONT
lang=ZH-CN face=System>60H-65H</FONT><FONT lang=ZH-CN face=宋体>共</FONT><FONT
lang=ZH-CN face=System>6</FONT><FONT lang=ZH-CN
face=宋体>个单元中,并且分别对应各个数码管</FONT><FONT lang=ZH-CN
face=System>LED0-LED5</FONT><FONT lang=ZH-CN face=宋体>。</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体>出口:将预置在显示缓冲区中的</FONT><FONT lang=ZH-CN
face=System>6</FONT><FONT lang=ZH-CN
face=宋体>个数成相应的显示字形码,然后输出到显示器中显示。</FONT></P><FONT lang=ZH-CN face=宋体>
<P align=justify>显示程序如下:</P></FONT>
<P align=justify><FONT lang=ZH-CN face=System>DISP: MOV SCON,#00H</FONT><FONT
lang=ZH-CN face=宋体> </FONT><FONT lang=ZH-CN face=System>;</FONT><FONT lang=ZH-CN
face=宋体>初始化串行口方式</FONT><FONT lang=ZH-CN face=System>0</FONT></P>
<P align=justify><FONT lang=ZH-CN face=宋体></FONT><FONT lang=ZH-CN
face=System>MOV R1,#06H</FONT><FONT lang=ZH-CN face=宋体> </FONT><FONT lang=ZH-CN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -