<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 點(diǎn)陣萬(wàn)年歷(帶時(shí)間、年月日星期調整及鬧鐘功能)C程序

點(diǎn)陣萬(wàn)年歷(帶時(shí)間、年月日星期調整及鬧鐘功能)C程序

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò ) 收藏

/******************************************************/
/**********年調整界面顯示子程序(包括下半屏)************/
/******************************************************/
void xiannian(uchar nia)//變量年
{
uchar movee;
char ii;
for(line=8;line<16;line++)//掃描8次,即完成一個(gè)字的移動(dòng),line等于8,表示在下半屏顯示
{
if(flag1==0)//如果標志位為1,則執行顯示部分
{
movee=line-8;
BUF[0]=table[16+movee];//顯示數字2
BUF[1]=table[movee];//顯示數字0
BUF[2]=table[(8*(nia/10))+movee];//顯示年十位
BUF[3]=table[(8*(nia%10))+movee];
BUF[4]=table1[16+movee];//顯示橫線(xiàn)
}
if(flag1==1)
yixianhei();//否則顯示黑屏
for(ii=4;ii>=0;ii--)//循環(huán)5次將數發(fā)往顯示屏
song(~BUF[ii]);//送數
LINE=table2[line];//打開(kāi)行線(xiàn),即174HC154行線(xiàn)端
CLKR=1;//在74HC595處鎖存起來(lái)
CLKR=0;
CLKR=1;
delaya(800);
}
}
/******************************************************/
/*********月/日調整界面顯示子程序(包括下半屏)********/
/******************************************************/
void xianriyue(uchar ye,uchar rii)//月與日變量
{
uchar movee;
char ii;
for(line=8;line<16;line++)//掃描8次,即完成一個(gè)字的移動(dòng),line等于8,表示在下半屏顯示
{
if(flag1==0)//同上如果為0就顯示,為1就黑屏,形成閃爍
{
movee=line-8;
BUF[0]=table[(8*(ye/10))+movee];//顯示月十位
BUF[1]=table[(8*(ye%10))+movee];//月個(gè)位
BUF[2]=table1[16+movee];//顯示橫線(xiàn)
BUF[3]=table[(8*(rii/10))+movee];//顯示日十位
BUF[4]=table[(8*(rii%10))+movee];//顯示橫線(xiàn)
}
if(flag1==1)//為1就黑屏顯示
yixianhei();
for(ii=4;ii>=0;ii--)//循環(huán)5次將數發(fā)往顯示屏
song(~BUF[ii]);//送數
LINE=table2[line];//打開(kāi)行線(xiàn),即174HC154行線(xiàn)端
CLKR=1;//在74HC595處鎖存起來(lái)
CLKR=0;
CLKR=1;
delaya(800);
}
}
/******************************************************/
/*********星期調整界面顯示子程序(包括下半屏)********/
/******************************************************/
void xi(uchar xi)
{
uchar movee;
char ii;
for(line=8;line<16;line++)//掃描8次,即完成一個(gè)字的移動(dòng),line等于8,表示在下半屏顯示
{
if(flag1==0)//0.5秒顯示
{
movee=line-8;
BUF[0]=table1[16+movee];//顯示橫線(xiàn)"-"
BUF[1]=table1[16+movee];//顯示橫線(xiàn)"-"
BUF[2]=table[(8*(xi%10))+movee];//顯示出星期個(gè)位
BUF[3]=table1[16+movee];//顯示橫線(xiàn)"-"
BUF[4]=table1[16+movee];//顯示橫線(xiàn)"-"
}
if(flag1==1)
yixianhei();
for(ii=4;ii>=0;ii--)//循環(huán)5次將數發(fā)往顯示屏
song(~BUF[ii]);//送數
LINE=table2[line];//打開(kāi)行線(xiàn),即174HC154行線(xiàn)端
CLKR=1;//在74HC595處鎖存起來(lái)
CLKR=0;
CLKR=1;
delaya(800);
}
}
/******************************************************/
/***************鬧鐘時(shí)間調整顯示子程序*****************/
/******************************************************/
void xianniao(uchar shi,uchar ge,uchar z)
{
char ii;
for(line=0;line<8;line++)//掃描8次,即完成一個(gè)字的移動(dòng)
{
if(flag1==0)//同樣0.5秒顯示時(shí)間
{
BUF[0]=table[(8*(shi/10))+line];//顯示小時(shí)十位
BUF[1]=table[(8*(shi%10))+line];
BUF[2]=table1[z*8+line];//顯示橫線(xiàn)
BUF[3]=table[(8*(ge/10))+line];//顯示分鐘十位
BUF[4]=table[(8*(ge%10))+line];
}
if(flag1==1)//同樣0.5秒顯示黑屏
yixianhei();
for(ii=4;ii>=0;ii--)//循環(huán)5次將數發(fā)往顯示屏
song(~BUF[ii]);//送數
LINE=table2[line];//打開(kāi)行線(xiàn),即174HC154行線(xiàn)端
CLKR=1;//在74HC595處鎖存起來(lái)
CLKR=0;
CLKR=1;
delaya(800);
}
}
/******************************************************/
/***************按鍵按下后處理子程序*******************/
/******************************************************/
void skey()
{
if(shr!=0)//如果標志位shr不為0,則執行以下內容------如果按下了加按鍵則程序復位
{
if(key1==0)
{
delay(10);
if(key1==0)//如果加按鍵按下了,則全部復位
{
yin=0;//將按鍵計數器清0
shr=0;//標志位清0
lk=0;//顯示上半屏,此變量是全屏與半屏控制變量,當它為8時(shí),就執行全屏,否則半屏
clockbiao=~clockbiao;
bbtsoud();//蜂鳴器響一聲子程序
while(!key1);//按鍵釋放
}
}
}
if(a!=0)//如果標志位不為0,則執行以下內容-------閃爍進(jìn)入調整模式
xianshan();//閃爍
if(b!=0)//如果標志位不為0,則執行以下內容,進(jìn)行主時(shí)間小時(shí)調整
{
xianshan();//調用主時(shí)間顯示子程序
if(key1==0)
{
delay(10);
if(key1==0)
{
xianshan();
shi++;
if(shi==24)//小時(shí)等于24?
shi=0;//清0
write1302(0x8e,0x00);//去掉保護
write1302(0x84,((shi/10)<<4)|(shi%10));//時(shí)數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x85);
shi=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);//將小時(shí)轉換出來(lái)
while(!key1);
}
}
if(key2==0)//以下是處理主時(shí)間小時(shí)減部分
{
delay(10);
if(key2==0)
{
shi--;
if(shi==(0-1))
shi=23;
write1302(0x8e,0x00);//去掉保護
write1302(0x84,((shi/10)<<4)|(shi%10));//時(shí)數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x85);
shi=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);
while(!key2);
}
}
}
if(c!=0)//如果標志位不為0,則執行以下內容------以下是處理主時(shí)間分鐘調整部分
{
xianshan();
if(key1==0)//加分鐘部分
{
delay(10);
if(key1==0)
{
xianshan();//調用主時(shí)間顯示子程序
fen++;
if(fen==60)
fen=00;
write1302(0x8e,0x00);//去掉保護
write1302(0x82,((fen/10)<<4)|(fen%10));//分數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x83);
fen=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);//將它轉換出來(lái)
while(!key1);
}
}
if(key2==0)//減分鐘部分
{
delay(10);
if(key2==0)
{
xianshan();
fen--;
if(fen==(0-1))
fen=59;
write1302(0x8e,0x00);//去掉保護
write1302(0x82,((fen/10)<<4)|(fen%10));//分數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x83);
fen=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);
while(!key2);
}

}
}
if(d!=0)//如果標志位不為0,則執行以下內容-----調整年
{
xiannian(nian);//調用年顯示子程序
if(key1==0)//年時(shí)間加部分處理
{
delay(10);
if(key1==0)
{
xiannian(nian);
nian++;
if(nian==99)//年到了99嗎?
nian=0;
write1302(0x8e,0x00);//去掉保護
write1302(0x8c,((nian/10)<<4)|(nian%10));//年數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x8d);
nian=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);//年數據轉換
while(!key1);
}
}
if(key2==0)//年時(shí)間減部分處理
{
delay(10);
if(key2==0)
{
xiannian(nian);
nian--;
if(nian==(0-1))
nian=99;
write1302(0x8e,0x00);//去掉保護
write1302(0x8c,((nian/10)<<4)|(nian%10));//年數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x8d);
nian=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);//年數據轉換
while(!key2);
}

}
}
if(e!=0)//如果標志位不為0,則執行以下內容-----處理月
{
xianriyue(yue,ri);
if(key1==0)//月加部分處理
{
delay(10);
if(key1==0)
{
xianriyue(yue,ri);
yue++;
if(yue==13)
yue=1;
write1302(0x8e,0x00);//去掉保護
write1302(0x88,((yue/10)<<4)|(yue%10));//月數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x89);
yue=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);
while(!key1);
}
}
if(key2==0)//月減部分處理
{
delay(10);
if(key2==0)
{
xianriyue(yue,ri);
yue--;
if(yue==(1-1))
yue=12;
write1302(0x8e,0x00);//去掉保護
write1302(0x88,((yue/10)<<4)|(yue%10));//月數據寫(xiě)入
write1302(0x8e,0x80);//打開(kāi)保護
readvalue=read1302(0x89);
yue=((readvalue&0xf0)>>4)*10+(readvalue&0x0f);//月轉換
while(!key2);
}

}
}


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>