关于51单片机控制数码管显示

目录

数码管区域原理图

74HC138译码器

方法

定义IO口

创建数组 

让数码管显示

完整代码 

实验现象


 

数码管区域原理图

74HC138译码器

 

 通过控制ABC码来控制LED1~LED8的位选。以此来控制8个数码管中哪一个数码管显示。

方法

定义IO口

#define SMG_A_DP_PORT	P0 //宏定义端口P0
#define KZSMG_0_7	P2

创建数组 

u8 gsmg_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
				0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F的显示(十六进制)

u8 xuhao_code[8] ={0xe3,0xe7,0xeb,0xef,0xf3,0xf7,0xfb,0xff}; //数码管显示的位置(从右往左)

让数码管显示

for (j=0;j<8;j++)
{
	KZSMG_0_7=xuhao_code[j]	;
	SMG_A_DP_PORT = gsmg_code[6];
}

完整代码 

#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

#define SMG_A_DP_PORT	P0 //宏定义端口P0
#define KZSMG_0_7	P2

u8 gsmg_code[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
				0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F的显示(十六进制)

u8 xuhao_code[8] ={0xe3,0xe7,0xeb,0xef,0xf3,0xf7,0xfb,0xff}; //数码管显示的位置(从右往左)



void main()
{
	u8 j;u8 i=0 ;
	u16 t=0;

	while(1)
	{

		for (j=0;j<8;j++)
		{
			KZSMG_0_7=xuhao_code[j]	;
			SMG_A_DP_PORT = gsmg_code[6];
        }
    }
}

实验现象

 

我们可以看到数码管显示了数字6 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值