基于单片机的课程设计
P1=0xff; TMOD=0x01; 方式1,16位定时
TH0=0x4c; //50ms定时 TL0=0x00; EA=1; ET0=1; 时器0中断 TR0=1;
init_lcd(); //初始化LCD
init_ds1302(); //初始化ds1302
set_ds1302(0x80,init2,7); //自动设置初始时间,日期,年月 while(1) {
/*****************************************************************/ if(!K3) //开始设定时间 {
delay1(80);
write_ds1302(0x8e,0x00); write_ds1302(0x80,0x80);
//允许定
//定时器工作
key_set(99,1,4); //年的第一,第二位闪烁
lcd_wdat('2');
lcd_wdat('0'); } else
lcd_wdat(0x20);
lcd_wdat(0x20); }
if(flag)
{ //显示 write_position(1,2);
write_position(1,3);
{ //清屏 write_position(1,2);
write_position(1,3);
if(!K3) {
delay1(80);
Set_W1302(0x8c);
//写保护控制字,允许写 //停止时钟运行
write_ds1302(0x8e,0x80); //写保护控制字,禁止写 year=1;
count=((init[6]&0xf0)>>4)*10+(init[6]&0x0f); //读当前年数据 年
}
while(year) //设定
//写数据到DS1302中,并将其存储 Set_place(1,4); //写数据到LCD1602中,并显示 二位
write_position(1,2);
lcd_wdat('2');
write_position(1,3);//写年的第一和第