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

📄 ch06.c

📁 这是一个用keil C做的动态扫描7段LED数码管程序,是用proteus做的仿真.适合初学者学习使用.
💻 C
字号:
#include<reg51.h>
#define LEDS 2
sbit PB1=P3^0;
sbit PB2=P3^1;
sbit PB3=P3^2;
//sbit outpl=P0;
unsigned char select[]={0x01,0x02};
unsigned char LED_CODES[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
void delay(int x);
void display(int x,y,z);
int gw,sw;
int s;
char isflash;
void main()
{
	sw=0;
	gw=0;
	isflash=0;
	PB1=PB2=1;
	while(1)
	{
		if(PB1==0)
		{
			isflash=1;
			delay(1);
			gw++;
			if(gw>9)
			{
				gw=0;
				sw++;
				if(sw>9)sw=0;
			}
		}
		if(PB2==0)
		{
			isflash=1;
			delay(1);
			gw--;
			if(gw<0)
			{
				gw=9;
				sw--;
				if(sw<0)sw=9;	
			}

		}
		if(PB3==0)
		{
			s=sw*10+gw;
			//outpl=s&0xff;
			isflash=0;
		}  
		if(isflash==1)
		{
			display(150,sw,gw);
			P1=0xff;
			delay(200);	
		}
		else
		{
			display(150,sw,gw);
		}	
	}
}
void delay(int x)
{
	int i;
	int j;
	for(i=x;i>0;i--)
		for(j=120;j>0;j--);
}
void display(int x,y,z)
{
	char i=0;
	int ws;
	int disp_code[2];
	int xh;
	disp_code[0]=y;
	disp_code[1]=z;
	for(xh=x;xh>0;xh--)
	{
		ws=disp_code[i];
		P2=0;
		P1=LED_CODES[ws];
		P2=select[i];
		delay(1);
		i++;
		if(i>1)i=0;
	}
}

⌨️ 快捷键说明

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