0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机数码管静态显示

小黄1176 来源:小黄1176 作者:小黄1176 2024-02-26 11:05 次阅读

数码管静态显示其实在实际应用中很少,除非项目中就只用到了一位数码管显示,否则的话静态显示非常占用IO口。但是,静态显示又是动态显示的基础,所以,在这里我打算跟大家分享一下,数码管静态显示的工作原理编程方法。

一、电路原理

wKgaomXb_mWAXi-lAAC5jucLeQc137.png

备注:这是一个6位数码管的电路,在本项目中我们只用到其中的一个,电路中74LS04电路在这里主要是用作驱动芯片,用于提高单片机IO口的驱动能力。

二、相关知识

1、数码管的结构

wKgZomXb_-qAI4ABAAB3ektUM2Q849.pngwKgZomXb_oSAFOOBAABc6aIbJ-8856.png

数码管内部结构其实就是由8颗LED按照8自形排列组成,而根据结构的不同,数码管可分为共阳极数码管和共阴极数码管,其中把所有LED的阴极连接到一起做引出端的成为共阴极数码管,其中把所有LED的阳极连接到一起做引出端的成为共阳极数码管。

2、取码方式

数码管的使用过程中,我们通过点亮数码管的不同笔段组合,来达到显示不同数字的效果,这就是取码,段码一般按照16进制书写。而共阴极数码管和共阳极数码管的的段码也不一样。

(1)共阴极数码管的取码方式

“0”的段码:取码时a为对应地位,h对应高位

wKgZomXb_qaAcYnnAANkqLskVDc840.png

“1”的段码:取码时a为对应地位,h对应高位

wKgZomXb_tKAPAM-AAOsa4fUWN4945.png

根据这种方式我们可以总结得出,共阴极数码管的段码表

0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07
0 1 2 3 4 5 6 7
0x7f 0x6f 0x77 0x7c 0x39 0x5e 0x79 0x71
8 9 A B C D E F

如果将段码表使用c语言数组的方式书写则为:

unsigned char table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0~f

(2)共阳极数码管的取码方式

“0”的段码:取码时a为对应地位,h对应高位

wKgZomXb_vmAM_oZAAQWWlzpnfI995.png

“1”的段码:取码时a为对应地位,h对应高位

wKgZomXb_x6AF_ZvAAQqwMUhHsc988.png

根据这种方式我们可以总结得出,共阳极数码管的段码表

0xc0 0xf9 0xa4 0xb0 0x99 0x92 0x82 0xf8
0 1 2 3 4 5 6 7
0x80 0x90 0x88 0x83 0xc6 0xa1 0x86 0x8e
8 9 A B C D E F

如果将段码表使用c语言数组的方式书写则为:

unsigned char table[]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//0~f

3、数显方式

如果我们想要在数码管上显示数字,只需要把相应的段码送到IO口,即可让数码管显示。

三、例程

​#include<  reg52.h  >

#define uint unsigned int
#define uchar unsigned char

sbit LED1=P2^0;

uchar table_K[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//共阴极数码管段码表

/*-------微秒延时--------*/
void delay_us(uint z)
{
	uint x;
	for(x=z;x>0;x--);
}
/*--------毫秒延时--------*/
void delay_ms(uint z)
{
  uint x,y;
	for(x=z;x>0;x--)
	   for(y=110;y>0;y--); 
}

/*----------主函数-----------*/
void main()
{
	uchar i=1;
	P0=0x00;P1=0xff;P2=0x00;P3=0x00;  //IO口状态初始化
	while(1)
	{
    LED1=1;
		for(i=0;i<  16;i++)  //循环16次 i从0~15
		{
			P0=table_K[i]; //把0~f的段码一次送到P0口
			delay_ms(1000);//等待1秒
		}
  }
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 51单片机
    +关注

    关注

    273

    文章

    5697

    浏览量

    123125
  • 数码管
    +关注

    关注

    32

    文章

    1874

    浏览量

    90918
  • C语言
    +关注

    关注

    180

    文章

    7597

    浏览量

    136114
收藏 人收藏

    评论

    相关推荐

    通过C51单片机控制数码管显示

    电子发烧友网站提供《通过C51单片机控制数码管显示.docx》资料免费下载
    发表于 11-12 15:51 2次下载

    基于51单片机的双机通信控制数码管显示

    具体实现功能(1)双机通信系统分为通讯发送端和通讯接收端。(2)通讯发送端通过按键发送相应的数值(1-3),通讯接收端接收后通过数码管显示(1-3)。设计介绍51单片机简介
    的头像 发表于 10-22 14:10 144次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的双机通信控制<b class='flag-5'>数码管</b><b class='flag-5'>显示</b>

    数码管显示屏的静态显示编程是什么

    数码管显示屏的静态显示编程是一种简单的显示方式,它指的是在任意时刻,数码管上的所有段(a, b,
    的头像 发表于 08-28 17:14 459次阅读

    基于51单片机TEA5767收音数码管显示设计

    这是基于51单片机TEA5767收音数码管显示设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软
    发表于 06-27 11:42 16次下载

    基于51单片机数字时钟数码管显示设计

    本资源内容概要:       这是基于51单片机数字时钟数码管显示设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(exc
    发表于 06-25 10:42 0次下载

    基于51单片机密码锁数码管显示设计

    本资源内容概要:       这是基于51单片机密码锁数码管显示设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(exce
    发表于 06-25 10:05 3次下载

    基于51单片机数码管数字钟电路图及程序

    本资源内容概要:       这是基于51单片机数码管数字钟电路图及程序设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开) 。本资源适合人群
    发表于 06-18 10:14 0次下载

    基于51单片机0-20V电压表4094驱动数码管显示电路图及程序

    本资源内容概要:       这是基于51单片机0-20V电压表4094驱动数码管显示电路图及程序设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(ke
    发表于 06-17 14:22 0次下载

    基于51单片机的电子钟【调时,DS1302,数码管,独立按键】(仿真)

    基于51单片机的电子钟【调时,DS1302,数码管,独立按键】(仿真)
    的头像 发表于 04-10 00:41 2207次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的电子钟【调时,DS1302,<b class='flag-5'>数码管</b>,独立按键】(仿真)

    基于51单片机的电子钟【整点报时,6数码管,独立按键】(仿真)

    基于51单片机的电子钟【整点报时,6数码管,独立按键】(仿真)
    的头像 发表于 04-10 00:37 880次阅读
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的电子钟【整点报时,6<b class='flag-5'>数码管</b>,独立按键】(仿真)

    51单片机8位数码管显示学号程序编写思路

    51单片机是一种非常经典的单片机型号,具有广泛的应用领域。我们可以利用51单片机的IO口来控制8位数码管
    的头像 发表于 01-04 15:21 7003次阅读

    单片机是如何控制数码管显示各种字符的?

    单片机是一种集成电路,它由中央处理器、存储器、输入输出接口和定时器等组成。它用于在电子设备中控制各种功能,包括数码管显示数码管是一种常见的显示
    的头像 发表于 12-15 10:22 1727次阅读

    单片机是如何控制数码管显示各种字符的?

    单片机控制数码管显示各种字符的过程是一个相对复杂的过程,涉及到硬件电路设计和软件编程两个方面。下面我将详细介绍单片机如何控制数码管
    的头像 发表于 12-13 10:47 2058次阅读

    51单片机中断系统介绍

    51单片机中断系统介绍与运用外部中断系统触发数码管显示数字的代码实验
    发表于 12-05 09:10 2次下载

    51单片机的超声波测距,并用74HC595驱动数码管显示超声波测距的距离

    个人是小白,实在不会写,麻烦大佬们帮忙写一个程序,实现51单片机的超声波测距,并用74HC595驱动数码管显示超声波测距的距离!!!
    发表于 11-23 15:19