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

📄 text1.c

📁 用 keil 实现 的一个 时钟
💻 C
字号:
#include <REG51.H>
#include <INTRINS.H>

sbit row = P3 ^ 4;
sbit col1 = P3 ^ 0;
sbit col2 = P3 ^ 1;

unsigned char i=0,j=0;
unsigned char a[8]={0,0,19,0,0,19,0,0};
unsigned char DISPTABLE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x8C,0xC1,0xFF,0xBF};//加了一横杠0xbf

void Delay(unsigned int count)
{
	unsigned char i;                

  	while(--count != 0)
    	for(i = 0; i < 125; i++);           
}

unsigned char KeyDown(void)
{
	row=0;
  	if((col1==0) || (col2==0))     
   	{
    	Delay(80);                                            	
     	if((col1==0) || (col2==0))  	
       		return 1;                						
     	else
       		return 0;                   						
 	} 
  	else 
    	return 0;     
}

unsigned char  KeyNum(void)
{

	unsigned char KeyTemp;
    KeyTemp=0;

  	if(KeyDown()==1)                                         	// 若键盘被按下
   	{
    	while(1)
		{
			col1=col2=1;
			row=0;
     
     		if (col1==0) {KeyTemp=0; break;}			 		// 若列线1读回状态为低,则表明按键0被按下
     		if (col2==0) {KeyTemp=1; break;}            		// 若列线2读回状态为低,则表明按键1被按下
    	}     	
	
		return KeyTemp;
    }
  	else
    	return 0x55;
}

void DisPlay(unsigned char seg,unsigned char dat)
{
	unsigned char i;

	P0=DISPTABLE[dat];
	switch(seg)
	{
		case 1: i=0x7F; break;
		case 2: i=0xBF; break;
		case 3: i=0xDF; break;
		case 4: i=0xEF; break;
		case 5: i=0xF7; break;
		case 6: i=0xFB; break;
		case 7: i=0xFD; break;
		case 8: i=0xFE; break;
		default: break;
	}
	
	P2=i;	
}

void timer1( )interrupt 3 using 1
{
	/*DisPlay(8-i,a[i]);
	i++;
	if(i>7)i=0;*/

/*	for(i=0;i<8;i++)
	{
		DisPlay(8-i,a[i]);
	}*/
	
	DisPlay(8,a[0]);
	DisPlay(7,a[1]);
	DisPlay(6,a[2]);
	DisPlay(5,a[3]);
	DisPlay(4,a[4]);
	DisPlay(3,a[5]);
	DisPlay(2,a[6]);
	DisPlay(1,a[7]);

	if(j>90)
	{
		a[0]++;
		if(a[0]>9)
		{
			a[0]=0;
			a[1]++;
			if(a[1]>5)
			{
				a[1]=0;
				a[3]++;
				if(a[3]>9)
				{
					a[3]=0;
					a[4]++;
					if(a[4]>5)
					{
						a[4]=0;
						a[6]++;
						if(a[7]==1 && a[6]>9)
						{
							a[7]++;
						}
						else if(a[7]==2 && a[6]>3)
						{
							a[0]=a[1]=a[3]=a[4]=a[6]=a[7]=0;
						}
						else
						{
							a[7]++;
						}
					}
				}
			}
		}
		j=0;
	}
	else
	{
		j++;
	}
}

void main(void)
{
	unsigned char key;
	TMOD = 0X20;
    TH1= - 120000/256;			
    TL1= - 120000%256;

    EA=1;         				
    ET1=1;     				
    TR1=1;
//    a[2]=a[5]=19;   			
	while(1)
	{
	/*	row=col1=col2=1;
		key=KeyNum();

		if(key==0)
		{
		    EA=0;         				
  		    ET1=0;     				
			TR1=0;
		}
		else if(key==1)
		{
		    EA=1;         				
            ET1=1;     				
			TR1=1;
		}*/

	}
}


⌨️ 快捷键说明

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