码迷,mamicode.com
首页 > 其他好文 > 详细

51单片机的初了解(12)

时间:2019-01-12 17:53:33      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:了解   时间段   显示   数码管   数码   ...   clu   strong   控制   

动态数码管:段码一侧仍接一个单片机端口,COM(共级)接单片机一个IO口,多个联排数码管的COM共同接一个IO端口。

 

静态和动态数码管的本质区别:静态数码管只给段码数码管就一定工作(只取决于段码端),动态数码管需段码值及COM端配合。

 

动态数码管工作:

(1)某一特定时间段,只有一个数码管工作,其他不工作。

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

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

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

 

动态数码管的段码表显示:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71

 

#include  <reg51.h>

void  delay(void)

{

      unsigned  char  i,j;

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

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

}

 

unsigned  char  duanma[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

 

unsigned  char  weima[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

 

void  main  (void)

{

      while(1)

  {

    unsigned  char  i=0;

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

    {

      P2=weima[i];           //依次选择数码管1-8

      P0=duanma[i+1];     //依次显示1-8

      delay ();

      P0=0x00;               //消隐

    }

  }

}

 

38译码器:由3个二进制进行编码的硬件设备。

作用:用3个IO口来控制8路输出

驱动数码管意义:用3路输入来控制数码管的8路位码,省5个IO口。

连接方式:J15和J16连接;ABC分别接P1.0、P1.1、P1.2三个。

 

 

#include  <reg51.h>

 

void  delay(void)

 

{

 

      unsigned  char  i;

 

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

 

}

 

 

 

unsigned  char  duanma[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

 

 

 

unsigned  char  weima[8]={0,1,2,3,4,5,6,7};

 

 

 

void  main  (void)

 

{

 

      while(1)

 

  {

 

    unsigned  char  i=0;

 

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

 

    {

 

      P1=weima[i];           //依次选择数码管1-8

 

      P0=duanma[i+3];     //依次显示1-8

 

      delay ();

 

      P0=0x00;               //消隐

 

    }

 

  }

 

}

 

 

 

51单片机的初了解(12)

标签:了解   时间段   显示   数码管   数码   ...   clu   strong   控制   

原文地址:https://www.cnblogs.com/zzz2333/p/10260230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!