【51单片机】七段数码管显示实验

  • 前言
  • 一、兵马未动,粮草先行——认识七段数码管
    • 1、关于显示器
    • 2、七段数码管
    • 3、七段数码管的结构
    • 4、数码管显示方法
  • 二、数码管显示程序
    • 1、静态显示
      • 效果
    • 2.动态显示
      • 效果
  • 总结

前言

继上次仿真实验——【51单片机】矩阵键盘线反转法实验仿真之后,尽管也对点阵LED进行了学习,但是,点阵LED的显示效果不佳(仿真时的色彩、明亮程度等),加上大多数时候我们在计算器上看到的是七段数码管,所以在学习了学校课程之后,我也进行了尝试。这次主要是记录七段数码管的使用方法,在此之后,我考虑把键盘扫描(线反转法)、七段数码管、80C51结合起来,把整个计算器的功能完善,也算是完成一个小项目。

因为我认为光学理论只是很容易忘记,且容易磨灭兴趣,所以在学习过程中以做一个计算器为目标,循序渐进地学习,缺什么知识就补充什么知识,就像前几次所作的一样:
【51单片机】矩阵键盘线反转法实验仿真
【51单片机】点阵LED的显示实验
【51单片机】矩阵键盘逐行扫描法仿真实验+超详细Proteus仿真和Keil操作步骤
下面是这次七段数码管的学习记录。

一、兵马未动,粮草先行——认识七段数码管

1、关于显示器

我们常见的显示器一般分为LED、LCD和CRT,当然除此之外还有其他种类的显示器。其中:

  • LED是发光二极管,核心原理是半导体的电光转化,在电光转化过程中发热很少,相对白炽灯更节能,目前常用作照明工具;
  • LCD是液晶显示器,核心原理是液晶(介于液体和晶体的一种物质)的各向异性使特定区域透光、部分区域不透光来呈现画面;
  • CRT是阴极射线管,常用在示波器和老式电视机上,核心原理是控制电子束的偏转角来控制电子打在荧光屏上的不同位置,使之出现我们想要的图案。

2、七段数码管

今天要说的就是LED中的一员——七段数码管。七段数码管也叫七段LED显示器,是由数个LED组成的阵列,并封装在一个标准的外壳内。

如图,七段数码管通常有七段,但现在为了表示小数,加入了小数点,所以其实变成了名字叫七段数码管的八段数码管。图上a、b、c、d、e、f、g、dp则是每段的名字。cs管脚类似于片选信号。
我们只需要点亮特定的管脚就能形成一个数字或者字母。

3、七段数码管的结构


如图是七段数码管的内部结构,将图中的二极管按特定阵列排布就得到了常见的数码管。

  • 共阴极:顾名思义,这是将二极管的阴极连接到同一条导线上,只要某路地阳极变为高电平,该路LED就会被点亮。
  • 共阳极:二极管地阳极连接到一条到线上并连接电源。当某路阴极变为低电平,该路地LED就会亮起。

4、数码管显示方法

七段数码管显示也有两种方式,分别是静态显示和动态显示。

  • 静态显示:在静态显示系统中,每一位显示器都应该有各自地锁存器、译码器和驱动器锁存器,如果软件译码,译码器也可以省略。锁存器用来所存待显示数字的BCD码,所以每次显示输出后都能保持不变。但是占用的位数很多,每一位需要8根数据线。
  • 动态显示:在动态显示系统中,微处理器要定时地向各个显示器进行扫描,只要扫描速率足够快,由于视觉暂留现象就会给人以恒定显示的表现。动态显示可以减少硬件的使用,但是需要微处理器一直为它工作。

二、数码管显示程序

1、静态显示

静态显示用到的元件有:74LS273(锁存器)×4、80C51、7SEG-MPX1-CA(七段数码管)×4、RESPACK-8(电阻)、GROUND、POWER和BUTTON。
连接线路如图:

静态显示的代码如下:

#include <reg51.h>unsigned int d[4]={0xA4,0xC0,0xA4,0xf9};//共阳极的数码管显示的数字,一次是2、0、2、1
unsigned int cs[4]={0x0E,0x0D,0x0B,0x07};//片选,低电平时,锁存器打开,可以写入数据。高电平时锁存
void main(void){ int i;EA=1;//开中断EX0=1;//开外部中断0INT0=1;//下降沿触发INT0中断for(i=0;i<4;i++){P2=cs[i];//打开一个锁存器P0=d[i];//向该锁存器写入数据}P2=0xff;//所有锁存器锁存CLK置高电平}void int0() interrupt 0{//终端服务程序P2=cs[0];P0=0x8E;
}

效果

2.动态显示

动态显示用到的元件有:8051、7SEG-MPX4-CA(4位七段数码管)、RESPACK-8(电阻)、GROUND、POWER和BUTTON。
接线如图:

动态显示的代码如下:

#include <reg51.h>unsigned int d[4]={0x5B,0x3f,0x5B,0x06};//共阴极的数码管,输出为静态时的反码,由与所用的七段数码管内部不同所致。
unsigned int cs[4]={0x0E,0x0D,0x0B,0x07};//与静态不同,4位7段数码管的片选信号不由锁存器决定,自带的片选管脚功能为高电平选中
void delay(int n){//延时程序int i;int j;for(i=0;i<n;i++)for(j=0;j<120;j++);
}
void main(void){ int i;EA=1;EX0=1;INT0=1;while(1){//因为是动态扫描,所以必须不停地扫描for(i=0;i<4;i++){P2=cs[i];P0=d[i];delay(10);}}}void int0() interrupt 0{P2=cs[0];P0=0x71;
}

效果


总结

以上就是两种类型的七段数码管(共阴极和共阳极)的两种不同的显示方式(静态和动态)。这里对七段数码管的学习,我会用到计算器的制作中,加以巩固。也希望和小伙伴们一起学习,有时间我也会多多分享学习的知识,记录学习过程。

【51单片机】七段数码管显示实验+详细讲解相关推荐

  1. 51单片机七段数码管显示时钟无按键控制—①—74HC595版

    参考链接: 51单片机七段数码管显示时钟加按键控制-③-74HC595版 51单片机七段数码管显示时钟加按键控制-②-74HC595版 文章目录 一.实验内容: 二.实验分析: 三.仿真图: 四.源代 ...

  2. c语言实现7段数码管显示,七段数码管显示实验.doc

    七段数码管显示实验 单 片 机 实 验 报 告 实验九 七段数码管显示实验 实验目的 学习七段数码管的工作原理: 学习数码管与8051单片机的接口方法: 掌握动态扫描显示技术. 实验原理 如图4.9- ...

  3. 51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真

    51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真 本实验通过51单片机读取DS18B20温度传感器的温度,然后通过数码管显示,并通过串口,将读取到的温度数据发送出去. 本案例需要使 ...

  4. 51单片机实现数码管显示小数

    51单片机实现数码管显示小数 要求 1 Proteus 面向编程的模型搭建 2 代码实现 2.1. 实现数码管刷新 2.2 对小数进行分解的函数 3 测试用例 4 仿真结果 要求 要求1:根据整数部分 ...

  5. 51单片机控制数码管显示

    前言 今天学习51单片机的数码管模块 我的学习板上面的数码管是4为一体由12个引脚控制的模块. 今天就编程控制它显示我们想要的输出. 数码管本质上是由8个LED拼接而成的,他们分别叫做a,b,c,d, ...

  6. 普中51单片机按键-数码管显示

    基于普中单片机按键-数码管显示 简介 1.硬件部分 普中单片机开发板 数码管 独立按键 2.软件部分 keil软件 硬件部分 普中单片机开发板 数码管 独立按键 (这些都是开发板的最基本的配置) 软件 ...

  7. 51单片机动态数码管显示自己学号

    实验题目:使用51单片机实现动态数码管显示自己8位学号,例如20220018 在此原理图又分两种连接方式: 第一种是8位数码管接38译码器来减少端口使用. 第二种是,没有端口要求接好就可以那就是,把位 ...

  8. 51单片机动态数码管显示时间+protues仿真

    项目场景: 纯小白 第一次写文章 写的不好请见谅 做51单片机数码管显示时间实验的时候protues 仿真出现了问题 问题描述 做51单片机数码管显示时间实验的时候protues 仿真出现了问题 仿真 ...

  9. 基于51单片机的数码管显示方案

    这一次给大家带来的项目是课堂作业级别的51单片机数码管显示,本次的项目着重于讲解原理,让大家明白单片机的io对于外界设备的控制是如何进行的. 共阳极和共阴极数码管的差异 (1)驱动方法的差异.一个数码 ...

最新文章

  1. mysql buffer size_优化mysql之key_buffer_size设置
  2. plsql连接不上64位oracle,plsql develope连接64位Oracle 11g出错解决方案(图)
  3. Expected a default value of type Tensor on parameter residual:
  4. java表达式语法格式为_2009(选修)JavaWeb模拟试卷(2011-2012)
  5. Matlab命令集--常用字符串函数
  6. Mac cnpm装包时提示Error: EACCES: permission denied解决办法
  7. Qt生成的exe中为什么会带有不该有的盾牌?
  8. PureMVC在Unity游戏开发中的应用
  9. Linux kill 杀死指定进程
  10. Ripple_vJZ
  11. 微信sdk 隐藏右上角菜单项
  12. 若依集成ueditor富文本编辑器
  13. Eclipse — 如何快速生成servlet类和配置文件(web里)
  14. Eclipse SVN 忽略文件或文件夹
  15. 【UCOSIII操作系统】硬件初始化篇(1)硬件初始化以及开始运行系统
  16. 牛客网——Java刷题篇
  17. python 相关系数(全)
  18. Pancake的IFO解读
  19. 工程经济—成本与费用
  20. 独家!了不起的UP系列产品,不一样的开发板—UP Board(一)

热门文章

  1. UNITY物体上下漂浮工具
  2. 2019年总结回顾 ~ 开心!评上CSDN博客专家-100篇博文回顾人工智能的前行之路!
  3. NMS by Representative Region: Towards Crowded Pedestrian Detection by Proposal Pairing
  4. VMware配置Ubuntu 编写c程序
  5. mac安装brew(国内)
  6. 北京筑龙出席《中国招标》30周年座谈会暨理事年会并进行分享
  7. 你看到的好片子,原来藏着这么多黑科技……
  8. 苏缇雅专注女士内衣 欲做中国的“维多利亚的秘密”
  9. E4X - 维基百科,自由的百科全书
  10. NBUT 1119 Patchouli's Books (STL应用)