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

举报
DS小龙哥 发表于 2021/12/10 00:36:45 2021/12/10
【摘要】 3.5 独立数码管(静态数码管)   3.5.1 数码管原理图 连线: JP10(P0)连接JP3,控制开发板最右边的一个独立大尺寸数码管。  图3-5-1 图3-5-2 开发板上这个独立的数码管刚好接在单片机的P0引脚上。 对应关系:  P0.0 -&g...

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

 

3.5.1 数码管原理图

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

 图3-5-1

图3-5-2

开发板上这个独立的数码管刚好接在单片机的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显示器提供的编码正好是一个字节。

图3-5-3

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

通过得到的编码,定义成数组,小数点默认点亮。 数字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 示例代码

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


  
  1. #include <reg51.h>
  2. //共阳极数码管编码,小数点默认点亮
  3. //数字0~9
  4. code u8 LED_Coding[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
  5. /*静态数码管显示*/
  6. void LED_StaticDisplay(u8 val)
  7. {
  8.     LED=LED_Coding[val]; //显示数字
  9. }
  10. int main()
  11. {
  12.     u8 key; 
  13.     while(1)
  14.     {
  15.         key=Array_Scan(); //检测矩阵键盘键值
  16.         if(key)
  17.         {
  18.             if(key<=9)LED_StaticDisplay(key); //数码管的显示范围只能是0~9  
  19.         }
  20. }
  21. }

文章来源: xiaolong.blog.csdn.net,作者:DS小龙哥,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaolong.blog.csdn.net/article/details/121016910

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。