51---动态数码管

发布者:ShimmeringStar最新更新时间:2020-03-31 来源: eefocus关键字:动态数码管  段码端 手机看文章 扫描二维码
随时随地手机看文章

1.1、什么是动态数码管

(1)数码管还是原来的数码管(共阳极或共阴极均可);动态数码管有两端:COM端和段码端

(2)段码一侧还是接一个单片机端口

(3)COM(共极)接单片机一个IO口,多个联排数码管的COM共同接一个IO端口

分析对比静态和动态数码管,发现本质区别是:静态数码管中只要给了段码数码管就一定工作(显示只取决于段码端),动态数码管中段码端给了段码值后还需要COM端配合才能点亮数码管。


1.2、动态数码管如何工作

(1)在某一特定时间段中,联排数码管中只有一个数码管在工作,其他均在休息(不工作)

(2)COM端选择哪个数码管工作,段码端输出这个数码管要显式的数字的段码;延时;COM端选择下一个数码管工作,同时段码端改输出这个数码管要显示的数字的段码;延时;COM端选择下一个数码管工作······

(3)快速切换工作的数码管,则人看到的是所有的数码管都在亮(其实亮度是比静态驱动低的)。

(4)动态数码管利用了人眼的视觉暂留

第一,宏观上所有的数码管都是同时亮的,所以人以为所有数码管同时工作,所以多个数码管可以合在一起来显示(譬如显示12345678)

第二,微观上数码管是依次亮的,我们可以给不同的数码管送不同的段码,所以不同的数码管可以显示不同的数字。所以相当于8个数码管的显示是独立的。

1.3、8个联排数码管一起显示520.1314


#include


void delay(void)

{

   unsigned char i, j;

   for(i = 0; i < 20; i++)

   for(j = 0; j < 10; j++);

   

}



void main(void)

{

   unsigned char shumaguan[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd,0xfe};   //依次选择数码管1-8

   unsigned char duanxuan[8] = {0x6d, 0x5b, 0x3f, 0x80, 0x06, 0x4f,  0x06, 0x66}; //依次显示520.1314

   while(1)

   {

      unsigned char i = 0;

 for(i = 0; i<8; i++)

 {

    P2 = shumaguan[i];

P0 = duanxuan[i];

delay();

P0 = 0x0;

}

}

}

关键字:动态数码管  段码端 引用地址:51---动态数码管

上一篇:51---数码管
下一篇:51例程---闪烁灯

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved