51单片机数码管显示(共阴极)


1.先看一下显示的结果:


源代码:

#include <reg51.h>typedef unsigned int u16;
typedef unsigned char u8;u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极
u16 num=2021;//要显示的数字
/*延时函数*/
void delay(u16 i)
{   while(i--);
}
/*显示函数*/
void display()
{u16 x = 0;while(1){switch(x){case 0:P2 = 0x0e;P0 = smg[num / 1000];break;              //显示2case 1:P2 = 0x0d;P0 = smg[(num % 1000) / 100];break;      //显示0case 2:P2 = 0x0b;P0 = smg[(num % 1000) % 100 / 10];break; //显示2case 3:P2 = 0x07;P0 = smg[num % 10]; break;               //显示1}delay(100);//延时,增大延时我们可以看到数码管是交替点亮的P0=0x00;//消隐(消隐一定要在延时函数后)x = ++x % 4;//取模,当x=4时,通过与4取模就让x的值重新变回0}
}
/*主函数*/
void main()
{display();
}

2.如何在数码管显示小数点呢?

        对与共阴极数码管来说,直接将要显示的数字与0x80相或例如:要想在数码管上显示数字2,对于本电路图来说,直接让P0=0x5b即可; 0x5b=01011011,但怎么显示'2.'呢? 对于共阴极数码管来说,只需要让P0=0x5b | 0x80, 即P0=11011011,即点亮dp位

显示结果:
源代码:

 #include <reg51.h>typedef unsigned int u16;
typedef unsigned char u8;u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极
u16 num=2021;//要显示的数字
/*延时函数*/
void delay(u16 i)
{   while(i--);
}
/*显示函数*/
void display()
{u16 x = 0;while(1){switch(x){case 0:P2 = 0x0e;P0 = smg[num / 1000]|0x80;break;         //显示2.  只修改了此语句case 1:P2 = 0x0d;P0 = smg[(num % 1000) / 100];break;      //显示0case 2:P2 = 0x0b;P0 = smg[(num % 1000) % 100 / 10];break; //显示2case 3:P2 = 0x07;P0 = smg[num % 10]; break;               //显示1}delay(100);//延时,增大延时我们可以看到数码管是交替点亮的P0=0x00;//消隐(消隐一定要在延时函数后)x = ++x % 4;//取模,当x=4时,通过与4取模就让x的值重新变回0}
}
/*主函数*/
void main()
{display();
}

一个问题:

之前我是在proteus上进行仿真的,没有进行消隐运行结果也是正确的,但是放到开发板上就有些看不清出,添加消隐处理就正常了.由此我们要知道用proteus仿真的结果正确,但在开发板上运行就不一定正确,大家学习硬件最好还是用实物!!!.

未消隐处理:

消隐处理:


以上就是51单片机数码管显示数字及小数点了,但仅仅以共阴极数码管为例,大家还可以思考一下如何用共阳极数码管实现

proteus中数码管: 7-SEG-MPX4 (CC是共阴极,CA是共阳极)

51单片机数码管显示数字及小数点相关推荐

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

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

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

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

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

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

  4. 51单片机数码管显示

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

  5. c51数码管显示汇编语言,单片机数码管显示数字加减汇编程序

    用7SEG-MPX6-CA六位数码管显示 晶振=12MHZ,缓冲单元=30H,31H,32H,一个加一键减一键!没用31,32. MOV R7,#89H MOV DPTR,#TAB MOV 32H,# ...

  6. 【51单片机快速入门指南】2.2:任意位/任意长度数码管显示数字、小数

    目录 源码 Tube.c Tube.h main.c 效果 8位数码管 正整数 负整数 正小数 负小数 6位数码管 正整数 负整数 正小数 负小数 4位数码管 正整数 负整数 正小数 负小数 普中51 ...

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

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

  8. 51lcd显示光传感器c语言程序,基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例...

    基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例,系统由GY-30数字光照传感器.51单片机最小系统.1602液晶显示屏组成,电路简单,附件中的程序是实物验证过了的.1 ...

  9. #普中51开发板# 52单片机数码管显示5201314

    74HC138真值表(H高,L 低,倒着数) #include<reg52.h> #include<intrins.h> #define LED P0 typedef unsi ...

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

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

最新文章

  1. java和jdbc对应关系,JDBC类型与JAVA类型对应关系
  2. ASP.NET MVC 2 模型验证
  3. mysql读取表最后10条数据
  4. (仿头条APP项目)6.点击过的新闻列表文字变灰和下拉刷新与滚动加载新闻数据
  5. python编程少儿游戏编程_少儿编程课堂|python – 用游戏学编程
  6. 04_NoSQL数据库之Redis数据库:set类型和zset类型
  7. c++类对象 指针区别
  8. JAVA WEB开发环境搭建教程
  9. 验证用户输入的是不是中文名字 淘宝精品案例 元素样式设置的方式 链式编程
  10. mysql插入日期 vs oracle插入日期
  11. Spark编译报错:missing or invalid depency detected while loading class file RDDOperationScope.class
  12. Python 机器学习 利用sklearn构建决策树的实现 2
  13. Gzip, Bzip2,Xz压缩
  14. logstash收集TCP端口日志
  15. 马知恩周义仓编常微分方程定性与稳定性方法部分习题参考解答
  16. 使用Markdown写幻灯片之Marp
  17. 完美实现无限饿了么分销的方法——无感预先生成绑定渠道ID
  18. 修改IE临时文件夹(缓存)路径
  19. 我的一次创业经历--分享给希望创业的大学生们 .
  20. Android的主线程与子线程

热门文章

  1. 基于Matlab的Poisson分布,基于matlab的泊松分布的仿真.doc
  2. 电容式 指纹识别 android 智能硬件
  3. JavaScript数据类型 1
  4. 惠普服务器bios修改ilo,HPE Gen10 Plus iLO5 BIOS设置固定IP地址
  5. 华为m2青春版android7,华为揽阅m2青春版root方案 ple-703l 机油们嗨起来!
  6. 初来乍到,还请多多关照
  7. android+查看root权限管理,如何查看自己的安卓手机有没有Root权限?
  8. HTML多画面同时播放,视频两个画面同时播放,两个视频放在同一画面|视频左右或上下两个画面...
  9. 液相色谱柱PHP,浅谈液相色谱柱现代史
  10. 从零开始写一个RTSP服务器(一)RTSP协议讲解