附 录
====
if(sel==5) {lcm_w_word(\秒钟\ tiaozheng(); //调用日期、时间调整函数
//被调数据加一或减一函数
ds_w(); tiaozheng();
}
//秒6,按动6次显示 调整秒钟
//并指定秒钟数据写入1302芯片的写入地址是0x80,秒钟数据的最大值
是59,最小值是0
if(sel==4) {lcm_w_word(\分钟\
tiaozheng(); ds_w(); tiaozheng();
tiaozheng();
ds_w(); tiaozheng();
if(sel==2) {lcm_w_word(\日期\
mo = read_clock(0x89);//读月数据 moontemp1=mo/16;
35
}
//分钟5,按动5次显示 调整分钟
//并指定分钟数据写入1302芯片的地址是0x82,分钟数据的最大值是59,
最小值是0
if(sel==3) {lcm_w_word(\小时\
}
//小时4,按动4次显示 调整小时
//规定小时数据写入1302芯片的位置是0x84,小时数据最大值23,最小
值是0
附 录
moontemp2=mo;
mo=moontemp1*10+moontemp2;//转换成10进制月份数据
yy = read_clock(0x8d);//读年数据 moontemp1=yy/16;
if(mo==2&&yy%4!=0){max=28;mini=1;}//平年2月28天
} //日3,按动3次显示 调整日期 1
if(sel==1) {lcm_w_word(\月份\ tiaozheng(); ds_w(); tiaozheng(); }
if(sel==0) {lcm_w_word(\年份\
36
moontemp2=yy;
yy=moontemp1*10+moontemp2;//转换成10进制年份数据
if(mo==2&&yy%4==0){max=29;mini=1;}//闰年2月29天
if(mo==1||mo==3||mo==5||mo==7||mo==8||mo==10||mo==12){max=31;mini=1;}
if(mo==4||mo==6||mo==9||mo==11){max=30;mini=1;}//30天的月份 tiaozheng(); ds_w();
tiaozheng(); //调用日期、时间调整函数
//31天的月份
//规定日期数据写入1302的位置地址是0x86,日期最大值31,最小值是
//月2,按动2次显示 调整月份
//规定月份写入1302的位置地址是0x88,月份最大值12,最小值1
附 录
tiaozheng();
//被调数据加一或减一函数 //调用日期、时间调整函数
ds_w(); } }
tiaozheng();
//年1,按动1次显示 调整年份,
//规定年份写入1302的地址是0x8c,年份的最大值99,最小值0
/*********************************************///我自己的程序
/* void int0(void) interrupt 0 { if(!J1) J1=1;// else J1=0;// } */
/*********************************************************************
**********************************************************************
************** 主函数 *
/********************************************************************/ void main() {
unsigned char e=0,f=0,tmp,i; J2=0; // J1=
****************
*********************************************************************
//////////// 、、、、、、、、、、、、、、、、、、
37
附 录
IE = 0x81; //允许总中断中断,使能 INT0 外部中断 TCON = 0x01; //触发方式为脉冲负边沿触发 IRIN=1; //IO口初始化 BEEP=1;
K1=1;K2=1;K3=1;K4=1; IT0=1; // 中断初始化 EX0=1; EA=1;
if(K5==0||key_alarm==1)//闹钟的开与关的设置标志位
{
38
Init_1302(); lcm_init();
DelayM(2000);//延时
//welcome();DelayM(1000); //调用欢迎信息2 lcm_clr(); //清屏 Clean_12864_GDRAM(); //清屏 // for(;;) while(1)
while(1) {
if(int0_flag==1) { int0_flag=0; }
main_MOTO();
//时钟芯片初始化
//液晶初始化
welcome0(); //调用欢迎信息1
while(1)
附 录
DelayM(20);
if(K5==0||key_alarm==1) { beep(); }
while(!K5);//松手检测 key_alarm=0;
while(!K5);//松手检测 key_alarm=0; ala_flag=~ala_flag;
}
if (w == 0) {
displaydate(); displaytime();
//显示日期 //显示时间
displaynl(); //显示农历 read_temp(); //读取温度 ds1820disp(); //显示温度 displayxq(); //显示星期
if(ala_flag==1){//闹钟标志位 else{
set1616pic(6,1,0,2);} //显示\闹钟图标\
//正常走时
//=================以下是闹钟的相关处理===================
set1616pic(6,1,0,3);}//关闭\闹钟图标\显示 //---------------------------------------- tmp=read_clock(0x85);//取出1302小时 i = tmp/16; tmp = tmp&0x0f; tmp = tmp + i*10;
if(clk_ala[0]==tmp)//与闹钟设定的小时值相同
{
39
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库宠物定时喂食器设计论文(9)在线全文阅读。
相关推荐: