资源简介
利用单片机设计一简易电子琴。
功能要求:
(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个文件信息
相关资源
- 基于STM32F4x9的LCD显示
- VS1053B编解码器的VDR分布式声音采集卡
- stm32的DAC播放音乐文件
- STM32+TMC5160代码电路图.rar
- 基于STM32的深海钻机甲板控制系统
- stm32f103.SchDoc
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- 基于STM32的嵌入式双目图像采集系统设
- 基于STM32F103C8单片机的晶联讯电子JL
- 基于STM32的温湿度检测系统实现
- stm32F4+w5300
- 14284969_《STM32单片机应用与全案例实践
-
ST-li
nk-V2的SWD仿真使用方法.docx - 安富莱STM32开发板资料
- STM32F103实现OV7670摄像头显示
- STM32F207学习板例程
- STM32F103VCT6TR - High-density performance lin
- STM32 SRAM启动的 KeiL 配置
- STM32的IAP-Bootloader程序
- STM32例程之Bootloader
- stm32f103 虚拟U盘,调试成功的
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- STM32F030从机中断接收的iic代码,附带
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32+1602液晶proteus仿真.zip
- STM32循迹小车
评论
共有 条评论