51单片机数码管的显示(三)

目录

一、LED数码管介绍

 二、数码管点亮的基本原理与思路

三、代码的实现

1、静态数码管的显示

 2、动态数码管的显示

(1)数码管的消影

(2)编程代码


一、LED数码管介绍

1、LED 数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“ 8” 字型的器件

2、数码管的引脚定义(一个数码管

3、数码管点亮的方式

 共阴极(89C52RC单片机LED数码管采用共阴极方式)

中间是二极管,电流只能从下面流向上面,所有接口共用一个阴极,上面接口接地,

给下面接口输入1时,LED二极管亮;输入0时,LED二极管灭

 4、四位一体的数码管

 

 原理:控制DIG1~DIG4接地,选中我们想要点亮数码管LED灯,因为我们是共阴极的方式,所以另一端进行输入1高电平操作,可以点亮我LED灯,下端接出来的引脚控制我们8字数码管的某一个LED发光二极管,在我们选中DIG1接地时,我们给下端0110 0000时,LED段B,C亮,这是第一个LED数码管会显示1;

 二、数码管点亮的基本原理与思路

1、数码管的模块原理图详解

(1)想要点亮数码管的LED灯首先我们要先选中你想要点亮的第几个数码管,也就是图中所示的LED1~LED8

(2)LED1~LED8的另一个端口接在了我们138译码器上面,由138译码器进行控制

 138译码器的工作原理:Y0~Y7 有上划线,代表低电平有效,如果没有上划线,表示高电平有效。通过138译码器,能够使由左侧P22、P23、P24三个端口来控制选择右边的8个端口LED1~LED8.左下角G1、G2A和G2B为使能端,当G1接VCC,G2A和G2B接地,138译码器才会工作。

 (3)我们选中想要点亮的第几个数码管后,输入我们想要点亮的数字

我们的开发板接在了74HC245芯片上,74HC245为双向数据缓冲器,右上角VDD是电源接VCC,OE为使能端口,低电平有效,接地时芯片才开始工作,左下角GND为接地。左侧A0和右侧B0为一 一对应的关系,左上角DIR为控制数据方向端口,如果DIR接高电平是将左侧数据A0~A8送到右侧B0~B8,如果DIR接低电平,是将右侧数据B0~B8送到左侧A0~A8,由于在电路板上LE始终与VCC连接,因此这里74HC245的作用是将左侧数据A0~A8送到右侧B0~B8

  数码管段码表

 (4)使用74HC245芯片的作用

       由于数码管为共阴极,给数码管下面接口输入阳码时,LED才亮,但是直接将P0~P7的高电平输入到数码管时,89C52RC单片机的I/O口是弱上拉类型,单片机高电平驱动能力有限,输出的最大电流不能太大,而低电平驱动能力更强一些。因此通过从P0~P7的数据,经过74HC245,就会使输入数码管的电流更小,这样驱动能力会更强一些

三、代码的实现

1、静态数码管的显示

 2、动态数码管的显示

(1)数码管的消影

在Nixite(Location,Number)函数中,Location左边数字,段选控制选择哪个数码管亮;Number右边数字,位选控制数码管显示的值

函数运行过程为(第一个函数)位选、段选、(第二个函数)位选、段选、(第三个函数)位选、段选。

由于人的视觉暂留效果,并且没有加延时,单片机运行速度太快,在上个函数的段选和下个函数位选之间会发生显示数据串位的问题,如下图所示

所以为了消除串位的现象,需要在每一个函数段选后,将其消0,这样就能实现动态数码管显示

(2)编程代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值