历史上的今天
返回首页

历史上的今天

今天是:2025年01月03日(星期五)

正在发生

2018年01月03日 | 单片机教程实战6 常用接口及编程

2018-01-03 来源:eefocus

LED数码显示器的连接与编程
  在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
  八段LED显示器
  引入:还记得我们小时候玩的“火柴棒游戏”吗,几根火柴棒组合起来,可以拼成各种各样的图形,LED显示器实际上也是这么一个东西。
第二十三课 常用接口电路及其编程
  八段LED显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如下图所示。`共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgFEDcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,显示器显示"P"字符,即对于共阴极LED显示器,“P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。这里必须注意的是:很多产品为方便接线,常不按规则的方法去对应字段与位的关系,这时字形码就必须根据接线来自行设计了,后面我们会给出一个例子。
  1、静态显示接口
  在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。可以提供单独锁存的I/O接口电路很多,这里以常用的串并转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。MCS-51单片机串行口方式押为移们寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,公一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1…Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的hg---a各段对应的引脚上。关于74LS164还可以作如下的介绍:所谓时钟脉冲端,其实就是需要高、低、高、低的脉冲,不管这个脉冲是怎么来的,比如,我们用根电线,一端接T,一端用手拿着,分别接高电平、低电平,那也是给出时钟脉冲,在74LS164获得时钟脉冲的瞬间(再讲清楚点,是在脉冲的沿),如果数据输入端(第1,2引脚)是高电平,则就会有一个1进入到74LS164的内部,如果数据输入端是低电平,则就会有一个0进入其内部。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,就象车站排队买票,栏杆就那么长,要从后面进去一个人,前面必须要从前面走出去一个人才行。 搞清了这一点,下面让我们来看电路,6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三、四、五片74LS164中。有个问题,在第一个脉冲到来时,除了第一片74LS164中接收数据外,其他各片在干吗呢?它们也在接收数据,因为它们的时钟端都是被接在一起的,可是数据还没有送到其他各片呢,它们在接收什么数据呢?。。。。。。其实所谓数据不过是一种说法而已,实际就是电平的高低,当第一个脉冲到来时,第一片164固然是从单片机接收数据了,而其它各片也接到前一片的Q8上,而Q8是一根电线,在数字电路中它只可能有两种状态:低电平或高电平,也就是“0”和“1”。所以它的下一片74LS164也相当于是在接收数据啊。只是接收的全部是0或1而已。这个问题放在这儿说明,可能有朋友不屑一顾,而有的朋友可能还是不清楚,这实际上涉及到数的本质的问题,如果不懂的,请仔细思考,并找一些数字电路的数,理解164的工作原理,再来看这个问题,或者去看看我的另一篇文章《初学单片机易掌握的概念》。务必搞懂,搞懂了这一点,你的级别就高过初学者了。
第二十三课 常用接口电路及其编程
  入口:把要显示的数分别放在显示缓冲区60H-65H共6个单元中,并且分别对应各个数码管LED0-LED5。 出口:将预置在显示缓冲区中的6个数成相应的显示字形码,然后输出到显示器中显示。显示程序如下:DISP: MOV SCON,#00H ;初始化串行口方式0 MOV R1,#06H ;显示6位数 MOV R0,#65H ;60H-65H为显示缓冲区 MOV DPTR,#SEGTAB ;字形表的入口地址LOOP: MOV A,@R0 ;取最高位的待显示数据 MOVC A,@A+DPTR ;查表获取字形码 MOV SBUF,A ;送串口显示DELAY: JNB TI,DELAY ;等待发送完毕 CLR TI ;清发送标志 DEC R0 ;指针下移一位,准备取下一个待显示数 DJNZ R1,LOOP ;直到6个数据全显示完。 RET SETTAB: ;字形表,前面有介绍,以后我们再介绍字形表的制作。 DB 03H 9FH 27H 0DH 99H 49H 41H 1FH 01H 09H 0FFH ; 0 1 2 3 4 5 6 7 8 9 消隐码测试用主程序 ORG 0000H AJMP START ORG 30HSTART: MOV SP,#6FH MOV 65H,#0 MOV 64H,#1 MOV 63H,#2 MOV 62H,#3 MOV 61H,#4 MOV 60H,#5 LCALL DISP SJMP $如果按图示数码管排列,则以上主程序将显示的是543210,想想看,如果要显示012345该怎样送数? 下面我们来分析一下字形表的制作问题。先就上述“标准”的图形来看吧。写出数据位和字形的对应关系并列一个表如下(设为共阳型,也就是相应的输出位为0时笔段亮)

推荐阅读

史海拾趣

Design Gateway公司的发展小趣事

1985年,泰德·维特(Ted Waitt)和Mike Hammond两位年轻人决定辍学创业。他们利用维特祖母的15,000美元存款作为担保,从银行获得了10,000美元贷款,租用了一台计算机,并准备了一份三页的经营计划。在维特父亲位于爱荷华州苏城的牧场里,他们创办了TIPC Network公司(Gateway的前身)。公司起步时,主要向得克萨斯电脑器械公司销售零配件,并开展计算机邮购业务。得益于直销商业模式,Gateway在短短四个月内就实现了10万美元的销售额。

GE Industrial Solutions公司的发展小趣事
光耦的隔离作用虽然能减少电气噪声的干扰,但光耦本身也可能引入噪声。解决方法包括选择低噪声的光耦,或在电路中加入滤波电路。
Advanced Power Solutions公司的发展小趣事

面对日益激烈的国际竞争,Advanced Power Solutions决定实施全球化战略。公司先后在多个国家和地区设立了研发中心和生产基地,以便更好地满足当地市场的需求。同时,公司还加强了与国际同行的交流与合作,共同推动电源管理技术的发展。这些举措使公司的竞争力得到了显著提升,也为公司的长远发展奠定了坚实基础。

EREM公司的发展小趣事

随着全球市场的不断融合,EREM公司开始寻求国际合作机会。通过与国外知名企业的合作,EREM不仅将产品销售到了全球各地,还学到了许多先进的管理经验和技术。同时,EREM也积极参与国际展览和交流活动,提升了品牌知名度和影响力。这些努力使得EREM在国际市场上逐渐崭露头角。

DESCO公司的发展小趣事

作为一家有社会责任感的企业,DESCO公司始终关注环境保护和可持续发展。公司采用环保材料和生产工艺,减少生产过程中的污染排放。同时,DESCO还积极参与社会公益活动,为当地社区和弱势群体提供帮助和支持。这些举措赢得了社会各界的广泛赞誉和认可。

BREL International Components公司的发展小趣事

BREL International Components公司深知合作共赢的重要性。公司积极与上下游企业建立紧密的合作关系,共同开发新产品、拓展新市场。通过与供应商的深度合作,BREL确保了原材料的稳定供应和成本控制;通过与客户的紧密沟通,BREL及时了解市场需求,调整产品策略。此外,BREL还积极参与行业交流和合作,与同行共同推动电子行业的发展。

问答坊 | AI 解惑

3V/5V低功耗同步电压频率变换芯片AD7740

AD7740是一种CMOS型低功耗单通道单终端同步电压频率转换芯片,它具有缓冲和非缓冲两种模式.工作范围宽,对外部元件要求小,输出频率准确,无须调整或校准.可广泛用于各种A/D转换系统,并可以和AD22100S温度传感器构成数字式环境温度指示器等电路.文中介 ...…

查看全部问答>

自动化市场08年将达640亿美元

面向流程产业的自动化产品及服务市场随着对自动化设备的需求增长,正在稳步发展。该市场的规模2003年约为500亿美元,未来5年里有望实现5.1%的年增长率,2008年市场规模将达到640亿美元。美国调查公司ARC日前对面向流程产业的自动化产品及服务全球市 ...…

查看全部问答>

利用 Xilinx FPGA 简化硬件和软件开发白皮书

Simplifying Embedded Hardware and Software Development with Targeted Reference Designs FPGAs are becoming the platform of choice for a growing number of hardware and software designers developing embedded processing applications ...…

查看全部问答>

大家能简单介绍一下ARM吗?

好像还分ARM9,ARM11等,有甚区别?…

查看全部问答>

EasyARM2131问题

我买了一个EasyARM2131  但是在使用EasyJTAG仿真的时候出现了这样的问题 请问各位  我是哪里出了问题 DBE Warning 00041:An unspecified Debug Toolbox call failed…

查看全部问答>

这个调理电路怎么搭?

我想把外界输入的 -3.3V - 3.3V的正弦电压信号调理成相位相同 0V - 3,.3V的正弦信号,请问有没有好的解决方案 ,我之前在一个地方看到别人用运放做的 我忘记了在哪儿了 。…

查看全部问答>

我的JTAG怎么联不上了呢?

运行BoardTestSystem.exe时出现的提示: Connecting to the target... java.lang.Exception: No BoardTestSystem-compatible design exists in the FPGA. Please select a design from the configure menu. 但板子是插上了的: …

查看全部问答>

关于ADC10多通道序列转换 求大神指点

想实现两个通道的AD连续转换,不会DTC,想用自己编程实现但AD转换结果只有一个,而且多通道序列转换时只能选择最高的通道,自己刚学MSP430,说的不是很清楚,希望大家指导一二,不胜感激! …

查看全部问答>