基于51单片机的万年历-脉搏计仿真及源程序

news2024/11/23 20:21:55

一、系统方案
1、本设计采用51单片机作为主控器。
2、DS1302采集年月日时分秒送到液晶1602显示。
3、按键年月日时分秒,心率报警上下限。
4、红外对接管传感器采集心率送到液晶1602显示。
5、心率低于下限或高于上限,蜂鸣器报警。
在这里插入图片描述
二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
TCON=0x01;//设置外部中断0
EX0=1;
TMOD=0x01;//定时器0初始化
TH0=(65536-50000)/256;//实测每50ms中断的定时值
TL0=(65536-50000)%256;
ET0=1;//开定时器中断
TR0=0;//定时器停止
EA=1;//开总中断
init_1602(); //lcd1602初始化
init_1602_dis_csf(); //lcd1602初始化显示
2、液晶显示程序
/延时函数*/
void delay_uint(uint q)
{
while(q–);
}

/lcd1602写命令函数*/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}

/lcd1602写数据函数*/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
3、按键程序
uchar key_can; //按键值

void key() //独立按键程序
{
static uchar key_new;
key_can = 20; //按键值还原
P3 |= 0x78; //对应的按键IO口输出为1
if((P3 & 0x78) != 0x78) //按键按下
{
delay_1ms(1); //按键消抖动
if(((P3 & 0x78) != 0x78) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P3 & 0x78)
{
case 0x70: key_can = 4; break; //得到按键值
case 0x68: key_can = 3; break; //得到按键值
case 0x58: key_can = 2; break; //得到按键值
case 0x38: key_can = 1; break; //得到按键值
}
}
}
else
key_new = 1;
}
4、核心算法程序
void ex0() interrupt 0
{
EX0=0;//暂时关外部中断
if(timecount<8) //当连续两次检测时间间隔小于850ms=400ms不处理
{
TR0=1;//开定时器
}
else
{
time[num]=timecount
50+TH0*0.256+TL0/1000;//算出间隔时间
TL0=(65536-50000)%256;//重新设置定时器
TH0=(65536-50000)/256;
timecount=0;//50ms计数清零
num++;
if(num==6)//记录到超过等于6次时间
{
num=1;//计数从1开始
displayOK=1; //测得5次开始显示
}

	}
	EX0=1;

}
四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
在这里插入图片描述

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

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

相关文章

18 Linux 阻塞和非阻塞 IO

一、阻塞和非阻塞 IO 1. 阻塞和非阻塞简介 这里的 IO 指 Input/Output&#xff08;输入/输出&#xff09;&#xff0c;是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将对应应用…

一台电脑使用多个gitee账号,以及提交忽略部分文件

目录 ​编辑 一&#xff1a;前言 二&#xff1a;解决方法 三&#xff1a;提交gitee时忽略文件 一&#xff1a;前言 在开发中&#xff0c;我们拥有不止一个 gitee 账号&#xff0c;通常而言一个是公司的&#xff0c;一个是私人的。有时候我们在公司写了一些自己的东西&#…

GS3661V1 3.7升压5V 3A SOT23-5封装 外置MOS 升压芯片 单节锂电升压5V 2.5-3A

GS3661V1 3.7升压5V 3A SOT23-5 外置MOS 升压芯片 单节锂电升压5V 2.5-3A

全新Inner-IoU损失函数!!!通过辅助边界框计算IoU有效提升检测效果

摘要 1 简介 2 方法 2.1 边界框回归模式分析 2.2 Inner-IoU 损失 3 实验 3.1 模拟实验 3.2 对比实验 3.2.1 PASCAL VOC上的YOLOv7 3.2.2 YOLOv5 在 AI-TOD 上 4. 参考 摘要 随着检测器的快速发展&#xff0c;边界框回归&#xff08;BBR&#xff09;损失函数不断进…

【赠书第3期】用ChatGPT轻松玩转机器学习与深度学习

文章目录 前言 1 机器学习 2 深度学习 3 使用ChatGPT进行机器学习和深度学习 4 推荐图书 5 粉丝福利 前言 机器学习和深度学习是当前最热门的技术领域之一&#xff0c;这些技术正在不断地改变我们的生活和工作方式。ChatGPT 是一款基于大规模预训练模型的自然语言处理工…

C4D vs Blender:哪个更适合你的需求?

对于初学者来说&#xff0c;选择合适的 3D 制作软件往往是一件很困扰的事情。近年来&#xff0c;C4D 和 Blender 成为了许多动画和 3D 建模爱好者的热门选择。那么&#xff0c;这两款软件各有什么特色呢&#xff1f;让我们一起来看看吧&#xff01; 一、软件特色 C4D 是一款商…

GEE ——errors & debuggings (2023GEE峰会总结)

简介&#xff1a; 在gee中有三种错误&#xff0c;一种就是系统错误&#xff0c;也就是我们看到的会在JavaScript code editor中出现的错误&#xff0c;也就是在程序还没有启动之前就会提示的错误&#xff0c;而客户端错误则主要是会提示一些在代码过程中的错误&#xff0c;比如…

Java语言基础(上)

Java 语言的特点 面对对象&#xff1a;Java 中所有的数据和方法都封装在对象中跨平台性&#xff1a;Java 通过 Java 虚拟机&#xff0c;可以在不同的操作系统上运行相同的程序自动内存管理&#xff1a;Java 提供垃圾回收机制&#xff0c;不需要手动管理内存强类型语言&#xf…

ElasticSearch7.x - HTTP 操作 - 索引操作

创建索引 对比关系型数据库,创建索引就等同于创建数据库 在 Postman 中,向 ES 服务器发 PUT 请求 :http://192.168.254.101:9200/shopping 说明 {"acknowledged"【响应结果】: true, # true 操作成功"shards_acknowledged"【分片结果】: true, # 分片操…

亚数受邀参加“长三角G60科创走廊量子密码应用创新联盟(中心)”启动仪式

11月8日&#xff0c;在第六届中国国际进口博览会2023长三角G60科创走廊高质量发展要素对接大会上&#xff0c;亚数信息科技&#xff08;上海&#xff09;有限公司CEO翟新元作为密码企业代表之一受邀参加“长三角G60科创走廊量子密码应用创新联盟&#xff08;中心&#xff09;”…

【手动创建UIWindow Objective-C语言】

一、上节课,我们讲了控制器View的懒加载: 1.什么时候会调用这个懒加载呢,用我们直接,控制器self.view self.view的时候: 什么时候,调用它这个self.view, 就要去加载控制器的view, self.view 加载控制器的view 我们给大家演示过了,这个大家已经清楚了,我们给大家说…

2023年A股借壳上市研究报告

第一章 借壳上市概况 1.1 定义 借壳上市作为一种独特的资本市场操作手法&#xff0c;历来是企业拓展融资渠道和实现市场战略目标的重要途径。具体来说&#xff0c;借壳上市可分为狭义与广义两种模式。在狭义的定义下&#xff0c;借壳上市是指一家已上市的公司的控股母公司&am…

vivo 数据库降本实践:探索成本效益最优的数据库解决方案

vivo 自 2022 年开始调研、测试 OceanBase 至今&#xff0c;现已上线 17 个业务系统&#xff0c;涵盖日志类、分析类、交易类业务&#xff0c;实现了总资源节省 80%&#xff0c;开发、运维工作大幅简化。vivo 体系与流程 IT 部门数据库高级工程师廖光明在本文中&#xff0c;详细…

利用MSF设置代理

1、介绍&#xff1a; 通过MSF拿到一个机器的权限后&#xff0c;通过MSF搭建socks代理&#xff0c;然后通内网。 拿到目标权限&#xff0c;有很多方法&#xff0c;比如&#xff1a;①ms17-010 ②补丁漏洞 ③MSF生成后门 在此直接使用MSF生成后门 MSF中有三个代理模块&#x…

【Kurbernetes部署】知识点总结(部署方式、网络插件.....)

知识点合集 一、Kurbernetes常见的部署方式1.1 Minikube&#xff08;一般不用&#xff09;1.2 Kubeadm1.3 二进制安装部署&#xff08;推荐使用的方式&#xff09; 二、二进制部署Kurbetnetes的思路Step1 部署etcdStep2 部署master组件Step3 部署node组件Step4 部署多master高可…

leetcode:160. 相交链表

一、题目 原题链接&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 函数原型&#xff1a; struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 二、思路 判断两个链表是否相交&#xff0c;只要判断两个链表是否有相同的…

3 分钟看完 NVIDIA GPU 架构及演进

近期随着 AI 市场的爆发式增长&#xff0c;作为 AI 背后技术的核心之一 GPU&#xff08;图形处理器&#xff09;的价格也水涨船高。GPU 在人工智能中发挥着巨大的重要&#xff0c;特别是在计算和数据处理方面。目前生产 GPU 主流厂商其实并不多&#xff0c;主要就是 NVIDIA、AM…

利用IP风险画像强化金融行业网络安全防御

在数字化时代&#xff0c;金融行业日益依赖互联网和技术创新&#xff0c;但这也使得金融机构成为网络攻击的主要目标。为了应对日益复杂的网络威胁&#xff0c;金融机构迫切需要采用先进的安全技术和工具。其中&#xff0c;IP风险画像技术成为提升网络安全的一项重要策略。 1.…

深度学习检测小目标常用方法

前言 在深度学习目标检测中&#xff0c;特别是人脸检测中&#xff0c;小目标、小人脸的检测由于分辨率低&#xff0c;图片模糊&#xff0c;信息少&#xff0c;噪音多&#xff0c;所以一直是一个实际且常见的困难问题。不过在这几年的发展中&#xff0c;也涌现了一些提高小目标…

国家数据局正式揭牌,2030年数据要素市场规模或破万亿

10月25日&#xff0c;国家数据局正式挂牌&#xff01; 自今年3月国务院通过《党和国家机构改革方案》提出组建国家数据局以来&#xff0c;国家数据局的组建工作一直在紧锣密鼓地进行中。经过7个月的筹备工作&#xff0c;国家数据局于2023年10月25日挂牌成立。 根据《党和国家机…