MSP430F149学习之路——按键

代码一:

 1 /**********************************
 2 程序功能:用按键控制LED灯熄灭
 3 ***********************************/
 4 #include <msp430x14x.h>
 5
 6 void int_clk();
 7 void main()
 8 {
 9   WDTCTL = WDTPW + WDTHOLD;
10   int_clk();
11   P1DIR = 0Xf0;
12   P1OUT = 0Xff;
13   P6DIR = 0XFF;
14   P6OUT = 0x00;
15   while(1)
16   {
17     switch(P1IN & 0X0F)
18     {
19     case 0x0e:P6OUT = 0XC0;break;
20     case 0x0d:P6OUT = 0X30;break;
21     case 0x0b:P6OUT = 0X0C;break;
22     case 0x07:P6OUT = 0X03;break;
23     }
24   }
25 }
26
27 void int_clk()
28 {
29   BCSCTL1 &= ~XT2OFF;
30   BCSCTL2 |= SELM_1 + SELS;
31   do
32   {
33     IFG1 &= ~OFIFG;
34     for(int i=100;i>0;i--)
35       _NOP();
36   }while((IFG1 & OFIFG)!=0);
37   IFG1 &= ~OFIFG;
38 }

代码二:

 1 #include <msp430x14x.h>
 2
 3 void int_clk();
 4 void delay(int i);
 5 void main()
 6 {
 7   int_clk();
 8   //initialize IO
 9   P1DIR = 0XF0;
10   P1OUT = 0XFF;
11   P6DIR = 0XFF;
12   P6OUT = 0XFF;
13
14   if(P1IN != 0X0F)
15   {
16     delay(20);
17     if(P1IN != 0X0F)
18     {
19       switch(P1IN & 0X0F)
20       {
21       case 0x0e:P6OUT = 0XFC;break;
22       case 0x0d:P6OUT = 0XF3;break;
23       case 0x0b:P6OUT = 0XCF;break;
24       case 0x07:P6OUT = 0X3F;break;
25       }
26     }
27   }
28   else
29     P6OUT = 0XFF;
30 }
31
32 void int_clk()
33 {
34   BCSCTL1 &= ~XT2OFF;
35   BCSCTL2 |= SELM_1 + SELS;
36   do
37   {
38     IFG1 &= ~OFIFG;
39     for(int i=1;i<100;i++)
40       _NOP();
41   }while((IFG1 & OFIFG)!=0);
42   IFG1 &= ~OFIFG;
43 }
44
45 void delay(int i)
46 {
47   while(i--);
48 }
时间: 2024-08-28 10:44:22

MSP430F149学习之路——按键的相关文章

MSP430F149学习之路——按键与LED

代码 1 /*********************************** 2 程序功能:用按键控制LED状态 3 缺点:按键按下后无法改变LED灯的状态,可以利用板上的复位键^~^ 4 *************************************/ 5 #include <msp430x14x.h> 6 7 int k,i=0; 8 void int_clk(); 9 void led(int n); 10 void main() 11 { 12 WDTCTL = WD

STM32学习之路-按键中断测试(外部中断)

终于有时间再来学习STM32了~ 这几天都在忙着该死的考试.直接进入正题 开发板:奋斗V5 这个按键中断测试的要求是:按键2(K2)按下,LED2(V7)亮, 再一次按下就灭,循环.. 好,先看看按键和LED的原理图 好吧~ 虽然图截得不是很好看,但是能看到K2接的是PC2, LED2接的是PD6 ok,剩下的就是配置工作了.. 先来理一理思路: (1)初始化系统时钟 (2)初始化外部时钟(你所用到的东西) (3)配置LED (4)配置中断优先级 (5)配置外部中断线 (6)中断处理函数 恩,差

MSP430F149学习之路——时钟1

代码一: /************************** 功能:LED每隔1秒闪烁一次 ****************************/ #include <msp430x14x.h> void main() { P6DIR = 0XFF; P6OUT = 0X00; TACCR0 = 4095; TACCTL0 = CCIE; TACTL = TASSEL_1 + ID_3 + MC_1; _EINT(); LPM3; } #pragma vector=TIMERA0_VE

MSP430F149学习之路——LED

1 #include <msp430x14x.h> 2 3 void int_clk(); 4 void delay(int i); 5 void main() 6 { 7 WDTCTL = WDTPW + WDTHOLD; 8 int_clk(); 9 P6DIR = 0XFF; 10 P6OUT = 0Xff; 11 while(1) 12 { 13 P6OUT = 0XFF; 14 delay(20000); 15 P6OUT = 0x00; 16 delay(20000); 17 }

MSP430F149学习之路——PWM信号

代码一: 1 /******************************* 2 程序功能:ACLK=32768Hz 3 PWM波 T=512/32768 占空比75% 4 *********************************/ 5 6 #include <msp430x14x.h> 7 void main() 8 { 9 WDTCTL = WDTPW + WDTHOLD; 10 TACTL = TASSEL_1 + TACLR; 11 12 CCTL0 = 0X00; 13

MSP430F149学习之路——UART

代码一: 1 #include <msp430x14x.h> 2 void int_clk() 3 { 4 BCSCTL1 &= ~XT2OFF; 5 BCSCTL2 |= SELM_2 + SELS; 6 do 7 { 8 IFG1 &= ~OFIFG; 9 for(int i=0;i<100;i++) 10 _NOP(); 11 }while((IFG1 & OFIFG)!=0); 12 IFG1 &= ~OFIFG; 13 } 14 void int

MSP430F149学习之路——SPI

代码一: 1 //****************************************************************************** 2 //Description:SPI slave talks to SPI master using 3-wire mode. Data is sent 3 //to the master starting at 0x00 and increments. Received data from the 4 //master

MSP430F149学习之路——捕获/比较模式

1.捕获模式 1 #include <msp430x14x.h> 2 unsigned int last0=0,last1=0; 3 unsigned int k=0,j=0; 4 void mian(void) 5 { 6 WDTCTL = WDTPW + WDTHOLD; 7 TACTL = TACLR + TASSEL_2 + ID_3 + MC_3; 8 9 TACCTL0 = CM_3 + CCIS_0 + SCS + CAP + CCIE; 10 TACCTL1 = CM_3 +

MSP430F149学习之路——AD

代码一:Timer_A触发转换 1 #include <msp430x14x.h> 2 void main() 3 { 4 WDTCTL = WDTPW + WDTHOLD; 5 P6SEL |= BIT0; 6 TACTL |= TASSEL_2 + MC_2; 7 TACCTL1 = OUTMOD_3; 8 TACCR1 = 0X0FFF; 9 ADC12CTL0 = ADC12ON + SHT0_2; 10 ADC12CTL1 = SHS_1 + SHP; 11 while(1) 12