中断-按键控制LED灯

发布者:WiseSage123最新更新时间:2019-09-16 来源: eefocus关键字:中断  按键控制  LED灯 手机看文章 扫描二维码
随时随地手机看文章

三个按键分别控制三个LED灯

完整项目请去我的资源下载页xjp的资源

初始化函数:

/*

 * init.c: 进行一些初始化

 */ 

 

#include "s3c24xx.h"

 

/*

 * LED1,LED2,LED4对应GPF4、GPF5、GPF6

 */

#define GPF4_out (1<<(4*2)) //定义为01 输出

#define GPF5_out (1<<(5*2))

#define GPF6_out (1<<(6*2))

 

#define GPF4_msk (3<<(4*2)) //定义为11

#define GPF5_msk (3<<(5*2))

#define GPF6_msk (3<<(6*2))

 

/*

 * S2,S3,S4对应GPF0、GPF2、GPG3

  EINT0    EINT2 EINT11

 */

#define GPF0_eint     (0x2<<(0*2)) //10

#define GPF2_eint     (0x2<<(2*2))

#define GPG3_eint     (0x2<<(3*2)) //3*2:    2 代表一个节点站两位

 

#define GPF0_msk    (3<<(0*2)) //11

#define GPF2_msk    (3<<(2*2))

#define GPG3_msk    (3<<(3*2))

 

/*

 * 关闭WATCHDOG,否则CPU会不断重启

 *操作WTCON寄存器

 */

void disable_watch_dog(void)

{

   WTCON = 0;  // 关闭WATCHDOG很简单,往这个寄存器写0即可

}

 

void init_led(void)

{

    // LED1,LED2,LED4对应的3根引脚设为输出

   GPFCON &= ~(GPF0_msk|GPF2_msk|GPG3_msk);//先清零

   GPFCON |=(GPF4_out|GPF5_out|GPF6_out);//后置位

}

 

/*

 * 初始化GPIO引脚为外部中断

 * GPIO引脚用作外部中断时,默认为低电平触发、IRQ方式(不用设置INTMOD)

 */ 

void init_irq( )

{

    // S2,S3对应的2根引脚设为中断引脚 EINT0,ENT2

  GPFCON &= ~(GPF0_msk|GPF2_msk);//

  GPFCON |=    (GPF0_eint|GPF2_eint);

 

    // S4对应的引脚设为中断引脚EINT11

       GPGCON &= ~GPG3_msk;

GPGCON |= GPG3_eint;

    

    // 对于EINT11,需要在EINTMASK寄存器中使能它

    EINTMASK &= ~(1<<11);//【11】位清零

EINTMASK |=    (0<<11);//【11】位写零

//EINTMASK[11]中写零,等价于

//EINTMASK &= ~(1<<11);

        

    /*

     * 设定优先级:

     * ARB_SEL0 = 00b, ARB_MODE0 = 0: REQ1 > REQ3,即EINT0 > EINT2

     * 仲裁器1、6无需设置

     * 最终:

     * EINT0 > EINT2 > EINT11即K2 > K3 > K4

     * 在PRIORITY中设置

     */

 

 

     //PRIORITY 复位值为0x7f          0111 1111      

     // ARB_SEL0 = 00b,[8:7]=00      ARB_MODE0 = 0  [0]=0

    PRIORITY &= ~((3<<7)|(1<<0));

 

    

 

    // EINT0、EINT2、EINT8_23使能,在INTMSK中设置

     INTMSK   &= (~(1<<0)) & (~(1<<2)) & (~(1<<5));

}

 

 

 

中断函数

#include "s3c24xx.h"

 

void EINT_Handle()

{

    unsigned long oft = INTOFFSET;//读取中断偏移量

    unsigned long val;

    

    switch( oft )

    {

        // S2被按下,LED1点亮,再次按下,LED1熄灭

          case 0: //EINT0

        {   

            GPFDAT |= (0x7<<4);   // 所有LED熄灭

            GPFDAT &= ~(1<<4);      // LED1点亮

            break;

        }

        // S3被按下,LED2点亮,再次按下,LED2熄灭

         case 2://EINT2

        {   

            GPFDAT |= (0x7<<4);   // 所有LED熄灭

            GPFDAT &= ~(1<<5);      // LED2点亮

            break;

        }

        // K4被按下,LED3点亮,再次按下,LED3熄灭

          case 5://EINT11

        {   

            GPFDAT |= (0x7<<4);   // 所有LED熄灭

            GPFDAT &= ~(1<<6);      // LED4点亮                

            break;

        }

 

        default:

            break;

    }

 

    //清中断

    if( oft == 5 ) 

        EINTPEND = (1<<11);   // EINT8_23合用IRQ5

    SRCPND = 1<    INTPND = 1<    

}


关键字:中断  按键控制  LED灯 引用地址:中断-按键控制LED灯

上一篇:驱动-按键-中断模式
下一篇:Keil(MDK-ARM)系列教程(一)_新建软件工程详细过程

推荐阅读最新更新时间:2024-11-17 03:29

LED灯具驱动电路原理分析
  图中F1为保险丝,L1,C11,L2,C12组成共模和差模EMI滤波器。C2,C3,D3,D4,D6构成一个逐流式电路实现功率因数校正功能。经过逐流式电路后,由T1,Q1,D1,C5构成的反激式开关电源电路完成隔离输出和变压功能,控制芯片U1实现反激式开关电源电路的开关控制功能。反激式开关电源电路具有电路结构简单,安全隔离,成本低的优点,特别适合小功率 LED 驱动电源的要求。而采用原边开关控制方式的反激式开关电源电路省去了副边输出恒流恒压检测电路和光耦器件,进一步降低了成本,提高了系统可靠性和性价比。   图中,电阻R1,R2为芯片U1的启动电阻,连接到芯片的VCC脚,给芯片提供一定大小的启动电流。D5,R11,C9构成
[电源管理]
<font color='red'>LED灯</font>具驱动电路原理分析
聚碳酸酯光扩散材料营造全新LED光感世界
    近年来,面临全球能源危机,LED产业如雨后春笋一般发展起来,现已广泛应用于照明、显示、背光等行业。LED灯的发展有助于逐步淘汰白炽灯,对于促进中国照明电器行业结构优化升级、推动实现“十二五”节能减排目标任务、积极应对全球气候变化具有重要意义。     随着LED照明产业的迅猛发展,LED灯外壳材料的使用量也迅速增长。LED照明用外壳材料,即光散射材料,是指既能够使光通过又能够有效散射光的材料。其能将电、线光源转化成线、面光源。     LED的高亮度、低热量很好的节省了电耗,也符合人们低碳环保的追求。然而,LED发出的光是方向性较强的射光,是点光源,造成的缺点是光线刺眼,人眼难以接受,且照射面积小。如果作为照明使用时必须
[电源管理]
STM8L之timer2定时中断
简介 本文介绍STM8L系列如何使用timer2产生定时中断。 实验平台 编译软件:IAR for STM8 1.42.2 硬件平台:stm8l101f3p6开发板 仿真器:ST-LINK 库函数版本:STM8L_STMTouch_Lib_V1.1.0 实验步骤 1、工程中添加自己写的定时器2的驱动 1)写一个驱动GUA_Timer2.c (存放在工程的USER文件夹中) //****************************************************************************** //name: GUA
[单片机]
STM8L之timer2定时<font color='red'>中断</font>
STM32F4 EXTI外部中断(二)
一. 外部中断结构体 1. EXTI_InitTypeDef 结构体 2. 中断线标号 2. 例 配置PB14为外部中断 void exti_init(void) { //配置GPIOB_14引脚为输入 //使能GPIO时钟 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //定义GPIO_InitTypeDef 结构体 GPIO_InitTypeDef GPIO_InitStructure; //选择引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14; //配置工作模式为
[单片机]
STM32F4 EXTI外部<font color='red'>中断</font>(二)
嵌入式系统高效多串口中断源的实现
近几年来,随着后PC时代的来临,嵌入式系统由于其简洁、高效等特点,得到了飞速发展,嵌入式技术目前已将各种计算机技术多层次、多方面地交叉融合在一起。嵌入式系统加快了工业设计进程,降低了开发成本及其风险,使用简便,扩展灵活,高效精简,可方便应用于工业各个领域。 传统方法中,扩展多个串行口是利用多个中断源。但在嵌入式系统中,花费大量的中断源来扩展串口无疑是大量的资源浪费。针对这种情况,为了节省紧张的系统资源,本文提出的实现高效多串口中断源方案,可以利用单一的中断源来管理多个扩展串口,并保证多个串口中断的无漏检测与服务。 总体设计 方案的基本组成如图1所示。RS-232串口通过驱动芯片MAX202转换成TTL电平,通过串口异步通信
[单片机]
嵌入式系统高效多串口<font color='red'>中断</font>源的实现
单片机的P2口接8个开关,P0口接8个LED灯
问题 在单片机的P2口接8个开关,P0口接8个LED灯(要求P0口接LED的阳极),通过控制P2口8个开关控制P0口LED的亮灭,即当P2口有开关按下时P0口对应位LED被点亮 仿真如下 代码 #include reg51.h #define uchar unsigned char #define uint unsigned int void delay() { uint i, j; for (i = 10; i 0; i--) for (j = 1000; j 0; j--); } void main() { P0=0x00; P2=0xff; while(1) { P0=~P2; //分析知P
[单片机]
单片机的P2口接8个开关,P0口接8个<font color='red'>LED灯</font>
S4首月销量上看1000万支!传三星已拟备案严防出货中断
    千呼万唤的三星 (Samsung)(005930-KR) 新一代旗舰智慧手机 Galaxy S IV,即将于美国时间周四 (14 日) 正式亮相。《路透社》周三报导,部分分析师预言,这款新机皇在开卖首月,销量可冲上 1000 万支。 不过报导也指出,三星若欲达成如此乐观的 Galaxy S4 销量目标,条件是得确保核心零件出货平顺,不会重蹈去年 5 月 Galaxy S3 推出时,爆发的供应短缺覆辙。 当时 S3 因外壳设计修正,导致生产工作大乱,造成三星单单 1 个月销量便短少高达 200 万支。可见生产过程一个不顺,代价有多高。尤其加上三星现在全年获利,大部分就靠这支旗舰手机,同时间全球智慧手机市场成长却正在减缓。
[手机便携]
stm32专题六:中断 NVIC
stm32的中断分为 1.抢占优先级。 2.子优先级。 1.抢占优先级。抢占优先级高的中断,可以打断抢占优先级低的中断。 2.子优先级。抢占优先级相同的中断,子优先级高的可以优先执行。 其实,子优先级主要给出了一种响应的优先队列。假设中断的抢占优先级都相同。如果有多个相同抢占优先级的中断来了 ,那么他们不会互相打断,但是他们后续的排队会按照子优先级排队。也就是说,在第一个中断没有执行完的期间内,后续的最高级的子优先级是被安排到最高等待位处理的。 NVIC设置流程: 定义NVIC初始化结构体; 配置优先级分组; 往NVIC初始化结构体中填充,如中断源,抢占优先级,子优先级,使能等; 调用NVIC初始化函数; 编写
[单片机]
stm32专题六:<font color='red'>中断</font> NVIC
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved