欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
多功能單片機(jī)電子萬(wàn)年歷程序
[打印本頁(yè)]
作者:
五葉尊者
時(shí)間:
2019-2-19 13:37
標(biāo)題:
多功能單片機(jī)電子萬(wàn)年歷程序
功能:陽(yáng)歷+陰歷+星期+鬧鐘+多點(diǎn)溫度無(wú)線傳輸+紅外+掉電走時(shí)
0.png
(10.03 KB, 下載次數(shù): 18)
下載附件
2019-2-21 03:30 上傳
單片機(jī)源程序如下:
#include <reg52.h>
#include "12864B.h"
#include "ds1302.h"
#include "DS18B20.h"
#include"NRF2401.h"
#include "delay.h"
#include "clock.h"
#include "ziku.h"
#include "gongli.h"
extern uchar week_value[2];
extern char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,時(shí)到日,月,年位閃的計(jì)數(shù)
extern unsigned char hi_sec,hi_min,hi_hour,hi_day,hi_month;
extern unsigned char clock_shi,clock_fen,clock_miao,clock_month,clock_day; //鬧鐘秒,分,時(shí)到日,月,年位閃的計(jì)數(shù)
extern bit flag2;
extern CLOCKTIME clock_time;
unsigned char count,count1,temp,flag,up_flag,down_flag,shi,fen,miao,week,day,month,year;
unsigned char IrValue[6];
unsigned char Time;
bit done,flag1,flag2;
SYSTEMTIME CurrentTime;
sbit clock_Set=P2^3;
sbit Set = P2^4; //功能按鍵
sbit Up = P2^2; //加法按鈕
sbit Down = P2^0; //減法按鈕
sbit Out = P2^1; //立刻跳出調(diào)整模式按鈕
sbit Beep = P1^5; //蜂鳴器
sbit IRIN = P3^2; //紅外
void Setkey();
void timer0_1()
{
TMOD=0x01; //設(shè)置定時(shí)器0為工作方式1
TH0 = (65536 - 45872)/256; //裝初值
TL0 = (65536 - 45872)%256;
EA=1; //開(kāi)總中斷
ET0=1; //開(kāi)定時(shí)器0中斷
TR0=1; //啟動(dòng)定時(shí)器0
}
void show_time() //液晶顯示程序
{
DS1302_GetTime(&CurrentTime); //獲取時(shí)鐘芯片的時(shí)間數(shù)據(jù)
TimeToStr(&CurrentTime); //時(shí)間數(shù)據(jù)轉(zhuǎn)換液晶字符
DateToStr(&CurrentTime); //日期數(shù)據(jù)轉(zhuǎn)換液晶字符
LCD12864_SetWindow(2,0); //設(shè)置顯示坐標(biāo)
Print(CurrentTime.TimeString); //顯示時(shí)間
LCD12864_SetWindow(0,1);
Print(CurrentTime.DateString); //顯示日期
LCD12864_SetWindow(2,7);
change(); //顯示星期幾
lcm_w_nl(); //農(nóng)歷顯示
Delay10ms(5); //掃描延時(shí)
}
void outkey() //跳出調(diào)整模式,返回默認(rèn)顯示
{
uchar Second;
if(Out==0)
{
mdelay(8);
if(Out==0)
{
if(flag1==0)
{
count=0;
flag1=0;
hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0;
Second=Read1302(DS1302_SECOND);
Write1302(0x8e,0x00); //寫(xiě)入允許
Write1302(0x80,Second&0x7f); //啟動(dòng)計(jì)時(shí)
Write1302(0x8E,0x80); //禁止寫(xiě)入
done=0;
}
else
{
count1=0;flag2=0;flag1=0;done=0;
hi_sec=0,hi_min=0,hi_hour=0,hi_day=0,hi_month=0;
LCD12864_WriteCmd(0x30);
LCD12864_WriteCmd(0x01); //清屏命令
LCD12864_WriteCmd(0x34); //擴(kuò)展模式命令,關(guān)顯示
gui_line(72,32,72,48); //內(nèi)部線框
gui_line(0,15,127,15);
gui_line(0,32,127,32);
gui_line(0,48,127,48);
gui_line(62,48,62,63);
gui_line(0,0,127,0); //四周線框
gui_line(0,1,0,63);
gui_line(0,63,127,63);
gui_line(127,0,127,63);
GUI_Put_Area(81,33,&uMod[0][0],16,14,0); //固定顯示“星”
GUI_Put_Area(96,33,&uMod[1][0],16,14,0); //固定顯示“期”
GUI_Put_Area(3,18,&uMod[2][0],16,12,0); //固定顯示“農(nóng)”
GUI_Put_Area(19,18,&uMod[3][0],16,12,0); //固定顯示“歷”
LCD12864_WriteCmd(0x36); //開(kāi)顯示
LCD12864_WriteCmd(0x30); //基本模式命令
}
}
while(Out==0);
}
}
void Upkey() //升序按鍵
{
if(Up==0)
{
mdelay(8);
if(Up==0)
{
if(flag1==0)
{
switch(count)
{
case 1:
DS1302_change(0x81,&miao); //讀取DS1302秒地址的數(shù)據(jù)給miao
miao=miao+1;
if(miao>=60)
miao=0;
down_flag=1;
break;
case 2:
DS1302_change(0x83,&fen); //讀取DS1302分地址的數(shù)據(jù)給fen
fen=fen+1;
if(fen>=60)
fen=0;
down_flag=1;
break;
case 3:
DS1302_change(0x85,&shi);
shi=shi+1;
if(shi>=24)
shi=0;
down_flag=1;
break;
case 4:
DS1302_change(0x87,&day);
DS1302_change(0x89,&month);
day=day+1;
if(day==31&&((month==4)||(month==6)||(month==9)||(month==11)))
day=1;
if(day==30&&(month==2))
day=1;
if(day==32&&((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12)))
day=1;
down_flag=1;
break;
case 5:
DS1302_change(0x89,&month);
month=month+1;
if(month==13)
month=1;
down_flag=1;
break;
case 6:
DS1302_change(0x8d,&year);
year=year+1;
if(year==100)
year=0;
down_flag=1;
break;
default: break;
}
}
else
{
switch(count1)
{
case 1:
clock_miao=clock_miao+1; //鬧鐘的秒加1
if(clock_miao>=60)
clock_miao=0;
break;
case 2:
clock_fen=clock_fen+1;
if(clock_fen>=60)
clock_fen=0;
break;
case 3:
clock_shi=clock_shi+1;
if(clock_shi>=24)
clock_shi=0;
break;
case 4:
clock_day=clock_day+1;
if(clock_day==31&&((clock_month==4)||(clock_month==6)||(clock_month==9)||(clock_month==11)))
clock_day=1;
if(clock_day==30&&(clock_month==2))
clock_day=1;
if(clock_day==32&&((clock_month==1)||(clock_month==3)||(clock_month==5)||(clock_month==7)||(clock_month==8)||(clock_month==10)||(clock_month==12)))
clock_day=1;
break;
case 5:
clock_month=clock_month+1;
if(clock_month==13)
clock_month=1;
break;
default: break;
}
}
}
while(Up==0);
}
}
void Downkey() //降序按鍵
{
if(Down==0)
{
mdelay(8);
if(Down==0)
{
if(flag1==0)
{
switch(count)
{
case 1:
DS1302_change(0x81,&miao);
miao=miao-1;
if(miao==-1)
miao=59;
down_flag=1;
break;
case 2:
DS1302_change(0x83,&fen);
fen=fen-1;
if(fen==-1)
fen=59;
down_flag=1;
break;
case 3:
DS1302_change(0x85,&shi);
shi=shi-1;
if(shi==-1)
shi=23;
down_flag=1;
break;
case 4:
DS1302_change(0x87,&day);
DS1302_change(0x89,&month);
day=day-1;
if(day==0&&((month==4)||(month==6)||(month==9)||(month==11)))
day=30;
if(day==0&&(month==2))
day=29;
if(day==0&&((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12)))
day=31;
down_flag=1;
break;
case 5:
DS1302_change(0x89,&month);
month=month-1;
if(month==0)
month=12;
down_flag=1;
break;
case 6:
DS1302_change(0x8d,&year);
year=year-1;
if(year==-1)
year=99;
down_flag=1;
break;
default: break;
}
}
else
{
switch(count1)
{
case 1:
clock_miao=clock_miao-1; //鬧鐘秒減1
if(clock_miao==-1)
clock_miao=59;
break;
case 2:
clock_fen=clock_fen-1;
if(clock_fen==-1)
clock_fen=59;
break;
case 3:
clock_shi=clock_shi-1;
if(clock_shi==-1)
clock_shi=23;
break;
case 4:
clock_day=clock_day-1;
if(clock_day==0&&((clock_month==4)||(clock_month==6)||(clock_month==9)||(clock_month==11)))
clock_day=30;
if(clock_day==0&&(clock_month==2))
clock_day=29;
if(clock_day==0&&((clock_month==1)||(clock_month==3)||(clock_month==5)||(clock_month==7)||(clock_month==8)||(clock_month==10)||(clock_month==12)))
clock_day=31;
break;
case 5:
clock_month=clock_month-1;
if(clock_month==0)
clock_month=12;
break;
default: break;
}
}
}
while(Down==0);
}
}
void keydone() //按鍵功能執(zhí)行
{
if(flag1==0)
{
uchar Second;
if(flag==0) //關(guān)閉時(shí)鐘,停止計(jì)時(shí)
{
DS1302_SetProtect(0); //寫(xiě)入允許
temp=Read1302(0x81); //將秒地址的數(shù)據(jù)讀出來(lái)
Write1302(0x80,temp|0x80); //停止計(jì)時(shí),秒寄存器最高位為1時(shí)停止計(jì)時(shí)
DS1302_SetProtect(1); //禁止寫(xiě)入
flag=1;
}
Setkey(); //掃描模式切換按鍵
switch(count)
{
case 1: //count=1,調(diào)整秒
do
{
outkey(); //掃描跳出按鈕
Upkey(); //掃描加按鈕
Downkey(); //掃描減按鈕
if(up_flag==1||down_flag==1) //數(shù)據(jù)更新,重新寫(xiě)入新的數(shù)據(jù)
{
DS1302_SetProtect(0); //寫(xiě)入允許
DS1302_SetTime1(DS1302_SECOND,miao); //將新的時(shí)間寫(xiě)入
DS1302_SetProtect(1); //禁止寫(xiě)入
up_flag=0;
down_flag=0;
}
hide_sec++; //位閃計(jì)數(shù)
if(hide_sec>3)
hide_sec=0;
show_time(); //液晶顯示數(shù)據(jù)
}
while(count==2); //count=2,調(diào)整分
break;
case 2:
do
{
hide_sec=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
DS1302_SetProtect(0); //寫(xiě)入允許
DS1302_SetTime(DS1302_MINUTE,fen);
DS1302_SetProtect(1); //禁止寫(xiě)入
up_flag=0;
down_flag=0;
}
hide_min++;
if(hide_min>3)
hide_min=0;
show_time();
}
while(count==3); //count=3,調(diào)整小時(shí)
break;
case 3:
do
{
hide_min=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
DS1302_SetProtect(0); //寫(xiě)入允許
DS1302_SetTime(DS1302_HOUR,shi);
DS1302_SetProtect(1); //禁止寫(xiě)入
up_flag=0;
down_flag=0;
}
hide_hour++;
if(hide_hour>3)
hide_hour=0;
show_time();
}
while(count==4);
break;
case 4:
do //count=5,調(diào)整日
{
hide_week=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
DS1302_SetProtect(0); //寫(xiě)入允許
DS1302_SetTime(DS1302_DAY,day);
DS1302_SetProtect(1); //寫(xiě)入禁止
up_flag=0;
down_flag=0;
}
hide_day++;
if(hide_day>3)
hide_day=0;
show_time();
}
while(count==6); //count=6,調(diào)整月
break;
case 5:
do
{
hide_day=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
DS1302_SetProtect(0); //寫(xiě)入允許
DS1302_SetTime(DS1302_MONTH,month);
DS1302_SetProtect(1); //禁止寫(xiě)入
up_flag=0;
down_flag=0;
}
hide_month++;
if(hide_month>3)
hide_month=0;
show_time();
}
while(count==7); //count=7,調(diào)整年
break;
case 6:
do
{
hide_month=0;
outkey();
Upkey();
Downkey();
if(up_flag==1||down_flag==1)
{
DS1302_SetProtect(0); //寫(xiě)入允許
DS1302_SetTime(DS1302_YEAR,year);
DS1302_SetProtect(1);
up_flag=0;
down_flag=0;
}
hide_year++;
if(hide_year>3)
hide_year=0;
show_time();
}
while(count==8); //count8, 跳出調(diào)整模式,
break;
case 7:
count=0;hide_year=0; //返回默認(rèn)顯示狀態(tài)
DS1302_SetProtect(0); //寫(xiě)入允許
Second=Read1302(0x81); //讀取秒地址的最新數(shù)據(jù)
Write1302(0x80,Second&0x7f); //開(kāi)始計(jì)時(shí)
DS1302_SetProtect(1); //寫(xiě)入禁止
done=0;
flag1=0;flag2=0;
break;
default: break;
}
}
else
{
Setkey(); //掃描模式切換按鍵
switch(count1)
{
case 1: //count=1,調(diào)整秒
do
{
outkey(); //掃描跳出按鈕
Upkey(); //掃描加按鈕
Downkey(); //掃描減按鈕
hi_sec++; //位閃計(jì)數(shù)
if(hi_sec>3)
hi_sec=0;
clock_dispaly(); //液晶顯示數(shù)據(jù)
}
while(count1==2);
break;
case 2: //count=2,調(diào)整分
do
{
hi_sec=0;
outkey();
Upkey();
Downkey();
hi_min++;
if(hi_min>3)
hi_min=0;
clock_dispaly();
}
while(count==3);
break;
case 3: //count=3,調(diào)整小時(shí)
do
{
hi_min=0;
outkey();
Upkey();
Downkey();
hi_hour++;
if(hi_hour>3)
hi_hour=0;
clock_dispaly();
}
while(count==4);
break;
case 4: //count=4,調(diào)整日
do
{
hi_hour=0;
outkey();
Upkey();
Downkey();
hi_day++;
if(hi_day>3)
hi_day=0;
clock_dispaly();
}
while(count==5);
break;
case 5: //count=5,調(diào)整月
do
{
hi_day=0;
outkey();
Upkey();
Downkey();
hi_month++;
if(hi_month>3)
hi_month=0;
clock_dispaly();
}
while(count==6);
break;
case 6: //count=6,退出調(diào)整模式
count1=0;
hi_month=0;
flag1=0,flag2=0;
done=0;
LCD12864_WriteCmd(0x01); //清屏命令
LCD12864_WriteCmd(0x34); //擴(kuò)展模式指令,關(guān)閉顯示
LCD12864_ClearScreen(); //清除繪圖
gui_line(72,32,72,48); //內(nèi)部線框
gui_line(0,15,127,15);
gui_line(0,32,127,32);
gui_line(0,48,127,48);
gui_line(62,48,62,63);
gui_line(0,0,127,0); //四周線框
gui_line(0,1,0,63);
gui_line(0,63,127,63);
gui_line(127,0,127,63);
GUI_Put_Area(81,33,&uMod[0][0],16,14,0); //固定顯示“星”
GUI_Put_Area(96,33,&uMod[1][0],16,14,0); //固定顯示“期”
GUI_Put_Area(3,18,&uMod[2][0],16,12,0); //固定顯示“農(nóng)”
GUI_Put_Area(19,18,&uMod[3][0],16,12,0); //固定顯示“歷”
LCD12864_WriteCmd(0x36); //開(kāi)顯示
LCD12864_WriteCmd(0x30); //基本指令
break;
default: break;
}
}
}
void Setkey() //模式選擇按鍵
{
if(Set==0) //時(shí)間調(diào)整模式
{
mdelay(8);
if(Set==0)
{
count=count+1; //Setkey按一次,count就加1
done=1; //進(jìn)入調(diào)整模式
flag=0;
}
while(Set==0);
}
else if(clock_Set==0) //鬧鐘設(shè)置模式
{
mdelay(8);
if(clock_Set==0)
{
if(flag2==0)
{
flag2=~flag2;
LCD12864_WriteCmd(0x01); //清屏
}
flag1=1;
count1=count1+1;
done=1;
}
while(clock_Set==0);
}
else ;
}
void clock_than(SYSTEMTIME *time , CLOCKTIME *Time) //鬧鐘函數(shù),響鈴5秒
{
if((Time->Sec<=time->Second)&&(Time->Sec+5>=time->Second)&&(Time->Min==time->Minute)&&(Time->Hou==time->Hour)&&(Time->tian==time->Day)&&(Time->yue==time->Month))
{
Beep= 0; //響
}
else
{
Beep= 1; //不響
}
}
void init() //初始化函數(shù)
{
uchar Second;
Out=1;
Set=1;
Down=1;
Up=1;
Beep=1;
clock_Set=1;
up_flag=0;
down_flag=0;
done=0;
flag=0;
flag1=0,flag2=0;
count=0,count1=0;
hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0;
hi_sec=0,hi_min=0,hi_hour=0,hi_day=0,hi_month=0;
shi=0,fen=0,miao=0,week=0,day=0,year=0,month=0;
clock_shi=0,clock_fen=0,clock_miao=0,clock_month=10,clock_day=7;
IrValue[2]=0;
IT0=1; //下降沿觸發(fā)
EX0=1; //打開(kāi)中斷0允許
EA=1; //打開(kāi)總中斷
IRIN=1; //初始化紅外數(shù)據(jù)端口
LCD12864_Init(); //液晶初始化
DS18B20_init(); //溫度傳感器初始化函數(shù)
NRF24L01Int(); //無(wú)線模塊初始化函數(shù)
gui_line(72,32,72,48); //內(nèi)部線框
gui_line(0,15,127,15);
gui_line(0,32,127,32);
gui_line(0,48,127,48);
gui_line(62,48,62,63);
gui_line(0,0,127,0); //四周線框
gui_line(0,1,0,63);
gui_line(0,63,127,63);
gui_line(127,0,127,63);
GUI_Put_Area(81,33,&uMod[0][0],16,14,0); //固定顯示“星”
GUI_Put_Area(96,33,&uMod[1][0],16,14,0); //固定顯示“期”
GUI_Put_Area(3,18,&uMod[2][0],16,12,0); //固定顯示“農(nóng)”
GUI_Put_Area(19,18,&uMod[3][0],16,12,0); //固定顯示“歷”
LCD12864_WriteCmd(0x32); //繪圖顯示開(kāi)
LCD12864_WriteCmd(0x30); //基本指令
DS1302_SetProtect(0); //寫(xiě)入允許
Second=Read1302(0x81);
Write1302(0x80,Second&0x7f); //開(kāi)始計(jì)時(shí)
DS1302_SetProtect(1); //寫(xiě)入禁止
timer0_1(); //定時(shí)器初始化
//Initial_DS1302(); //時(shí)鐘芯片初始化,第一次使用DS1302時(shí)可以初始化一下,以后就不用了
}
void main()
{
init();
while(1){
}
}
void T0_time() interrupt 1 //定時(shí)器0
{
uchar i;
TH0 = (65536 - 45872)/256;
TL0 = (65536 - 45872)%256;
i++;
if(i==5) //0.25秒
{
i=0;
if(done==1)
{
keydone(); //進(jìn)入調(diào)整模式
}
if(done==0)
{
if(flag1==0)
show_time(); //時(shí)間顯示
else
clock_(); //鬧鐘顯示
clock_than(&CurrentTime ,&clock_time); //比較鬧鐘時(shí)間和實(shí)時(shí)時(shí)間
}
DS18B20_get(); //得到溫度
NRF_rx(); //無(wú)線接收溫度
Setkey(); //掃描設(shè)置按鍵
}
}
void ReadIr() interrupt 0 //外部中斷0,紅外數(shù)據(jù)接收
{
unsigned char j,k;
unsigned int err;
uchar Second;
Time=0;
DelayMs(70);
if(IRIN==0) //確認(rèn)是否真的接收到正確的信號(hào)
{
err=1000; //1000*10us=10ms,超過(guò)說(shuō)明接收到錯(cuò)誤的信號(hào)
/*當(dāng)兩個(gè)條件都為真是循環(huán),如果有一個(gè)條件為假的時(shí)候跳出循環(huán),免得程序出錯(cuò)的時(shí)
侯,程序死在這里*/
while((IRIN==0)&&(err>0)) //等待前面9ms的低電平過(guò)去
{
DelayMs(1);
err--;
}
if(IRIN==1) //如果正確等到9ms低電平
{
err=500;
while((IRIN==1)&&(err>0)) //等待4.5ms的起始高電平過(guò)去
{
DelayMs(1);
err--;
}
for(k=0;k<4;k++) //共有4組數(shù)據(jù)
{
for(j=0;j<8;j++) //接收一組數(shù)據(jù)
{
err=60;
while((IRIN==0)&&(err>0))//等待信號(hào)前面的560us低電平過(guò)去
{
DelayMs(1);
err--;
}
err=500;
while((IRIN==1)&&(err>0)) //計(jì)算高電平的時(shí)間長(zhǎng)度。
{
DelayMs(1);//0.14ms
Time++;
err--;
if(Time>30)
{
EX0=1;
return;
}
}
IrValue[k]>>=1; //k表示第幾組數(shù)據(jù)
if(Time>=8) //如果高電平出現(xiàn)大于565us,那么是1
{
IrValue[k]|=0x80;
}
Time=0; //用完時(shí)間要重新賦值
}
}
}
if(IrValue[2]!=~IrValue[3])
{
return;
}
if((IrValue[2]==0x0c)) //按鍵1
{
done=1; //進(jìn)入調(diào)整模式
flag=0;
count=count+1; //Setkey按一次,count就加1
}
if((IrValue[2]==0x18)) //按鍵2
{
if(flag2==0)
{
flag2=~flag2;
LCD12864_WriteCmd(0x01);
}
flag1=1;
count1=count1+1;
done=1;
}
if((IrValue[2]==0x15)) //按鍵VOL-
{
if(flag1==0)
{
switch(count)
{
case 1:
DS1302_change(0x81,&miao);
miao=miao-1;
if(miao==-1)
miao=59;
down_flag=1;
break;
case 2:
DS1302_change(0x83,&fen);
fen=fen-1;
if(fen==-1)
fen=59;
down_flag=1;
break;
case 3:
DS1302_change(0x85,&shi);
shi=shi-1;
if(shi==-1)
shi=23;
down_flag=1;
break;
case 4:
DS1302_change(0x87,&day);
DS1302_change(0x89,&month);
day=day-1;
if(day==0&&((month==4)||(month==6)||(month==9)||(month==11)))
day=30;
if(day==0&&(month==2))
day=29;
if(day==0&&((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12)))
day=31;
down_flag=1;
break;
case 5:
DS1302_change(0x89,&month);
month=month-1;
if(month==0)
month=12;
down_flag=1;
break;
case 6:
DS1302_change(0x8d,&year);
year=year-1;
if(year==-1)
year=99;
down_flag=1;
break;
default: break;
}
}
else
{
switch(count1)
{
case 1:
clock_miao=clock_miao-1;
if(clock_miao==-1)
clock_miao=59;
break;
case 2:
clock_fen=clock_fen-1;
if(clock_fen==-1)
clock_fen=59;
break;
case 3:
clock_shi=clock_shi-1;
if(clock_shi==-1)
clock_shi=23;
break;
case 4:
clock_day=clock_day-1;
if(clock_day==0&&((clock_month==4)||(clock_month==6)||(clock_month==9)||(clock_month==11)))
clock_day=30;
if(clock_day==0&&(clock_month==2))
clock_day=29;
if(clock_day==0&&((clock_month==1)||(clock_month==3)||(clock_month==5)||(clock_month==7)||(clock_month==8)||(clock_month==10)||(clock_month==12)))
clock_day=31;
break;
case 5:
clock_month=clock_month-1;
if(clock_month==0)
clock_month=12;
break;
default: break;
}
}
}
if((IrValue[2]==0x09)) //按鍵VOL+
{
if(flag1==0)
{
switch(count)
{
case 1:
DS1302_change(0x81,&miao);
miao=miao+1;
if(miao>=60)
miao=0;
down_flag=1;
break;
case 2:
DS1302_change(0x83,&fen);
fen=fen+1;
if(fen>=60)
fen=0;
down_flag=1;
break;
case 3:
DS1302_change(0x85,&shi);
shi=shi+1;
if(shi>=24)
shi=0;
down_flag=1;
break;
case 4:
DS1302_change(0x87,&day);
DS1302_change(0x89,&month);
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
電子萬(wàn)年歷.7z
(167.33 KB, 下載次數(shù): 23)
2019-2-19 13:36 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
wanglx
時(shí)間:
2019-2-27 11:17
感謝樓主,學(xué)習(xí)中
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1