单片机数码管显示原理

时间:2023-03-13作者:佚名

  小灯是一种简单的LED,给我们视觉效果只能通过亮和灭来表达简单信息。而这节课我们要来学习一种表达更加明确的器件,数码管。

  1、数码管的基本介绍

  先给大家提供一张原理图看一下,如图1所示。

单片机数码管显示原理

图1 数码管原理图

  这是比较常见的数码管的原理图,我们板子上一共有6只数码管。前边有了LED小灯的学习,数码管学习就会轻松的多了。从图1能看出来,数码管共有a,b,c,d,e,f,g,dp这8个段,而实际上,这8个段每一段都是一个LED小灯,所以数码管就是由8个LED小灯所组成的。我们看一下数码管内部结构图。

单片机数码管显示原理

图2 数码管结构图

数码管分为共阳数码管和共阴数码管,所谓的共阴数码管就是8只LED小灯的阴极是接在一起的,也就是阴极是公共端,由阳极来控制小灯是否亮灭。同理,共阳数码管就是阳极是接到一起的,大家可以仔细研究下图1。细心的同学也会发现,数码管上边有2个com,实际上就是我们数码管的公共端。为什么有2个,我个人认为,一方面有2个可以起到对称的效果,刚好是10个引脚,另外一个方面,公共端通过的电流较大,我们初中就学过,并联电路电流之和等于总电流,用2个com可以把公共电流平均到2个引脚上去,降低线路承受的电流。

从我们板子的电路图上能看出来,我们所用的数码管是共阳数码管,如图所示。

单片机数码管显示原理

图3 共阳数码管电路

  他们的com是接到了正极上,当然了,和LED小灯电路类似,也是由74HC138控制了三极管的导通来控制整个数码管的电流,我们先来看DS1这个数码管。原理图上可以看出来,控制DS1的三极管是Q17,控制Q17的引脚是LEDS0,对应到74HC138上边就是Y0端的输出。

单片机数码管显示原理

图4 74HC138控制图

  我们现在的目的是让LEDS0这个引脚输出低电平,相信大家现在可以独立根据前边学到的内容把ADDR0,ADDR1,ADDR2,ADDR3,ENLED这4个输入状态写出来,现在大家不要偷懒,都去根据138的手册去写一下,不需要你记住这些结论,但是遇到就写一次,锻炼过几次后,遇到同类芯片自己就知道如何去解决问题了。

  数码管通常是用来显示数字的,我们板子上的6个数码管,习惯上我们称之为6位,那控制位选择的就是74HC138了。而数码管内部的8个LED小灯我们称之为数码管的段,那么数码管的段选择(即该段的亮灭)是通过P0口控制,经过74HC245驱动。

  2、数码管的真值表

  数码管的8个段,我们直接当成8个LED小灯来控制,那就是a、b、c、d、e、f、g、dp一共8个LED小灯。我们通过图1可以轻而易举的看出来,如果我们点亮b和c这两个LED小灯,也就是数码管的b段和c段,其他的所有的段都熄灭的话,就可以让数码管DS1显示一个数字1,那么这个时候实际上P0的值的二进制就是0b11111001,十六进制就是0xF9。那么我们写一个程序进去,看看让数码管显示一下看看。

#include //包含寄存器的库文件

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

void main()

{

unsigned char j = 0;

unsigned int i = 0;

ENLED = 0;

ADDR0 = 0;

ADDR1 = 0;

ADDR2 = 0;

ADDR3 = 1; //74HC138开启三极管Q17

while(1) //程序死循环

{

P0 = 0xF9; //打开数码管b和c段

}

}

  大家把这个程序编译一下,下载到单片机里会发现,最右侧的数码管成功显示1这个数字。

  同样的方法,我们可以把其他的数字都成功的在数码管上显示出来,而数码管显示的数字对应给P0的赋值,我们叫做数码管的真值表。我们来列一下我们这个电路图的数码管真值表,注意,这个真值表里显示的数字都不带小数点。

  表1 数码管真值表

数字

0

1

2

3

4

5

6

7

真值表

0xC0

0xF9

0xA4

0xB0

0x99

0x92

0x82

0xF8

数字

8

9

A

B

C

D

E

F

真值表

0x80

0x90

0x88

0x83

0xC6

0xA1

0x86

0x8E

  大家可以把上边那个数码管显示1的那个程序中的P0的赋值随便修改成我们表5-1中的真值表里的数字试试看,把数码管显示的数字显示出来。

  3、数码管的静态显示

  从第三课我们学习74HC138以后,我们了解到74HC138同时一次只能让一个输出口为低电平,也就是在一个时刻内,我们只能让一个数码管显示,始终选通数码管并且可以根据我们的P0总线的信号来改变这个数码管的值,我们可以理解为数码管的静态显示。

  数码管静态显示是对应动态显示而言的,静态显示对于一两个数码管还行,多个数码管,静态显示实现的意义就没有了。这节课我们先用一个数码管的静态显示来实现一个简单的秒表,为下节课的动态显示打下基础。

  先来介绍一个51单片机的关键字code。我们前边课程定义变量的时候,一般用到unsigned char或者unsigned int这两个关键字,这样定义的变量都是放在我们的单片机的RAM中,我们在程序中可以随意去改变这个变量的值。但是还有一种常数,我们在程序中要使用,但是却不进行对这个值的改变,这种值我们可以加一个code关键字修饰一下,修饰完毕后,这个值就会存储到我们的程序空间flash中,这样可以大大节省我们单片机的RAM的使用量,毕竟我们的RAM空间比较小,而程序空间是很大的。比如我们现在要使用的数码管真值表,我们来看一下我们下边的这个程序。

#include //包含寄存器的库文件

sbit LED = P0^0;

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

unsigned char code LedChar[] = {

0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,

0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8e

}; //用数组来存储数码管真值表,下一课详细介绍数组

void main()

{

unsigned char counter = 0;

unsigned char j = 0;

ENLED = 0; ADDR0 = 0; ADDR1 = 0;

ADDR2 = 0; ADDR3 = 1; P0 = 0XFF; //74HC138和P0初始化部分

TMOD = 0x01; //设置定时器0为模式1

TH0 = 0xB8;

TL0 = 0x00; //定时值初值

TR0 = 1; //打开定时器0

while(1)

{

if(1 == TF0) //判断定时器0是否溢出

{

TF0 = 0;

TH0 = 0xB8; //溢出后,重新赋值

TL0 = 0x00;

counter ;

if(50 == counter) //判断定时器0溢出是否达到50次

{

counter = 0; //counter清0,重新计数

P0 = LedChar[j ]; //把数组里的对应值送给P0

if(16 == j) //当显示到F后,归0重新开始

{

j = 0;

}

}

}

}

}

相关阅读

基于LM78xx的单输出电源电路图

该电源非常简单,适用于模拟或数字类型的设备。电源的主要特性: 电压:5 V、6 V、8 V、9 V、12 V 或 15 V 电流:1 A 稳压:是 该单输出电源电路采用的稳压器是相当著名的LM78xx固定型。...
2023-08-29
基于LM78xx的单输出电源电路图

电工必备知识:接地电阻测试仪测量接地电阻方法详解

接地电阻测试仪,又称接地电阻测量仪或接地电阻表、接地摇表等,是一种专门用于测量各种接地装置接地电阻值的仪表。 接地电阻测试仪通常采用电流-电压法,其测量原理可以简单归纳...
2024-08-19
电工必备知识:接地电阻测试仪测量接地电阻方法详解

研读2024年最新《供电营业规则》 用电用户违规用电行为的办理

就供用电常见问题,根据2024年最新《供电营业规则》的规定,作一研读和解析。问题汇集如下: 1.用户逾期不交电费,从哪天开始算是逾期? 2.用户连续六个月不用电是不是必须销户? 3.临...
2024-08-21
研读2024年最新《供电营业规则》 用电用户违规用电行为的办理

常见的三相无刷直流电动机驱动电路

  无刷直流电动机 需要有相应的驱动电路才能工作。下面介绍几种常见的三相无刷直流电动机驱动电路。    1.星形联结三相半桥驱动电路   星形联结三相半桥驱动电路如图10-...
2023-06-27
常见的三相无刷直流电动机驱动电路

单相变压器与三相变压器的区别说明

有关单相变压器与三相变压器的几点区别,三相变压器是输入三相对称交流电,输出三相对称交流电,单相变压器就是输入单相交流电,输出单相交流电,下面与电工之友小编一起来看...
2023-06-26
单相变压器与三相变压器的区别说明

热销商品

手术衣一次性防护服打农药防尘实验服参观服加厚透气无纺布隔离衣

手术衣一次性防护服,作为一种重要的医疗防护用品,广泛应用于医院、实验室等场所。它采用加厚透气无纺布制成,具有优良的防尘、防污、防病毒能力,能有效保护医护人员免...
14

欧普照明led灯泡e27/e14大小螺口超亮家用节能灯螺旋暖白光球泡

欧普照明LED灯泡,适用于E27和E14两种常见螺口,是您家用照明的理想选择。这款灯泡采用先进LED技术,亮度超群,瞬间点亮,无需等待,为您提供明亮舒适的光环境。同时,它节能环...
3.59

LED柜内照明灯 AC220V 4W 7W配电箱导轨式 LL10-W 高压柜内照明灯

LED柜内照明灯AC220V 4W/7W配电箱导轨式LL10-W是一款专为高压柜、配电箱等封闭电气设备设计的紧凑型照明产品。采用高效LED光源,功耗低(4W/7W可选),亮度高,寿命长,节能...
7

密封胶条包邮耐磨耐高温耐腐蚀圆柱棒丁晴/氟胶实心硅胶胶条红色

本品采用优质丁腈橡胶(NBR)或氟橡胶(FKM)及实心硅胶材质制成,呈红色圆柱棒状,具备卓越的耐磨、耐高温(-40℃至+200℃以上,氟胶可达250℃)、耐腐蚀性能,适用于酸、碱、油类等...
1

小木锤木锤子实木木榔头圆头木锤实木棰木头锤子木柄锤黄檀手工锤

小木锤采用优质黄檀木精心打造,通体实木结构,质地坚硬、纹理细腻,手感温润舒适。圆头设计兼顾敲击与整形功能,适用于木工、雕刻、家具组装及日常维修等场景。木柄经精...
3.4

网站栏目