1. 数码管静态、动态显示原理

静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高

动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的电阻阻值

2.原理图

3. 静、动态数码管程序

一、实现现象:下载程序后数码管静态显示0。

#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;  //对数据类型进行声明定义

typedef unsigned char u8;

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

/*******************************************************************************

* 函 数 名       : main

* 函数功能 : 主函数

* 输    入       : 无

* 输    出     : 无

*******************************************************************************/

void main()

{

LSA=0;

LSB=0;

LSC=0;//控制38译码器的Y0输出低电平

P0=smgduan[1];

LSA=1;

LSB=0;

LSC=0;//控制38译码器的Y0输出低电平

P0=smgduan[1];

while(1);

}

二 、实现现象:下载程序后数码管从右至左显示0-7。

#include "reg52.h"

typedef unsigned int u16;  //对数据类型进行声明定义

typedef unsigned char u8;

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

/*************************************

* 函 数 名      : delay

* 函数功能    : 延时函数,i=1时,大约延时10us

************************************/

void delay(u16 i)

{

while(i--);

}

/*************************************

* 函 数 名       : DigDisplay

* 函数功能     : 数码管动态扫描函数,循环扫描8个数码管显示

*************************************/

void DigDisplay()

{

u8 i;

for(i=0;i<8;i++)

{

switch(i) //位选,选择点亮的数码管,

{

case(0):

LSA=0;LSB=0;LSC=0; break;//显示第0位

case(1):

LSA=1;LSB=0;LSC=0; break;//显示第1位

case(2):

LSA=0;LSB=1;LSC=0; break;//显示第2位

case(3):

LSA=1;LSB=1;LSC=0; break;//显示第3位

case(4):

LSA=0;LSB=0;LSC=1; break;//显示第4位

case(5):

LSA=1;LSB=0;LSC=1; break;//显示第5位

case(6):

LSA=0;LSB=1;LSC=1; break;//显示第6位

case(7):

LSA=1;LSB=1;LSC=1; break;//显示第7位

}

P0=smgduan[i];//发送段码

delay(100); //间隔一段时间扫描

P0=0x00;//消隐

}

}

/*********************************************************

* 函 数 名       : main

* 函数功能      : 主函数

* 输    入        : 无

* 输    出        : 无

***********************************************************/

void main()

{

while(1)

{

DigDisplay();  //数码管显示函数

}

}

---基于普中科技51单片机开发板普中科技51单片机开发板

51单片机数码管滚动显示学号_静、动态数码管动态显示相关推荐

  1. 51单片机数码管滚动显示学号_数协微课 | LED数码管与51单片机应用

    遇见工学,学在工学 停课不停学 数协电子组教学微课 它又来了 让我们开始学起来吧! 本期学习内容 LED数码管的结构与工作原理及相关原理图介绍 51单片机的应用:静态数码管显示.动态数码管显示 LED ...

  2. 51单片机数码管滚动显示学号_单片机数码管显示0到9程序代码

    /* 名称:单只数码管循环显示 0~9 说明:主程序中的循环语句反复将 0~9 的段码送至 P0 口,使数字 0~9 循环显示 */ #include #include #define uchar u ...

  3. 51单片机数码管滚动显示学号_51单片机四位数码管4个LED灯4个按键实现多种功能?...

    任务描述:用89C51单片机实现如下功能:<初始状态为数码管显示2020,四个灯灭. 1.电路有四个控制按键,四个灯,四个数码管: 2.按键1,按下,,第一个数码管开始从0-9递增,同时第一个灯 ...

  4. 8只数码管滚动显示单个数字

    /* 名称:8只数码管滚动显示单个数字 说明:数码管从左到右依次滚动显示0~7,程序通过每次仅循环选通一只数码管 */ #include<reg51.h> #include<intr ...

  5. 数码管显示1到8c语言,单片机控制八只数码管滚动显示1~8 附PROTEUS软件仿真图

    数码管显示是每一个单片机初学者都必须学的,而单片机驱动数码管的数字循环显示实验,又是单片机基础中的基础,同时也是学好C语言编程的关键,此实验在硬件上可以弄清楚单片机驱动原理和数码管的显示原理,在软件上 ...

  6. 基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298M芯片控制直流电机正反运转的项目

    基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的项目 一.前言 1.基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的 ...

  7. 基于51单片机8位竞赛抢答器_倒计时可调+LED跑马灯

    基于51单片机8位竞赛抢答器_倒计时可调+LED跑马灯仿真设计 (程序+proteus仿真+报告) Proteus仿真版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C ...

  8. 51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    51单片机DS18B20温度报警器proteus仿真设计_可调上下限 (仿真+源码+原理图+报告) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/ ...

  9. 基于51单片机十字路交通灯仿真_黄灯闪烁_正常模式+夜间模式+紧急模式

    基于51单片机十字路交通灯仿真_黄灯闪烁+夜间+夜间 目录 基于51单片机十字路交通灯仿真_黄灯闪烁+夜间+夜间 演示视频 基本功能: 仿真图 程序 程序代码 程序讲解 倒计时的产生 红黄绿灯状态处理 ...

最新文章

  1. unix odbc php 连接sqlserver,Ubuntu下通过unixODBC连接MS SqlServer2005
  2. Github | NumPy手写全部主流机器学习模型
  3. android Adapter剖析理解
  4. 数据蒋堂 | 多维分析预汇总的存储容量
  5. Mac搭建Git服务器—开启SSH
  6. c4d流体插件_【C4D】流体插件详细讲解
  7. 【完整示例】采用jenkins pipeline实现自动构建并部署至k8s
  8. java web微服务是什么_java微服务是什么
  9. Java实现提现到微信的功能
  10. [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...
  11. 蓝桥杯省赛2017年Java组B组
  12. 190506每日一句
  13. 认知无线电matlab代码详解,Cognitive-Radio--Matlab-code 认知无线电, 通信, 仿真代码 238万源代码下载- www.pudn.com...
  14. 计算机如何通过手机连接网络打印机,手机连接电脑打印机怎么设置
  15. 关于成功和努力的一些想法
  16. python做t检验_Python实现--假设检验:T检验
  17. Word2016中文字间距突然变大了是怎么回事?
  18. C++项目实战-先把项目跑起来看看
  19. 【愚公系列】2022年04月 微信小程序-实时音视频录制
  20. 从消息推送来看,华为、小米做得最好

热门文章

  1. 电商平台接入第三方支付接口之微信支付接入订单系统
  2. 星环云原生数据湖,为企业精准决策提供全方位技术支撑
  3. ZEMAX知识点:景深概念及计算公式推导
  4. CSV文件与json文件转换实例
  5. python猜单词游戏_python实现猜单词游戏
  6. c#file过滤多种格式_用C#做软件:[1]文件过滤器怎么用
  7. xPC信号采集和分析(2)
  8. 手机号 电话号码 邮箱 验证
  9. 如何在SQL中实现排序间接
  10. oppo手机在哪看电池寿命