|
60034bd6a36187e2b0bbd70e11f4105.png (21.47 KB, 下載次數(shù): 59)
下載附件
2020-6-5 13:14 上傳
#include<reg52.h> //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int //宏定義無符號整型
/********************************************************************
初始定義
*********************************************************************/
uchar count=0; //按鍵計數(shù),每按一下,count 加1
uchar a,b; //定義字符型變量
uchar temp; //定義字符型變量
sbit BUTTON1=P2^0; //定義按鍵的輸入端(為單片機P2口的P2.0按鍵)
sbit BUTTON2=P2^1;
sbit BUTTON3=P2^2;
sbit BUTTON4=P2^3;
sbit LED1=P2^4; //LED1
sbit LED2=P2^5;
sbit LED3=P2^6;
sbit LED4=P2^7;
uchar led2flag=0;
uchar led3flag=0;
/********************************************************************
延時函數(shù)
*********************************************************************/
void delay10ms(void) //延時程序
{
uchar i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void delay_ms(unsigned int timer)
{
unsigned int i,j;
for(i=0; i<timer; i++)
for(j=0; j<110; j++);
}
/********************************************************************
按鍵判斷函數(shù)
*********************************************************************/
void key_scan(void) //按鍵判斷程序
{
if(BUTTON1==0) //判斷是否按下鍵盤
{
delay10ms(); //延時,軟件去干擾
if(BUTTON1==0) //確認按鍵按下
{
LED1=0;
}
while(BUTTON1==0);//按鍵鎖定,每按一次count 只加1.
LED1=1;
}
if(BUTTON2==0) //判斷是否按下鍵盤
{
delay10ms(); //延時,軟件去干擾
if(BUTTON2==0) //確認按鍵按下
{
LED2=0;
}
while(BUTTON2==0);//按鍵鎖定,每按一次count 只加1.
led2flag=1;
}
if(BUTTON3==0) //判斷是否按下鍵盤
{
delay10ms(); //延時,軟件去干擾
if(BUTTON3==0) //確認按鍵按下
{
LED3=0;
led3flag=1;
}
}
if(BUTTON4==0) //判斷是否按下鍵盤
{
delay10ms(); //延時,軟件去干擾
if(BUTTON4==0) //確認按鍵按下
{
LED4=~LED4;
}
while(BUTTON4==0);//按鍵鎖定,每按一次count 只加1.
}
}
/**********************T0????·??????ò*******************/
void timer0(void)interrupt 1 using 1
{
static unsigned int num=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(led2flag==1)
{
num++;
if(num>200)
{
num=0;
led2flag=0;
LED2=1;
}
}
if(led3flag==1)
{
num++;
if(num>200)
{
num=0;
led3flag=0;
LED3=1;
}
}
}
/********************************************************************
主函數(shù)
*********************************************************************/
void main()
{
P2=0xff;
IT0=1; //INT0?
TMOD=0x01;//
TH0=(65536-50000)/256;//
TL0=(65536-50000)%256;
EA=1; //
ET0=1;//
EX0=1;//
TR0=1;//
while(1)
{
key_scan(); //調(diào)用按鍵判斷函數(shù)
}
}
/********************************************************************
結(jié)束
*********************************************************************/
全部資料51hei下載地址:
按鍵識別led.rar
(57.48 KB, 下載次數(shù): 9)
2020-6-5 13:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|