關於LED燈和按鍵結合的專案

2021-08-14 20:53:55 字數 1949 閱讀 9505

以下是程式**

#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...