新闻中心

EEPW首页>嵌入式系统>设计应用> MSP430F449单片机RTC时钟C语言程序(带闹钟)

MSP430F449单片机RTC时钟C语言程序(带闹钟)

作者: 时间:2016-11-27 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/201611/322546.htm

if(change_ping==2)

{

if(function_ping3==0)//正常显示

{

LCDMEM[0]=digit[nao_sec];

LCDMEM[1]=digit[nao_sec/10];

LCDMEM[2]=digit[nao_min];

LCDMEM[3]=digit[nao_min/10];

LCDMEM[4]=digit[nao_hour];

LCDMEM[5]=digit[nao_hour/10];

}

if(function_ping3==1)//闹钟秒闪烁

{

if(twinkle_num==0)

{

LCDMEM[0]=digit[nao_sec];

LCDMEM[1]=digit[nao_sec/10];

}

else

{

LCDMEM[0]=0;

LCDMEM[1]=0;

}

LCDMEM[2]=digit[nao_min];

LCDMEM[3]=digit[nao_min/10];

LCDMEM[4]=digit[nao_hour];

LCDMEM[5]=digit[nao_hour/10];

}

if(function_ping3==2)//闹钟分闪烁

{

if(twinkle_num==0)

{

LCDMEM[2]=digit[nao_min];

LCDMEM[3]=digit[nao_min/10];

}

else

{

LCDMEM[2]=0;

LCDMEM[3]=0;

}

LCDMEM[0]=digit[nao_sec];

LCDMEM[1]=digit[nao_sec/10];

LCDMEM[4]=digit[nao_hour];

LCDMEM[5]=digit[nao_hour/10];

}

if(function_ping3==3)//闹钟小时闪烁

{

if(twinkle_num==0)

{

LCDMEM[4]=digit[nao_hour];

LCDMEM[5]=digit[nao_hour/10];

}

else

{

LCDMEM[4]=0;

LCDMEM[5]=0;

}

LCDMEM[0]=digit[nao_sec];

LCDMEM[1]=digit[nao_sec/10];

LCDMEM[2]=digit[nao_min];

LCDMEM[3]=digit[nao_min/10];

}

}

}

#pragmavector=BASICTIMER_VECTOR

__interruptvoidbasic_timer(void)

{

if(clock_flag==1)//闹钟存在

P1OUT^=BIT0;//LED闪烁

if(clock_flag==2)//闹钟清除

P1OUT&=~BIT0;//关闭LED

cnt++;//1s计数器加

if(cnt==4)//是否等于4

{

rtc();//秒加一

cnt=0;//清零

}

change_num++;//换屏计数器

twinkle_num=~twinkle_num;//闪烁标志位

if(change_num==60)//屏幕切换计数器到时复位

{

change_num=0;//

}

if(((change_num>0)&&(change_num20)||(change_num==0))||((ping_flag==1)&&(flag==1)))

{

if((ping_flag==1)&&(flag==1))//按键时在第一屏

{

change_num=20;//切换到第二屏

flag=0;//按键标志位清零

}

change_ping=0;//第一屏

num_flag=1;//屏切换标志位1

}

if(((change_num>20)&&(change_num40)||(change_num==20))||((ping_flag==2)&&(flag==1)))

{

if((ping_flag==2)&&(flag==1))//按键时在第二屏

{

change_num=40;//切换到第三屏

flag=0;

}

change_ping=1;//第二屏

num_flag=2;//屏切换标志位2

}

if(((change_num>40)&&(change_num60)||(change_num==40))||((ping_flag==3)&&(flag==1)))

{

if((ping_flag==3)&&(flag==1))//按键时在第二屏

{

change_num=0;//切换到第1屏

flag=0;

}

change_ping=2;//第三屏

num_flag=3;//屏切换标志位3

}

}


上一页 1 2 3 下一页

评论


技术专区

关闭