找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2667|回复: 2
打印 上一主题 下一主题
收起左侧

基于STM32的外部中断实验源码

[复制链接]
跳转到指定楼层
楼主
ID:265406 发表于 2017-12-22 17:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式上课做的小课题
   
实验目的:
    学习外部中断的使用
   
硬件资源:
    1,DS0(连接在PA8),DS1(连接在PD2)
    2,按键KEY0(PC5)/KEY1(PA15)/KEY_UP(PA0,也称之为WK_UP)
   
实验现象:
    本实验,利用外部中断,实现与实验2类似的效果,即:通过开发板上载有的3个按钮(KEY_UP、KEY0 、KEY1),来控制板上的2个LED(DS0和DS1),其中KEY0控制DS0,按一次亮,再按一次,就灭。KEY1控制DS1,效果同KEY0。KEY_UP则同时控制    DS0和DS1,按一次,他们的状态就翻转一次。
   
注意事项:
    1,不要把1820和PA0的跳线帽跳上,否则可能导致按键"不灵".

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "key.h"
  5. #include "usart.h"
  6. #include "exti.h"

  7. int main(void)
  8. {        

  9.         delay_init();                     //延时函数初始化        
  10.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
  11.         uart_init(9600);         //串口初始化为9600
  12.         LED_Init();                           //初始化与LED连接的硬件接口
  13.          EXTIX_Init();                //外部中断初始化
  14.   LED0=0;                                //点亮LED
  15.         while(1)
  16.         {         

  17.                 if(ii == 0)
  18.                 {
  19.                         delay_us(100);
  20.                         LED0 =0;
  21.                         delay_us(1);
  22.                         LED0 = 1;
  23.                         //LED0 = 0 ;
  24.                 }
  25.                 else if(ii == 1)
  26.                 {
  27.                         delay_us(10);
  28.                         LED0 =0;
  29.                         delay_us(1);
  30.                         LED0 = 1;
  31.                
  32.                 }
  33.                 else if(ii == 2)
  34.                 {
  35.                              LED0 = 0 ;
  36. //                        delay_us(100);
  37. //                        LED0 =0;
  38. //                        delay_us(1);
  39. //                        LED0 = 1;
  40.                
  41.                 }
  42.                
  43.                 else if(ii == 3)
  44.                 {
  45.                         
  46.                         LED0 =1;
  47.                
  48.                 }
  49.                
  50.                 //elay_ms(1000);         
  51.         }
  52. }


复制代码

所有资料51hei提供下载:
按键控制LED灯亮灭程度实验.rar (294.67 KB, 下载次数: 22)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:265966 发表于 2017-12-25 15:48 | 只看该作者
学习一下
回复

使用道具 举报

板凳
ID:235207 发表于 2017-12-25 21:04 | 只看该作者
学习学习,看起来可以的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表