51单片机入门教程(3)——数码管显示

  • 一、LED数码管简介
  • 二、数码管静态显示
  • 三、数码管动态显示

特别鸣谢:HFUTer-朱聪强

一、LED数码管简介

LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成的器件。常见的LED数码管为“8”字型的,共计8段。每一段对应一个发光二极管。

数码管有共阳极共阴极两种

  • 共阴极: 数码管的发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。
  • 共阳极: 数码管的发光二极管的阳极连在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

二、数码管静态显示

数码管静态显示就是无论多少位LED数码管,同时处于显示状态

为了使数码管显示不同的符号或数字,只需要把某些段发光二极管点亮就可以了。
假设在共阴极的数码管上显示字符'0',需要将a、b、c、d、e、f置为高电平,即数码管八位输入为0011 1111,对应的16进制数为0X3F。所以我们只需要在程序中将0X3F赋值给对应的端口,如下:

//假设数码管与P0端口相连接
P0 = 0X3F;//显示字符‘0’

按照上述方法,显示各种字符的8段LED数码管的段码如下:

搭建仿真电路如下

例程如下:

/******************************************************************************
* 名称:单只数码管循环显示0~9
* 说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示
******************************************************************************/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int//共阳数码管编码表
uchar code table1[] =
{0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};//共阴数码管编码表
uchar code table2[] =
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//延时
void DelayMS(uint x)
{uchar t;while(x--) for(t=0;t<120;t++);
}//主程序
void main()
{uchar i=0;P0=0x00;for(; i < 10; ++i){P0 = table2[i];if(i == 9)i = 0;DelayMS(300);}while(1);
}

三、数码管动态显示

如果有两位的数码管,每个数码管要显示不同的字符,那么电路该怎么搭建呢?
像这样???

可以是可以,但是占用了太多端口,如果要同时显示4位、8位数码管,单片机的端口显然就不够用了。
因此,对于多位数码管,经常使用动态扫描的方法来显示:
无论在任何时刻只有一个LED数码管处于显示状态,利用人的视觉暂留效应,依次显示每个不同的数码管。某一时刻,只有一位LED数码管被选通显示,其余位则是熄灭的,人眼看到的是若干位稳定的同时显示的字符
搭建仿真电路如图:

例程如下:

/******************************************************************************
* 名称:8只数码管动态显示多个不同字符
* 说明:数码管动态扫描显示0~7。
******************************************************************************/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//共阳数码管编码表
uchar code table1[] =
{0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};//共阴数码管编码表
uchar code table2[] =
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
//延时
void DelayMS(uint x)
{uchar t;while(x--) for(t=0;t<120;t++);
}
//主程序
void main()
{uchar i,wei=0x80;while(1){for(i=0;i<8;i++){     P0=0xff;P0=table1[i];  //发送段码wei=_crol_(wei,1);P2=wei;         //发送位码DelayMS(2);}}
}

编译、烧录,实验效果如图:

51单片机入门教程(3)——数码管显示相关推荐

  1. 51单片机入门之五:数码管显示(动态),单片机驱动数码

    本文旨在介绍单片机入门的基础知识,为初接触或即将接触单片的新手提供一个入门指导.本文章会陆续推出,隔几天一个章节.所使用单片机为ATMEL公司的AT89C52,软件为PROTEUS和KEIL;只提供原 ...

  2. 51单片机入门教程(6)——外部中断

    51单片机入门教程(6)--外部中断 一.外部中断 1.1 中断 1.2 外部中断 二.中断优先级 一.外部中断 1.1 中断 关于中断的概念在上一篇博客中已经提到了.(传送门:51单片机入门教程(5 ...

  3. 51单片机入门教程(5)——定时器中断

    51单片机入门教程(5)--定时器中断 一.中断的概念 二.定时器中断 2.1 软件延时的不足 2.2 中断寄存器 2.2.1 中断允许控制寄存器 IE 2.2.2 定时器工作方式寄存器 TMOD 2 ...

  4. 51单片机学习笔记-2数码管显示

    2 数码管显示 [toc] 注:笔记主要参考B站江科大自化协教学视频"51单片机入门教程-2020版 程序全程纯手打 从零开始入门". 注:工程及代码文件放在了本人的Github仓 ...

  5. 51单片机入门教程学习笔记

    基于江科大自化协B站教学视频<51单片机入门教程-2020版 程序全程纯手打 从零开始入门> 一.单片机介绍 单片机,英文Micro Controller Unit,简称MCU 内部集成了 ...

  6. 51单片机入门教程(1)——点亮一个LED灯

    51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...

  7. 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真

    基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...

  8. 51单片机AD转换pcf8591+数码管显示+Proteus仿真二

    51单片机AD转换pcf8591+数码管显示+Proteus仿真二

  9. 基于51单片机的8位数码管显示的可调时电子时钟

     基于51单片机的8位数码管显示的可调时电子时钟 本人大二本科生,第一次发东西,功能比较简单,代码有点复杂,希望能有大神指正. 基于51单片机的不可调时间的时钟显示,晶振为11.0592MHZ,60H ...

最新文章

  1. 2018年12月14日 函数 总结
  2. mllib调参 spark_从Spark MLlib到美图机器学习框架实践
  3. 117. Populating Next Right Pointers in Each Node II
  4. python学习之正则表达式练习:编写一个计算器
  5. php7 有参数类型,PHP7中的可空返回类型
  6. PHP特级课视频教程_第二十七集 Coreseek安装与测试_李强强
  7. 演变模型_开放组织的演变
  8. LIRe 源代码分析 1:整体结构
  9. 最全最新cpu显卡天梯图_电脑显卡天梯图2019排行榜——2019显卡CPU天梯图排行榜...
  10. 生信技能树linux虚拟机,【生信技能树】Linux练习
  11. java 文档注释生成_Java的文档注释之生成帮助文档的实例
  12. 合同扫描管理大师——为合同管理而生
  13. 小程序发送短信验证码完整工具
  14. 用Python执行Django数据迁移时报!(1091错误及解决方法)
  15. android高德地图绘制多边形_android 高德地图画多边形,已知中心点 宽高画矩形 ,实际距离 千米转地图坐标距离...
  16. QDir的mkpath和mkdir的区别
  17. html页面布局A4模板,A4页面就像html中的布局
  18. 2022第二届网刃杯网络安全大赛-ICS
  19. 芜湖小学生计算机水平等级测试竞赛,[转载]2012年芜湖市小学计算机水平等级测评试卷(logo语言版)...
  20. matlab吸波材料源程序,针状四氧化三铁包覆铁镍合金/石墨片吸波材料制备方法与流程...

热门文章

  1. 配置好JDK后,jemeter依旧启动报错
  2. MT2712 平台AGL6 demo适配
  3. JavaCV的摄像头实战之三:保存为mp4文件
  4. android tv 库,Android TV Leanback 简介
  5. 梦回吴哥—给神灵最奢华的供奉 吴哥窟
  6. 《梁启超家书》笔记一人生惟常常受苦乃不觉苦,不致为苦所窘耳
  7. 70%嵌入式从业人员月薪3000-8000元
  8. 最小二乘求解点云平面方程及其对应法向量
  9. 乞力马扎罗的雪 - 笔记
  10. 江博士:我的局域网配置