外部按键中断延时控制LED设计.doc_第1页
外部按键中断延时控制LED设计.doc_第2页
外部按键中断延时控制LED设计.doc_第3页
外部按键中断延时控制LED设计.doc_第4页
外部按键中断延时控制LED设计.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩实训报告 题 目: 外部按键中断延时控制LED设计 课程名称: ARM嵌入式系统实训 学生姓名: 徐欣 郑亮亮 杨康宁 任课教师: 权循忠 系 别: 电子工程学院 专 业: 通信工程 年 级: 13级 实训时间: 2015年11月13日 电子工程学院外部按键中断延时控制LED设计学生: 徐欣 郑亮亮 杨康宁指导老师:权循忠电子工程学院通信工程专业实训目的1.掌握STM32项目开发流程;2.学会画出算法流程图;3.掌握LED的控制编程。二、实训内容(1)LED0亮2秒,LED0灭2秒;循环(1)的操作5次;(2)LED1亮3秒,LED1灭3秒;循环(2)的操作5次;(3)然后到(1)循环。三、实训过程1. 人员分配: 徐欣负责程序部分,利用c语言设计算法,建立工程项目,生成目标文件,并将目标文件编程下载到开发板,验证算法;郑亮亮负责绘制电路图,进行电路设计及分析;杨康宁负责程序流程框图以及完成实验报告。2. 电路设计:(1)要求使用LED0和LED1两个LED,连接图如下:图1、LED原理图(2)所用到的硬件只有LED(DS0和DS1)。LED与MCU连接,实现定时控制LED闪烁,其原理图如下: 图2、LED与STM32连接原理图3.电路分析:因为用Proteus绘图软件来绘制原理图,Proteus中没有MCU芯片,通过手绘将这些芯片和引脚绘出来,不能进行仿真。LED0(DS0)与PB5相连;LED1(DS1)与PE5相连。4.算法设计延时3SLED0,1灭LED0灭LED0灭延时5S延时3SKEY0按下?KEY2按下?KEY1按下?LED0,1亮LED0亮LED0亮开始初始化I/O为输入,开启I/O复用时钟,设置I/O与中断线的映射关系,初始化线上中断,设置触发条件等,配置中断分组(NVIC),并使能中断编写中断服务函数检测按键算法解释:通过if选择语句实现按键选择功能,按下KEY0时,实现函数LED0=0;delay_ms(1500);delay_ms(1500); 按下KEY1时,实现函数 LED0=0;delay_ms(1500);delay_ms(1500);按下WK_UP时,实现函数 LED0=0; LED1=0;delay_ms(1500);delay_ms(1500);delay_ms(1500);delay_ms(500);LED0=1;LED1=1;5.部分源代码#include exti.h#include led.h#include key.h#include delay.h#include usart.hvoid EXTIX_Init(void) EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); KEY_Init(); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource5); EXTI_InitStructure.EXTI_Line=EXTI_Line5; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource15); EXTI_InitStructure.EXTI_Line=EXTI_Line15; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0); EXTI_InitStructure.EXTI_Line=EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); void EXTI0_IRQHandler(void) delay_ms(10); if(WK_UP=1) LED0=0;LED1=0;delay_ms(1500);delay_ms(1500);delay_ms(1500);delay_ms(500);LED0=1;LED1=1;EXTI_ClearITPendingBit(EXTI_Line0); void EXTI9_5_IRQHandler(void)delay_ms(10); if(KEY0=0)LED0=0;delay_ms(1500);delay_ms(1500);LED0=1; EXTI_ClearITPendingBit(EXTI_Line9_5); void EXTI15_10_IRQHandler(void) delay_ms(10); if(KEY1=0)LED0=0;delay_ms(1500);delay_ms(1500);LED0=1; EXTI_ClearITPendingBit(EXTI_Line15); 程序解释:include exti.h#include led.h#include key.h#include delay.h#include usart.h引用能使用到的头文件:exti.h外部中断;led.hLED灯; key.h按键;delay.h延时函数;usart.h串口。因为WK_UP按键是高电平有效的,而KEY0、KEY1是低电平有效的,所以WK_UP=1时触发中断,KEY0=0时触发中断,KEY1=0时触发中断。当KEY0=0时LED0亮,3s之后LED0灭,并清除Line9_5上的中断标志位后,使KEY1=0,LED1亮3s之后灭,并清除Line15上的中断标志位,使WK_UP=1,两个灯同时亮5s后同时熄灭,并清除Line0上的中断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论