51单片机的数字时钟系统【含仿真+程序+报告+原理图】

2023-11-10

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、资源获取

本项目包含的所有文件都可以在
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机的数字时钟系统【含仿真+程序+报告+原理图】 的相关文章

  • Mysql数据库笔记

    Mysql数据库 1 初识数据库 1 解决数据读取慢的问题 2 数据一致性 3 数据的安全性 4 解决了并发问题 数据库管理系统DBMS 数据库管理员DBA 数据库database db 表 table 数据库分类 1 关系型数据库 数据之
  • 数据库基础知识整理文档

    Oracle数据库基本数据类型 分类 数据类型 存储内容 存储空间 备注 数值 Number 数值 22个字节 number n 只能存储整数 精度n来指定 number n m 存储小数 n 代表整数位数 小数位数 m代表的小数位数 整数
  • C++ lambda自定义map,set,vector,list 排序规则

    Map和Set本质红黑二叉树 插入数据时可以自定义比较算法 list和vector链表插入时无需比较 所以一般全部插入完成后调用sort 核心代码 typedef struct MyStudent std string name int g
  • UGUI实现背包系统

    一 项目需求 1 可以生成物品 2 提示物品相关信息 3 能拖拽背包中的物品进行交换 丢弃操作 二 实现步骤 1 背包中的物品包括各种种类 如武器 消耗品 防具等 它们具备一些相同的属性 如ID 名字 描述 购买价格 出售价格 图标等 同时

随机推荐

  • jpg格式怎么转换成plt格式的_JPEG格式图片转PLT格式雕刻输出

    JPEG 格式图片转 PLT 格式雕刻输出 方法一 1 JPEG 格式图片用 PS 打开 先把图片转灰度 图像 模式 灰度 再转位图 输出 O 300 使用 U 50 阀值 图像 模式 位图 存储文件为 PSD 或 TIFF 2 打开 Ad
  • 跨5合并dnf无限连接服务器,不妨一试!跨5等跨区卡登陆卡黑屏解决办法分享

    今日我们怀着激动的心情 在10点登陆游戏 跨5 发现跨区并未更新 频道比原来还少了许多 登陆还 出现卡登陆和卡黑屏 故障分析 经过多次尝试 我们发现本次全服跨区更新 游戏客户端和服务器配置文件改变较多 本地客户端的旧配置 未自动清空 存储文
  • pandas 之unique()函数与nunique()函数区别

    很多功能函数自己试一试就全知道了 开始看别人的代码一直不太清楚两者的区别 总是模糊的以为它俩是一样的 是获取唯一值 其实从名字就能看出区别 unique 是以 数组形式 numpy ndarray 返回列的所有唯一值 特征的所有唯一值 nu
  • 第1篇:JVM运行原理

    文章目录 前言 一 类的生命周期 二 类加载原理 1 类加载的过程 2 代码示例 三 双亲委派原理 1 原理图 2 双亲委派的优点 四 Tomcat类加载机制 总结 前言 学习JVM 首先需要了解类的生命周期 以及类加载原理 并且需要扩展知
  • @JsonView注解大白话简介说明

    转自 JsonView注解大白话简介说明 下文是世上最通俗易懂的JsonView注解 如下所示 JsonView注解简介 JsonView是jackson json中的一个注解 Spring mvc也支持JsonView注解 JsonVie
  • 【读书笔记】5G与车联网

    5G与车联网 by 李俨 曹一卿 陈书平等人 Quanlcomm Technologies Inc 车联网背景 2015年 麻省理工科技评论 将车车通信评为年度十大突破技术之一 V2V V2X比无人驾驶更容易实现 V2V V2X提供一种超视
  • [项目管理-33]:需求管理与范围管理的异同

    目录 前言 一 组织层面的项目客户需求与项目管理层次图 二 需求管理与范围管理的比较 2 1 不同点 2 2 相同点 2 3 相互关系 前言 产品开发中 我们经常听到需求管理与范围管理 这两个概念相似 相关 但有是不同层面的概念 经常会混用
  • QVariant自定义数据类型

    struct STUMyStruct int age QString name Q DECLARE METATYPE STUMyStruct QVariant v STUMyStruct man man age 1 man name sdg
  • 什么是数组 为什么要在c语言中引用数组,为什么要在c使用数组有什么用怎么用...

    简单地说指针就是指向变量和对象的地址 指针的用途非常广泛 比如如果你想通过函数改变一个变量的值 就得用指针而不能用值传递 还有在很多时候变量 特别是对象的数据量实在太大 程序员就会用指针来做形参 只需要传递一个地址就行 大大提高了效率 以上
  • Python学习25:中国古代数学问题——李白买酒(python123)

    描述 诗仙李白 一生好酒 一天 他提着酒壶 从家里出来 酒壶中有酒若干 他边走边唱 无事街上走 提壶去买酒 遇店加一倍 见花喝一斗 五遇店和花 喝光壶中酒 计算并输出壶中原有酒几斗
  • 2022 Github 上传仓库

    由于2022后 Github上传不再支持用户名密码的方式了 记录一下新的上传方式 备忘 在配置好token后 1 新建仓库 2 克隆仓库到本地 git clone SSH 3 本地修改 4 在仓库文件夹中 git add git commi
  • threejs视图切换方法

    1 获取观察物体group的中心位置 group可以是stl glb group对象等 2 设置相机位置和朝向 从而达到切换视图的目的 正视图 camera position设置为 x y z 150 camera up x 0 camer
  • java.util.concurrent.Future 使用指南

    1 介绍 本篇文章将了解 Future 一个自 Java 1 5 以来就存在的接口 它在处理异步调用和并发处理时非常有用 2 创建Futures 简单地说 Future 类表示异步计算的未来结果 这个结果最终会在处理完成后出现在 Futur
  • 学人工智能以后从事什么工作?这6大就业方向前景广阔

    学AI以后从事什么工作 近些年来 科技的快速发展 使人工智能方面的人才炙手可热 根据此前UiPath发布的数据显示 我国AI岗位空缺数量最多 有12113个相关职位因为招聘不到人才而发生空缺 我国对于AI人才的渴求已经超过了人工智能大国美国
  • 【TCP/IP】第三章 数据链路

    数据链路的作用 数据链路相关技术 MAC地址用于识别数据链路中互连的节点 MAC地址长48bit 一般来说全球MAC地址为一不会重复 地址结构组成 从通信介质的使用方法上看 网咯可以分为共享介质型和非共享介质型 共享介质方式指的是多个设备共
  • Declaration of 'struct sockaddr_in' will not be visible outside of this function警告的处理

    Declaration of struct sockaddr in will not be visible outside of this function 做ios网络开发的肯定会用到苹果的官方库Reachability ios5发布了
  • 单片机-4x4个矩阵按键控制数码管显示数字程序

    1 include 8051 h 2 typedef unsigned char u8 3 typedef unsigned int u16 4 u8 smgduan 5 0 1 2 3 4 5 6 7 6 0x3f 0x06 0x5b 0
  • Redis常用的命令String,list,hash,set,zset

    常用的指令 redis Key关键字 keys 查看本库中的所有的key exists key的名字 判断某个key是否存在 move key db 当前的库中的key就没有了 被移除了 expire key 秒钟 给指定的key设置过期的
  • npm设置和取消代理的方法

    设置代理 npm config set proxy http 127 0 0 1 8087 npm config set registry http registry npmjs org 关于https 经过上面设置使用了http开头的源
  • 51单片机的数字时钟系统【含仿真+程序+报告+原理图】

    1 主要功能 该系统由AT89C51单片机 DS1302时钟模块 按键模块 LCD显示模块构成 利用51单片机实现电子时钟的功能 使用DS1302芯片作为计时设备 用LCD1602作为显示设备 按键按下可修改当前时间 按下的时候蜂鸣器会di
Powered by Hwhale