基于51单片机的多功能时钟温度计proteus仿真原理图

news2025/7/9 8:56:53

本系统是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压环境中工作;时钟电路由内部时钟电路外接晶振提供,它是一种高性能、低功耗、带RAM的可随时调整时钟电路,工作电压为3V~5V;所以采用DS1302作为本设计的日历芯片;显示部份使用LCD1602B液晶模块进行数字显示,1602B液晶模块可以显示2行16个字符,有8位数据总线D0—D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。该模块也可以只用D4-D7作为四位数据分两次传送,这样就可以节省MCU的I/O口资源,系统主要由晶振电路、复位电路、时钟电路部分、中央处理单元、晶显示部分组成,单片机数字时钟的设计流程如图2-1所示。
原理框图
在这里插入图片描述

原理图
在这里插入图片描述
时钟电路
时钟电路为整个单片机系统产生时间基准,是单片机系统必须的部分;本系统采用美国DALLAS公司推出的DS1302实时时钟芯片,工作电压为2.5V-5.5V,采用三线接口与CPU进行同步通信,并可采用突发式一次传送多个字节的时钟信号或RAM数据,该芯片是采用串行方式的实时时钟芯片,串行方式的实时时钟芯片大多数是将地址线、数据线、控制线合为一根串行传输数据的传号线,这种方式的有点是信号线少、电路连接简单、节省系统资源和电路板的面积,缺点是程序编写复杂、工作量比较大,且操作速度较慢,接下来我们来分析一下DS1302的性能与原理。
DS1302的性能:
、 计算2100年之前的秒、分、时、日、星期、月和年,能进行闰年调整;
B、31字节数据RAM;
C、引脚与TTL兼容;
D、工作电流小于300nA,有备份电源和涓流充电能力;
DS1302引脚定义:
I/O:数据输入/输出引脚
SCLK:串行时钟输入引脚
RST复位引脚
GND:接地引脚
Vcc1、Vcc2:工作电源、备份电源引脚
X1、X2:晶振接入管脚。晶振频率为32.768KHz。

液晶LCD1602显示电路
1602B液晶模块可以显示2行16个字符,有8位数据总线D0—D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。该模块也可以只用D4-D7作为四位数据分两次传送,这样就可以节省MCU的I/O口资源,液晶LCD1602引脚情况如下表(2-2-2)所示;液晶LCD1602最小系统图如2-2-1-2所示。
在这里插入图片描述
程序设计流程图
在这里插入图片描述

程序源代码

#include<reg52.h> //头文件
#include<intrins.h>
#define uchar unsigned char		//宏定义
#define uint  unsigned int		//宏定义
#define fmq RD

sbit key1=P2^0;   //位声明 					//MODIFIED
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
		
uchar code table[]={0x3f,0x06,0x5b,//数码管显示的数值
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0xbf,0x86,0xdb,//带小数点的数值
0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

void plus();   //函数声明
void minus();
void sint();
uchar table_1[6]; //定义数组,数组内含有6个数值
uchar table_2[6];
uchar shi=1,fen=1,miao=30; //显示初始值
uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;//定义全局变量
uchar flag,flag1,flag2,cnt,cnt1,count;//定义全局变量


void delay(uchar i)  //延时函数,用于动态扫描数码管
{
     uchar x,y;
     for(x=i;x>0;x--)
          for(y=110;y>0;y--);
}

void init()   //初始化函数
{
     TMOD=0X21; //工作方式1
     TH0=(65536-50000)/256; //定时时间为:50ms
     TL0=(65536-50000)%256;
     ET0=1;     //打开定时器
     EA=1;    //开总中断
     TR0=1;    //启动定时器

	 SCON  = 0x50;     		  //0101 0000 SM1SM2=10,方式二 REN=1允许接受 	(串口初始化)
	 TH1   = 0xFD;        
     TR1   = 1;                //启动T/C1                   
   	 ES    = 1;              


}
void display()  //显示子函数,用于显示时间数值
{
     uchar i,j;
     table_1[0]=miao%10;  //分离秒的各位与十位
     table_1[1]=miao/10;
     table_1[2]=fen%10+11;  //分离分的各位与十位
     table_1[3]=fen/10;
     table_1[4]=shi%10+11; //分离时的各位与十位
     table_1[5]=shi/10;
     j=0x7f;    //从秒到时的扫描
     for(i=2;i<6;i++)
     {
      P2=j;
      P0=table[table_1[i]];//显示数值
      delay(10);
      j=_cror_(j,1);//循环右移 
     }
}

void display_1() //显示子函数,用于显示定时时间
{
     uchar i,j;
     table_2[0]=miao2%10;  //以下含义同上
     table_2[1]=miao2/10;
     table_2[2]=fen2%10+11;
     table_2[3]=fen2/10;
     table_2[4]=shi2%10+11;
     table_2[5]=shi2/10;
     j=0x7f;
     for(i=2;i<6;i++)
     {
          P2=j;
          P0=table[table_2[i]];
          delay(10);
          j=_cror_(j,1); 
     }
}

void shijian() //时间子函数
{
     if(flag>=20)  //判断是否到一秒
     {
          flag=0;  //到了,则标志位清零
          miao++;  //秒加1
          if(miao>=60) //判断秒是否到60s
          {
               miao=0;//到了,则清零
               fen++; //分加1
               if(fen>=60) //以下含义同上						//MODIFIED
               {
                    fen=0;
                    shi++;
                    if(shi>23)
                         shi=0;
               }
          }
     }
}


资料地址:http://www.jh-tec.cn/archives/5851

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

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

相关文章

数据中台与大数据、数据仓库、数据湖、BI的区别

一、什么是数据中台 数据中台是一种将企业沉睡的数据变成数据资产&#xff0c;持续使用数据、产生智能、为业务服务&#xff0c;从而实现数据价值变现的系统和机制。通过数据中台提供的方法和运行机制&#xff0c;形成汇聚整合、提纯加工、建模处理、算法学习&#xff0c;并以…

电源管理ISL95869HRTZ、ISL95808HRZ概述、规格和应用

ISL95869完全符合英特尔IMVP9规范&#xff0c;并为处理器的主输入轨道电源提供了完整的解决方案。它提供了一个电压调节器(VR)与两个集成和一个外部门驱动器。VR可以配置为3-&#xff0c;2-或1-相位&#xff0c;提供最大的灵活性。虚拟现实采用串行控制总线SVID (serial contro…

es环境搭建

1.es与es-head的搭建 1.1 es7.6.2 每个es都是自成一个集群&#xff0c;不同于solar还需要zk来搭建集群 1.1.1 下载安装 https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-6-2 因为占用内存实在是太大了&#xff0c;我在服务器上装了运行不起来&#xff…

Flameshot源码编译方法

一、简介 Flameshot是一款功能强大但易于使用的屏幕截图软件&#xff0c;中文名称火焰截图。Flameshot 简单易用并有一个CLI版本&#xff0c;所以你也可以从命令行来进行截图。Flameshot 是一个Linux发行版中完全免费且开源的截图工具。 二、在线安装 在线安装方法很简单&…

java基于web的自行车租赁系统ssh

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1 课题背景 1 1.2 课题研究的意义 1 1.3 课题的目标 2 1.4 研究内容与章节安排 2 第2章 可行性分析 3 2.1 经济可行性 3 2.2 技术可行性 3 2.3 操作可行性 4 2.4法律可行性 4 2.5业务流程分析…

win10实现nfs文件共享II

文章目录&#xff08;一&#xff09;在服务器A设置共享目录&#xff08;二&#xff09;在客户端B安装nfs,挂载目录&#xff08;一&#xff09;在服务器A设置共享目录 步骤1&#xff1a;在D盘新建目录“nfs”,将其目录设置为共享目录。 步骤2&#xff1a;点击权限&#xff0c;设…

税票贷产品的准入与额度判断有哪些逻辑

近两周&#xff0c;番茄风控的课程中&#xff0c;涉及的税票贷产品课程干货满满。 今天我们再跟大家讲一下关于税票贷中风控的核心准入策略与额度判断有哪些逻辑是需要关注的&#xff1f; 先来说下税务的数据&#xff0c;然后再来讲下发票类型的数据。 一.关于税务的风控准入策…

PCB Layout爬电距离、电气间隙如何确定-安规

PCB Layout爬电距离、电气间隙如何确定 爬电距离&#xff1a;沿绝缘表面测得的两个导电零部件之间或导电零部件与设备防护界面之间的最短路径。 电气间隙&#xff1a;在两个导电零部件之间或导电零部件与设备防护界面之间测得的最短空间距离。即在保证电气性能稳定和安全的情况…

Redis真没那么难,这份大佬实战笔记也太可了,吹爆

Redis的技术全景 Redis一个开源的基于键值对&#xff08;Key-Value&#xff09;NoSQL数据库。使用ANSI C语言编写、支持网络、基于内存但支持持久化。性能优秀&#xff0c;并提供多种语言的API。 我们要首先理解一点&#xff0c;我们把Redis称为KV数据库&#xff0c;键值对数据…

图解LeetCode——775. 全局倒置与局部倒置(难度:中等)

一、题目 给你一个长度为 n 的整数数组 nums &#xff0c;表示由范围 [0, n - 1] 内所有整数组成的一个排列。 全局倒置 的数目等于满足下述条件不同下标对 (i, j) 的数目&#xff1a; 0 < i < j < nnums[i] > nums[j]局部倒置 的数目等于满足下述条件的下标 i 的…

【Opencv实战】识别水果的软件叫什么?一款超好用的识别软件分享,一秒鉴定(真是活~久~见~啊)

导语 Hello&#xff0c;大家好呀&#xff01;我是木木子吖&#xff5e; 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚。 听说关注我的人会一夜暴富发大财哦——不信你试试&#xff01; 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&…

redis(二)

一、短信登录 1.1导入黑马点评项目 导入黑马点评项目 首先&#xff0c;导入课前资料提供的SQL文件 其中的表有&#xff1a; tb_user&#xff1a;用户表tb_user_info&#xff1a;用户详情表tb_shop&#xff1a;商户信息表tb_shop_type&#xff1a;商户类型表tb_blog&#xf…

Golang入门(1)—— helloworld 初体验

没有多少雄心壮志&#xff0c;就是想在B站上跟一个视频&#xff0c;写一个helloworld 。 还是老配方&#xff0c;还是IDEA&#xff0c;简单的下载了一个go插件之后&#xff0c;就可以new go文件了。然后根据提示下载了一个最新的go版本&#xff0c;设置好环境变量。写了如下&am…

Redis事务相关源码探究

文章目录Redis事务源码解读1、MULTI 声明事务2、命令入队3、EXEC 执行事务4、WATCH 监听变量Redis事务源码解读 源码地址&#xff1a;https://github.com/redis/redis/tree/7.0/src 从源码来简单分析下 Redis 中事务的实现过程 1、MULTI 声明事务 Redis 中使用 MULTI 命令来…

Ubuntu18.04 安装完成后的开发配置

Ubuntu18.04 安装完成后的开发配置1 终端工具2 屏幕录制工具3 屏幕截图工具4 向日葵远程操作与开机自启动设置5 MarkDown笔记工具6 ROS 机器人操作系统安装7 编程开发工具8 机器人仿真环境Gazebo 安装Webots 安装CoppeliaSim 安装Mujuco 安装Pybullet 安装测试平台&#xff1a;…

【c#】前后端分离练习小项目学习笔记----纯干货

c#实现前端页面CRUD结果图涉及到的技术设计流程代码展示总结结果图 涉及到的技术 1、HttpClient请求网络 2、webapi接口用法 3、sqlsugar数据库使用 4、Json序列化、反序列化 设计流程 刚开始做这个小项目&#xff0c;很懵。按照平常中项目的写法&#xff0c;就是先配置好数据…

模式识别与机器学习(更新中)

模式识别与机器学习 使用的教材&#xff0c;PPT为1 公式推导部分直接去看白板推导2&#xff0c;不管是书上还是ppt都写的极其模糊 先说重点&#xff1a; 贝叶斯算概率参数估计 第二讲 贝叶斯学习基础 贝叶斯公式 先验概率是非条件概率 似然概率是给定变量的条件下观测变…

贤鱼的刷题日常--P1665 正方形计数--题目详解

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;学习了解–P1665 正方形计数 ✅创作者&#xff1a;贤鱼 ⏰预计时间&#xff1a;5分钟 &#x1f389;个人主页&#xff1a;贤鱼的个人主页 &#x1f525;专栏系列&#xff1a;c &#x1f341;贤鱼的个人社区&#xff0c;欢迎…

基于matlab的瑞利衰落信道建模和仿真

目录 1.算法概述 2.仿真效果预览 3.核心MATLAB预览 4.完整MATLAB程序 1.算法概述 无线信道的小尺度衰弱特征可以分为三大类&#xff1a; 一类是由于多径传播导致短时间内幅度衰落&#xff1b; 一类是由于多径的时延扩展引起时间色散导致的信道衰弱&#xff1b; 一类是由于…

点成分享 | 微流控技术集成系统的应用

一、背景 微流控技术是指把化学和生物等领域中涉及的样品制备、反应、分离、检测、细胞培养、分选、裂解等基本操作单元集成到一块几平方厘米甚至更小的芯片上&#xff0c;由微通道形成网络&#xff0c;以可控流体贯穿整个系统&#xff0c;用以实现常规化学、生物、材料、光学…