51单片机的数字时钟系统【含仿真+程序+报告+原理图】
创始人
2025-01-09 04:36:00
0

1、主要功能

该系统由AT89C51单片机+DS1302时钟模块+按键模块+LCD显示模块构成。

利用51单片机实现电子时钟的功能。使用DS1302芯片作为计时设备,用LCD1602作为显示设备,按键按下可修改当前时间,按下的时候蜂鸣器会di一声。

可实现基本功能:

1、实时显示当前时间和日期

按键功能:

1、点击设置,可修改当前的时间和日期,再次点击设置,单片机以刚刚设置好的时间继续运行。

2、可设置闹钟,到点蜂鸣器响。

3、按键按下的时候,蜂鸣器会响。

2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

3、程序代码

放上来了部分代码,仅供参考
/******************************************************************************* * 函 数 名         : Ds1302Write * 函数功能           : 向DS1302命令(地址+数据) * 输    入         : addr,dat * 输    出         : 无 *******************************************************************************/ void Ds1302Write(uchar addr, uchar dat) {     uchar n;     RST = 0;     _nop_();      SCLK = 0;//先将SCLK置低电平。     _nop_();     RST = 1; //然后将RST(CE)置高电平。     _nop_();      for (n=0; n<8; n++)//开始传送八位地址命令     {         DSIO = addr & 0x01;//数据从低位开始传送         addr >>= 1;         SCLK = 1;//数据在上升沿时,DS1302读取数据         _nop_();         SCLK = 0;         _nop_();     }     for (n=0; n<8; n++)//写入8位数据     {         DSIO = dat & 0x01;         dat >>= 1;         SCLK = 1;//数据在上升沿时,DS1302读取数据         _nop_();         SCLK = 0;         _nop_();         }                   RST = 0;//传送数据结束     _nop_(); }  /******************************************************************************* * 函 数 名         : Ds1302Read * 函数功能           : 读取一个地址的数据 * 输    入         : addr * 输    出         : dat *******************************************************************************/ uchar Ds1302Read(uchar addr) {     uchar n,dat,dat1;     RST = 0;     _nop_();      SCLK = 0;//先将SCLK置低电平。     _nop_();     RST = 1;//然后将RST(CE)置高电平。     _nop_();      for(n=0; n<8; n++)//开始传送八位地址命令     {         DSIO = addr & 0x01;//数据从低位开始传送         addr >>= 1;         SCLK = 1;//数据在上升沿时,DS1302读取数据         _nop_();         SCLK = 0;//DS1302下降沿时,放置数据         _nop_();     }     _nop_();     for(n=0; n<8; n++)//读取8位数据     {         dat1 = DSIO;//从最低位开始接收         dat = (dat>>1) | (dat1<<7);         SCLK = 1;         _nop_();         SCLK = 0;//DS1302下降沿时,放置数据         _nop_();     }      RST = 0;     _nop_();    //以下为DS1302复位的稳定时间,必须的。     SCLK = 1;     _nop_();     DSIO = 0;     _nop_();     DSIO = 1;     _nop_();     return dat;     }  /******************************************************************************* * 函 数 名         : Ds1302Init * 函数功能           : 初始化DS1302. * 输    入         : 无 * 输    出         : 无 *******************************************************************************/  void Ds1302Init() {     uchar n;     EA=0;     Ds1302Write(0x8E,0X00);         //禁止写保护,就是关闭写保护功能     for (n=0; n<7; n++)//写入7个字节的时钟信号:分秒时日月周年     {         Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);         }     Ds1302Write(0x8E,0x80);         //打开写保护功能     EA=1; }

4、原理图

5、报告

内含4k字,18页的相关报告一份,纯手打,内容一致

6、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)

7、资源获取

本项目包含的所有文件都可以在 👉 今天也不想打工 get
项目纯手打,不是免费的哦~浅浅一杯奶茶的 💴
希望可以帮到你哈!

相关内容

热门资讯

第六分钟推荐了解!微信神兽大厅... 第六分钟推荐了解!微信神兽大厅源代码,潮汕激k辅助软件,曝光教程(揭秘有挂)-哔哩哔哩;1、超多福利...
科技通报"多乐跑得快... 科技通报"多乐跑得快辅助器"开挂(透视)辅助工具(果然是有挂的)-哔哩哔哩;多乐跑得快辅助器简单的透...
第7分钟带你透视!牵手跑得快辅... 第7分钟带你透视!牵手跑得快辅助器下载(辅助挂)一贯确实有挂(有挂细节)-哔哩哔哩;1、很好的牵手跑...
第六分钟带你了解!麻雀智能辅助... 第六分钟带你了解!麻雀智能辅助软件开挂(辅助挂)盘点一款外挂开挂辅助安装(原来确实有挂);无需打开直...
第五分钟分享了解!蜀山挂件辅助... 第五分钟分享了解!蜀山挂件辅助,情怀七喜游戏辅助,2026新版技巧(有挂秘籍)-哔哩哔哩相信很多朋友...
让我来分享经验"丽水... 让我来分享经验"丽水都莱辅助器"开挂(透视)辅助工具(原来是有挂)-哔哩哔哩;相信小伙伴都知道这个丽...
九分钟带你普及!小闲川南辅助工... 九分钟带你普及!小闲川南辅助工具(辅助挂)果然是有挂(有挂细节)-哔哩哔哩;相信小伙伴都知道这个小闲...
第三分钟带你了解!丽水都莱辅助... 第三分钟带你了解!丽水都莱辅助工具试用(辅助挂)玩家必知教程外挂开挂辅助下载(一直是有挂)丽水都莱辅...
第八分钟带你了解!欢乐休闲划水... 第八分钟带你了解!欢乐休闲划水辅助,欢乐联盟卡五星辅助,详细教程(有挂工具)-哔哩哔哩;是一款可以让...
我来向大家传授"哈糖... 我来向大家传授"哈糖大菠萝可以开挂吗"开挂(透视)辅助脚本(其实确实有挂)-哔哩哔哩;哈糖大菠萝可以...