188|0

6773

帖子

19

资源

纯净的硅(中级)

msp430g2553初学到设计经验分享

MSP430g2553是16位MCU,供电电压可以低至1.8V,并包含如下图中的外设,并有多种低功耗模式可供开发者灵活使用。

  MSP430G2553,个人觉着:低功耗是其最大亮点。为此可谓是处心积虑。因而中断/低功耗模式在430的应用中便显得千娇百媚,楚楚动人!

msp430g2553例程,msp430g2553初学到设计经验分享
image-20200812212459-1.png

  MSP430G2x13和MSP430G2x53系列是超低功耗混合信号微控制器,具有内置的16位定时器、多达24个支持触摸感测的I/O引脚、一个多用途模拟比较器以及采用通用串行通信接口的内置通信能力。

  MSP430G2553应用非常广泛,这里,先跟大伙看下这个中断的情况。

  #include《msp430g2553.h》

  #include “in430.h”

  int main(void)

  {

  WDTCTL = WDTPW + WDTHOLD; //禁止看门狗计数

  P1DIR=BIT0+BIT1;//P1.0\1设置为输出,P1.4/5是输入

  P1OUT=BIT0+BIT1+BIT4+BIT5;//P1.0\1为高,P.4/5上拉

  P1REN=BIT4+BIT5;//P1.4上拉使能

  P1IE=BIT4+BIT5;//P1.4开中断

  P1IES=BIT4+BIT5;//中断沿选择

  __enable_interrupt();//开总中断

  while(1);//没事做

  }

  #pragma vector=PORT1_VECTOR

  __interrupt void PORT1()//P1口中断服务程序

  {

  unsigned int i=0;

  unsigned char PushKey=0;

  PushKey=P1IFG&(BIT4+BIT5);//读取是哪个键按下

  for(i=0;i《65535;i++);//延时后再作判断,避免是抖动

  if(!(P1IN&PushKey))//没有按下,则为抖动,标志清零

  P1IFG=0;

  if((P1IN&PushKey))//判断是否有键按下

  {

  for(i=0;i《65535;i++);

  if((P1IN&PushKey))

  {

  if((PushKey&BIT4))

  P1OUT^=BIT0;

  if((PushKey&BIT5))

  P1OUT^=BIT1;

  }

  P1IFG&=~(BIT4+BIT5);

  }

  }

  这个程序,最出彩的地方在于“while(1);”这个等待的语句。

  中断没发生前,程序在停这儿等待,就相当于CPU一直停在儿没事做歇着,也许是在等待戈多。一旦中断条件发生,在这里是按键,它便好像逮着什么似的,便进入中断,去执行中断程序中的代码。

  这里,我们可见。中断没来之前,CPU它无所事事,却没有关闭,仍在耗电。中断来了之后,它赶忙地处理中断程序。前前后后,他总在折腾。肯定累得够戗。

msp430g2553例程,msp430g2553初学到设计经验分享

 


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

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表