资源简介
利用单片机设计一简易电子琴。
功能要求:
(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个文件信息
相关资源
- stm32做的红外遥控解码程序
- 《emwin实战指南(基于STM32-ISO开发板)
- Beginning STM32: Developing with FreeRTOS libo
- stm32f103c8t6_sch.Lib
- ALIENTEK战舰STM32F1 V3开发板原理图.rar
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- 我做的电子琴,21个音,一般歌曲基本
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
评论
共有 条评论