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

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

3天内不再提示

51单片机知识分享之数码管模块开发

GReq_mcu168 来源:互联网 作者:佚名 2017-10-30 09:42 次阅读

数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见数码管有10跟管脚。其中有两个公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种。使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。参照下图:

通过给每个管脚高低电平即可控制数码管的亮灭。还是举个例子吧,以共阴极数码管为例,让数码管显示数字0,只要个abcdef六个管脚输入一个高电平即可让数码管显示数字0。

LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。通过以上介绍,大家应该清楚数码管显示的基本原理了吧。下面我看些具体的东西。

下面三个图为开发板的原理图,此开发板用了两个74HC573寄存器可减少单片机io口的使用。锁存器U8用来控制位选,即控制哪个数码管。U9控制段选,即控制数码管显示什么。数码管和锁存器接在单片机的P0口。

接下来看静态显示和动态显示的程序。

1、数码管静态显示:

  1. #include

  2. #defineucharunsignedchar

  3. #defineuintunsignedint

  4. sbitdula=P2^6;//声明U9锁存器的锁存端

  5. sbitwela=P2^7;//声明U8锁存器的锁存端

  6. /*//点亮第一位数码管

  7. voidmain()

  8. {

  9. wela=1;//打开U8锁存端

  10. P0=0xfe;//送入位选信号

  11. wela=0;//关闭U8锁存端

  12. dula=1;//打开U9锁存端

  13. P0=0x7f;//送入段选信号

  14. dula=0;//关闭U8锁存端

  15. while(1);

  16. }*/

  17. //八个数码管循环显示0~F

  18. ucharcodetable[]={

  19. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

  20. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

  21. uchari;

  22. //N毫秒延时

delay_ms(uint ms) { uint i,j; for(i=ms;i>0;i--) for(j=114;j>0;j--);}void main(){wela=1;P0=0x00;wela=0;while(1){for(i=0;i<16;i++){dula=1;P0=table[i];dula=0;delay_ms(500);}}}

2、动态数码管

  1. #include

  2. #defineucharunsignedchar

  3. #defineuintunsignedint

sbit d=P2^6;sbit w=P2^7;

  1. delay_ms(uintms)

  2. {

  3. uinti,j;

  4. for(i=ms;i>0;i--)

  5. for(j=114;j>0;j--);

  6. }

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 }; //八个数码管显示0~Funsigned char code list[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数码管的位选void main(){uchar i;while(1){for(i=0;i<8;i++){w=1;P0=list[i]; //循环点亮第i位数码管w=0;d=1;P0=table[i];d=0;delay500ms();} }}/* 程序优化之前的代码  w=1;P0=list[0]; //点亮第一位数码管w=0;d=1;P0=table[0];d=0;delay500ms();w=1;P0=list[1]; //点亮第二位数码管w=0;d=1;P0=table[1];d=0;delay500ms();w=1;P0=list[2]; //点亮第三位数码管w=0;d=1;P0=table[2];d=0;delay500ms();w=1;P0=list[3]; //点亮第四位数码管w=0;d=1;P0=table[3];d=0;delay500ms();w=1;P0=list[4]; //点亮第五位数码管w=0;d=1;P0=table[4];d=0;delay500ms();w=1;P0=list[5]; //点亮第六位数码管w=0;d=1;P0=table[5];d=0;delay500ms();w=1;P0=list[6]; //点亮第七位数码管w=0;d=1;P0=table[6];d=0;delay500ms();w=1;P0=list[7]; //点亮第八位数码管w=0;d=1;P0=table[7];d=0;delay500ms();*/

怎么样,通过以上学习大家应该学会数码管的基本原理了吧,接下来大家就可以控制数码管显示数字和英文字母了。

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

    关注

    273

    文章

    5699

    浏览量

    123256
  • 数码管
    +关注

    关注

    32

    文章

    1876

    浏览量

    90983
  • 数码管模块开发

    关注

    1

    文章

    1

    浏览量

    877

原文标题:51单片机之数码管

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    51单片机开发数码管案例分享

    目前单片机是掌握嵌入式开发技术的基础,而单片机的种类多样,因此单片机的控制思想应该是我们学习的中心。本篇文章以51
    发表于 11-22 06:37

    51单片机数码管部分

    带您从零学51单片机数码管部分 目录1 数码管应用2 数码管内部结构及硬件原理图3
    发表于 02-10 14:36 155次下载

    基于51单片机数码管万年历

    基于51单片机数码管万年历基于51单片机数码管万年历基于
    发表于 11-18 17:16 124次下载

    51单片机数码管显示学号

    51单片机数码管显示学号,学学数码管吧。初学者多看看。
    发表于 04-05 16:15 54次下载

    数码管的介绍和使用51单片机应用数码管的程序免费下载

    本文档的主要内容详细介绍的是数码管的介绍和使用51单片机应用数码管的程序免费下载。
    发表于 07-05 17:41 5次下载
    <b class='flag-5'>数码管</b>的介绍和使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>应用<b class='flag-5'>数码管</b>的程序免费下载

    51单片机数码管动态显示

    51单片机数码管的动态显示51单片机,用三个7段共阴极数码管动态显示0~99,每隔0.5s刷新
    发表于 11-11 13:51 26次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>:<b class='flag-5'>数码管</b>动态显示

    51单片机:动态数码管

    简要地写了如何使用51单片机控制动态数码管的过程,内含模块信息、源代码、原理图等。
    发表于 11-11 20:06 15次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>:动态<b class='flag-5'>数码管</b>

    51单片机实验程序——数码管知识,静态与动态显示

    注意:本实验采用清翔电子51单片机开发板(同样的51单片机开发板,不同型号,内部设计会有一定差异
    发表于 11-12 14:06 14次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>实验程序——<b class='flag-5'>数码管</b><b class='flag-5'>知识</b>,静态与动态显示

    蓝桥杯51单片机独立按键控制数码管单片机开发初学者必学会】

    目前单片机是掌握嵌入式开发技术的基础,而单片机的种类多样,因此单片机的控制思想应该是我们学习的中心。本篇文章以51
    发表于 11-13 14:06 8次下载
    蓝桥杯<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>之</b>独立按键控制<b class='flag-5'>数码管</b>【<b class='flag-5'>单片机</b><b class='flag-5'>开发</b>初学者必学会】

    51单片机学习笔记数码管1显示数字0以及使用蜂鸣器

    51单片机学习笔记数码管1显示数字0以及使用蜂鸣器
    发表于 11-14 14:36 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>学习笔记<b class='flag-5'>之</b><b class='flag-5'>数码管</b>1显示数字0以及使用蜂鸣器

    51单片机-矩阵键盘模块-长短按键&数码管显示-模块化编程模板

    51单片机-矩阵键盘模块-长短按键&数码管显示-模块化编程模板
    发表于 11-21 09:21 28次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>-矩阵键盘<b class='flag-5'>模块</b>-长短按键&<b class='flag-5'>数码管</b>显示-<b class='flag-5'>模块</b>化编程模板

    51单片机数码管显示60秒倒计时(C语言)

    51单片机数码管显示60秒倒计时基于普中51单片机开发板,运用定时器/计数器0和1,实现60秒的
    发表于 11-21 17:21 71次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>数码管</b>显示60秒倒计时(C语言)

    基于51单片机数码管电子钟

    方案介绍51单片机数码管电子钟可以通过按键设置时间以及12小时制或24小时制;数码管显示时间。
    发表于 12-15 17:11 52次下载

    单片机数码管驱动学习笔记

    51单片机数码管驱动笔记
    发表于 11-06 17:23 1次下载

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

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