打印

【TI 技术资料分享】+Proteus7.6仿真MSP430单片机PORT1外部中断...

[复制链接]
731|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

msp430程序

#include<msp430x23x.h>
#define uint unsigned int
#define uchar unsigned char
/**************************************************
函数:void delay_1ms(void)    void delay_nms(uint n)
功能:延时1ms                 延时Nms
***************************************************/
void Delay_1ms(void)   //1ms延时函数
{
   uint i;
   for (i=0;i<80;i++);
}   
void Delay_Nms(uint n)  //N ms延时函数
{
   uint i=0;
   for (i=0;i<n;i++)
   Delay_1ms();
}
/**************************************************
函数:void P1_ISR(void)
功能:外部中断服务函数
***************************************************/
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{   
  uchar i;
  for(i=0;i<10;i++)
   {
      P1OUT=0x01;
      Delay_Nms(1000);
      P1OUT=0x00;
      Delay_Nms(1000);
   }
  P1IFG = 0x00;   //清除中断标志
}
/**************************************************
函数:void P1_INIT(void)
功能:PORT1端口初始化
***************************************************/
void P1_INIT(void)
{
  P1SEL = 0x00;   //设置为普通I/O
  P1DIR |= 0X01;  //设置I/O方向
  P1IE = 0x80;    //P1^7中断允许
  P1IES = 0x00;   //上升沿使相应标志位置位
  P1IFG = 0x00;   //清除中断标志
}
/**************************************************
函数:void main(void)
功能:主函数
***************************************************/
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;
  P1_INIT();  
  _EINT();        //开总中断
  while(1)
  {
    P1OUT=0x00;
  }
}

相关帖子

沙发
shenmu2012| | 2015-3-8 15:42 | 只看该作者
这个功能很简单的啊,,基本的只要实现IO口的中断功能的就可以的啦。

使用特权

评论回复
板凳
firstblood| | 2015-3-9 20:40 | 只看该作者
楼主分享的程序也很简洁的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎进入TI MCU论坛      21ic TI技术交流1群:61549143(已满),  21ic TI技术交流2群:311421422 我的博客:http://blog.timcu.com/

1179

主题

34650

帖子

1115

粉丝