实验二 按键中断实验

实验二 按键中断实验

ID:14395510

大小:118.57 KB

页数:4页

时间:2018-07-28

实验二  按键中断实验_第1页
实验二  按键中断实验_第2页
实验二  按键中断实验_第3页
实验二  按键中断实验_第4页
资源描述:

《实验二 按键中断实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二按键中断实验一、实验目的了解中断的含义二、实验内容板子加电后,按动板子上K1-K3按键,可控制对应的LED1-LED3的亮灭,该实验学习了外部中断(EXTI)程序的编制及控制流程。三、实验仪器、设备计算机、开发板、keil软件四、硬件设计在开发板上V6、V7、V8分别与MCU的PB5、PD6、PD3相连,如下图所示键盘部分如下图所示:例程所用到的列扫描线:PC5,PC2,PC3。例程所用到的行扫描线(EXTI中断线):PE2。五、实验要求和步骤开发板上有3个蓝色状态指示灯V6(LED1),V7(LED2),V8(LED3),通过对应

2、的按键K1-K3,控制LED的亮灭,将PE2引脚配置为外部中断,当其上出现下降沿时产生一个中断,根据扫描PC5,PC2,PC3来判别是哪个按键按下。首先我们了解一下什么是外部中断/事件控制器(EXTI)。外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独立的屏蔽。挂起寄存器保持着状态线的中断要求。EXTI控制器的主要特性如下:每个中断/事件都有独立的触发和屏蔽每个中断线都有专用的状态位支持多达19个中断/

3、事件请求检测脉冲宽度低于APB2时种宽度的外部信号如要产生中断,中断线必须事先配置好并被激活。这是根据需要的边沿检测通过设置2个触发寄存器,和在中断屏蔽寄存器的相应位写“1”到来允许中断请求。当需要的边沿在外部中断线上发生时,将产生一个中断请求,对应的挂起位也随之被置1。通过写“1”到挂起寄存器,可以清除该中断请求。为产生事件触发,事件连接线必须事先配置好并被激活。这是根据需要的边沿检测通过设置2个触发寄存器,和在事件屏蔽寄存器的相应位写“1”到来允许事件请求。当需要的边沿在事件连线上发生时,将产生一个事件请求脉冲,对应的挂起位不被置1

4、。通过在软件中断/事件寄存器写“1”,一个中断/事件请求也可以通过软件来产生。本次实验需要组件的工程文件文档如下:USER--stm32f10x_it.c为中断服务程序主程序,我们对主程序进行一次详细的注释。//______________________主程序____________________________________________________________________intmain(void){unsignedchara=0,b=0,c=0;/*完成对系统时钟的设置,例程中通过系统时钟设置函数,外接晶振采用8M

5、hz,经过片内频率合成,9倍频,设置为72MHz的时钟。*/RCC_Configuration();/*嵌套向量中断控制器说明了EXTI2抢占优先级级别0(最多1位),和子优先级级别0(最多7位)*/NVIC_Configuration();/*对控制3个LED指示灯的IO口进行了初始化,将3个端口配置为推挽上拉输出,口线速度为50Mhz。将中断线PE2配置为输入模式。将键盘扫描列线PC5,PC2,PC3设置为推挽上拉输出。在配置某个口线时,首先应对它所在的端口的时钟进行使能。否则无法配置成功,由于用到了端口B和端口D,C,D,因此要对这

6、4个端口的时钟进行使能,同时由于用到复用IO口功能用于配置外部中断。因此还要使能AFIO(复用功能IO)时钟。*/GPIO_Configuration();//用于配置AFIO外部中断配置寄存器AFIO_EXTICR1,用于选择EXTI2外部中断的输入源是PE2。GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);EXTI_InitStructure.EXTI_Line=EXTI_Line2;//PE2作为键盘的行线。检测状态EXTI_InitStructure.EXTI_M

7、ode=EXTI_Mode_Interrupt;//中断模式EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿触发EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);/*置3根键盘列扫描线为0,以便在按键按下时产生中断GPIO_ResetBits(GPIOC,GPIO_Pin_2);GPIO_ResetBits(GPIOC,GPIO_Pin_3);GPIO_ResetBits(GPIOC

8、,GPIO_Pin_5);while(1){GPIO_ResetBits(GPIOC,GPIO_Pin_2);GPIO_ResetBits(GPIOC,GPIO_Pin_3);GPIO_Res

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。