|
回复 楼主 sxy4517 的帖子
干什么用?
这方面程例非常多。随便找了一个。
//调试成功
#include "msp430x14x.h"
//按键按下,则P1.0状态取反
void main(void)
{
sys_init();
port_init();
while(1)
{
while((P1IN&0xf0)==0xf0){}; // 等待有键按下
delay(10000); //软件去抖
if((P1IN&0xf0)!=0xf0)
{
switch (P1IN&0xf0)
{
case 0xe0:{ //S1键按下处理...
P1OUT ^=BIT0;
}break;
case 0xd0:{ //S2键按下处理...
P1OUT ^=BIT0;
}break;
case 0xb0:{ //S3键按下处理...
P1OUT ^=BIT0;
}break;
case 0x70:{ //S4键按下处理...
P1OUT ^=BIT0;
}break;
default:{
P1OUT ^=BIT0;
} break;
}
}
}
}
void sys_init() //关看门狗,初始化DCO为8MHz
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
BCSCTL1 =RSEL0+RSEL1+RSEL2;//RSEL=7; //设定DCO为8MHZ
DCOCTL =DCO0+DCO1+DCO2;//DCO1=7;
}
void port_init()
{
//按键口
// P1DIR &=BIT4+BIT5+BIT6+BIT7; // 按键口设为输入
// P1SEL &= 0x0f; //按键口用于普通I/O口
//L2
P1DIR |=BIT0; //L2为输出口
}
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<10;j++);
} |
|