datasheet
超过460,000+ 应用技术资源下载
null

用按键中断控制LED,可按照此案例自行更改

  • 1星
  • 日期: 2015-05-09
  • 大小: 1.45KB
  • 所需积分:1分
  • 下载次数:1
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: keyled中断

用按键中断控制LED,可按照此案例自行更改

#include void Clkinit(); void io_init(); void delay(); void main() { WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 Clkinit(); io_init(); while(1) { } } void io_init() { P1DIR=0x00; P1OUT |= BIT0+BIT1+BIT2+BIT3; //将电阻设置为上拉 P1IES |= BIT0+BIT1+BIT2+BIT3; // P1.2....设为下降沿中断 P1IE |= BIT0+BIT1+BIT2+BIT3; // 允许P1.2..中断 P1IFG=0x00; //中断标志位清零 P2SEL=0x00; P2DIR=0xFF; P2OUT=0xFF; } void Clkinit() { char i; BCSCTL1 &= ~XT2OFF; //打开XT2振荡器 IFG1&=~OFIFG; //清除振荡错误标志 while((IFG1&OFIFG)!=0) { for(i=0;i<0xff;i++); IFG1&=~OFIFG; //清除振荡错误标志 } BCSCTL2 |= SELM_2+SELS+DIVS_3; //MCLK为8MHz,SMCLK为1MHz _EINT(); } void delay(int a) { while(a--); } #pragma vector=PORT1_VECTOR __interrupt void Port1() { if((P1IFG&BIT0) == BIT0) { //处理P1IN.0中断 P1IFG &= ~BIT0; //清除中断标志 P2OUT&=~BIT6+BIT7; delay(3000); P2OUT=0xFF;} else if((P1IFG&BIT1) ==BIT1) { //处理P1IN.1中断 P1IFG &= ~BIT1; //清除中断标志 P2OUT&=~BIT4+BIT5; delay(3000); P2OUT=0xFF; } else if((P1IFG&BIT2) ==BIT2) { //处理P1IN.3中断 P1IFG &= ~BIT2; //清除中断标志 P2OUT&=~BIT2+BIT3; delay(3000); P2OUT=0xFF;} else if((P1IFG&BIT3) ==BIT3) { //处理P1IN.4中断 P1IFG &= ~BIT3; //清除中断标志 P2OUT&=~BIT0+BIT1; delay(3000); P2OUT=0xFF;} }
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子

$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })