单片机系统基础实验——LED数码管循环移位显示

  • 第一部分 前言
  • 第二部分 数码管的原理构成
    • LED数码管的结构
    • LED数码管的工作原理
    • LED数码管的字形编码
    • LED数码管的控制方式
  • 第三部分 设计项目
    • Protues仿真图
    • 仿真动态结果
    • 代码

第一部分 前言

  本次单片机基础实验将会通过在Proteus软件中画原理图,然后Keil软件下编写源程序并编译形成可执行文件.hex,下载源程序,进行Protues和Keil的联合仿真运行,最终对单片机仿真有初步的认识。

  • 通过本篇文章了解并熟悉8位数码管的电路结构、与单片机的连接方法及其应用原理
  • 学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法

第二部分 数码管的原理构成

LED数码管的结构

  由8个发光二极管构成,按照一定的图形及排列封装在一起的显示器件。其中7个LED构成7笔字形,1个LED构成小数点。如图1所示。

图1 引脚定义及1位数码管实物图

  只要控制数码管各段LED的亮灭即可显示相应的数字、字母或符号。

LED数码管的工作原理

  1. 共阳极数码管工作原理
    8个发光二极管的阳极共用一个电源的正极,阴极低电平点亮。数码管显示字符的条件:
  • 在VT端加正电源
  • (a,b,c,d,e,f,g,dp)端接低电平或“0”电平
    如图2所示

图2 共阳极LED数码管的内部结构原理图

  1. 共阴极数码管工作原理
    8个发光二极管的阴极共用一个电源的负极,阳极高电平点亮。数码管显示字符的条件:
  • 在VT端接地;
  • (a,b,c,d,e,f,g,dp)端接高电平。
    如图3所示

图3 共阴极LED数码管的内部结构原理图

LED数码管的字形编码

  要显示各种数字或字符,只需要将不同高低的电平信号送至不同的发光二极管的引脚上,将其点亮。这些用来控制LED显示的不同电平的代码称为字符的字段码。如图所示。

  共阴极与共阳极显示器的字段码是逻辑非的关系。LED字码段与引脚之间的对应关系如下表所示

字码段 D7 D6 D5 D4 D3 D2 D1 D0
LED字段 dp g f e d c b a

  共阴极数码管显示字段码如下表所示

显示字符 dp g f e d c b a 十六进制
0 0 0 1 1 1 1 1 1 3F
1 0 0 0 0 0 1 1 0 06
2 0 1 0 1 1 0 1 1 5B
3 0 1 0 0 1 1 1 1 4F
4 0 1 1 0 0 1 1 0 66
5 0 1 1 0 1 1 0 1 6D
6 0 1 1 1 1 1 0 1 7D
7 0 0 0 0 0 1 1 1 07
8 0 1 1 1 1 1 1 1 7F
9 0 1 1 0 1 1 1 1 6F
A 0 1 1 1 0 1 1 1 77
B 0 1 1 1 1 1 0 0 7C
C 0 0 1 1 1 0 0 1 39
D 0 1 0 1 1 1 1 0 5E
E 0 1 1 1 1 0 0 1 79
F 0 1 1 1 0 0 0 1 71

  共阳极数码管显示字段码如下表所示

显示字符 dp g f e d c b a 十六进制
0 1 1 0 0 0 0 0 0 C0
1 1 1 1 1 1 0 0 1 F9
2 1 0 1 0 0 1 0 0 A4
3 1 0 1 1 0 0 0 0 B0
4 1 0 0 1 1 0 0 1 99
5 1 0 0 1 0 0 1 0 92
6 1 0 0 0 0 0 1 0 82
7 1 1 1 1 1 0 0 0 F8
8 1 0 0 0 0 0 0 0 80
9 1 0 0 1 0 0 0 0 90
A 1 0 0 0 1 0 0 0 88
B 1 0 0 0 0 0 1 1 83
C 1 1 0 0 0 1 1 0 C6
D 1 0 1 0 0 0 0 1 A1
E 1 0 0 0 0 1 1 0 86
F 1 0 0 0 1 1 1 0 8E

LED数码管的控制方式

  LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位。LED数码管的驱动方式有:静态驱动、动态驱动。

  • 静态显示驱动
    也称直流驱动。每个数码管的每一个段码都由一个单片机的I/O口进行驱动。
    优点:编程简单,显示亮度高;
    缺点:占用I/O口多。
  • 动态显示驱动
    将所有数码管的段选端“a,b,c,d,e,f,g,dp ”的同名端连在一起,每个数码管的公共
    极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
    优点:占用I/O口少;
    缺点:电路设计和编程更复杂。

第三部分 设计项目

Protues仿真图

  基于上述实验项目,将会设计一单片机控制的8位数码管(共阴极或是共阳极数码管均可)显示电路,编程实现一段数字的循环左移显示,本次设计将采用共阴极数码管,在Protues中为7SEG-MPX4-Cathode,因此可以得到如下图所示的原理图。

仿真动态结果

  通过两个4位LED数码管实现数字的循环,利用74HC573和ULN2804对单片机的结果进行输出锁存,然后将结果通过数码管进行显示,其动态结果如下图所示。

  如图所示,通过在keil中输出2020 0111 CC的16进制结果从而得到相应的结果,数码管进行移位显示。

代码

Keil代码如下:

#include<reg51.h>
#define uchar unsigned char
#define uint signed int
sbit seg=P2^0;
sbit wei=P2^1;
uchar code LED_D[]={0x5B,0x3F,0x5B,0x06,0x3F,0x06,0x06,0x06,0x39,0x39};    //改变需要输入的字段码即可改变输出的数值
uchar code LED_W[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
//延时函数,消抖
void delay(uint x)
{uchar i;while(x--)for(i=0;i<150;i++);
}
//主函数
void main()
{uchar a,b;P0=0x00;seg=0;wei=0;while(1)
{for(a=0;a<10;b++,a++)
{P0=LED_D[a];seg=1;seg=0;P0=LED_W[b];if(b==7)b=-1;wei=1;wei=0;delay(150);P0=0x00;seg=1;seg=0;wei=1;wei=0;
}
}
}

  以上就是本次LED数码管显示的全部内容,希望通过本次的讲解能够加深大家对于数码管的理解。文章的内容可能存在部分不足之处,如有错误,请在评论区指出,谢谢。

基于单片机的LED数码管循环移位显示相关推荐

  1. 单片机控制LED数码管的显示

    首先我们说说LED数码管的显示原理. LED数码管是常见的显示器件.LED数码管为"8"字形的,其计8段(包括小数点段在内)或7段(不包括小数点段),每一段对应一个发光二极管,有共 ...

  2. 基于单片机病房呼叫系统数码管显示房号设计-基于单片机工业生产现场的光照强度控制设计-基于单片机多功能智能台灯设计-基于单片机二维码LCD显示设计-基于单片机多功能时钟闹钟万年历控制系统设计【毕设分享】

    1641基于单片机病房呼叫系统数码管显示房号设计 设计思路:此设计实现的功能通过按键模拟房号,当按键按下时会将房号编号发送到数目管上进行显示,并通过声光进行提示.包含的电路有:数码管显示电路.按键电路 ...

  3. c51时钟数码管显示流程图_基于单片机89C51的数码管显示时钟设计.doc

    基于单片机89C51的数码管显示时钟设计 基于单片机的数字时钟 摘 要单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉.但是却很少知道它的内部结构以及工作原理.由单片 ...

  4. avr单片机led数码管六位动态显示时分秒c语言程序,AVR单片机控制8段LED数码管同时显示 - AVR单片机8位数码管显示的程序实现(两种方法介绍)...

    AVR单片机控制8段LED数码管同时显示 这是一个简单的供单片机入门学习者练习用的8段LED数码管控制汇编程序,控制一个两位的数码管同时显示字符(动态刷新).用AVR- Studio-4 开发,在AV ...

  5. 单片机学习笔记-数码管的显示

    单片机学习笔记-数码管的显示 数码管的显示 1.首先我们来看一下开发板的原理图 由管脚分配可知,数码管的末端(也就是LED端),是由74138译码器来控制的. 2.下面是数码管显示的函数 这里我们使用 ...

  6. 51单片机控制系统的人机交互接口设计【51单片机与LED数码管的动态显示接口案例分析】

    本章节利用Keil uVision5和ISIS 7 Professional两个软件来进行仿真实验. [例]运用51单片机实现8位8段数码管的动态显示,LED数码管的段选数据由51单片机的P0口控制, ...

  7. 基于单片机的LED照明系统的设计

    本设计是基于单片机的LED照明系统的设计,主要实现以下功能: 可实现LCD1602显示光照强度,灯的状态: 可实现通过按键控制LED的开关: 可实现通过光照强度控制灯光的亮度: 可实现通过人体红外控制 ...

  8. 单片机--4个数码管循环显示数字

    单片机–4个数码管循环显示数字同时LED灯循环左移显示 这里有几个需要注意的点: 1.如果让8个数码管中几个数码管显示不同的数字,这里一定是挨个显示的,不可能同时显示不同的数字,可以让几个数码管同时显 ...

  9. 基于单片机的LED自适应调光系统的设计与实现 - 调光电路图

    电路图简介: 本文主要介绍了基于单片机的LED自适应调光系统的设计与实现.LED自适应调光系统是一种典型的绿色照明方式,与传统照明相比,具有智能.节能.环保.寿命长.安全可靠等这些优点,这是代表着照明 ...

最新文章

  1. mysql用binlog恢复数据_mysql 利用 binlog 恢复数据
  2. realloc函数在使用上要注意什么问题
  3. SQLDBCompare_Rel2.0破解手记
  4. mysql 打印_故障分析 | MySQL:5.6大事务show engine innodb status故障一例
  5. sudo命令_如何在非 sudo 用户下运行 docker 命令?
  6. 博客转移至 https://www.babac.cn/
  7. 【杂题总汇】HDU-6406 Taotao Picks Apples
  8. 17秋 软件工程 团队第三次作业 预则立他山之石
  9. 【nodejs学习】0.nodejs学习第一天
  10. 190106每日一句
  11. POJ 3744 Scout YYF I:概率dp
  12. UML活动图案例-业务流程建模
  13. java-net-php-python-64jspm自主学习试题库系统录像演示2019查重计算机毕业设计程序
  14. PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization
  15. 10Easyx图形编程
  16. Java中Arrays数组工具类的使用全解
  17. 35,UC(14) .
  18. Windows 或 Windows 服务器上的 hyper-v 中升级虚拟机版本
  19. 04 面向对象之:三大特性:继承(已讲),封装,多态。
  20. VPC NAT(SANT,NANT)实验

热门文章

  1. Java 学习 Day14
  2. SDNUOJ 1025.马踏飞燕(DFS||BFS))
  3. 拼多多回应“差评”:将起诉并索赔1000万元 所涉店铺均已屏蔽
  4. 天涯社区是怎样一步步被人遗忘的?
  5. 博士申请 | 湖南大学张子兴教授课题组招收人工智能方向博士生
  6. 第二篇 阿基米德螺旋线 小Demo 简单 易懂 实现 vc++8.0
  7. Linux命令行最常用操作(避开对于初学者来说华而不实的操作)
  8. win10计算器rsh_Win10系统有哪些计算器快捷键?快捷键的介绍
  9. 16小时讲完,Spring源码解析整套笔记
  10. PHP校园表白墙V3.0版程序源码