本帖最后由 jinglixixi 于 2020-7-3 12:05 編輯
按鍵是進行人機交互的常用器件,而超薄型的軟按鍵更以其結構簡潔、節省空間所為人接受,它與SC95F8616核心板配合即可實現簡單的人機交互。
1.png (219.18 KB, 下載次數: 39)
下載附件
2020-7-3 12:03 上傳
軟按鍵與核心板
軟按鍵共有5個引腳,除4個按鍵狀態輸出引腳外,還有一個公共信號輸入引腳。為便于信號狀態的識別,通常將公共輸入引腳接地,則檢測到某個輸出引腳為地電平時,即為該按鍵按下。 為便于連接,軟按鍵與核心板的連接關系如下: K1--P07 K2--P06 K3--P05 K4--P04
此外,為了便于進行檢測驗證,是以串口Uart0來輸出識別信息,Uart0的引腳功能分配為: TX--p2.1 RX--p2.0
實現圖示效果的按鍵識別處理主程序為: - void main(void)
- {
- BitStatus f;
- mdelay(500);
- GPIO_Init(GPIO0, GPIO_PIN_4, GPIO_MODE_IN_PU);
- GPIO_Init(GPIO0, GPIO_PIN_5, GPIO_MODE_IN_PU);
- GPIO_Init(GPIO0, GPIO_PIN_6, GPIO_MODE_IN_PU);
- GPIO_Init(GPIO0, GPIO_PIN_7, GPIO_MODE_IN_PU);
- Uart0Init();
- enableInterrupts();
- printf("KEY TEST \r\n");
- while(1)
- {
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_4);
- if(f==0)
- {
- printf("K3 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_4);
- }
-
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_5);
- if(f==0)
- { printf("K4 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_5);
- }
-
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_6);
- if(f==0)
- { printf("K1 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_6);
- }
-
- f=GPIO_ReadPin(GPIO0, GPIO_PIN_7);
- if(f==0)
- { printf("K2 TEST: \r\n");
- while(f==0) f=GPIO_ReadPin(GPIO0, GPIO_PIN_7);
- }
- mdelay(1000);
- }
- }
復制代碼
2.png (15.77 KB, 下載次數: 38)
下載附件
2020-7-3 12:03 上傳
按鍵測試效果
|