久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
分享一些單片機按鍵程序
[打印本頁]
作者:
2367643286
時間:
2018-9-16 21:04
標題:
分享一些單片機按鍵程序
/*==================
按鍵讀鍵函數
==================*/
void ReadKey(void)
{
uchar ReadData;
ReadData=(((~(P3&0XF0))&0XF0)|(P3&0X0F)); //將前四位取反,即P3.7-P3.4 保留P3.3-P3.0的數據,【目的為將按鍵位取反,不影響其他位】
Trg = ReadData & (~Cont); // 只要有按鍵按下,在對應位會有一個脈沖,后四位不確定。如P3.4按下了,會出現一次0X1F;P3.5按下了,會出現一次0X2F;
Cont = ReadData; // 有按鍵按下,會出現對應編碼。
if(Cont&0xf0) // 如果按鍵不放,不處理
{
KeyCnt++; // 讀鍵次數
KeyEffect=Cont;
if(KeyCnt>=1000)KeyCnt=1000;
return;
}
else // 鍵值發生改變
{
if((KeyCnt>=10)&&(KeyCnt<=90)) //多次讀鍵消抖
{
KeyCnt=0;
KeyEffect=(KeyEffect&0xf0)+80;
KeyOpt();
send_char_com(KeyEffect);
if(Cont&0x10)
{
BeepCnt=0x10;
Keyflg_S2=1;
}
}
else if(KeyCnt>=150) //長按
{
BeepCnt=0x10;
KeyCnt=0;
}
}
}
/*===============
按鍵處理子函數
=================*/
void KeyOpt(void)
{
switch(KeyEffect)
{
case 0: // 空鍵
{
break;
}
case 0xd0: // S4鍵(P1.3)
{
BeepCnt=0x10;
Keyflg_S5^=1;
LED1^=1;
break;
}
case 0x90: // S5鍵(P1.4)
{
BeepCnt=0x10;
Keyflg_S4^=1;
LED2^=1;
break;
}
case 0x70: // S6鍵(P1.5)
{
BeepCnt=0x10;
Keyflg_S3^=1;
LED3^=1;
break;
}
case 0x60: // S6鍵(P1.5)
{
BeepCnt=0x10;
Keyflg_S2^=1;
LED4^=1;
break;
}
default: break;
}
}
作者:
bhjyqjs
時間:
2018-9-17 15:36
通過三個邏輯變量運算,確定按鍵的按下、長按、抬起,確實較妙。如果配以狀態機,則程序會更簡潔。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲综合一区二区三区
|
一区二区视屏
|
国产国产精品久久久久
|
国产91丝袜在线18
|
国产真实乱对白精彩久久小说
|
伊人中文字幕
|
一级黄色片网站
|
黄色片免费看
|
日本三级日产三级国产三级
|
www.久久久.com
|
日韩欧美久久精品
|
中文字幕 视频一区
|
综合九九
|
欧美成视频
|
久久久精品一区二区三区
|
涩涩视频在线观看
|
成年无码av片在线
|
91免费小视频
|
日韩精品成人av
|
日日干干夜夜
|
国产精品亚洲一区二区三区在线
|
成人在线免费电影
|
精品久久久久一区二区国产
|
精品视频在线观看
|
黑人巨大精品欧美一区二区免费
|
国产乱码精品一区二区三区忘忧草
|
日韩一级免费观看
|
精品无码久久久久国产
|
一区中文
|
日韩成人在线观看
|
欧美激情一区二区三区
|
亚洲日本视频
|
欧美日韩精品久久久免费观看
|
欧美一区二区免费
|
精品欧美一区二区三区久久久
|
久久久久久亚洲
|
国产真实乱对白精彩久久小说
|
欧美视频一区二区三区
|
国产区久久
|
超碰成人免费
|
欧美成人免费在线视频
|