1.2 数码管-静态显示

Paste_Image.png

我们的板子上是共阴极数码管

位选和段选

位选:控制那个数码管

段选:控制数码管显示东西(如1 2 3)

锁存器


上面的是位选
下面的是段选
锁存器的特点


LE锁存允许端 是否要所存
OE输出允许端 由于OE为高电平时输出为高阻态芯片不可控,所以设计电路是必须将OE接低电平。
51单片机在一上电,如果没有人为控制其I/O口的状态,默认高电平

假如要让第一个数码管显示8

#include<reg52.h>
sbit du = P2^6;
sbit we = P2^7;

int main()
{   we = 1;
    P0 = 0xfe; //1111 1110
    we = 0;

    du = 1;
    P0 = 0x7f;
    du = 0;

    while(1);
    return 0;
}

注意led位选是公共端,所以位选低电平是选中

P0 = 0xfe;

0xfe = 1111 1110

即P0口的第一为置低电平。所以就第一个数码管会亮

P0 = 0x7f;

0x7f = 0111 1111

P0 = 的第八位低电平,由于共阴极不点亮dp

由于规则是死的的,我们可以用数组将规则封装起来

unsigned code leddata[]={ 

0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
0x77, //"A"
0x7C, //"B"
0x39, //"C"
0x5E, //"D"
0x79, //"E"
0x71, //"F"
0x76, //"H"
0x38, //"L"
0x37, //"n"
0x3E, //"u"
0x73, //"P"
0x5C, //"o"
0x40, //"-"
0x00, //熄灭
0x00 //自定义

};

以后要使用时,直接将函数写好。

比如我要显示4 就是 P0 = leddata[4];
code 关键字表示这个表格会存放在 代码 区。代码区的内容,也就是你程序,最后会被烧写到只读存储器中,运行中不可改变如果不写 code,一般放在内部存储区。
单片机的内部储存较小,所以这样写可以节省点内部储存空间。

练习

#include<reg52.h>
sbit du = P2^6;
sbit we = P2^7;
#define uint unsigned int
#define uchar unsigned char
uchar i;
unsigned code leddata[]={ 

0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
0x77, //"A"
0x7C, //"B"
0x39, //"C"
0x5E, //"D"
0x79, //"E"
0x71, //"F"
0x76, //"H"
0x38, //"L"
0x37, //"n"
0x3E, //"u"
0x73, //"P"
0x5C, //"o"
0x40, //"-"
0x00, //熄灭
0x00 //自定义

};
void delay(uint xms)
{
    uint x, y;
    for(x=xms; x>0; x--)
        for(y=114;y>0;y--);
}

int main()
{   we = 1;
    P0 = 0xfe; //1111 1110
    we = 0;

    du = 1;

    while(1)
    {
        for(i=0;i<=9;i++)
        {
            P0 = leddata[i];
            delay(500);
        }
    }

    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这次我们用树莓派的GPIO口驱动数码管来显示数字,进而制作一个简单的电子钟,通过按钮来切换显示时间或日期。 最终效...
    芒果爱吃胡萝卜阅读 10,875评论 0 12
  • 1.单片机内部资源三大指标: a.FLASH(程序存储控件<ROM>) 相当于: 电脑硬盘(断点后还保存在) b....
    廖马儿阅读 1,829评论 0 5
  • 2017-03-08 单片机及C语言学习通信按照基本类型可以分为并行通信和串行通信。并行通信时数据的各个位同时传送...
    simtech2win阅读 2,173评论 0 2
  • 一、根据电路图实现动态数码管 1. 对于动态数码管 首先需要知道的是,动态数码管是一种对数码管的实现方式,并不是数...
    Murrey_Xiao阅读 2,685评论 0 4
  • 你曾告诉我, 春,是萌发的初恋; 夏,是火辣的热恋; 秋,是平淡的爱恋; 冬,是... 是,是什么? 你没有说完....
    陌颜兮阅读 600评论 1 0