【单片机】【数码管】数码管显示

这篇具有很好参考价值的文章主要介绍了【单片机】【数码管】数码管显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 

1. 数码管的显示器及其接口

单片机系统中 常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、TFT液晶显示器。本文主要是关于LED显示器的说明。

LED显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5x8、8x8点阵等)。

LED数码管根据接法可以分为共阴和共阳。

如下图中,左边是共阴接法,右边是共阳接法。共阴表示8个led的阴极接到一起,共阳是8个led的阳极接到一起。

【单片机】【数码管】数码管显示

显示数字或字符时需要编码。如果是共阴接法,那么a/b/c/d/e/f/g/dp为高电平时对应的led就会亮,编码0~F分别是:

【单片机】【数码管】数码管显示

2. 数码管静态显示原理

LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入依次字形码后,显示字形可一直保持,知道送入新字形码为止,这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。

如下为proteus仿真静态数码管,共阳极,显示0.

【单片机】【数码管】数码管显示


typedef unsigned char u8;

// code保存数据到寄存器中 共阴极码表 
u8 code segment[] = {0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};

#define LCDP1	P1
void show_LCD_static_P1()
{
	LCDP1 = (~segment[0])&0x7f;  // 共阳极显示
	while(1){}
}

 3. 数码管动态显示原理

动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。点亮数码管采用动态扫描显示。松台扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以选择限流电阻时应该略小于静态显示电路中的。

4. 操作实践

如下是普中51-单核-A2板子上的数码管模块原理图,可以看到,右上有8个数码管用来显示字符,这8个数码管一端分别与LED1~LED8连接,另一端与P0口连接,所以通过控制P0口来显示我们需要的字符;LED1~LED8通过74HC138译码器与P2^2、P2^3、P2^4连接,这三个IO口控制是哪一个LED可以显示。

【单片机】【数码管】数码管显示【单片机】【数码管】数码管显示

静态数码管显示,第一个数码管显示字符F

sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
#define LCD P0

typedef unsigned char u8;

// code保存数据到寄存器中
u8 code segment[] = {0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};

void show_LCD_static()
{
	// LED1显示字符F
	P22 = 1;
	P23 = 1;
	P24 = 1;
	P0 =  segment[15];
	while(1){}
}

显示结果:

【单片机】【数码管】数码管显示

动态数码管显示,从第一个数码管开始依次显示0,1,2,3,4,5,6,7

#include "LCD.h"
#include "reg51.h"
#include "delay.h"

sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
#define LCD P0

typedef unsigned char u8;

// code保存数据到寄存器中
u8 code segment[] = {0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};

void show_P0_0()
{
	u8 i;
	for(i=0;i<8;i++)
	{
		switch(i)
		{
			case 0:
				P22 = 1; P23 = 1; P24 = 1; break;
			case 1:
				P22 = 0; P23 = 1; P24 = 1; break;
			case 2:
				P22 = 1; P23 = 0; P24 = 1; break;
			case 3:
				P22 = 0; P23 = 0; P24 = 1; break;
			case 4:
				P22 = 1; P23 = 1; P24 = 0; break;
			case 5:
				P22 = 0; P23 = 1; P24 = 0; break;
			case 6:
				P22 = 1; P23 = 0; P24 = 0; break;
			case 7:
				P22 = 0; P23 = 0; P24 = 0; break;		
		}
		P0 = segment[i];
		delay_ms(500);  // delay.h中的延时函数
		P0 = 0;

	}
}

显示结果:

【单片机】【数码管】数码管显示

上图的连接中左边的数码管1对应的是74HC138的15pin,即Y0,也就是74HC138的ABC都是0的时候输出对应的是Y0,正好对应的是代码中P22=P23=P24=0时,显示7.文章来源地址https://www.toymoban.com/news/detail-476591.html

到了这里,关于【单片机】【数码管】数码管显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    目录 一、静态数码管显示 1、一位数码管 (1)LED数码管各段名称 (2)数码管引脚定义 (3) 共阴极(89C52RC单片机LED数码管采用共阴极方式) (4)共阳极 2、四位一体数码管 (1)四位一体数码管引脚定义 (2)上面共阴极和下面共阳极  3、数码管模块原理图详解 4、编写

    2024年02月08日
    浏览(43)
  • 51单片机静态数码管显示

    51单片机静态数码管显示 数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件。   数码管从上右下左中有ABCDEFGDP,共10个引脚,其中3、8号引脚是连接到所有二极管的阴极,A二级管对应7号和38号引脚,B二极管对应6号和38号引脚。所有阴极

    2024年02月08日
    浏览(70)
  • 51单片机入门————数码管显示

    我们在马路上看到的红绿灯,就是由数码管来实现的,就是其中可能加入了一些延时和转换 数码管是通过控制138译码器与74HC245来控制数码管的亮灭与数字的显示 我们先讨论一个数码管 数码管有共阳极和共阴极,我们现在使用的STC89C52是共阴极的,说明数码管共用阴极 上面是

    2024年02月13日
    浏览(44)
  • 单片机数码管滚动显示学号

    单片机数码管滚动显示学号 在这篇文章中,我们将学习如何使用单片机控制数码管实现学号的滚动显示效果。通过这个项目,我们将展示如何编程控制数码管,以及如何使用循环和延时函数来创建滚动显示效果。下面是代码示例和详细说明。 硬件准备: 单片机开发板(如

    2024年02月03日
    浏览(119)
  • 数码管扫描显示-单片机通用模板

    ①人的眼睛中的画面在0.02S(50Hz)左右,光源的闪烁频率高于50-60赫兹时,人眼通常无法察觉到光的闪烁; ②通过控制LED的亮灭透过模具贴纸从而控制数字和图案的亮灭; 在主函数main的while循环里调用,等标志更新显示 在2~4kHz的定时器里面调用 FreshDisplay() 映射到IO功能函数,频

    2024年02月19日
    浏览(37)
  • 单片机学习笔记---静态数码管显示

    目录 数码管是什么? 一位数码管的引脚定义 四位一体的数码管引脚定义 数码管的原理图解析 数码管怎么显示数据?(总结+代码显示) 今天开始学习数码管,它比LED和独立按键复杂一点 LED数码管是一种简单、廉价的 显示器 ,是由多个发光二极管封装在一起组成“8”字型

    2024年02月20日
    浏览(43)
  • 51单片机数码管显示0-9

    初级代码:使用延时函数,延时; 进阶代码:使用定时器,延时:51单片机定时器控制数码管显示_学习笔记吧的博客-CSDN博客 初级代码: 电路接线图:  

    2024年02月12日
    浏览(40)
  • 51单片机矩阵键盘——数码管显示

    当我们熟悉了数码管的位选与段选,并了解的矩阵键盘的扫描之后就可以编写程序了。 按下矩阵键盘S1并松开,数码管第一位(LED8)显示0;按下矩阵键盘S2并松开,数码管第一位显示1;...按下矩阵键盘S16并松开,数码管第一位显示F; 矩阵键盘扫描(输入扫描)     原理:

    2024年02月11日
    浏览(55)
  • 51单片机控制数码管动态显示

    首先打开proteus,导入8位数码管和89c51。 然后如图连线,分清断码和位码, 断码就是一个数码管的7个LED灯。 位码:就是第几位显示,由于是共阴极,所以哪位接地就显示哪位。 下面通过改变位码的接线就可以看出不同的效果 下面就编写程序,从第1位到第8位显示从0到7的八

    2023年04月21日
    浏览(46)
  • 单片机-如何让数码管动态显示

    单片机IO口输出难稳定,需要数码管与单片机连接需要增加驱动电路, 使用 74HC245 abcdefgDP并联导出  74HC245 对数码管进行驱动,P0 是输出电流 来驱动各个段的 驱动芯片 增加电阻 是为了防止电流过大烧坏数码管 。P0输出段选的 共阴 就是所有阴极 连接 在一起,连接在公共端

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包