51---数码管

1.什么是数码管

1.1、几方面看数码管

(1)作用:数码管是显示器件,用来显示数字的

(2)分类:单个(1位)、联排(2位、4位、8位)




1.2、工作原理
(1)亮灭原理(其实就是内部的照明LED,一颗数码管内部有七个led)

(2)显示数字(甚至文字)原理:利用内部的LED的亮和灭让外部的组成数字的笔画显示或者不显示,人看到的就是不同的数字。


1.3、共阳极和共阴极数码管
(1)驱动方法的差异。必须清楚一个数码管内部的8颗LED是独立驱动的。如果8颗LED的正极接在一起接到VCC上(负极分别接到单片机的不同引脚),这种接法就叫共阳极。反之如果8颗LED负极接在一起然后接到GND(正极就分别接到单片机的不同引脚)就叫共阴极。两种接法都可以驱动数码管显示,但是用来显示的单片机程序不同(共阳极时单片机0是亮,共阴极时单片机的1是亮)。

(2)驱动电流需求差异。数码管(其实就是LED)如果按照共阳极接法则单片机可以直接驱动显示,如果按照共阴极接法则单片机不能直接驱动,因为单片机的IO口提供的电流大小不够驱动数码管内部的LED显示,需要外部电路来提供一个大电流驱动的芯片来解决(74HC573芯片可以提供大电流)。


1.4、静态和动态数码管
(1)用途差异:静态数码管一般是单个;动态数码管一般是联排的。

(2)电路接法差异




1.5.让静态数码管依次显示0到f
(1)利用C语言数组

#include<reg51.h>


void delay(void)
{
   unsigned char i, j, k;
   for(i = 0; i < 100; i++)
   for(j = 0; j < 100; j++)
   for(k = 0; k < 20; k++);
   
}


void main(void)
{
   unsigned char val[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
   unsigned char i;
   while(1)
   {
      for(i = 0; i<10; i++)
 {
  P0 = val[i] ;
  delay();
  }
  }
     
   
   
   }

猜你喜欢

转载自blog.csdn.net/qq_35576988/article/details/78395490