微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430F449单片机RTC时钟C语言程序(带闹钟)

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

时间:11-27 来源:互联网 点击:

LCDMEM[1]=digit[(day)/10];

LCDMEM[2]=digit[(month)];

LCDMEM[3]=digit[(month)/10];

LCDMEM[4]=digit[year];

LCDMEM[5]=digit[(year/10)];

}

if(function_ping1==1)//天闪烁

{

if(twinkle_num==0)

{

LCDMEM[0]=digit[day];

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

}

else

{

LCDMEM[0]=0;

LCDMEM[1]=0;

}

LCDMEM[2]=digit[(month)];

LCDMEM[3]=digit[(month)/10];

LCDMEM[4]=digit[year];

LCDMEM[5]=digit[(year/10)];

}

if(function_ping1==2)//月闪烁

{

if(twinkle_num==0)

{

LCDMEM[2]=digit[(month)];

LCDMEM[3]=digit[(month)/10];

}

else

{

LCDMEM[2]=0;

LCDMEM[3]=0;

}

LCDMEM[0]=digit[day];

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

LCDMEM[4]=digit[year];

LCDMEM[5]=digit[(year/10)];

}

if(function_ping1==3)//年闪烁

{

if(twinkle_num==0)

{

LCDMEM[4]=digit[year];

LCDMEM[5]=digit[(year/10)];

}

else

{

LCDMEM[4]=0;

LCDMEM[5]=0;

}

LCDMEM[0]=digit[(day)];

LCDMEM[1]=digit[(day)/10];

LCDMEM[2]=digit[(month)];

LCDMEM[3]=digit[(month)/10];

}

}

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

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top