以下是程式**
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x.h"
#include "core_cm3.h"
#include "misc.h"
#define led0 gpio_pin_8
#define led1 gpio_pin_9
#define led2 gpio_pin_10
#define led3 gpio_pin_11
#define led4 gpio_pin_12
#define led5 gpio_pin_13
#define led6 gpio_pin_14
#define led7 gpio_pin_15
#define led_all (led0 | led1 | led2 | led3 | led4 | led5 | led6 | led7)
#define led_port gpioc
#define n_le
gpio_pin_2
#define n_le_port
gpiod
#define swn
4 /*按鍵數量為4*/
#define n_k1
gpio_pin_0
#define n_k2
gpio_pin_8
#define n_k3
gpio_pin_1
#define n_k4
gpio_pin_2
#define n_k1c
gpioa
#define n_k2c
gpioa
#define n_k3c
gpiob
#define n_k4c
gpiob
#define led_out(x)
gpio_setbits(led_port,led_all), \
gpio_resetbits(led_port, x<<8), \
gpio_setbits(n_le_port,n_le), \
gpio_resetbits(n_le_port,n_le)
typedef enum
y_bool;
static y_bool led_t = true;
//發光標記
static y_bool rl = true;
//左移右移標記
static y_bool km = true;
//移動快慢的標記
static y_bool key_t = false;
//按鍵檢測標記
void systeminit()
//初始化函式
void init()
//systick中斷
void systick_handler()
else
}/*led顯示*/
void led()
else
}/*按鍵檢測函式*/
uint8_t key_c()
;//各個按鍵的引腳
const gpio_typedef* key_port[swn] = ;//各個按鍵的埠
for(key_n = 0, i = 0; i < swn; i++)//將按鍵的當前值復 值到key_n變數中
x = (key_n ^ key_o) & key_o;//檢測有無按鍵按下
key_o = key_n;//當前按鍵值作為下一次比較的直
return x;
}/*按鍵處理函式*/
void key_d(uint8_t x)
int main()
/*按鍵一檢測(左右移動)*/
if(key_t)
if(key_dn)}}
關於按鍵消抖以及LED燈控制的乙個例項
要求 1.未按建則所有led全黑 2.按k1按鈕,則用前8個led燈二進位制顯示25 3.按k2按鈕,則12只led合併顯示流水燈效果,3個led點亮並向右流水。注 是hr 240b fpga 創新實驗系統,其核心板的核心晶元為 epm240t100c5n 分析 led是共陰極,所以點亮led需要高...
用LED燈和按鍵來模擬工業自動化裝置的運動控制
開場白 前面講了獨立按鍵控制跑馬燈的各種狀態,這一例講的是乙個機械手控制程式,這個機械手可以左右移動,最左邊有 乙個開關感應器,最右邊也有乙個開關感應器。它也可以上下移動,最下邊有乙個開關感應器。左右移動是通過乙個 氣缸控制,上下移動也是通過乙個氣缸控制。而微控制器控制氣缸,本質上是通過三極體把訊號...
STM32驅動按鍵和LED燈實時顯示二進位制值
基於stm32f407ze開發板的驅動按鍵和led燈實時顯示二進位制值應用例項 要求 按鍵s1按下變數 1 按鍵s2按下變數 1 按鍵s3按下變數清零 led實時顯示這個變數的二進位制值 變數的範圍 0 15 工程管理 函式封裝 檔案結構 key2被按下,且標誌位為1 if pein 3 0 key...