51单片机项目(15)——基于51单片机的万年历仿真

news2025/1/4 18:27:35

1.功能设计

本次设计的系统,可以显示年月日,时分秒。使用DS1302芯片。  还自带闹钟功能.

(要源工程的,移步至最后!  (代码和仿真文件都有))

2.仿真图

3.背景意义

51单片机(8051单片机)是一种广泛应用于嵌入式系统开发的微控制器,而“万年历”指的是一种同时显示年、月、日的日历工具。结合起来,51单片机万年历是指利用51单片机实现的一个具有万年历功能的电子设备。

背景意义上来说,51单片机万年历有以下几个方面的意义:

1. 实用性:万年历是人们经常使用的一种时间工具,能够显示当前的年、月、日等日期信息,对于人们日常生活和工作中的时间管理非常重要。利用51单片机实现万年历功能,使得这个功能可以精确、可靠地实现在嵌入式系统中,为用户提供方便。

2. 教育性:利用51单片机实现万年历功能可以作为学习和教育的工具。通过学习如何设计和编程实现一个万年历,可以帮助学习者深入理解51单片机的工作原理和编程思想,培养计算机嵌入式系统设计和开发的能力。

3. 开发应用:51单片机万年历可以作为更复杂嵌入式系统的子功能模块或基础,被集成到其他应用中。比如,可以将其作为智能家居系统中的时间管理模块,或者作为工控系统中的时间同步模块,为其他应用提供准确的时间服务。

总的来说,51单片机万年历背景意义在于提供人们一个实用的时间工具,并具有教育和开发应用的价值。

4.国内外现状

51单片机万年历在国内外均有相关的研究和开发。以下是简要介绍:

国内:

在国内,由于单片机应用技术的不断发展和普及,越来越多的学校和企业开始进行51单片机万年历的研究和开发。目前,已经有很多大学实验室和企业研发部门开发了各种基于51单片机的万年历系统,并且已经应用到实际生产中,发挥了重要的作用。

国外:

在国外,由于51单片机的使用不如国内普及,因此51单片机万年历的研究相对较少,但在欧美等发达国家,其在嵌入式领域的应用比较广泛。一些企业和个人也基于51单片机开发了不同类型的万年历,这些万年历不仅具有显示时间的功能,还有提醒、闹钟等实用功能。

总体来说,国内外对于51单片机万年历的研究和开发并没有停滞,在技术、应用等方面都有不断探索和创新,同时也在推动单片机技术的发展和应用。

5.部分代码

#include<reg52.h>
//#include"DS18B20_3.H"
#include <string.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define wd 1				//定义是否有温度功能  =0时无温度,=1时有温度
#include "eeprom52.h"

#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)
#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)

//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)
sbit en=P2^7;
sbit rw=P2^6;   //如果硬件上rw接地,就不用写这句和后面的rw=0了
sbit rs=P2^5;


//校时按键与C51的引脚连接定义

sbit set=P3^0;  	//设置键
sbit add=P3^1;  	//加键
sbit dec=P3^2;  	//减键
sbit seeNL_NZ=P3^3;	//查看农历/闹钟

sbit DQ=P3^7;		//
sbit buzzer=P2^0;	//蜂鸣器,通过三极管8550驱动,端口低电平响

sbit led=P2^4; 		//LCD背光开关
bit  led1=1;
bit NZ_sdgb=1;
unsigned char temp_miao;
unsigned char bltime;  //背光亮的时间

//DS1302时钟芯片与C51之间的引脚连接定义
sbit DSIO=P1^1;
sbit SCLK=P1^0;
sbit RST=P1^2;

char a,miao,shi,fen,ri,yue,week,setn,nian;
int temp;
uint flag;
//flag用于读取头文件中的温度值,和显示温度值
bit c_moon;

char nz_shi,nz_fen,setNZn;    	//定义闹钟变量
uchar shangyimiao,bsn,temp_hour;			//记录上一秒时间
uchar T_NL_NZ;							//计数器
bit timerOn=0;							//闹钟启用标志位
bit baoshi=0;							//整点报时标志位
bit  p_r=0;		 						//平年/润年  =0表示平年,=1表示润年
data uchar year_moon,month_moon,day_moon;

sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
/************************************************************
ACC累加器=A
ACC.0=E0H 

ACC.0就是ACC的第0位。Acc可以位寻址。

累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,
是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,
常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。
一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 
***************************************************************/

/******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{
	SectorErase(0x2000);
	byte_write(0x2000, nz_shi);
	byte_write(0x2001, nz_fen);
	byte_write(0x2002, timerOn);
	byte_write(0x2060, a_a);	
}

/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
	nz_shi   = byte_read(0x2000);
	nz_fen = byte_read(0x2001);
	timerOn = byte_read(0x2002);
	a_a      = byte_read(0x2060);
}

/**************开机自检eeprom初始化*****************/
void init_eeprom() 
{
	read_eeprom();		//先读
	if(a_a != 1)		//新的单片机初始单片机内问eeprom
	{
		nz_shi   = 12;
		nz_fen = 30;
		timerOn=0;
		a_a = 1;
		write_eeprom();	   //保存数据
	}	
}

6.完整工程

基于51单片机的万年历仿真资源-CSDN文库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1260644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信api开发接口文档

简要描述&#xff1a; 搜索联系人 请求URL&#xff1a; http://域名地址/searchUser 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wI…

人力资源管理后台 === 主页模块

目录 1.获取用户资料在Vuex中共享 2.显示用户头像和用户名 3.处理头像为空的场景 4.处理token失效的问题 5.调整下拉菜单&#xff0c;实现退出登录 6.修改密码功能实现 6.1-修改密码-弹出层 6.2-修改密码-表单结构 6.3-修改密码-表单校验 6.4-修改密码-确定和取消 7.…

学习知识回顾随笔

文章目录 如何远程连接MySQL数据库1.创建用户来运行&#xff0c;此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议&#xff08;超文本传输协议&#xff09;简介HTT…

京东平台双11全品类完整销售数据回顾(京东大数据-京东数据采集-京东数据接口)

今年的双十一&#xff0c;大家依然没有等到各大平台的官方战报。 所以&#xff0c;对于绝大部分品牌、商家、咨询公司乃至有数据研究需求的小伙伴来说&#xff0c;很难了解到今年大促消费者的真实消费水平。 为此&#xff0c;鲸参谋简单整理出了10个京东大类目&#xff08;含5…

享受更健康的睡眠,dido P1S智能手环体验

如今很多人都有严重的失眠困扰&#xff0c;像是因为平时工作非常繁忙&#xff0c;每天回到家后已经很晚了&#xff0c;或者是睡前长时间刷手机&#xff0c;躺在床上辗转反侧&#xff0c;晚上就很难入睡&#xff0c;脑海中一片混乱&#xff0c;休息的质量就很差。我最近尝试了一…

功率信号源可输出波形有哪些

功率信号源是一种能够产生高功率输出信号的电子设备。它常用于实验室、工业生产以及各种应用领域中&#xff0c;如无线通信、音频放大和激光器驱动等。功率信号源可以输出多种不同的波形&#xff0c;下面将介绍一些常见的输出波形类型。 直流&#xff08;DC&#xff09;波形&am…

影响机器视觉测量精度的因素有哪些?

精度测量取决于分辨率 在机器视觉测量中提供高精度和低不确定度的决定性因素是获取的图像的分辨率。在这种情况下&#xff0c;术语分辨率 &#xff08;或图像分辨率&#xff09;意味着以实际单位的单个像素的大小。简而言之&#xff0c;如果一个摄像机传感器在水平方向上包含…

IP代理的潜力有多大?做跨境一定要会用!

IP说简单不简单&#xff0c;说复杂也不复杂&#xff0c;打个比方&#xff0c;IP就好比我们上网的一个门牌号&#xff0c;每家每户都会有一个门牌号&#xff0c;而且是唯一的地址。而代理IP&#xff08;代理服务器&#xff09;是一个位于中间的服务器&#xff0c;充当客户端和目…

iptables拒绝所有端口放开特定端口方法流程,iptables允许ping和拒绝ping、hosts阻止所有ip指定放开ip方法流程

文章目录 说明iptables拒绝所有端口放开特定端口方法流程拒绝所有端口允许特定端口临时规则写入配置文件永久生效 iptables允许ping和拒绝ping禁止允许ping说明内核参数设置禁止允许 防火墙设置禁止允许 禁止ping允许ping外部ping通虚拟机内部虚拟机内部使用ping规则详细 hosts…

全国重点文物保护单位数据第1-8批数据,附数据可视化

今天分享的第二个数据是全国重点文物保护单位数据&#xff0c;涉及全国重点文物保护单位第一批至第八批&#xff0c;数据格式为shpcsv格式&#xff0c;以点为几何类型&#xff0c;已经经过精加工&#xff0c;可直接使用。 涉及字段列表如下&#xff1a; 序号字段名称字段说明…

java学习part16代码块

108-面向对象(高级)-类的成员之四&#xff1a;代码块_哔哩哔哩_bilibili 1. 代码块只能static修饰&#xff0c;不存在权限修饰。 因为它是在某种情况下自动执行的&#xff0c;不存在调用的情况。 非静态代码块随着对象创建自动执行&#xff08;一个对象执行一次&#xff09;…

Python实现WOA智能鲸鱼优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…

ubuntu/vscode下的c/c++开发之-CMake语法与练习

Cmake学习 1 语法特性介绍 基本语法格式&#xff1a;指令(参数 1 参数 2...) 参数使用括弧括起参数之间使用空格或分号分开 指令是大小写无关的&#xff0c;参数和变量是大小写相关的 set(HELLO hello.cpp) add_executable(hello main.cpp hello.cpp) ADD_EXECUTABLE(hello ma…

Django总结

文章目录 一、Web应用Web应用程序的优点Web应用程序的缺点应用程序有两种模式C/S、B/S C/S 客户端/服务端局域网连接其他电脑的MySQL数据库1.先用其他电脑再cmd命令行ping本机ip2.开放MySQL的访问 B/S 浏览器/服务端基于socket编写一个Web应用 二、Http协议1.http协议是什么2.h…

NX二次开发UF_CURVE_ask_proj_curves 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_proj_curves Defined in: uf_curve.h int UF_CURVE_ask_proj_curves(tag_t proj_curve_feature, int * n_curve_refs, tag_t * * curve_refs ) overview 概述 Return…

【无标题】动手学深度学习_现代神经网络_未完

这里写目录标题 深度学习之前的网络 AlexNetAlexNet得到了竞赛冠军AlexNet架构Alex net更多细节数据增强 VGGNiN知识补充flop暂退法 drop_out 深度学习之前的网络 1、核方法 机器学习 SVM现在还是很广泛的使用&#xff0c;因为对调参的需求不那么大&#xff0c;对调参不太敏感…

IP代理的巨大潜力,为什么跨境业务需要它?

IP说简单不简单&#xff0c;说复杂也不复杂&#xff0c;打个比方&#xff0c;IP就好比我们上网的一个门牌号&#xff0c;每家每户都会有一个门牌号&#xff0c;而且是唯一的地址。而代理IP&#xff08;代理服务器&#xff09;是一个位于中间的服务器&#xff0c;充当客户端和目…

GPT还远远不是真正的智能

GPT是一个基于深度学习的自然语言处理模型&#xff0c;它可以生成逼真的文本。虽然GPT在生成文本方面取得了显著的进展&#xff0c;但它并不具备真正的智能。GPT是通过训练模型来学习语言模式&#xff0c;它不具备理解、推理、判断和主动学习的能力。它只是根据已有的语料库生成…

解决git与huggingface项目下载速度慢或者失败的问题

git clone 项目报错 比如使用git clone 下载项目&#xff1a; git clone https://github.com/ChuRuaNh0/FastSam_Awsome_TensorRT.git有时候会报以下错误&#xff1a; fatal: unable to access ‘https://github.com/xxx.git/’: Failed to connect to github.com port 443 …

JUC下常用的类

一、Semaphore 信号量 new Semaphore(10) 可以把他理解成停车场&#xff0c;最多停10辆车&#xff0c;多个车进来如果满了就去排队&#xff0c;车走了&#xff0c;车位就空出来了&#xff0c;排队的线程就可以进来主要下面2个方法 Acquire获取锁&#xff1a;通过CAS原子性减1&…