1. 静态数码管显示

点亮数码管需要用到P0端口和P2部分端口,P0端口负责显示要输出的数字,P2部分端口负责让哪个数码管点亮,具体的去看电路图,这次还包含了74HC245和74HC138芯片

现在让单片机数码管区域第三位的数码管显示数字5,程序如下

#include"reg52.h"

//定义P2端口
sbit LSA=P2^2; 
sbit LSB=P2^3; 
sbit LSC=P2^4;

//用数组来表示数码管上每个数字输出对应的相关电平输入
int str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};

void  Display(int Location,int Number)
{
    //利用case语句将8个数码管显示的位置一一列举
    switch(Location)   
    {
        case 1: LSC=0;LSB=0;LSA=0; break;
        case 2: LSC=0;LSB=0;LSA=1; break;
        case 3: LSC=0;LSB=1;LSA=0; break;
        case 4: LSC=0;LSB=1;LSA=1; break;
        case 5: LSC=1;LSB=0;LSA=0; break;
        case 6: LSC=1;LSB=0;LSA=1; break;
        case 7: LSC=1;LSB=1;LSA=0; break;
        case 8: LSC=1;LSB=1;LSA=1; break;
    }

P0=str[Number];
}

int main()
{
    Display(3,5); //参数1表示数码管位置,参数2表示要输出的0-9的数字
    while(1)
    {
    }
}

实验现象如下

2.动态数码管显示

这部分主要是注意延时和消除残影的问题,如不加延时的,两个数字切换的非常快,可能会导致篡位,程序如下

#include"reg52.h"

//定义P2端口
sbit LSA=P2^2; 
sbit LSB=P2^3; 
sbit LSC=P2^4;

//用数组来表示数码管上每个数字输出对应的相关电平输入
int str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};

void Delay(int time)
{
    while(time--) //while循环一次需要10us
    {
    }
}

void  Display(int Location,int Number)
{
    //利用case语句将8个数码管显示的位置一一列举
    switch(Location)   
    {
        case 1: LSC=0;LSB=0;LSA=0; break;
        case 2: LSC=0;LSB=0;LSA=1; break;
        case 3: LSC=0;LSB=1;LSA=0; break;
        case 4: LSC=0;LSB=1;LSA=1; break;
        case 5: LSC=1;LSB=0;LSA=0; break;
        case 6: LSC=1;LSB=0;LSA=1; break;
        case 7: LSC=1;LSB=1;LSA=0; break;
        case 8: LSC=1;LSB=1;LSA=1; break;
    }

P0=str[Number];

//延时一段时间,等待显示稳定,如果不加延时,就可能上一个数字和下一下篡位
    Delay(100);
    //消除数码管残影
    P0=0x00;
}

int main()
{
     //参数1表示数码管位置,参数2表示要输出的0-9的数字
    while(1)
    {
        Display(1,1);
        Display(2,2);
        Display(3,3);

}
}

实验现象如下

51单片机:数码管显示相关推荐

  1. 基于51单片机数码管显示

    基于51单片机数码管显示 ## 数码管显示原理 数码管(LED Segment Displays)由多个发光二极管封装在一起组成"8"字型的器件,引线已在内部连接完成,只需引出它们 ...

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

    51单片机数码管显示60秒倒计时(C语言) 基于普中51单片机开发板,运用定时器/计数器0和1,实现60秒的倒计时和LED灯0.5s间隔闪烁 文章目录 51单片机数码管显示60秒倒计时(C语言) 前言 ...

  3. 单片机c语言数码管显示5,51单片机数码管显示实验报告(5页)-原创力文档

    51单片机数码管显示实验 实验内容: 编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复. C语言程序 #include #de ...

  4. 51单片机数码管显示

    一.数码管静态显示 1.原理:数码管无非就是八块发光二极管集成在 了一起,如右图所示,数码管有共阴极 和共阳极数码管之分. 共阴极数码管:将八只发光二极管的负极通过一 根总线连接在了一起 , 然后每只 ...

  5. 基于51单片机1602温度显示时钟

    基于51单片机LCD1602温度显示时钟 要在1602上显示时间和温度先要了解1602是如何显示的.详情可以参考我之前的文章基于51单片机1602显示 :时间显示可以用时钟芯片DS1302,但是此次我 ...

  6. 8脚51单片机DIY时间显示+闹钟技术分享(一)

    @[8脚51单片机DIY时间显示+闹钟技术分享(一) 最近因为家里闹钟被小朋友摔坏了,所以想着买来买去还是没什么新意,不如自己做一个,这样不是更有意义吗? 那就开始吧,想着自己做就可以用最小资源来实现 ...

  7. 51单片机数码管交通灯倒计时c语言,51单片机数码管倒计时模拟交通灯汇编程序...

    /********************************************************************** 51单片机数码管倒计时模拟交通灯汇编程序 LED数码管为 ...

  8. 51单片机 外部时钟_基于51单片机的LCD12864显示模拟时钟

    今天要分享的仿真和程序是基于51单片机的LCD12864显示模拟时钟.公众号之前也分享过数字时钟,但是那些时钟都是采用数字显示的形式来显示时间,而今天分享一个采用LCD12864显示的模拟指针式时钟. ...

  9. 基于51单片机的LCD1602显示温湿度

    51单片机基础难点知识理解后,直接通过下面3个小项目可以更好理解51单片机.中断 定时器 串口甚至是基础的IO输入输出都有结合,再加上一些外设模块的学习(如1602显示屏,L298N电机驱动等) 项目 ...

  10. 【嵌入式】51单片机+1602+dht11显示温湿度

    51单片机+1602+dht11显示温湿度例程代码如下: /*****************************************************************联系:请勿 ...

最新文章

  1. Python字符编码详解
  2. 如何把opencv编译到matlab,c – 为OpenCV编译MATLAB绑定
  3. RHEL 5服务篇—使用Apache搭建web服务(四)部署AWStats网站分析系统
  4. 【转图】从可乐到NIKE 经典logo的web2.0版
  5. java中间件_Java技术分享:一致性更强的分布式数据库中间件
  6. Jquery创建JSON对象
  7. ZOJ 3228(AC自动机+修改的匹配)
  8. (转)MOMO的Unity3D研究院之深入理解Unity脚本的执行顺序(六十二)
  9. 前端初学者开发学习视频_初学者学习前端开发的实用指南
  10. django 学习 (一)
  11. .Net语言 APP开发平台——Smobiler学习日志:实现手机上常见的ListMenuView
  12. 【vjudge contest 418548】2021 BUAA Winter Training 3(Private),签到题ABCDG
  13. XenApp/XenDesktop快速部署工具- QDT for 7.6 LTSR
  14. WeUi使用手册及参考
  15. 刚知道,qq聊天的时候可以这么装逼
  16. proteus信号峰值检测仪仿真
  17. sd卡 linux分区教程,《电脑端SD卡分区 小白教程 支持ext swap 分区无需linux环境、》.docx...
  18. 条件随机场(2)——概率计算
  19. php zip提示未安装包,请大神赐教:centos7安装zip扩展成功,但是打印phpinfo未加载成功...
  20. php readfile 中文,有关php readfile()函数的文章推荐10篇

热门文章

  1. 【githubboy】一项视频自动抠图技术,强大、实时、高分辨率的人物视频抠图方法
  2. 会java 学c_先学Java再学c会简单点吗?
  3. spring boot + netty实现匿名聊天室 web版
  4. Oracle Class6-1. PL/SQL 简介(数据类型,逻辑比较,控制结构,错误处理)
  5. nacos is starting with cluster
  6. ubuntu16.10+cuda8.0+cudnn+caffe+opencv3.2+anaconda2
  7. 智慧工厂之化工厂人员定位中的智能访客管理系统-新导智能
  8. 纳米机器人最新进展(2021年)
  9. PYMOL | 制作动画
  10. python自动排版公众号_请问微信公众号推文如何实现自动排版?