#include "oled.h"
void system_Init(void);
void TB_Init(void);
unsigned long count=0;
u8 t0='0',t1='0';
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
system_Init();
P3SEL = 0x00;
P3DIR |=0x0a;
delay_ms(1000);
OLED_Init();//初始化OLED
OLED_Clear();
TB_Init();
_EINT();
OLED_ShowCHinese(0,0,0);//中
OLED_ShowCHinese(18,0,1);//景
OLED_ShowCHinese(36,0,2);//园
OLED_ShowCHinese(54,0,3);//电
OLED_ShowCHinese(72,0,4);//子
OLED_ShowCHinese(90,0,5);//科
OLED_ShowCHinese(108,0,6);//技
while(1)
{
}
}
void system_Init(void)
{
unsigned int i;
BCSCTL1 = 0x00;//寄存器内容清0
//XT2振荡器开启
//LFTX1工作在低频模式
//ACLK的分频因子为1
do
{
IFG1 &=~OFIFG;//清除OSCFault(振荡器失效)标志
for(i=0x20;i>0;i--);//延时,待稳定
}
while((IFG1 & OFIFG)==OFIFG);//如果OSCFault= 1
BCSCTL2 = 0x00;//
BCSCTL2 |=SELM1;//MCLK的时钟源为TX2,分频因子为1
BCSCTL2 |=SELS;//SMCLK的时钟源为TX2,分频因子为1
}
void TB_Init(void)
{
TBCTL = TBSSEL_1 + MC_1;//ACLK=32.768k, up mode
TBCCTL0 = CCIE; //CCR0 interrupt enabled
TBCCR0 = 4096; //32768 / 4096 / 2= 4Hz
}
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B0 (void)
{
count = count +1;
if(count == 20)
{
count = 0;
if(t0!='9')
t0 = t0 +1;
else
t0='0';
if(t1!='9')
t1 = t1 +1;
else
t1='0';
}
OLED_ShowChar(64,3,t0);
OLED_ShowChar(74,3,t1);
}
|