数码管动态显示

#include "reg52.h"
#define led P0
int code light[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(int i)
{
	while(i--);
}  

void main()
{
	led=0x01;
	delay(50000);
	int j;//为什么int在此处编译不通过?应该是编译器的问题
	
	/*
	int j;
	led=0x01;
	delay(50000);
	放在上边这种就可以*/
	
	while(1)
	{
		   for(j=0; j<17; j++)
		   {
		   led=light[j];
		   delay(50000);
		   }
	}
}


74HC138D 是一种三通道输入、八通道输出译码器,主要应用于消费类电子产
品。
(1)主要特性
①采用 CMOS 工艺
②低功耗
③工作电压:3.0V-5.0V
④封装形式:SOP16
(2)管脚功能定义
在这里插入图片描述在这里插入图片描述在这里插入图片描述这里给大家总结一个方法:A0、A1、A2 输入就相当于 3 位 2 进制数,A0 是
低位,A1 是次高位,A2 是高位。而 Y0-Y7 具体哪一个输出有效电平,就看输入
二进制对应的十进制数值。比如输入是 101(A2,A1,A0),其对应的十进制数
是 5,所以 Y5 输出有效电平(低电平)。

在这里插入图片描述这个是为什么?电路看不懂


#include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;

u8 code smgduan[]={0x6d,0x5b, 0x3f,0x40,	0x06, 0x4f,	 0x06,	0x66,};
  // 0x6d,0x5b, 0x3f,0x40,	0x06, 0x4f,	 0x06,	0x66,
u8 code weixuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(u16 i)
{
	while(i--);	
}

void DigDisplay()
{
	u8 i;
	for(i=0;i<8;i++)
	{
		P1= weixuan[i];
		P0=smgduan[i];//发送段码
		delay(1); //间隔一段时间扫描	
	//	P0=0x00;//消隐
	}
}

void main()
{	
	while(1)
	{	
		DigDisplay();  //数码管显示函数	
	}		
}

数码管动态显示520-1314

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define  DIGI  P0
#define  SELECT P2

uchar digivalue[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
					0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar select[]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(uint i)
{
	while(i--);
}

main()
{
	uchar i=0;
	while(1)  {
		for(i=0; i<8; i++)
		{
			SELECT=select[i];		
			DIGI=digivalue[i];
			delay(50000);
		}
	}
}

动态显示0-7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章