单片机 数码管0~F显示

#include <reg51.h>
#define GPIO_DIG   P0	//段选
#define GPIO_PLACE P1	//位选
#define uint unsigned int

unsigned char code DIG_PLACE[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位选
unsigned char code DIG_CODE[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F
unsigned char DisplayData[16];

void delay(uint z)      //delay 1ms
{
	uint x,y;
	for(x=z;x>0;x--)
	{
		for(y=124;y>0;y--); 
	}
}

void DigDisplay()
{
	unsigned char i;
	unsigned int j;

	for(i=0; i<16; i++)
	{
		GPIO_PLACE = DIG_PLACE[i];	
		GPIO_DIG = DisplayData[i]; 
		delay(500);			
		j = 10;			      //扫描时间			
		while(j--);	
		
		GPIO_DIG = 0x00;  //清残影
		
	}
}


void main(void)
{
	unsigned char i;

	for(i=0; i<16; i++)
	{
		   DisplayData[i] = DIG_CODE[i];	
	}	

	while(1)
	{
		   DigDisplay();
		   
	}				
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值