IAR+Proteus7.6仿真MSP430单片机PORT1外部中断功能

 

1. Proteus电路

MSP430+Proteus7.6仿真PORT1端口外部中断 - WIND - 浪子天涯
 
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;
  }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值