51-基于51单片机定时语音闹钟闹铃源程序、原理图、元件清单实物制作

本文主要是介绍51-基于51单片机定时语音闹钟闹铃源程序、原理图、元件清单实物制作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

功能介绍:采用51单片机作为主控CPU,采用ISD1820语音模块播放提示音,采用ds1302时间模块提供校时,通过按键设置闹钟时间,LCD1602显示相关数据,当定时时间到达,语音模块自动播放提示音,文末有资料分享:

51-基于51单片机定时语音闹钟闹铃(程序+原理图+元件清单全套资料)

程序打开办法:特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。 

void key()//按键函数  识别当前的按键动作
{
if(k2==0)//设置时
{while(k2!=1);
shi++;if(shi>23) shi=0;
}
if(k1==0)  //设置分
{while(k1!=1);
fen++;if(fen>59) fen=0;
}
}
/*******************************************************************************
* 函数名         : Delay10ms
* 函数功能		   : 延时函数,延时10ms
* 输入           : 无
* 输出         	 : 无
*******************************************************************************/
void Delay10ms(void)   //误差 0us
{unsigned char a,b,c;for(c=1;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);
}
/*******************************************************************************
* 函数名         : main
* 函数功能		   : 主函数
* 输入           : 无
* 输出         	 : 无
*******************************************************************************/
void main()
{LcdInit();//初始化yuyin=0;
//	Ds1302Init();Timer0Init();  //定时器0初始化while(1){	Ds1302ReadTime(); //读取时间key();         //按键函数LcdDisplay();	   //LCD显示函数}}/*******************************************************************************
* 函 数 名         : Timer0Init
* 函数功能		   : 定时器0初始化
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Timer0Init()
{TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。TH0=0XFC;	//给定时器赋初值,定时1msTL0=0X18;	ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器			
}/*******************************************************************************
* 函数名         : LcdDisplay()
* 函数功能		   : 显示函数
* 输入           : 无
* 输出         	 : 无
*******************************************************************************/void LcdDisplay()
{writecom(0xc0);writedata('0'+TIME[2]/16);				//时writedata('0'+(TIME[2]&0x0f));				 writedata('-');writedata('0'+TIME[1]/16);				//分writedata('0'+(TIME[1]&0x0f));	writedata('-');writedata('0'+TIME[0]/16);				//秒writedata('0'+(TIME[0]&0x0f));writedata(' ');writedata(' ');writedata(' ');writedata('0'+shi/10);writedata('0'+shi%10);writedata('-');writedata('0'+fen/10);writedata('0'+fen%10);writecom(0x80);		 writedata('2');writedata('0');writedata('0'+TIME[6]/16);			//年writedata('0'+(TIME[6]&0x0f));writedata('-');writedata('0'+TIME[4]/16);			//月writedata('0'+(TIME[4]&0x0f));writedata('-');writedata('0'+TIME[3]/16);			//日writedata('0'+(TIME[3]&0x0f));writedata(0x8D);writedata('0'+(TIME[5]&0x07));	//星期	writedata(' ');if((shi/10==TIME[2]/16)&&(shi%10==TIME[2]%16)&&(fen/10==TIME[1]/16)&&(fen%10==TIME[1]%16)){writedata(' ');writedata('O');writedata('N');yuyin=1;

百度云盘资料分享链接 

这篇关于51-基于51单片机定时语音闹钟闹铃源程序、原理图、元件清单实物制作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726367

相关文章

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

Spring定时任务之fixedRateString的实现示例

《Spring定时任务之fixedRateString的实现示例》本文主要介绍了Spring定时任务之fixedRateString的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录从毫秒到 Duration:为何要改变?核心:Java.time.Duration.parse

使用python制作一款文件粉碎工具

《使用python制作一款文件粉碎工具》这篇文章主要为大家详细介绍了如何使用python制作一款文件粉碎工具,能够有效粉碎密码文件和机密Excel表格等,感兴趣的小伙伴可以了解一下... 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密的文件恢

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文