历史上的今天
返回首页

历史上的今天

今天是:2024年10月27日(星期日)

正在发生

2021年10月27日 | #51单片机#数码管静态与动态显示

2021-10-27 来源:eefocus

数码管的静态显示与动态显示

学习数码管的静态与动态显示,首先要清楚,同一个时刻,单片机只能使能一个数码管。


动态显示:轮流点亮数码管,利用人眼的视觉暂留现象,造成多个数码管被点亮的视觉体验。


静态显示:可理解为非动态显示,即不会轮番点亮数码管。在多个数码管的显示中,静态显示的意义不大。


记住:100Hz无闪烁!!!

只要刷新频率大于100Hz,即刷新时间小于10ms,就可以做到无闪烁,这也是动态扫描的硬性指标。


静态显示的演示代码:


#include


//数码管静态显示


unsigned char code LedChar[10]={//数码管显示的数字0~9

0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};


unsigned char cnt = 0;

unsigned char sec = 0;


sbit DigitalTube = P1^0;;


void main()

{

   //点亮数码管

   DigitalTube = 0;

   //设置定时器

   TMOD = 0X01;

   TH0 = 0XB8;

   TL0 = 0X00;

   TR0 = 1;


   while(1)

   {

P0 = LedChar[sec];


    if(TF0 == 1)

  {

    TF0 = 0;

TH0 = 0XB8;

    TL0 = 0X00;

cnt++;

if(cnt>=50)

{

cnt = 0;

sec++;

if(sec>=10)

{

sec = 0;

}

}

  }

}

}


动态显示的演示代码


#include


//数码管动态显示


unsigned char code LedChar[10]={//数码管显示的数字0~9

0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};


unsigned char flag ;


sbit DigitalTube1 = P1^0;

sbit DigitalTube2 = P1^1;


void main()

{

TMOD = 0X01;

TH0 = 0Xe7b8;

TL0 = 0X0000;

TR0 = 1;


flag = 0;


while(1)

{

if(flag == 0)

{

DigitalTube1 = 0;

DigitalTube2 = 1;

P0 = LedChar[1];

}

else if(flag == 1)

{

DigitalTube1 = 1;

DigitalTube2 = 0;

P0 = LedChar[2];

}


if(TF0 == 1)

{

TF0 = 0;

TH0 = 0Xe7b8;

TL0 = 0X0000;


flag = !flag;

}

}

}


动态显示效果图:

在这里插入图片描述

推荐阅读

史海拾趣

FILTRONETICS Inc公司的发展小趣事

进入21世纪后,FILTRONETICS意识到全球化市场的重要性,开始积极开拓国际市场。公司加强了与国际客户的沟通与合作,参加了多个国际电子展会,展示了公司的技术和产品。同时,公司还在海外设立了分支机构,以便更好地服务当地客户。通过不懈的努力,FILTRONETICS成功打入多个国际市场,并赢得了众多国际客户的信赖和支持。

Accetek公司的发展小趣事

Accetek公司深知人才是企业发展的核心竞争力。因此,公司一直注重人才引进和团队建设工作。公司通过与高校合作、举办招聘会等方式吸引了一批批优秀的人才加入。同时,公司还建立了完善的培训机制和激励机制,为员工的成长和发展提供了良好的平台。这些优秀的人才为公司的技术创新和市场拓展提供了有力的支持。

Charcroft Electronics Ltd公司的发展小趣事

Charcroft Electronics Ltd公司深知人才是企业发展的核心力量。因此,公司注重人才培养和团队建设,通过内部培训、外部引进等方式,打造了一支高素质、专业化的员工队伍。这支队伍不仅具备丰富的行业经验和专业技能,还具备创新意识和团队协作精神,为公司的持续发展提供了有力的人才保障。

Hendon Semiconductors公司的发展小趣事

随着电子产品的不断小型化和集成化,表面贴装技术(SMT)成为了电子制造行业的重要趋势。Hendon Semiconductors紧跟这一趋势,不断提升其表面贴装和精密制造能力。公司引进了先进的生产设备和测试仪器,确保产品的质量和可靠性。同时,Hendon Semiconductors还加强了对生产过程的监控和管理,通过严格的质量控制体系确保每一片电路板都符合客户的要求。

Banner Engineering公司的发展小趣事

随着电子行业的快速发展,Banner Engineering公司意识到必须不断进行技术升级和产品创新,以满足市场的不断变化。因此,公司加大了研发投入,不断推出新的传感器技术和产品。其中,公司的光电传感器、激光测距仪等产品在市场上表现突出,成为行业的领先产品。同时,公司还拓展了产品线,涵盖了视觉系统、安全光幕等多个领域,进一步增强了公司的市场竞争力。

DINTEK公司的发展小趣事

面对日益严峻的环境问题,Banner Engineering公司积极践行绿色环保理念,推动企业的可持续发展。公司在生产过程中采用了环保材料和工艺,减少了对环境的污染。同时,公司还致力于开发节能高效的传感器产品,帮助客户降低能源消耗和减少碳排放。此外,公司还积极参与公益活动和社会责任项目,为社会和环境做出积极贡献。

这些故事展示了Banner Engineering公司在电子行业发展中不断创新、拓展市场、提升质量、践行环保理念的发展历程。正是这些努力使公司成为了电子行业中具有影响力的企业之一。

问答坊 | AI 解惑

μCOS-II 在51单片机

μCOS-II是个不错的操作系统,体积小,可装在8位,16位,32位CPU上…

查看全部问答>

PCB布线的几点经验

1、输入端与输出端的边线应避免相邻平行, 以免产生反射干扰。必要时应加地线隔离;两相邻层的布线要互相垂直,平行容易产生寄生耦合。 2、地线>电源线>信号线,通常信号线宽为:8mil~12mil;电源线为50mil~100mil。对数字电路 ...…

查看全部问答>

公交车字符串移动显示

   公交车上那个长字符串移动,并且随时切换,且都是点阵做起来的。不知用的是什么处理器?    然后,移动怎么个原理? 感觉自己实现起来很难。…

查看全部问答>

EVC中是不是不支持settimer的SLIDER_TIMER参数??

EVC中是不是不支持settimer的SLIDER_TIMER参数??         mSliderTimer = SetTimer(SLIDER_TIMER, 100, NULL); 报错是:error C2065: \'SLIDER_TIMER\' : undeclared identifier…

查看全部问答>

mobile c++有人做过电话功能吗?如何拒绝来电?

mobile c++有人做过电话功能吗?如何拒绝来电?…

查看全部问答>

努力了几天,STM32终于快要输出SVPWM了

晚上回家测试波形是否正确, 软仿好向没问题了!整个算法一次耗时,4.125us,在10KHz的PWM时占用CPU资源4.125%,硬件是可能更长一点儿,晚上在报告.执行的算法:   模拟的角度发生器,   电压变化自补尝 &nbs ...…

查看全部问答>

ADI实验室电路DIY项目指南

报名参与:『ADI实验室电路DIY大赛』正式启动!https://bbs.eeworld.com.cn/thread-293726-1-1.html ADI实验室电路品种繁多,涉及面很广,如何选择合适的DIY项目可能是件容易令人困扰的事,但深究起来,其实可玩性是很大的,从今天开始,我将陆续 ...…

查看全部问答>

大家帮看看为什么DeviceIoControl访问OID_802_11_BSSID_LIST老是失败

如题,下面一段程序中,DeviceIoControl访问OID_802_11_BSSID_LIST老是失败(见下面红色),也就是说bResult一直等于0;为什么?请教牛人!!!可能的问题出现在哪?为什么第二个DeviceIoControl失败?#include \"stdafx.h\"#include <windows.h ...…

查看全部问答>