#include <msp430x14x.h>
#define uchar unsigned char
#define uintunsigned int
#define ulong unsigned long
#define CPU_F ((double)8000000)
#define delay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))
/*
* main.c
*/s
extern void scan(void);
extern void LCD_Main(void);
extern void LCD_Init(void);
extern void Motor_Init(void);
void Clock_Init()
{
uchar i;
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
BCSCTL1&=~XT2OFF; //打开XT振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清除震荡标志
for(i=0;i<100;i++)
_NOP(); //延时等待
}
while((IFG1&OFIFG)!=0); //如果标志为1,则继续循环等待
IFG1&=~OFIFG;
TACTL=TASSEL_1+TACLR; //ACLK;
_EINT(); //开总中断
CCTL0=CCIE; //定时器使能
CCR0=32768/200; //5ms定时周期
TACTL |=MC0; //停止计数模式
}
void Buzzer()
{
P6DIR |= BIT0;
P6OUT |= BIT0;
delay_ms(5000);
P6OUT &= ~BIT0;
}
void delay()
{int i = 10000;
for(;i>0;i--)
;
}
void main()
{
Clock_Init(); //系统时钟设置
Buzzer();
LCD_Init();
Motor_Init();
while(1)
{
LCD_Main();
}
}
页:
[1]