基于单片机DS1302电子时钟闹钟控制系统

发布时间:2023-08-21  

一、系统方案

本设计采用STC89C52作为主控制器,DS1302计时,液晶1602显示,按键设置时分秒,闹钟,实际时间走时达到闹钟时间,蜂鸣器报警提醒。

wKgaomTCZpSANDItAAAYYMTctyA960.png

二、硬件设计
原理图如下:

wKgZomTCZpyAQgrOAAEDnWUcF94205.png

三、单片机软件设计
1、首先是系统初始化:
/*************定时器0初始化程序***************/
void init_time0()
{
EA = 1; //开总中断
TMOD = 0X12; //定时器0、工作方式1
TH1= 0X3C;
TL1 = 0XB0; //50ms
ET1 = 1; //开定时器0中断
TR1 = 1; //允许定时器0定时
TH0=0x00; //重载值
TL0=0x00; //初始化值
ET0=1; //开中断
TR0=1;
PT1=1;

}


2、中断服务程序
/**************定时器0中断程序*****************/
void time1() interrupt 3
{
static uchar value;
TH1= 0X3C;
TL1 = 0XB0; //50ms
value ++;
if((value % 2) == 0) //100ms
flag_100ms = 1;
if(value >= 6) //200ms
{
value = 0;
flag_200ms = 1;
}


}

3、按键检测程序
void key() //独立按键程序
{


if(s1==0)
{
delay_1ms(5);
if(s1==0)
{
while(!s1);
key_can = 4;
}
}
if(s2==0)
{
delay_1ms(5);
if(s2==0)
{
while(!s2);
key_can = 3;

}
}
if(s3==0)
{
delay_1ms(5);
if(s3==0)
{
while(!s3);
key_can = 2;
}
}
if(s4==0)
{
delay_1ms(5);
if(s4==0)
{
while(!s4);
key_can = 1;

}
}
if(s5==0)
{
delay_1ms(5);
if(s5==0)
{
while(!s5);
key_can = 5;
flag=!flag;
}
}


}
4、核心算法程序
void main()
{
P0 = P1 = P2 = P3 = 0xff; //单片机IO口初始化为1
init_time0(); //初始化定时器
init_1602(); //lcd1602初始化
init_1602_dis_csf(); //lcd1602初始化显示
while(1)
{
key(); //按键程序


if(key_can < 10)
{
key_with();

key_can = 20; //按键值还原
}

if(flag_200ms == 1)
{
flag_200ms = 0;
if(menu_1 == 0)
{
read_time(); //读时间

init_1602_ds1302(); //显示时钟
}

}
menu_dis(); //闹钟报警函数
delay_1ms(1);
}
}

四、proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

wKgaomTCZqaAX9UfAAES8jcd_-c518.png


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    纹模块也能通过简单的滑动手指做到切换照片、触发拍照快门、下拉通知栏、长按指纹接听电话、关闭闹钟等等。 如视频中这样整蛊,或者是用来变魔术,看起来也非常不错吆! 视频地址:。 责任编辑:mooreelite......
    ) { clock_value = 0; } } } // 1 分钟后自动关闭闹钟 value ++; if(value >= 10) { value = 0; mm++; if(mm >= 60......
    |= ((Alarm_minute/10)< < 4  |  (Alarm_minute%10))< < 8 | 1< < 15;   temp |= 1< < 7;   //关闭闹钟......
    基于51单片机的多功能电子钟万年历仿真设计;仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0053 1.主要功能: 基于51单片机的日期时间闹钟秒表倒计时多功能电子钟......
    基于 STM32 设计的指针式电子钟与日历;1. 项目简介 这是基于 STM32 设计的一个指针式电子钟+万年历小项目,采用 3.5 寸的 LCD 屏显示时钟,日历、温度、天气,支持......
    STM32电子钟万年历时钟闹钟LCD1602仿真设计;仿真:protues 8.9 程序编译器:keil 5 编程语言:C语言 编号C0003 题目要求: 1.具有显示年、月、日、时、分、秒功......
    STM32CubeMX之RTC电子钟;1.简介 实时时钟是一个独立的定时器。 RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改......
    基于51单片机的电子钟闹钟温度显示设计;仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0057 1.主要功能: 基于51单片机AT89C51......
    基于STM32设计的指针式电子钟与日历;1. 项目简介 这是基于STM32设计的一个指针式电子钟+万年历小项目,采用3.5寸的LCD屏显示时钟,日历、温度、天气,支持触摸屏调整设置时间,设置闹钟......
    全世界150多台原子钟共同守时并加权平均后的结果。各种电力系统、通信系统都离不开高精度的原子钟。 然而,由于体积大、功耗高、价格贵,原子钟未能真正进入普通电子类消费市场。 “芯片原子钟......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>