⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dig.c

📁 单片机扫描数码管实现动态显示数据
💻 C
字号:
/*===============================================================
 
  程序名称:多位数码管显示						  
  -----------------------------------------------
	( http://www.bluepw.com  http://www.bluepw.cn )


 Agni 07-EV开发板的数码管与单片机接线方式:



 注:(1):主芯片AT89S52使用11.0592M晶振

	(2):Keil uV3 3.30编译运行通过

	(3):本例程在 Agni 07-EV 开发平台上成功运行通过

	(4):蓝极风电子技术网版权所有,只供学习参考,不得应用于商业用途.

==================================================================*/
#include <at89x52.h> 
#define  uchar unsigned char
#define  uint unsigned int
#define  ulong unsigned long

//********数码管位选代码***********
uchar code SPACE_ADD[]={0x01,0x02,0x04,0x08}; 

//********数码管数据显示代码*******
uchar code SET_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 

uint count;
void display(uint number);

delay(uchar a)
{
	uchar i;
	while(--a!=0)
	{
		for(i=0;i<125;i++);
	}
}

//********数码管显示函数***********
void display(uint number)
{
	uchar buffer[8];
	uchar j;
	uchar i=0;
	do{					   //坼分参数number
		buffer[i++]=number%10;
		number=number/10;
		j=i;
	}while(number!=0);
	for(i=0;i<j;i++)	   //动态扫描
	{
		P1=SPACE_ADD[i];   //选择数码管
		P0=SET_TAB[buffer[i]];//输送显示数据
		delay(2);
		P0=0xff;		   //清除数码管阴影
	}
}

//********主函数***********
void main(void)
{
	while(1)
	{
		display(1573);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -