89C51单片机数码管显示

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

直接上图

数码管电路图

在这里插入图片描述
数码管电路的接法有共阴和共阳两种,这里采用共阴接法
从其中取出一个数码管进行分析
单个数码管
在这里插入图片描述
此处为一个8位的数码管,想要数码管显示出想要的数字,则需要对数码管进行高低电平的设置
1为高电平,0为低电平
分别对 a,b,c,d,e,f,g,dp进行1和0的编写,此处可以理解为二进制进行十六进制的转化
在这里插入图片描述
如图中所示,数字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

在这里插入图片描述
打开电脑中的计算器中的程序员模式就可以进行检验
下面就剩译码器的问题,本次采用的138译码器,译码器的不同可能会有所差别

先来了解下138译码器的电路图
在这里插入图片描述
在138译码器中主要是P22,P23,P24管角的问题,三个管角对数码管LED1~8的控制

138译码器

管角定义
在这里插入图片描述
管角说明
在这里插入图片描述
真值表
在这里插入图片描述
看懂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];
}

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

  • 29
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值