微控制器 按鍵控制實驗

2021-10-25 13:53:30 字數 1385 閱讀 6077

關於按鍵控制實驗我的微控制器是正點原子精英板,有三個按鈕

key0,key1,wk_up分別控制

led0,led1,(led0和led1)

main.c

#include "led.h"

#include "delay.h"

#include "key.h"

#include "sys.h"

#include "beep.h"

int main(void)

}else delay_ms(10);

} }

key.c(按鍵)

#include "stm32f10x.h"

#include "key.h"

#include "sys.h"

#include "delay.h"

//按鍵初始化函式

void key_init(void) //io初始化

//按鍵處理函式

//返回按鍵值

//mode:0,不支援連續按;1,支援連續按;

//0,沒有任何按鍵按下

//1,key0按下

//2,key1按下

//3,key3按下 wk_up

//注意此函式有響應優先順序,key0>key1>key_up!!

u8 key_scan(u8 mode)

else if(key0==1&&key1==1&&wk_up==0)key_up=1;

return 0;// 無按鍵按下

}

key.h(按鍵)

#ifndef __key_h

#define __key_h

#include "sys.h"

#define key0 gpio_readinputdatabit(gpioe,gpio_pin_4)//讀取按鍵0

#define key1 gpio_readinputdatabit(gpioe,gpio_pin_3)//讀取按鍵1

#define wk_up gpio_readinputdatabit(gpioa,gpio_pin_0)//讀取按鍵3(wk_up)

#define key0_pres 1 //key0按下

#define key1_pres 2 //key1按下

#define wkup_pres 3 //key_up按下(即wk_up/key_up)

void key_init(void);//io初始化

u8 key_scan(u8); //按鍵掃瞄函式

#endif

這個基本沒什麼問題可以這樣檢查微控制器的狀況是正在工作還是出bug「瘋了」。

獨立按鍵控制 51微控制器實驗

用兩個按鍵控制顯示。乙個按鈕按下使第二個數碼管上數字從0到9迴圈顯示,另乙個按鈕按下使第三個數碼管上數字從9到0迴圈顯示。include 51微控制器標頭檔案 include define uchar unsigned char 巨集定義 define uint unsigned int uchar...

微控制器 模擬舵機按鍵控制

功能 按鍵控制模擬舵機角度 目錄結構 程式 main.c include include include delay.h define uchar unsigned char define uint unsigned intsbit key1 p1 7 調速按鍵埠 sbit dc p3 5 pwm輸...

微控制器STM32入門 (2)按鍵控制

2.程式編寫 2.2主程式 理論情況按鍵的電壓波形應該為方波 但是實際按鍵電壓波形,會有電壓抖動,我們需要通過延時來進行按鍵消抖,這裡需要用到延時函式delay ms 通過分析,我們可以知道。首先我們需要gpio資料讀取函式,從pd8和pd9讀取資料,並記為key0 和 key1,然後需要宣告voi...