• 大小: 65KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: DS1302  可调时钟  

资源简介

基于ds1302的可调时钟程序,已通过硬件调试!时钟可调,并带有简单的闹钟功能,通过1602显示,有proteus的仿真!

资源截图

代码片段和文件信息

#include
#include
#include
#include       //DS1302驱动程序
#include      //LCD1302驱动程序
 
//==========================
#define uchar unsigned char
#define uint unsigned int
//==========================

sbit k1=P1^3;
sbit k2=P1^1;
sbit k3=P1^5;
sbit beep=P3^7;
 
uchar key1;
uchar tab_time[8]={0010001001};    //时间
uchar tab_ymdw[12]={200211001102120};   //年月日星期
uchar tab_num[]=“0123456789:/ “;
uchar tab_week[21]=“MonTeuWedThuFriSatSun“;
uchar tab_ap[]=“AMPM“;
uchar tab_t[]=“T:“tab_d[]=“D:“ alarm_time[]={0157};

//--------------------------
//------- 函数声明 --------
void lcd_disp();
void trans();
void key();
void delay(uint);
void display_set(uchar uchar uchar );
void music();
 void display_char1(uchar uchar );
  void  display_char2(uchar uchar );
 
//==========================

//------ 主函数 -----------
void main()

ds1302_init();        //DS1302初始化
write_command(0x01);        //LCD清屏
initial_lcd(); 
delay(10);//LCD1602初始化
while(1)
   {   
    ds1302();  
    key();
   
    trans();
if(!key1)
    lcd_disp();
 
if(tab_1302[0]==alarm_time[0]&&tab_1302[1]==alarm_time[1]&&tab_1302[2]==alarm_time[2])
music();   
   }
}
//=============显示函数============
   void display_char2(uchar adruchar dat)
{   
write_command(0x80+0x40+adr);
write_data(dat);
}

void display_char1(uchar adruchar dat)
{   
write_command(0x80+adr);
write_data(dat);
}
//=============音乐播放===========================
   void music()
{  uint ulnp=20;
while(p--)
{
  for(  ul=0;ul<150;ul++)
  {
   for(  n=0;n<30;n++);  
   beep=~beep;
  }
delay(200);
  for(ul=0;ul<150;ul++)
  {
   for(n=0;n<30;n++);  
   beep=~beep; 
  }
delay(800);
}
}
//==================设定显示函数=========================
 void display_set(uchar puchar adruchar dat)
{
uchar shigeij;
shi=dat/10;
ge=dat%10;//分离date的十位和个位数
if(p==1&&adr==13)
{write_command( 0xc0+13); 
    for(i=0;i<3;i++)
     {           //星期
       j=ge;           //星期
     write_data(tab_week[(j-1)*3+i]);
       }
   }
    
else  if(!p)
   write_command(0x80+adr);
else
   write_command(0xc0+adr);
write_data( 0x30+shi);
    write_data( 0x30+ge);  

}  
//----------------- 数据转换函数   ---------------------------
void trans()
{   
tab_time[0]=tab_1302[2]/10;   //小时十位    
tab_time[1]=tab_1302[2]%10;   //小时个位

tab_time[3]=tab_1302[1]/10;   //分十位
tab_time[4]=tab_1302[1]%10;   //分个位

tab_time[6]=tab_1302[0]/10;   //秒十位
tab_time[7]=tab_1302[0]%10;   //秒个位

tab_ymdw[2]=tab_1302[6]/10;   //年十位
tab_ymdw[3]=tab_1302[6]%10;   //年个位

tab_ymdw[5]=tab_1302[4]/10;   //月十位
tab_ymdw[6]=tab_1302[4]%10;   //月个位

tab_ymdw[8]=tab_1302[3]/10;   //日十位
tab_ymdw[9]=tab_1302[3]%10;   //日个位

tab_ymdw[11]=tab_1302[5];     //星期 
}

 
void lcd_disp()
{
  uchar ij ;         //LCD1602写命令函数从第一行开始显
//------------------------ 
   
     for(i=0;i<2;i++)
     displ

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3506  2010-06-09 15:24  可调时钟闹钟\ds1302.h

     文件      91553  2010-06-18 06:29  可调时钟闹钟\DS1302可调时钟.DSN

     文件       1650  2010-06-18 06:29  可调时钟闹钟\DS1302可调时钟.PWI

     文件      91566  2010-06-18 06:27  可调时钟闹钟\Last Loaded DS1302可调时钟.DBK

     文件       1665  2010-06-09 15:49  可调时钟闹钟\LCD_1602A.h

     文件      25440  2010-06-18 06:28  可调时钟闹钟\可调时钟

     文件      10024  2010-06-18 06:28  可调时钟闹钟\可调时钟.c

     文件       6342  2010-06-18 06:28  可调时钟闹钟\可调时钟.hex

     文件         48  2010-06-18 06:28  可调时钟闹钟\可调时钟.lnp

     文件      18599  2010-06-18 06:28  可调时钟闹钟\可调时钟.LST

     文件      30262  2010-06-18 06:28  可调时钟闹钟\可调时钟.M51

     文件      30568  2010-06-18 06:28  可调时钟闹钟\可调时钟.OBJ

     文件       1311  2010-06-18 06:29  可调时钟闹钟\可调时钟.Opt

     文件        378  2010-06-18 06:29  可调时钟闹钟\可调时钟.plg

     文件       2126  2010-06-09 16:27  可调时钟闹钟\可调时钟.Uv2

    .......      1312  2010-06-11 07:06  可调时钟闹钟\可调时钟_Opt.Bak

     文件          0  2010-06-09 15:20  可调时钟闹钟\可调时钟_Uv2.Bak

     目录          0  2010-06-18 06:29  可调时钟闹钟

----------- ---------  ---------- -----  ----

               316350                    18


评论

共有 条评论