历史上的今天
返回首页

历史上的今天

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

正在发生

2018年01月05日 | 51单片机IO口直接驱动LED数码管方法

2018-01-05 来源:eefocus

1.实验任务
  如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。
2.电路原理图
I/O并行口直接驱动LED显示
            图4.7.1
3.系统板上硬件连线
  把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连,……,P0.7/AD7与h相连。
4.    程序设计内容
(1).LED数码显示原理
  七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码见表2


(2).由于显示的数字0-9的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。这样我们按着数字0-9的顺序,把每个数字的笔段代码按顺序排好!建立的表格如下所示:TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
5.程序框图
I/O并行口直接驱动LED显示
      图4.7.2
6.汇编源程序
                            ORG 0
START:               MOV R1,#00H
NEXT:                MOV A,R1
                            MOV DPTR,#TABLE
                            MOVC A,@A+DPTR
                            MOV P0,A
                            LCALL DELAY
                            INC R1
                            CJNE R1,#10,NEXT
                            LJMP START
DELAY:              MOV R5,#20
D2:                      MOV R6,#20
D1:                      MOV R7,#248
                            DJNZ R7,$
                            DJNZ R6,D1
                            DJNZ R5,D2
                            RET
TABLE:              DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
                            END
7.C语言源程序
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
                            0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char dispcount;
void delay02s(void)
{
  unsigned char i,j,k;
  for(i=20;i>0;i--)
  for(j=20;j>0;j--)
  for(k=248;k>0;k--);
}
void main(void)
{
  while(1)
    {
      for(dispcount=0;dispcount<10;dispcount++)
        {
          P0=table[dispcount];
          delay02s();
        }
    }
}

推荐阅读

史海拾趣

A-BRIGHT公司的发展小趣事

A-BRIGHT公司注重与产业链上下游企业的合作与共赢。公司与多家原材料供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和质量。同时,A-BRIGHT也与多家知名的电子产品制造商展开合作,共同开发新产品,实现了资源共享和互利共赢。

General Electric Solid State公司的发展小趣事

A-BRIGHT公司的起点并不起眼,只是电子行业里众多小公司之一。然而,在XXXX年,公司成功研发出了一种新型的高效率LED芯片,这一技术突破使得A-BRIGHT的产品在能效和寿命上大幅超越竞争对手。这一创新迅速吸引了市场的关注,A-BRIGHT的订单量激增,公司开始逐渐崭露头角。

Afero公司的发展小趣事

随着Afero在国内市场的成功,公司开始将目光投向国际市场。他们设立了海外分支机构,积极参加国际展会和技术交流活动,与全球范围内的合作伙伴建立联系。通过与国际知名企业的合作,Afero成功将其物联网平台推广至全球市场,并获得了广泛的认可和应用。这些国际市场的拓展为Afero的未来发展打开了新的机遇。

这些故事是基于Afero公司的发展历程和公开信息构建的,旨在展示其在电子行业中的发展和成就。然而,需要注意的是,这些故事可能并不完全准确或详尽,因为具体细节可能涉及公司的商业机密或未公开的信息。如需更详细和准确的信息,建议直接访问Afero公司的官方网站或查阅相关新闻报道。

ABL Heatsink公司的发展小趣事

早期,ABL Heatsink公司主要生产通用型散热器,但随着市场竞争的加剧,公司意识到必须调整市场定位。于是,公司开始专注于研发针对特定电子设备的高性能散热器。通过深入了解客户需求,ABL Heatsink成功开发出一系列定制化产品,赢得了市场的青睐。

Altmustech公司的发展小趣事

Altmustech公司的创立源于一次技术突破。创始人李博士带领的团队成功研发了一款高效能、低成本的半导体芯片,这一创新技术解决了当时电子行业面临的能效问题,迅速引起了市场的关注。随着技术的不断完善和产品的推出,Altmustech逐渐在半导体市场上崭露头角,为公司的快速发展奠定了坚实的基础。

B+B SmartWorx公司的发展小趣事

B+B SmartWorx始终坚持以客户为中心,通过提供优质的产品和服务来满足客户需求。公司相信,客户满意度和产品创新是驱动其增长的关键因素。因此,B+B SmartWorx在设计和制造网络连接设备时,始终注重设备的易用性、可管理性和可靠性。这种对客户的深度理解和持续创新,使得B+B SmartWorx在电子行业中赢得了良好的声誉,并实现了持续稳健的发展。

这些故事基于B+B SmartWorx的发展历程和现有信息,虚构了一些具体情节,旨在展现该公司在电子行业中的成长与变迁。请注意,这些故事可能并不完全准确反映B+B SmartWorx的实际发展情况,如需了解更多关于该公司的具体信息,建议查阅相关官方资料或新闻报道。

问答坊 | AI 解惑

SMIC和TSMC水火不容对我国芯片设计业很有利

SMIC需要的是时间,以及更好的管理。王能否改善SMIC的管理是个问题。他以前在华虹NEC的记录不太positive。 对SMIC客户来讲,更换领导层甚至方向不是个好事。不确定性太大。大伙的身家性命都在上面呢。Wafer涨价?关停一些线?更新销售策略?与TSM ...…

查看全部问答>

EZ-USB FX2LP系列芯片CY7C68013A

请问各位,谁比较了解EZ-USB FX2LP系列芯片CY7C68013A, 该芯片引脚有三种数量类型,即56个引脚的,100引脚的和128引脚的, 我用的接口模式为GPIF主控式的,在此接口模式下,只有56引脚的没有地址线,其它两种引脚都有9位的地址线,有我想问的是 ...…

查看全部问答>

EMC单片机的宏定义学习手记

前言:这几天在整理和生产EMC程序一些宏,发现这东西真的是好用的超乎了想象,将一些,以下以 EM78P260为主,其实其他型号大通小异,注意修改一下寄存器就可以。 (1)最常用的 PAGE 和 BANK EMC 的IC是分几个page和几个bank的,低端的EM78P156 ...…

查看全部问答>

发帖发问一个bootloader问题并邀请学习6410,PXA3XX等高级货的同志了!

这几天看了6410的eboot,并对nk.bin以及nk.nb0文件重新了解了一下,发现了很多疑问。 主要是我以前一直用ADS bootloader,现在觉得两者有不可思议的差别。 一、ADS bootloader没有拷贝全局变量到RAM的行为,但是eboot.nb0有——但是这两个格式的 ...…

查看全部问答>

大家好,请问谁用过MAX3420的USB芯片呢?有问题请教。

大家好,请问谁用过MAX3420的USB芯片呢?有问题请教。 以往的USB芯片没有安装驱动时候直接连接到计算机上会提示发现新硬件,我手里这个MAX3420芯片连接到主机后,什么提示都没有,但也不应该是芯片坏了。在设备管理器中也看不见这个设备,好奇怪, ...…

查看全部问答>

急!!!IIC0改成IIC1!

如题。用的2450的板子,wince5.0的平台。现在用IIC1接我的IC芯片。现在拿到手的IIC驱动是IIC0的,即用的GPE14\\GPE15,我需要将其换成IIC1,即GPB7\\GPB8。我做了如下修改: 1、 WINCE500\\PLATFORM\\SMDK2450\\Src\\Drivers\\IIC\\i2c.c中 //#de ...…

查看全部问答>

触摸屏问题

请问在wince 6.0下有没有针对touch panel电源管理的API函数给应用程序调用?比如TouchPanelEnable类似的函数。 在Touch panel驱动中有DdsiTouchPanelEnable和DdsiTouchPanelDisable的函数可以直接控制驱动硬件,我尝试在应用程序端使用它们但是不 ...…

查看全部问答>

cramfs根文件系统启动问题

我用的优龙YL2410开发板,最近想自己制作一个cramfs跟文件系统,参考网上比较著名的一个文档《Linux系统移植》的根文件系统制作部分自己制作了一个cramfs的文件系统my_rootfs.cramfs,其中busybox使用的是1.1.3。把my_rootfs.cramfs烧写到板子后发 ...…

查看全部问答>

wince5.0 S3c2440官方bsp,带camera驱动

wince5.0 S3c2440官方bsp,带camera驱动: http://www.itxxh.cn/book/2440/zaxsw1565.shtml WINCE5.0系统下,OV9650 CAMERA驱动程序: http://www.itxxh.cn/book/2440/zaxsw1568.shtml…

查看全部问答>

sim卡座无电

我用的sim300模块,连不上线,后来发现模块给sim卡座供电的管脚没有电,这是什么原因?以前的时候一切都正常,最近要用了,却出毛病了。…

查看全部问答>