51单片机学习笔记——第三天:数码管

大家好!今天是学习51单片机的第三天,今天学习了数码管的硬件知识,学习笔记如下:

首先,数码管是由多个发光二极管组成的,按组成发光二极管的数目可以分为7段数码管和8段数码管,其中8段数码管比7段数码管会多一个小数点。

按照发光二极管单元的连接方式,可分为共阳极数码管和共阴极数码管。

共阳极数码管,共同接口COM接到5V高电平,如果某个端口接低电平,则那个端口亮。

同理,共阴极数码管,共同接口COM接到低电平,如果某个端口为高电平,则那个端口亮。

 数码管的显示原理:

引脚图:

        

结合上面两图,如果要显示数字“1”,则需要字段b,c亮。那么记住e,f,g,小数点这是高四位,a,b,c,d  为低四位。

那么共阴极数码管对应的二进制为0000/0110,换成十六进制为0x06。

那么共阳极数码管对应的二进制为1111/1001,换成十六进制为0xf9。

其他数字可以自行推理一下。

数码管静态显示原理

静态显示的特点是每个数码管的段选必须接一个 8 位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。

利用代码实现下列现象:

下载程序后“数码管模块”最左边数码管显示数字0。

代码如下:

#include "reg52.h"

typedef unsigned int u16;    //对系统默认数据类型进行重定义
typedef unsigned char u8;

#define SMG_A_DP_PORT    P0    //使用宏定义数码管段码口

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

void main()
{    
    SMG_A_DP_PORT=gsmg_code[0];//将数组第1个数据赋值给数码管段选口
    while(1)
    {
           
    }        
}

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值