资讯详情

51单片机:数码管(静态+动态)

先不解释静态和动态的区别,看完就明白了(主要是我的菜,解释不清楚)。

单片机上没有静态数码管模块,虽然没有,但仍然可以 使用动态数码管电路中的一个来学习静态数码管显示。

数码管简介:

数码管51单片机上的数码管,通俗一点讲就是多个led组装在一起,照亮和组装数字管led根据发光二极管单元的连接方式,可分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极连接在一起形成公共阳极(COM)在应用数码管和共阳数码管时,应使用公共极端 COM 接到 5V,当一个字段发光二极管的阴极低电时,相应的字段会点亮,反之亦然。

共阴数码管是指将所有发光二极管的阴极连接在一起形成公共阴极(COM)在应用数字管和共阴数字管时,应使用公共极端COM 接到地线GND 上,当某个字段发光时 二极管的阳极为高电平时,相应字段就点亮,反之就不亮。

我的单片机是共阴数码管,原理图如下:

数字管驱动芯片and译码器:

因为共阴数码管靠单片机 IO口输出电流点亮,但单片机 I/O口难以输出稳定、大的电流,因此数字管与单片机连接时需要增加驱动电路。可采用拉电阻法或专用数字管驱动芯片,如 74HC573、74HC245等,输出电流大, 电路接口简单

我的译码器是74HC138.(译码器有点脑壳,只需了解原理即可)。

静态数码管显示:

因此,如果您想显示单个数字管,您只需要字段即可对应led点亮。

例如,显示0,就是abcdef亮,g和Dp不亮,Dp是最高位,a二进制是0011 十六进制0111x3f。本原理可推出常用字符段选,代码表如下:

不研究138译码器的原理,直接编写代码,点亮左数第二个数字管(LED7),那么138译码器的配置:C=1,B=1,A=0。(C是高位,110进制转换是6,0123456,第7个数)用这种方法控制哪个显示,有没有巧妙?

#include<reg52.h>  typedef unsigned char u8;  sbit K1=P2^2; sbit K2=P2^3; sbit K3=P2^4;  u8 code number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,            0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //ram资源宝贵 ,code它的功能是告诉单片机存储我定义的数据ROM(程序存储区),写入后不能更改 //这个code可要可不要 void main() {  K3=1;  K2=1;  K1=0;                   //LED7显示  while(1)  {   P0=number[1];    //显示1  } } 

动态数码管显示:

上面显示的静态数码管使用了138译码器以外的8个I/O如果你想全部显示8个,你需要64个I/O口,单片机根本没有那么多资源。

因此,使用138译码器实现数码管的动态刷新显示,switch-case是核心。

#include<reg52.h>  typedef unsigned char u8;  sbit K1=P2^2; sbit K2=P2^3; sbit K3=P2^4;  u8 code number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,            0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};  void delay(u8 t) {  while(t--); }  void dtxs(u8 i,x) {  switch(i)   {    case 1:K3=0;K2=0;K1=0;break;       case 2:K3=0;K2=0;K1=1;break;       case 3:K3=0;K2=1;K1=0;break;          case 4:K3=0;K2=1;K1=1;break;       case 5:K3=1;K2=0;K1=0;break;       case 6:K3=1;K2=0;K1=1;break;       case 7:K3=1;K2=1;K1=0;break;       case 8:K3=1;K2=1;K1=1;break;   }         P0=number[x];  delay(10);  P0=0x00;   }  void main() {  while(1)  {   dtxs(1,9);   dtxs(2,8);     ///单片机最后两个显示89  } } 

孟新在路上,制作起来不容易。如有错误,请在评论区纠正。各位帅气逼人,美如天仙,颜值出众的看官点赞,求求求。(网上卑微求赞)

标签: 26k1电阻电阻9k1

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台