经过一番探索和学习,明白了静态数码管的点亮原理。下面分享我的学习历程。

  • 原理图说明

    在51单片机的电路图中,有p20、p21、p22、p23的使能端,就是相当于4个开关。

    P0口有8个端子分别为数码管的八段led, 也就是说控制使能端,可以控制这八个端子,不同的led亮则对应不同的数字或者是字母。
    在这里插入图片描述

    在单片机中,数码管的输出p0~p8,对应下图的P0端。
    在这里插入图片描述

  • 效果图显示
    这里我令p20、p21、p22为高电平1、p23为低电平为0,即让最右边的数码管使能可以使用,显示的数字可定义一个数组存放1~9、a、b、c 、e、f。不同的单片机所使用的数码管不同(我这里的共阳极的数码管)
    在这里插入图片描述

  • 开源代码

//头文件
#include<reg51.h>


//定义数组
typedef  unsigned char u16; 
typedef  unsigned int  u18;


//单片机的管脚,分别连着对应的数码管
sbit p20=P2^0;   
sbit p21=P2^1;
sbit p22=P2^2;
sbit p23=P2^3;


//共阳数码管编码表
u16 code smaguan[16] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,
                        0xc6,0xa1,0x86,0x8e};


//主程序
void main()
{
   	p20=1;	//数码管不亮
	p21=1;	//数码管不亮
	p22=1;	//数码管不亮
	p23=0;	//数码管亮
    P0=smaguan[15]; //p23对应数码管显示字母"F" ,共阳数码管编码表中可查
    while(1);
}


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐