MSP430F149按键中断寄存器配置

发布者:Whisper123最新更新时间:2020-03-17 来源: eefocus关键字:MSP430F149  按键中断  寄存器配置 手机看文章 扫描二维码
随时随地手机看文章

P20~P23为LED,P11为按键。按下为低电平


使用中断函数按下一次按键则LED状态反转一次。


#include "io430.h"

#include "in430.h"

 

void select_xt2(void){

  unsigned char i;

/*------选择系统主时钟为8MHz-------*/

    BCSCTL1 &= ~XT2OFF;                 

    do{    

        IFG1 &= ~OFIFG;                  //清除晶振失败标志

        for (i = 0xFF; i > 0; i--);     //等待8MHz晶体起振

    }while ((IFG1 & OFIFG));             

    BCSCTL2 |= SELM_2 + SELS  ;        //MCLK和SMCLK选择高频晶振

}

 

void main()

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

  P1DIR = 0XFD;   //P1 in or out

  P1IE = 0X02;     //开启P1中断

  P1IES = 0X02;   //中断触发方式

  P1IFG = 0X00;   //中断标志清零

  

  P2DIR = 0XFF;

  P2OUT = 0XFF;

  _EINT();

}

 

#pragma vector = PORT1_VECTOR

__interrupt void PORT1_ISR(void)

{

  __delay_cycles(50000);

  if((P1IN&0X02) == 0)

    P2OUT = ~P2OUT;

  __delay_cycles(50000);

}

其中,配置P1端口的中断时要用到的寄存器有:


P1IE,中断使能寄存器,只使能P11的中断:0000,0010 = 0X02


P1IES,中断触发选择寄存器,0上升沿,1下降沿,0000,0010=0X02


P1IFG,中断标志寄存器,清零,0X00


一定要开启全部中断!__EINT();


中断响应函数定义为统一格式:



#pragma vector = PORT1_VECTOR

__interrupt void PORT1_ISR(void)

其中,PORT1_VECTOR为头文件中定义了的

关键字:MSP430F149  按键中断  寄存器配置 引用地址:MSP430F149按键中断寄存器配置

上一篇:MSP430F149学习之路——PWM信号
下一篇:MSP432P401R时钟入门

推荐阅读最新更新时间:2024-11-05 19:29

基于msp430F149管理sst25vf016b存储芯片的文件管理系统
sst25vf016b是以块2Mbyte大小的存储芯片总共分为啦512块,每块4K,来进行管理, 首先介绍全局变量: unsigned char Flag_Key12=0; 标志是否为最后一块 unsigned char Flag_Read=0; 标志读完整块flash, unsigned int Flag_16Num=0; 写数据,读数据时的控制器 unsigned int Block_MuluNow=0; 保存当前正在操作的目录 unsigned int Table_Block ; 每两个Bit表示一个块,每8个块压缩正一个字节,64个字节,正好对应512个块,每个块有3种状态,00空,01占用,10脏块 unsigned
[单片机]
基于<font color='red'>msp430F149</font>管理sst25vf016b存储芯片的文件管理系统
STM32F030C6外部中断的配置(按键触发)
配置分以下的步骤: 1、定义外部中断模式和分组的结构体; 2、打开外部中断复位时钟; 3、设置IO口与中断线的映射关系; 4、初始化线上的中断,设置触发的条件; 5、配置中断分组,并使能中断; 6、清除中断标志位; 7、编写中断服务函数;
[单片机]
#51单片机#中断实现按键消抖
在实际工程中常用到中断的算法来实现按键消抖。 思路:启动一个定时中断,每2ms进一次中断扫描按键状态并储存。连续扫描8次后,观察这8次按键状态是否一致。如果一致,即按键没有发生动作,处于稳定状态。 被监测到的按键动作,通常如下图所示: 具体代码如下: #include reg52.h unsigned char code LedChar ={//数码管显示的数字0~9。 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; sbit KEY1 = P3^3; sbit DigitalTube = P1^0; bit KeySta = 1; //当前按
[单片机]
#51单片机#<font color='red'>中断</font>实现<font color='red'>按键</font>消抖
MSP430F149的内部Flash
MSP430F149内部的memory结构,60K Flash+2K RAM。Flash分为主存储区和信息存储区,操作都一样,只是主存储区每个段512字节,而信息存储区为128字节,方便擦写。 当我们有数据要保存到Flash存储器时,要先对目标段进行整段擦除操作,擦除操作使的对应段FLASH存储器变成全 1 。应当注意的是,此flash的操作频率为257 kHz 到 476 kHz,时钟源可选择,因此我们做时钟分频时应当保证频率在这之间,以下为我编写的参考程序。 void Flash_erase(uint addr) {//段擦除,512bytes一段 uchar s; s=__get_inter
[单片机]
【改进】IMX257实现GPIO-IRQ中断按键获取键值驱动程序
一、使用struct pin_desc 管理按键的值 1.定义结构体 2.将前面我们申请中断时写的(void *)1修改为 &pins_desc 在ioctl中,设置中断中修改 在key_release中释放中修改 3.在中断程序中利用我们定义的struc pins_desc判断并得到按键的值 4.得到按键键值后,唤醒程序,在read函数中返回键值 附上驱动源程序: 1 /****************************** 2 linux key_query 3 *****************************/ 4 #include linux/module.h 5
[单片机]
【改进】IMX257实现GPIO-IRQ<font color='red'>中断</font><font color='red'>按键</font>获取键值驱动程序
MSP430F149流水灯闪烁以及数码管的显示
今天下午写了一个流水灯闪烁的实验,总的来说,不难,因为这块板子集合的电路图没有上一块那么复杂,所以总的来说,还是比较顺手,开始的时候,出现流水灯没有流转的现象,原来是没有加入延时函数,后来经过调整,结果很快就出来了 电路示意图: 示例代码: #include msp430x14x.h #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(do
[单片机]
<font color='red'>MSP430F149</font>流水灯闪烁以及数码管的显示
8051/2 单片机基础 LED闪烁,蜂鸣器,数码管驱动,独立按键中断,定时中断,串口通信
从软件转硬件路总是很艰难,各种电路知识,3个多月了,现在总算是入门了。 AT 8051/2 1.驱动LED闪烁 2.驱动蜂鸣器进行响动 3.驱动共阳级,单数码管,0—9 变化(MPX1-CA) - 使用8排阻 + NPN三极管 4.驱动共阴级,但数码管,0-9 变化(MPX1-CC) - 使用芯片74HC245 + PNP三极管 5.独立按键,控制单片机,并点亮/熄灭LED 6.中断,控制点亮/熄灭LED - INT0 , INT1 7.定时中断,控制点亮/熄灭LED - T0 , T1 8.串口通信 电路图: C代码: /** * 8051 DEMO 1 * 1.驱动LED闪烁 * 2.驱动蜂鸣器进行响动 *
[单片机]
8051/2 单片机基础 LED闪烁,蜂鸣器,数码管驱动,独立<font color='red'>按键</font>,<font color='red'>中断</font>,定时<font color='red'>中断</font>,串口通信
6.6410和210的按键中断编程
首先是打开6410底板原理图: 可以看到OK6410有六个按键: 可以看到OK6410的六个按键对应的引脚是KEYINT1、KEYINT2、KEYINT3、KEYINT4、KEYINT5和KEYINT6。接着在核心板的原理图里搜索这个词: 可以看到按键中断与GPN系列寄存器的引脚是互用的,接着就是在芯片手册里查看有关GPN系列寄存器的信息,重点是关注GPN控制寄存器:GPNCON: 这里我们使用到的按键对应的中断,需要配置成中断的方式,对应的GPN位设置为10,中断功能,即需要将KEYINT1-6设置为中断功能的,即是将GPNCON对应的前12位设置为101010101010即可。这样就把对应的GPN0-5设置
[单片机]
6.6410和210的<font color='red'>按键</font><font color='red'>中断</font>编程
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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