单片机
返回首页

51---动态数码管

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例程---闪烁灯

相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章