数码管动态显示

katekate 发布于 2022-03-24 294 次阅读


#include <reg52.h>


#define SMG_A_DP_PORT P0  //定义数码管使用P0端口

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

char gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
				0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴0~F	 断码数据


void delay_10us(unsigned int ten_us)
{
	while(ten_us--);			
}

void smg_display()
{
	int i=0;
	for(i=0;i<8;i++)
	{
		switch(i)
		{
			case 0: LSC=1;LSB=1;LSA=1;break;
			case 1: LSC=1;LSB=1;LSA=0;break;
			case 2: LSC=1;LSB=0;LSA=1;break;
			case 3: LSC=1;LSB=0;LSA=0;break;
			case 4: LSC=0;LSB=1;LSA=1;break;
			case 5: LSC=0;LSB=1;LSA=0;break;
			case 6: LSC=0;LSB=0;LSA=1;break;
			case 7: LSC=0;LSB=0;LSA=0;break; 

		}
		SMG_A_DP_PORT=gsmg_code[i];	 //输出数据
		delay_10us(50000);
		SMG_A_DP_PORT=0x00;  //消除重影(并联影响
	}



}

void main()
{
	

	while(1)
	{
		smg_display();	
	}


}
此作者没有提供个人介绍
最后更新于 2022-03-24