3.5 51单片机-独立数码管(静态数码管)

简介: 3.5 51单片机-独立数码管(静态数码管)

3.5 独立数码管(静态数码管)

 

3.5.1 数码管原理图

连线: JP10(P0)连接JP3,控制开发板最右边的一个独立大尺寸数码管。

image.png

image.png

开发板上这个独立的数码管刚好接在单片机的P0引脚上。


对应关系:  P0.0 ->A  P0.1->B  P0.2->C  P0.3->D………


3.5.2 数码管介绍


LED数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。


LED数码管常用的段数一般为7段,有的另加一个小数点 。


LED数码管根据LED的接法不同,分为共阴和共阳两类 。


当前开发板使用的数码管是共阳极。


使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。

image.png

3.5.3 对共阳极数据管进行编码

image.png

通过得到的编码,定义成数组,小数点是默认点亮。 数字0~9


code char led_buff[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};


3.5.4 Keil 51中const与code关键字


Keil 51中,code修饰的变量放在ROM(Flash)中,而const修饰的变量为只读(不可修改),放在RAM中。在Keil MDK中,如进行STM32的开发,code修饰符无法使用,使用的话会报错,此时是用const,用const修饰的变量是存放在ROM中的。


3.5.5 示例代码


下面代码实现,按下矩阵键盘,在数码管上显示当前矩阵键盘按下的键值。

#include <reg51.h>
//共阳极数码管编码,小数点默认点亮
//数字0~9
code u8 LED_Coding[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
/*静态数码管显示*/
void LED_StaticDisplay(u8 val)
{
    LED=LED_Coding[val]; //显示数字
}
int main()
{
    u8 key; 
    while(1)
    {
        key=Array_Scan(); //检测矩阵键盘键值
        if(key)
        {
            if(key<=9)LED_StaticDisplay(key); //数码管的显示范围只能是0~9  
        }
}
}
目录
相关文章
|
3月前
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
218 1
|
3月前
51单片机汇编语言点亮一位数码管,并计时(超详细分析汇编语言)
51单片机汇编语言点亮一位数码管,并计时(超详细分析汇编语言)
|
3月前
【51单片机】开发板上矩阵键盘键码在数码管上的显示,按下键盘在数码管上显示对应段码
【51单片机】开发板上矩阵键盘键码在数码管上的显示,按下键盘在数码管上显示对应段码
|
3月前
|
算法
51单片机不用定时器的数码管倒计时
51单片机不用定时器的数码管倒计时
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
【51单片机】自定义动态数码管显示(设计思路&原理&代码演示)
【51单片机】自定义静态数码管显示(设计思路&代码演示)
【51单片机】自定义静态数码管显示(设计思路&代码演示)
【51单片机】静态数码管显示(设计思路&原理&代码演示)
【51单片机】静态数码管显示(设计思路&原理&代码演示)
|
6月前
|
芯片 数据格式
【51单片机】要实现动静态数码管,你首先需要知道这些【数码管项目前置知识】
【51单片机】要实现动静态数码管,你首先需要知道这些【数码管项目前置知识】
|
6月前
|
编译器 C语言 开发者
单片机原理与应用:探索微型计算机世界
单片机原理与应用:探索微型计算机世界
53 1
|
6月前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
83 1