89C51单片机数码管显示

数码管显示分为静态数码管显示动态数码管显示
学习掌握数码管相关的内容,可以从以下三方面入手:
1.数码管电路图
2.译码器
3.进制转化

直接上图

数码管电路图

《89C51单片机数码管显示》
数码管电路的接法有共阴和共阳两种,这里采用共阴接法
从其中取出一个数码管进行分析
单个数码管
《89C51单片机数码管显示》
此处为一个8位的数码管,想要数码管显示出想要的数字,则需要对数码管进行高低电平的设置
1为高电平,0为低电平
分别对 a,b,c,d,e,f,g,dp进行1和0的编写,此处可以理解为二进制进行十六进制的转化
《89C51单片机数码管显示》
如图中所示,数字2的 八位二进制就可以表示为 0101 1011,读数为从dp依次读到a,转化为十六进制则是0x5b
数码管中各个数值对应的字节
0: 0x3f 1: 0x06 2: 0x5b 3: 0x4f 4: 0x66 5: 0x6d 6: 0x7d 7: 0x07
8: 0x7f 9: 0x6f A: 0x77 B: 0x7c C: 0x39 D: 0x5e E: 0x79 F: 0x71

《89C51单片机数码管显示》
打开电脑中的计算器中的程序员模式就可以进行检验
下面就剩译码器的问题,本次采用的138译码器,译码器的不同可能会有所差别

先来了解下138译码器的电路图
《89C51单片机数码管显示》
在138译码器中主要是P22,P23,P24管角的问题,三个管角对数码管LED1~8的控制

138译码器

管角定义
《89C51单片机数码管显示》
管角说明
《89C51单片机数码管显示》
真值表
《89C51单片机数码管显示》
看懂138译码器的真值表非常重要,H代表高电平,L代表低电平,当A0,A1,A2同时为L时,Y0(LED1)才会亮

简单代码演示

#include "reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u8 code dizhi[]={0x3f,0x5e};

void main(){
   LSC=0;		   
   LSA=0;
   LSB=0;
   P0=dizhi[0];
}

通过按键实现数码管转化视频

    原文作者:CC2022_
    原文地址: https://blog.csdn.net/YouCanDoIt_/article/details/84931803
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞