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)
    {
    
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值