實物2操作:stc8a8k按鍵使用
1、硬體連線。
下載器連線;
LED連線;
按鍵已經PCB裡面連線好;
2、按鍵原理
為什麼識別按鍵按下之後還需要再識別一次呢。實際上為了消抖,那到底什麼是消抖。根據硬體按鍵原理圖可以知道,開發板上的按鍵是直接連線到IO口上的,那麼如果在按鍵按下的時候,會發生多次迴圈響應。51微控制器的處理速度足夠整個while迴圈裡面的程式在一瞬間來回執行若干次了,那麼如果直接檢測按鍵的話,會出現很不穩定的情況。比如說按鍵控制數碼管上的數字依次加一,按一次就加一次。如果不進行消抖處理的話,那麼在你按下去的一瞬間,數字已經加了很多次了。所以在這裡用了軟體延時的消抖,避免重複檢測的情況。有人可能心想,為什麼不弄一個硬體消抖的電路呢,那當然可以,加一個電容就可以了,也稱之為電容按鍵,一般來說,stm32的開發板上都採用的電容按鍵,也就是硬體消抖,那樣根本無需再用軟體延時消抖了。
3、程式:
先定義引腳。
然後進行程式設計。注意去抖動。
程式設計的時候,可以給每個按鍵設定一個變數作為旗幟,當安下去的時候,旗幟=1進行翻轉,後面可以查詢到哪一個按鍵按下去。
4、例程。
4個按鍵,實現不同的LED閃爍模式。
#include<stc8a8k.h>
sbit key0=P3^4;
sbit key1=P3^5;
sbit key2=P3^6;
sbit key3=P3^7;
sbit LED0=P0^0;
sbit LED1=P0^1;
void delay1ms(unsigned int tms)
{
unsigned int ix=0,iy=0;
for(ix=tms;ix>0;ix--)
for(iy=0;iy<1350;iy++);
}
void main()
{
unsigned char key0flag=0,key1flag=0,key2flag=0,key3flag=0;
while(1)
{
//判斷按鍵按下,去抖動,然後讓對應的按鍵的旗幟舉起來切換
if(key0==0)
{
delay1ms(15);
if(key0==0)
{
key0flag=1;
key1flag=0;
key2flag=0;
key3flag=0;
}
}
else if(key1==0)
{
delay1ms(15);
if(key1==0)
{
key0flag=0;
key1flag=1;
key2flag=0;
key3flag=0;
}
}
else if(key2==0)
{
delay1ms(15);
if(key2==0)
{
key0flag=0;
key1flag=0;
key2flag=1;
key3flag=0;
}
}
else if(key3==0)
{
delay1ms(15);
if(key3==0)
{
key0flag=0;
key1flag=0;
key2flag=0;
key3flag=1;
}
}
//根據旗幟進行判斷執行不同的LED工作模式
if(key0flag==1)
{
LED0=0;LED1=0;
}
else if(key1flag==1)
{
LED0=0;LED1=1;
}
else if(key2flag==1)
{
LED0=1;LED1=0;
}
else if(key3flag==1)
{
LED0=1;LED1=1;
}
}
}
相關文章
- LVGL中實體按鍵的使用
- 2.3用按鍵精靈錄製鍵盤與滑鼠操作
- JS判斷鍵盤是否按的Enter鍵並觸發指定按鈕點選操作JS
- 12.2 實現鍵盤模擬按鍵
- 按鍵大師:用Python實現無人值守的自動化操作Python
- Linux 按鍵輸入實驗Linux
- 商業智慧BI按下智慧物業的快捷鍵
- 按鍵原理
- 三行程式碼按鍵消抖 獨立按鍵 矩陣按鍵 長按 短按 雙擊行程矩陣
- HaaS100按鍵及LED使用介紹
- cocos2d-x中新增TV按鍵響應
- 艾爾登法環鍵盤操作介紹 艾爾登法環鍵盤按鍵方式說明
- 鍵盤失靈按什麼鍵恢復 win10鍵盤恢復按鍵Win10
- win10 fn按鍵功能和ctrl對調怎麼替代_win10 fn按鍵功能和ctrl對調如何操作Win10
- 物聯網CC2530按鍵單雙擊分別控制兩燈
- 工業物聯網閘道器:實現跨地域裝置互操作的關鍵
- vxe-table 全鍵盤操作,按鍵編輯方式設定,覆蓋方式與追加方式
- VBA命令按鈕操作
- 物聯網平臺為智慧工廠和數字車間按下“加速鍵”
- win10鍵盤按鍵速度在哪裡設定_win10鍵盤按鍵速度如何設定Win10
- win10分屏快捷鍵怎麼操作_win10電腦分屏按什麼快捷鍵Win10
- 【JavaScript】鍵盤按鍵Keycode對照表(鍵碼對照表)JavaScript
- 925. 長按鍵入
- nodemcu arduino設定按鍵UI
- [JS]bootstrapTable新增操作按鈕JSbootAPT
- 硬核升級!北通宙斯2首次採用光軸按鍵
- 鍵盤操作
- win10鍵盤部分按鍵錯亂怎麼辦_win10鍵盤按鍵錯亂如何解決Win10
- 移動端頁面鍵盤出現“搜尋”按鍵且實現提交功能
- 戴爾進入bios按什麼鍵 戴爾重灌系統按什麼鍵iOS
- 獨立按鍵的掃描
- 按鍵中斷驅動程式
- 二、zigbee裸機程式--按鍵
- emacs按鍵繫結詳解Mac
- textarea 響應按下Enter鍵
- win10 禁用滑鼠滾輪按鍵熱鍵方法 win10怎麼禁用滑鼠滾輪按鍵Win10
- 鍵盤亂鍵怎麼處理 電腦鍵盤按鍵錯亂
- 《DNK210使用指南 -CanMV版 V1.0》第十四章 按鍵輸入實驗