欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機獨立按鍵狀態(tài)機源碼
[打印本頁]
作者:
農(nóng)村人
時間:
2018-5-18 12:32
標(biāo)題:
單片機獨立按鍵狀態(tài)機源碼
藍橋杯獨立按鍵狀態(tài)機單片機源程序如下:
/*
例程:按鍵實驗例程
作者:電子設(shè)計工坊
*/
#include "reg52.h"
/*獨立按鍵狀態(tài)機*/
//#define key_input P3
//#define key_state_0 0 //判斷是否按下
//#define key_state_1 1 //判斷是否為抖動
//#define key_state_2 2 //判斷是否彈起
//
//char read_key(void)
//{
// static char key_state = 0;
// char key_press, key_return = 0;
// key_press = key_input&key_mask;
// switch (key_state)
//{
// case key_state_0:
// if (key_press!=key_mask) key_state = key_state_1;
// break;
//
// case key_state_1:
// if (key_press==(key_input&key_mask))
// {
// if(key_press==0x0e) key_return = 1; //S7
// if(key_press==0x0d) key_return = 2; //S6
// if(key_press==0x0b) key_return = 3; //S5
// if(key_press==0x07) key_return = 4; //S4
// key_state = key_state_2;
// }
// else
// key_state = key_state_0;
// break;
// case key_state_2:
// if (key_press==0x0f) key_state = key_state_0;
// break;
//}
//return key_return;
//}
void Delay10ms() //@11.0592MHz
{
unsigned char i, j;
i = 18;
j = 235;
do
{
while (--j);
} while (--i);
}
/*獨立按鍵三行*/
unsigned char Trg;
unsigned char Cont;
#define KEYPORT P3
void Key_Read( void )
{
unsigned char ReadData = KEYPORT^0xff;
Trg = ReadData & (ReadData ^ Cont);
Cont = ReadData;
}
/*矩陣按鍵*/
#define KEY P3
#define key_state_0 0 //判斷是否按下
#define key_state_1 1 //判斷是否為抖動
#define key_state_2 2 //判斷是否彈起
char read_KBD(void)
{
static char key_state = 0;
unsigned char key_return=0, key_press;
unsigned char key1,key2;
KEY=0xf0;
key1=KEY&0xf0;
KEY=0x0f;
key2=KEY&0x0f;
key_press =key1|key2;
switch (key_state)
{
case key_state_0: //
if (key_press!=0xff) key_state = key_state_1;
break;
case key_state_1:
if (key_press !=0xff)
{
if(key_press==0xde) key_return = 1; //S15 其他鍵值大家自行推算
if(key_press==0xdd) key_return = 2; //S14
key_state = key_state_2;
}
else
key_state = key_state_0;
break;
case key_state_2:
if (key_press==0xff) key_state = key_state_0;
break;
}
return key_return;
}
sbit buzzer = P0^6;
void main()
{
unsigned char key_val;
while(1)
{
//矩陣鍵盤的實驗
key_val=read_KBD();
if(key_val==1)//S15
{
P2=0xa0;buzzer=1;P2=0x00;
}
if(key_val==2)//S14
{
P2=0xa0;buzzer=0;P2=0x00;
}
//三行獨立按鍵的實驗
// Key_Read();
// if(Trg & 0x08)//S4
// {
// P2=0xa0;buzzer=1;P2=0x00;
// }
// if(Trg & 0x04)//S5
// {
// P2=0xa0;buzzer=0;P2=0x00;
// }
//獨立按鍵狀態(tài)機的實驗
// key_val=read_key();
// if(key_val==1)//S7
// {
// P2=0xa0;buzzer=1;P2=0x00;
// }
// if(key_val==2)//S6
// {
// P2=0xa0;buzzer=0;P2=0x00;
// }
Delay10ms();
}
}
復(fù)制代碼
所有資料51hei提供下載:
6.KEY_課后練習(xí).rar
(24.97 KB, 下載次數(shù): 62)
2018-5-18 12:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
mick32
時間:
2018-5-26 04:07
Thanks for code listing
作者:
wdliming
時間:
2018-7-23 22:27
謝謝分享!!!
作者:
初學(xué)者10086
時間:
2019-8-3 09:51
謝謝分享
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1