keil5独立按键与动态数码管计数结合

1.动态数码管计数

  • 1.前期:
#include

sbit displaya=P2^2;
sbit displayb=P2^3;
sbit displayc=P2^4;
sbit k1=P3^0;
sbit led=P2^0;
typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 i)
{
while(i--);
}
  • 2.主函数:
void main()
{
u16 num=0,c[6],w;
u8 i=0,a[]={0x3f,0x06,0x5b ,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f},j=1;
for(i;;i++)//实现循环
{
	if(k1==0)//判断是否闭合
		{
		delay(100);//若闭合,延时消除抖动
		}
	if(k1==0)//确认闭合,num加一,后续显示在数码管,同时led等开闭转换
		{
		num+=1;
		led=~led;
		}
	while(!k1)//等待按键断开,执行下一步
	for(j=1;j<7;j++)//将num按位分配给c[]
	{	w=num;
		c[j]=w%10;
		w=w/10;
		}
	for(j=1;j<7;j++)//顺序动态显示各个为上的数
	{
		displaya=j%2;
		displayb=j/2-j%4;
		displayc=j/4;
		P0=a[c[j]];
		delay(100);
	}
		
}

}

你可能感兴趣的:(单片机)