C51静态数码管

静态数码管

1.种类:共阳极:发光二极管阳极接到一起;阳极接电源,给阴极低电平0点亮
(单片机A5-A7)
共阴极:发光二极管阴极接到一起;阴极接GND,给阳极高电平1点亮
(单片机A2-A4)

2.数码管显示原理在这里插入图片描述3.AT89C52RC单片机为两个四位一体的数码管(A2 共阴极连接方式高电平1点亮)

4.在这里插入图片描述
5.若数码管显示“0”
DP=0,G=0,F=1,E =1,D=1, C=1, B=1, A=1
二进制:0011 1111 转化为 十六进制:0x3F

6.数码管表在这里插入图片描述在这里插入图片描述点亮共阳:对共阴取反

7.数码管有段选和位选
段选:a b c d e f g dp
位选:abcdefg dp 连接但一个公共端为一个位选
芯片38译码器:通过3个IO口控制8个

8.静态数码管原理
当送入一个字形码后,显示字形可一直保持直到送入新字形码为止

9.硬件电路
在这里插入图片描述注释:
74HC245芯片:将小电流变大电流,驱动数码管。
RP4电阻:防止电流过大烧毁数码管
74HC138芯片:通过3个IO口控制8个IO口

10.代码编写

#include <REGX51.H>

typedef unsigned int u16 ;
typedef unsigned char u8 ;

#define SMG_A_DP_PORT P0

/SMG:数码管;A_DP:段选a-dp;PORT P0:端口P0 ;(宏定义通常大写)/

u8 gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/定义数组共阴0-F;
8位:每一个段码都是一个字节,因此选用u8类型;
注意数组命名原则,g:全局变量(无g:内部变量)
/

void main()
{
SMG_A_DP_PORT=gsmg_code[10];
//输出0,调用0x3f(将数组第一个值调用);若输出A:[10] 调用x06f;(将数组第十个值调用);
while(1)
{

}

}

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值