本章博客讲述使用51单片机编写程序静态数码管显示

1.新建工程,选择芯片型号,这里注意——为了防止出现在插入头文件reg时出现某些引脚不定义的情况

可尝试切换为AT89C52型号的芯片,插入头文件即为reg52,当然,如果使用的是51型号的编译后成功的,也是可以的。

2.实现八位数码管上第三位显示6

首先看原理图,由于是第三位易知对应的是LED6

之后再看

结合两张图可以看到要使得第三位显示为6

LED6对应Y5,Y5对应的二进制为101,要让低电平Y5通电

对应由高位到低位得

    P2_4=1;P2_3=0;P2_2=1;

之后再考虑排阻P0可得:由P07到P00,abcdefg dp——0111  1101

则有

P0=0x7D;   //0111  1101

编译后的效果

注:这里的LED灯亮可能是由于引脚冲突,看数码管显示

3.同理,实现第四位显示6

只需将P2_2=0;修改即可

 P2_2=0;

4.还可以采用C语言当中的编写子函数的方式来实现——switch语句

C51子函数:将完成某一种功能的程序代码单独抽取出来形成一个模块,在其它函数中可随时调用此模块,以达到代码的复用和优化程序结构的目的

其形式为:

代码部分:

#include <REGX52.H>
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Nixie(unsigned char Location,Number)
{switch(Location){case 1:P2_4=1;P2_3=1;P2_2=1;break;case 2:P2_4=1;P2_3=1;P2_2=0;break;case 3:P2_4=1;P2_3=0;P2_2=1;break;case 4:P2_4=1;P2_3=0;P2_2=0;break;case 5:P2_4=0;P2_3=1;P2_2=1;break;case 6:P2_4=0;P2_3=1;P2_2=0;break;case 7:P2_4=0;P2_3=0;P2_2=1;break;case 8:P2_4=0;P2_3=0;P2_2=0;break;}P0=NixieTable[Number];//P0=0x7D;
}void main()
{Nixie(7,2);//Nixie(2,3);while(1){}}

case部分是进行二进制的增加,在此之前还定义了一段数组表示数码管段码表

在主函数中,可以对想要实现对第几位数码管进行修改

实现效果:

第二种方法最大的优点是:使用子函数优化程序结构

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

  1. 普中科技51单片机_【笔记】普中科技-51单片机-静态数码管显示

    #include <reg51.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u ...

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

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

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

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

  4. Proteus:单片机静态数码管显示

    题目概述: 单片机静态数码管显示. 编程: #include <reg51.h> #define uchar unsigned char #define uint unsigned int ...

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

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

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

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

  7. 51单片机 动态数码管显示

    本章博客写的内容主要围绕动态数码管显示,动态数码管显示与静态数码管显示比较稍有变化,主要在添加延时函数这点上 1.首先将上一章节使用子函数方法的代码复制过来 将Nixie( , )移到下方while循 ...

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

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

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

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

最新文章

  1. 蓝色起源送90岁《星际迷航》舰长扮演者上太空,刷新太空旅客最高年龄纪录...
  2. asp格式化日期函数
  3. 《系统集成项目管理工程师》必背100个知识点-20项目管理计划的主要用途
  4. VS2017创建Linux项目实现远程GDB调试
  5. Zepto 与 jQuery 的区别 小结
  6. 【Computer Organization笔记25】I/O:程序直接控制,程序中断方式,直接存储访问(DMA),通道控制方式
  7. win10 xampp mysql_Win10系统在本地安装XAMPP的方法
  8. 软件测试的步骤和方法
  9. Spring AOP实现原理
  10. 超图高性能分布式渲染技术解密与应用
  11. 温度对二极管伏安特性的影响
  12. 专利写作技巧以及流程
  13. 听小S教你如何瘦小腿
  14. 如何测试充电宝输出电压-20210127
  15. 【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试
  16. Vue 引入js文件并使用
  17. matlab 已实现极差波动,关于黄金期货论文范文写作 中国黄金期货价格SVR智能预测相关论文写作资料...
  18. MATLAB批量处理.nii文件----批量.nii转为jpg格式
  19. [ 数据结构 -- 手撕排序算法第四篇 ] 选择排序
  20. 要么承受自律的苦,要么承担自责的悔。

热门文章

  1. 学习英特尔线程构建模块开源2.1库
  2. 求圆形矩形面积java_Java求矩形面积和圆形面积的异常处理实例
  3. L2-025 分而治之
  4. 根据百度地图进行IP定位获取地址
  5. linux之修改静态ip,修改网卡名称为eth0,以及iso装系统后的配置ip
  6. 导入mysql 1044_MySQL导入sql文件错误#1044
  7. 金字塔pyramid
  8. 只有170字节,最小的64位Hello World程序这样写成
  9. 在…视域下是什么意思_视阈是什么意思论文范文 有关教师在社会视域中的角色认知毕业论文写作资料...
  10. 百度 oppo 滴滴出行 面试问题总结 阿里