• 大小: 458KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: STM32  电子琴  

资源简介

利用单片机设计一简易电子琴。 功能要求: (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个文件信息

评论

共有 条评论