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

📄 keyled.c

📁 通用C51单片机正弦波立产生程序
💻 C
字号:
#include < AT89X52.H >
#include " define.h "
bit keyflag  = 1 ;
bit keystatu = 1 ;

void ledvalue (void)
   {
		unsigned char i ;
		unsigned int  div=1000 ;
		unsigned int fre ;
		fre = frequency ;
 		for (i=0;i<4;i++)
			{
				unsigned char a;
				a=fre/div;
				leddat[i]=a;
				fre%=div;
				div/=10;
			}
 	} 
//功能:检查按键
void keypress ( void )
	{  	
		if ( keyflag == 1 )	 
			{  
				KADD = 1 ; KMIN = 1 ;
				if (KMIN == 0 || KADD == 0 )
						keyflag = 0;
             }
        else
             {  
				KADD = 1 ; KMIN = 1 ;
				if ( KADD == 0 ) 
					{
						frequency += 10 ;
						keystatu = 0 ;
						keyflag  = 1 ;
						if( frequency == 410 ) frequency = 10;
						thl=5000000/(frequency*109);
 					    ledvalue();
					}
				else if ( KMIN == 0 ) 
					{
						frequency -= 10 ;
						thl=5000000/(frequency*109);
						ledvalue();
						if( frequency == 10 ) frequency = 410;
						keystatu = 0 ;
						keyflag  = 1 ;
                    }                 
              }  
}
//功能:检查松键
void keyfree (void) 
	{   
		if ( keyflag == 1 )	 
				{  
					KADD = 1 ; KMIN = 1 ;
					if ( (KADD == 1)&& (KMIN == 1)) 
					  	keyflag = 0 ;
            	 }
	 	else 
     	        {  
					KADD = 1 ; KMIN = 1 ;
					if ( (KADD == 1)&& (KMIN == 1)) 
 				     {
						keystatu = 1 ;
                        keyflag  = 1 ;                 
                     }
                }
	}

void kbhit ( void )
	{
		if ( keystatu == 1 ) keypress();
		if ( keystatu == 0 ) keyfree ();
	}
//功能:LED显示控制程序
void ledwork ( void )
	{ 
		static unsigned char t = 0;    //static表示静态变量,指变量的赋值只在第一次定义的时候赋
		P2 |= 0x0f ;
		P0 = ledcode[ leddat[t] ] ;

		switch( t )                 //选择数据送到哪个管子
			{
				case 0: S1 = 0 ;  break;
				case 1: S2 = 0 ;  break;
				case 2: S3 = 0 ;  break;
				case 3: S4 = 0 ;  break;
			}
		if (++t>=4)    t = 0;         //判断四位数是否都已经送完
     }

⌨️ 快捷键说明

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