木有寸557

 

单片机 数码管的发光

  数码管的显示原理都一样,都靠点亮内部发光二极管来发光。TX-1C 的单片机开发板是6位数码管。数码管的引脚是10个,显示8字需要7个小段,外加一个小数点,共有8个发光二极管,还有一个公共端。公共端分为共阳极和共阴极,共阴极即8个二极管的阴极连在一起,共阳极即8个二极管的阳极连在一起。TX-1C开发板的数码管位共阴极。多为一体的数码管,内部的公共端是独立的,而负责显示什么数字的断线是全部连在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连在一起的段线可以能控制这位数码管能亮出什么数字。公共端叫作位选线,连在一起的段线叫作段选线。有了这两根线,就能通过单片机控制任意的数码管显示任意的数字。

  (1) 数码管的静态显示

         在同一时刻,位选选通的数码管显示的数字始终是相同的,因为它们的段选是连在一起的,所以送入的数码管的段选信号是相同的。数码管的这种显示方法叫静态       显示法。

        6个数码管的位选端与74HC573锁存器U2的低六位连接,锁存器的数据输入端连接到P0口。6个数码管的a、b、c、d、e、f、g、h的引脚分别连在一       起,然后与74HC573锁存器U1的数据输出端连接,锁存器的数据输入端也与P0口相连。U1 、U2的锁存端与P2口的6、7位相连。

      代码

      #include<reg52.h>

      sbit dula=P2^6;    // 申明U1锁存器的锁存端

      sbit wela=P2^7;    // 申明U2锁存器的锁存端

      void main()

      {

          wela=1;      //打开U2锁存器

          P0=0xfe;      //送入位选信号

          wela=0;      //关闭U2锁存器

          dula=1;      //打开U1锁存器

          P0=0x7f;      //送入段选信号

          dula=0;      //关闭U1锁存器

      }

      以上就是数码管静态显示的代码。

   (2)数码管的动态显示

      第一个数码管显示1,时间为0.5秒,然后关闭它。第二个数码管显示2,时间为0.5秒………………

代码如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

uchar code table_1[]={ 0x1, 0x2, 0x4, 0x8, 0x10, 0x20 };      //位选信号

uchar code table_2[]={ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 };    //段选信号

void delays(uint);    //延时函数

uint h;

void main()

{

   while(1)

 {   for( h=1; h<=6; h++)

    {    dula=1;            //打开段选

        P0=table_2[h];         // 送入段选信号

        dula=0;            // 关闭段选

        P0=0xff;          // 消影语句,每次送入段选信号后,P0口仍然保留着上次的段选数据,若不加 P0=0xff;  在执行打开位选锁存器命令后,P0口

                        段选数据会立即加在数码管上,,接下来才是再次通过P0口给位选锁存器送入位选数据。这个过程很短暂,但我们仍能看见                         数码管显示混乱的现象。加上消影语句后就能避免这样的状况发生

        wela=1;            // 打开位选

        P0=table_2[h];        //送入位选信号

        wela=0;           // 关闭位选

        delay(500);

    } 

  }  

}

void delay( uint xms)          // 延时函数  (在下篇会和锁存器一并作出叙述)

{

    uint i,j;

    for( i=mxs; i>0; i--)

      for( j=110; j>0; j--);

}

posted on 2012-03-19 15:41  小猪_你快跑  阅读(728)  评论(0编辑  收藏  举报

导航