当前位置: 首页 > news >正文

51单片机——数码管

一、数码管原理图

cb9b34a00c4f4cfb96c1011ee785ae5d.png

我们发现,总共有8个数码管。

它们的上面接8个LED,用来控制选择哪个数码管。例如要控制第三个数码管,就让LED6为0,其他为1,那LED又接到哪呢?

二、LED

c0257021fd0d4e89988d53940a504800.jpg

 由图可以看出,这个一个138译码器,我们通过控制P22,P23,P24进而控制8个LED。例如要让第三个数码管LED6亮,LED6对应Y5,5的二进制是101,所以让P22=1,P23=0,P24=1。

三、数码管显示

90afe739f5534cf2b84d46c1780a9929.png

 通过一二,我们可以选择哪个数码管,现在要控制选择的数码管的显示。

我们可以发现每个数码管都有a,b,c,d...,正好对应下面8条线a,b,c,d...,而a,b,c,d...又对应左边P00,P01...

例如要显示6,需要让afgedc亮,b,dp不亮。

a对应P00,所以P00=1。

b对应P01,所以P01=0。

cd亮,对应P02,P03=1。

。。。。

最后,P0=0111 1101=0x7D

四、代码

#include <STC89C5xRC.H>

unsigned char NixieTable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71, 0x00};

void Nixie(unsigned char Location,Number)

{

 switch(Location)

 {

  case 1:

   P24=1;P23=1;P22=1;break;

  case 2:

   P24=1;P23=1;P22=0;break;

  case 3:

   P24=1;P23=0;P22=1;break;

  case 4:

   P24=1;P23=0;P22=0;break;

  case 5:

   P24=0;P23=1;P22=1;break;

  case 6:

   P24=0;P23=1;P22=0;break;

  case 7:

   P24=0;P23=0;P22=1;break;

  case 8:

   P24=0;P23=0;P22=0;break;

 }

 P0=NixieTable[Number];

}

 

void main()

{

// P24=1; //Controls a nixie tube

// P23=0;

// P22=1;

// P0=0x7D; //value is 6

 Nixie(3,6);

 while(1)

 {

  

 }

}

自定义Nixie函数,负责选择数码管和显示数字。传入两个参数,第一个参数代表第几个数码管,第二个参数代表显示数字几。

Nixie(3,6),3对应Location,代表第三个数码管。由本篇第二节可知,第三个数码管对应LED6,LED6对应101。

6对应显示数字6,由本篇第三节可知,数字6对应0x7d。

http://www.lryc.cn/news/444209.html

相关文章:

  • `re.compile(r“(<.*?>)“)` 如何有效地从给定字符串中提取出所有符合 `<...>` 格式的引用
  • 算法打卡:第十一章 图论part01
  • 为C#的PetaPoco组件增加一个批量更新功能(临时表模式)
  • Spring实战——入门讲解
  • MTK芯片机型的“工程固件” 红米note9 5G版资源预览 写入以及改写参数相关步骤解析
  • [Golang] Context
  • 【JAVA集合总结-壹】
  • Mysql梳理7——分页查询
  • 智能制造与工业互联网公益联播∣企企通副总经理杨华:AI的浪潮下,未来智慧供应链迭代方向
  • 《深度学习》—— 卷积神经网络(CNN)的简单介绍和工作原理
  • 数据结构:线性表
  • Ansible PlayBook实践案例
  • Tomcat后台弱口令部署war包
  • 胤娲科技:DeepMind的FermiNet——带你穿越“薛定谔的早餐桌”
  • 迅为iTOP-STM32MP157开发板板载4G接口(选配)_千兆以太网_WIFI蓝牙模块_HDMI_CAN_RS485_LVDS接口等
  • Android Choreographer 监控应用 FPS
  • 关于 mybatis-plus-boot-starter 与 mybatis-spring-boot-starter 的错误
  • NLP 文本分类任务核心梳理
  • k8s中pod的创建过程和阶段状态
  • NSSCTF刷题篇1
  • [数据集][目标检测]棉花叶子病害检测数据集VOC+YOLO格式977张22类别
  • 产品经理面试整理-常见面试问题
  • 数据库(选择题)
  • 粒子向上持续瀑布动画效果(直接粘贴到记事本改html即可)
  • 卷积神经网络(CNN):深度学习中的视觉奇迹
  • Vue:加载本地视频
  • 论文阅读:A Generalization of Transformer Networks to Graphs
  • 中国计量大学《2022年801+2022年819自动控制原理真题》 (完整版)
  • 创客匠人运营课堂|增强用户的参与度和忠诚度,这一个工具就能实现!
  • k8s 微服务 ingress-nginx 金丝雀发布