標(biāo)題:
STM32單片機(jī)LED燈按鍵中斷顯示proteus仿真+代碼
[打印本頁(yè)]
作者:
niuzhendong
時(shí)間:
2018-12-18 17:42
標(biāo)題:
STM32單片機(jī)LED燈按鍵中斷顯示proteus仿真+代碼
STM32單片機(jī)LED燈按鍵中斷顯示 proteus仿真
上周做的用LED燈按鍵中斷顯示
從此個(gè)實(shí)驗(yàn)中可以學(xué)習(xí)中斷的使用,用的是標(biāo)準(zhǔn)庫(kù)函數(shù)
粗略的顯示了一下,有些不足,希望大家能夠給予指導(dǎo)并相互學(xué)習(xí)。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(22.83 KB, 下載次數(shù): 41)
下載附件
2018-12-18 17:44 上傳
0.png
(11.74 KB, 下載次數(shù): 39)
下載附件
2018-12-18 17:44 上傳
單片機(jī)源程序如下:
//#include "main.h"
#include "stm32f10x.h"
void LED_Config(void);
void KEY_Config(void);
void NVIC_Configuration(void);
void EXTI9_5_IRQHandler(void);
int main(void)
{
NVIC_Configuration();
LED_Config();
KEY_Config();
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
while(1)
{
}
}
void LED_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
void KEY_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource6);
EXTI_InitStructure.EXTI_Line = EXTI_Line6;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line6) != RESET)
{
GPIO_WriteBit(GPIOB, GPIO_Pin_8,
(BitAction)((1-GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_8))));
EXTI_ClearITPendingBit(EXTI_Line6);
}
}
復(fù)制代碼
所有資料51hei提供下載:
按鍵中斷LED.7z
(286.54 KB, 下載次數(shù): 145)
2018-12-18 17:45 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
1334351454
時(shí)間:
2018-12-18 19:10
謝謝大哥!
作者:
gaoshan1
時(shí)間:
2018-12-22 18:26
好東東,看看
作者:
judejie82
時(shí)間:
2019-3-13 20:52
好東東,看看
作者:
xzj3203577
時(shí)間:
2019-3-20 09:47
樓主,這個(gè)按鈕輸入檢測(cè)必須要用到中斷嗎? 有沒(méi)有單純檢測(cè)到輸入按鈕的,然后直接驅(qū)動(dòng)輸出的案列分享下啊
作者:
xzj3203577
時(shí)間:
2019-3-20 10:45
樓主,有沒(méi)有輸入按鈕控制的案列,可以給參考下
作者:
zishuqinghe
時(shí)間:
2019-5-27 16:28
下載了學(xué)習(xí)下,謝謝樓主分享。
作者:
15170502097
時(shí)間:
2019-7-5 23:16
好東西。我要了
作者:
QAQQAQ
時(shí)間:
2021-3-23 09:37
好東西,感謝樓主分享,解決了燃眉之急!
作者:
cai46
時(shí)間:
2021-8-2 09:43
謝謝作者。可供大家參考!
作者:
bigbigcong
時(shí)間:
2021-8-3 10:03
我想問(wèn)下,你這個(gè)是哪個(gè)版本的的proteus?為啥我下的只有51單片機(jī)的芯片,都沒(méi)有32單片機(jī)的可以選
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1