WDTCTL =WDTPW+WDTHOLD; //关看门狗
BCSCTL1 =CALBC1_1MHZ; //设定DCO为1MHZ
DCOCTL =CALBC1_1MHZ;
volatile unsigned int n;
do //等待晶振稳定
{
IFG1 &=~OFIFG;
for(n=5000;n>0;n--);
} while(OFIFG&IFG1);
(一)FLASH子程序
//***************FLASH子程序***************************
void write_seg(unsigned int fldress,unsigned int write) //段写子程序 fldress写入地址 起始地址最好不要是0x80000 write传送数据量 write<=1018 //write 传送数据个数<=1018
{
char write_value[]={
数据 //数据 个数〈=1018
};
char * write_addr=(char *)fldress; //指向段首地址
FCTL3=FWKEY; //复位LOCK
FCTL1=FWKEY+WRT; //写使能
for(i=0;i<write;i++)
{
(*write_addr++)=write_value[i]; //循环写入
}
FCTL3=FWKEY+LOCK; //置位LOCK
}
//****************************************************
(二)按键中断子程序
//*****************按键中断子程序*********************
unsigned char nP20,nP21,nP22,nP23,nP24,nP25,nP26,nP27;
unsigned char nP28,nP29,nP210,nP211,nP212,nP213,nP214,nP215;
int nRes=0;
//*******************************************************
//*******************************************************
void Init_Port(void);
void delay(void);
int Keyprocess(void);
//*******************************************************
//*******************************************************
void Init_Port(void)
{
//将P2端口所有管脚大初始化的的时候设置为输入方式
P2DIR=0;
//将P2端口所有管脚设置为一般I/O端口
P2SEL=0;
//将P2.4、P2.5、P2.6、P2.7设置为输出方向
P2DIR |=0xf0;