?? keyled.c
字號(hào):
#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表示靜態(tài)變量,指變量的賦值只在第一次定義的時(shí)候賦
P2 |= 0x0f ;
P0 = ledcode[ leddat[t] ] ;
switch( t ) //選擇數(shù)據(jù)送到哪個(gè)管子
{
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; //判斷四位數(shù)是否都已經(jīng)送完
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -