当前位置: 首页 > news >正文

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

一、系统方案
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.lryc.cn/news/224897.html

相关文章:

  • 【ARFoundation学习笔记】点云与参考点
  • uni-app:js实现数组中的相关处理-数组复制
  • 8 STM32标准库函数 之 实时时钟(RTC)所有函数的介绍及使用
  • ARMday04(开发版简介、LED点灯)
  • 国际腾讯云:云服务器疑似被病毒入侵问题解决方案!!!
  • Perl语言用多线程爬取商品信息并做可视化处理
  • 认识计算机-JavaEE初阶
  • you-get - 使用代码下载视频
  • 【Proteus仿真】【51单片机】汽车尾灯控制设计
  • 浙大恩特客户资源管理系统任意文件上传漏洞复现
  • 史上第一款AOSP开发的IDE (支持Java/Kotlin/C++/Jni/Native/Shell/Python)
  • GCC + Vscode 搭建 nRF52xxx 开发环境
  • Linux应用开发基础知识——Framebuffer 应用编程(四)
  • 智安网络|数据库入门秘籍:通俗易懂,轻松掌握与实践
  • EXCEL中安装多个vsto插件,插件之间互相影响功能,怎么解决
  • Java枚举
  • 基于MATLAB的关节型六轴机械臂轨迹规划仿真
  • 双11狂欢最后一天
  • YOLOX: Exceeding YOLO Series in 2021(2021.8)
  • HBuilderX 运行Android App项目至雷电模拟器
  • Java进阶(JVM调优)——阿里云的Arthas的使用 安装和使用 死锁查找案例,重新加载案例,慢调用分析
  • 续:将基于Nasm汇编的打字小游戏,移植到DOSBox
  • 外部访问K8S集群内部的kafka集群服务
  • AttributeError: module ‘tensorflow‘ has no attribute ‘contrib‘解决办法
  • 物奇平台耳机恢复出厂设置功能实现
  • RFID携手制造业升级,为锂电池生产带来前所未有的可靠性
  • 【星海出品】flask (四) 三方工具使用
  • MongoDB 索引
  • [Hive] INSERT OVERWRITE DIRECTORY要注意的问题
  • 刚柔相济铸伟业 ——访湖南顺新金属制品科技有限公司董事长张顺新