資源簡介
利用單片機設計一簡易電子琴。
功能要求:
(1) 按下不同按鍵,發出不同1 、2 、3、4 、5 、6 、7 七個音符;
(2) 用LED 或LCD顯示當前按鍵。

代碼片段和文件信息
#include?“exti.h“
#include?“led.h“
#include?“key.h“
#include?“delay.h“
#include?“timer.h“
#include?“usart.h“
////////////////////////////////////////////////////////////////////////////////// ?
//本程序只供學習使用,未經作者許可,不得用于其它任何用途
//Mini?STM32開發板
//外部中斷?驅動代碼 ???
//正點原子@ALIENTEK
//技術論壇:www.openedv.com
//修改日期:2010/12/01??
//版本:V1.0
//版權所有,盜版必究。
//Copyright(C)?正點原子?2009-2019
//All?rights?reserved ??
//////////////////////////////////////////////////////////////////////////////////? ??
?
#define?KEY5?PAin(1)???//PA1
#define?KEY6?PAin(2) //PA2?
//外部中斷0服務程序
void?EXTI0_IRQHandler(void)
{
delay_ms(10);//消抖
if(KEY2==1) ?//按鍵2
{
LED0=!LED0;
LED1=!LED1;
} ?
EXTI->PR=1<<0;??//清除LINE0上的中斷標志位??
}
void?EXTI1_IRQHandler(void)
{
delay_ms(10);//消抖
if(KEY5==1) ?//按鍵2
{
LED0=!LED0;
LED1=!LED1;
PWM_To_Beep(OPEN);
} ?
EXTI->PR=1<<1;??//清除LINE1上的中斷標志位??
}
void?EXTI2_IRQHandler(void)
{
delay_ms(10);//消抖
if(KEY6==1) ?//按鍵2
{
LED0=!LED0;
LED1=!LED1;
PWM_To_Beep(CLOSE);
} ?
EXTI->PR=1<<2;??//清除LINE2上的中斷標志位??
}
//外部中斷15~10服務程序
void?EXTI15_10_IRQHandler(void)
{
delay_ms(10);????//消抖 ?
if(KEY0==0)??????//按鍵0
{
LED0=!LED0;
}else?if(KEY1==0)//按鍵1
{
LED1=!LED1;
}
EXTI->PR=1<<13;?????//清除LINE13上的中斷標志位??
EXTI->PR=1<<15;?????//清除LINE15上的中斷標志位??
}
//外部中斷初始化程序
//初始化PA0PA13PA15為中斷輸入.
void?EXTIX_Init(void)
{
RCC->APB2ENR|=1<<2;?????//使能PORTA時鐘
JTAG_Set(JTAG_SWD_DISABLE);//關閉JTAG和SWD???
GPIOA->CRL&=0XFFFFF000;//PA0.1.2設置成輸入 //PA1?PA2??自己拓展的
GPIOA->CRL|=0X00000888;???
GPIOA->CRH&=0X0F0FFFFF;//PA1315設置成輸入 ??
GPIOA->CRH|=0X80800000;? ???
GPIOA->ODR|=1<<13; ???//PA13上拉PA0默認下拉
GPIOA->ODR|=1<<15; ???//PA15上拉
GPIOA->ODR|=1<<1; ???//PA1上拉
GPIOA->ODR|=1<<2; ???//PA2上拉
Ex_NVIC_Config(GPIO_A1FTIR);//下降沿觸發
Ex_NVIC_Config(GPIO_A2FTIR);//下降沿觸發
Ex_NVIC_Config(GPIO_A0RTIR);?//上升沿觸發
Ex_NVIC_Config(GPIO_A13FTIR);//下降沿觸發
Ex_NVIC_Config(GPIO_A15FTIR);//下降沿觸發
MY_NVIC_Init(22EXTI0_IRQChannel2);????//搶占2,子優先級2,組2
MY_NVIC_Init(22EXTI1_IRQChannel2);????//搶占2,子優先級2,組2
MY_NVIC_Init(22EXTI2_IRQChannel2);????//搶占2,子優先級2,組2
MY_NVIC_Init(21EXTI15_10_IRQChannel2);//搶占2,子優先級1,組2 ???
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-11-30?23:02??電子琴\
?????目錄???????????0??2017-11-30?23:02??電子琴\HARDWARE\
?????目錄???????????0??2017-11-30?23:02??電子琴\HARDWARE\EXTI\
?????文件????????2534??2017-11-29?16:50??電子琴\HARDWARE\EXTI\exti.c
?????文件?????????628??2011-01-12?20:51??電子琴\HARDWARE\EXTI\exti.h
?????目錄???????????0??2017-11-30?23:02??電子琴\HARDWARE\KEY\
?????文件????????1767??2017-11-30?15:29??電子琴\HARDWARE\KEY\key.c
?????文件?????????834??2017-11-30?15:29??電子琴\HARDWARE\KEY\key.h
?????目錄???????????0??2017-11-30?23:02??電子琴\HARDWARE\LED\
?????文件?????????910??2013-04-03?13:58??電子琴\HARDWARE\LED\led.c
?????文件?????????288??2010-05-27?17:30??電子琴\HARDWARE\LED\led.h
?????目錄???????????0??2017-11-30?23:02??電子琴\HARDWARE\TIMER\
?????文件????????3228??2017-11-30?15:08??電子琴\HARDWARE\TIMER\timer.c
?????文件?????????847??2017-11-30?23:02??電子琴\HARDWARE\TIMER\timer.h
?????目錄???????????0??2017-11-30?23:02??電子琴\HARDWARE\WDG\
?????文件????????2108??2017-11-28?22:43??電子琴\HARDWARE\WDG\wdg.c
?????文件?????????756??2011-01-12?20:56??電子琴\HARDWARE\WDG\wdg.h
?????文件?????????399??2011-04-23?10:24??電子琴\keilkilll.bat
?????文件?????????500??2012-07-19?22:10??電子琴\README.TXT
?????目錄???????????0??2017-11-30?23:02??電子琴\SYSTEM\
?????目錄???????????0??2017-11-30?23:02??電子琴\SYSTEM\delay\
?????文件????????2067??2013-04-03?12:14??電子琴\SYSTEM\delay\delay.c
?????文件?????????905??2013-04-03?12:14??電子琴\SYSTEM\delay\delay.h
?????目錄???????????0??2017-11-30?23:02??電子琴\SYSTEM\sys\
?????文件????????2225??2009-05-07?14:42??電子琴\SYSTEM\sys\cortexm3_macro.h
?????文件????????6194??2009-05-07?14:42??電子琴\SYSTEM\sys\stm32f10x_conf.h
?????文件????????4529??2012-12-18?12:35??電子琴\SYSTEM\sys\stm32f10x_it.h
?????文件???????28290??2009-05-07?14:42??電子琴\SYSTEM\sys\stm32f10x_map.h
?????文件???????19198??2009-05-07?14:42??電子琴\SYSTEM\sys\stm32f10x_nvic.h
?????文件????????3388??2009-05-07?14:42??電子琴\SYSTEM\sys\stm32f10x_type.h
?????文件????????6854??2013-04-03?12:13??電子琴\SYSTEM\sys\sys.c
............此處省略60個文件信息
評論
共有 條評論