基于单片机病房呼叫程序和仿真

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!
一、系统方案
1、本设计采用这51单片机作为主控器。
2、病房呼叫,液晶1602显示。
3、护士站按键取消。
4、蜂鸣器报警。
在这里插入图片描述

二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
void init() //初始化函数
{
bg_1602=0; //开启背光
TMOD=0x01; //定时器0工作方式1
TH0=0x4b;
TL0=0xff; //赋初值
EA=1; //开总中断
ET0=1; //定时器中断开
TR0=1; //定时器0中断开

D0=0;
D1=0;
D2=0;
D3=0;				//清零床号引脚

}
2、液晶显示程序
/LCD1602/
void com_1602(uc com) //写命令
{
RS=0;
P0=com;
delay(1);
E=1;
delay(1);
E=0;
RS=1;
}

void data_1602(uc date) //写数据
{
RS=1;
P0=date;
delay(1);
E=1;
delay(1);
E=0;
RS=0;
}

3、按键程序
if(key0) //检测按键
{
delay(5);
if(key
0)
{
if((num_D0!=0)||(num_D1!=0)||(num_D2!=0)||(num_D3!=0))//如果有呼叫时
{
bg_1602=0; //打开背光
Beep=1; //关闭蜂鸣器
flag=0; //标志位清零
num_D0=0;num_D1=0;num_D2=0;num_D3=0;
fu_D0=D0;fu_D1=D1;fu_D2=D2;fu_D3=D3;//将床位清零,并记录当前引脚状态
com_1602(0x01); //清屏
dis_1602(7,1,4,2,0); //显示I Know
}
else //如果没有呼叫时
bg_1602=0; //只点亮背光
}
while(!key); //按键释放
delay(2000);
com_1602(0x01);//清屏
}
4、核心算法程序
void display() //显示函数
{
if((num_D00)&&(num_D10)&&(num_D20)&&(num_D30)) //当没有床位呼叫时
dis_1602(16,0,0,3,0); //显示Happy
else //有床位呼叫时
{
if(flag0)
{
flag=1;
com_1602(0x01);//清屏
}
if(num_D0
1)
{
dis_1602(1,0,2,0,num_D0);
dis_1602(1,0,3,0,10);
}
if(num_D12)
{
dis_1602(1,0,5,0,num_D1);
dis_1602(1,0,6,0,10);
}
if(num_D2
3)
{
dis_1602(1,0,8,0,num_D2);
dis_1602(1,0,9,0,10);
}
if(num_D3==4)
{
dis_1602(1,0,11,0,num_D3);
dis_1602(1,0,12,0,10);
}
dis_1602(10,1,3,1,0); //在对应床位显示床位号
}
}

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

spring Cloud在代码中如何应用,erueka 客户端配置 和 服务端配置,Feign 和 Hystrix做高可用配置

文章目录 Eureka一、erueka 客户端配置二、eureka 服务端配置 三、高可用配置FeignHystrix 通过这篇文章来看看spring Cloud在代码中的具体应用,以及配置和注解; Eureka 一、erueka 客户端配置 1、Eureka 启禁用 eureka.client.enabledtrue 2、Eurek…

Redis深入理解-三次握手、槽位机制

Redis 节点之间的三次握手原理分析 比如多台 Redis 之间要建立集群,那么连接其中的一台 Redis 客户端,向其他 Redis 发送 meet 命令即可通知其他节点,那么发送 meet 命令给其他节点后,对方也会在内存中创建一个 ClusterNode 结构…

【shell】正则表达式和文本三剑客之grep和awk

目录 一、正则表达式 1.1用法 1.2表示字符匹配 1.3表示次数 1.4表示位置锚定 1.5表示分组或其他 1.6扩展正则表达式 二、grep命令 三、awk命令 3.1awk与vim的区别 3.2awk的语法 3.3基础用法 test1.提取磁盘的分区利用率 test2.提取用户名和uid号 test3.提取ip地址…

键盘打字盲打练习系列之刻意练习——1

一.欢迎来到我的酒馆 盲打,刻意练习! 目录 一.欢迎来到我的酒馆二.选择一款工具三.刻意练习 二.选择一款工具 俗话说:工欲善其事必先利其器。在开始之前,我们可以选择一款练习盲打的工具。打字软件有很多,还有专门练习打字的网站&…

docker 安装oracle 11,配置客户端远程连接

最近由于工作需要,oracle11数据库的导入导出,所以自己在电脑上模拟个数据库环境, 1.docker的安装,可以参考之前文档,也可以直接yum install 包名字安装 2.下载镜像 docker pull registry.cn-hangzhou.aliyuncs…

AMP State Evolution的计算:以伯努利高斯先验为例

AMP State Evolution (SE)的计算 t 1 t1 t1时, E ( t ) E [ X 2 ] \mathcal E^{(t)} \mathbb E [X^2] E(t)E[X2],SE的迭代式为 τ r ( t ) σ 2 1 δ E ( t ) E ( t 1 ) E ∣ η ( t ) ( X Z ) − X ∣ 2 , Z ∼ N ( 0 , τ r ( t ) ) \begin{a…

00TDI 这件红色大衣也太适合过年穿了

分享女儿的时尚穿搭—红色大衣 这款大衣非常厚实 摸起来很软糯的触感 复合了660-700g绵羊绒 厚实度堪比一件厚实的羽绒服 门禁处做了立体的爱心装饰 精致又可爱!!!

C++:对象模型和this指针

对象模型: 成员变量和成员函数分开存储 在C中,类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 空对象占用空间: 1字节 C编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置 每个…

VSD Viewer for Mac(Visio绘图文件阅读器)

VSD Viewer for Mac版是mac上一款非常强大的Visio绘图文件阅读器,它为打开和打印Visio文件提供了简单的解决方案。可以显示隐藏的图层,查看对象的形状数据,预览超链接。还可以将Visio转换为包含图层,形状数据和超链接的PDF文档。 …

图像分类任务

本文记录 北京邮电大学 计算机学院的学习记录 什么是图像分类任务? 图像分类任务是计算机视觉中的核心任务,其目 标是根据图像信息中所反映的不同特征,把不同类别 的图像区分开来 图像分类任务有哪些难点呢? 语义鸿沟视角变化…

【Qt】之QSet使用

描述 QSet类是一个模板类&#xff0c;它提供基于散列表的集合。 QSet是Qt的通用容器类之一。它以未指定的顺序存储值&#xff0c;并提供非常快速的值查找。在内部,QSet是作为QHash实现的。 下面是一个带有QString值的QSet示例: QSet<QString> set;插入方式1&#xff…

MATLAB中fft与fftshift的区别

两者的区别在于&#xff1a; fft函数将时域信号转换为频域信号&#xff0c;即将信号从时间域转换为频率域。fftshift函数用于对fft计算结果进行移位操作&#xff0c;将频域信号的零频率分量移到频谱的中心&#xff0c;方便观察和处理。fftshift函数将fft计 算结果沿着中心点进…

【高效开发工具系列】MapStruct入门使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

SpringBoot定时任务报错Unexpected error occurred in scheduled task原因及其解决方法(亲测有效)

问题 spring boot项目在线上一直正常运行没有错误&#xff0c;然后今天发生了报错&#xff0c;如图 这是一个定时器错误&#xff0c;发生这个报错 主要有两个原因 定时器编写的有错误Scheduled注解方式级别高于资源注入级别&#xff0c;导致了资源注入失败 以下是我的代码 …

livox 半固体激光雷达 gazebo 仿真 | 安装与验证

livox 半固体激光雷达 gazebo 仿真 | 安装与验证 livox 半固体激光雷达 gazebo 仿真 | 安装与验证livox 介绍安装验证 livox 半固体激光雷达 gazebo 仿真 | 安装与验证 livox 介绍 览沃科技有限公司&#xff08;Livox&#xff09;成立于2016年。为了革新激光雷达行业&#xf…

在拼多多,照见热气腾腾的平凡人生

文 | 螳螂观察 作者 | 易不二 内容丰富的《鲁迅日记》里&#xff0c;经常会出现“xx日晴&#xff0c;无事”的记载。 如果按照年份算&#xff0c;在被记载的日子里&#xff0c;每年鲁迅都有一二十天的时间是“无事”的状态。 很难想象&#xff0c;为人类历史文明前进照亮了…

用Elasticsearch搜索匹配功能实现基于地理位置的查询

1.Redis,MongoDB,Elasticsearch实现地理位置查询比较 1.1 Redis: 优点&#xff1a;Redis提供了地理空间索引功能&#xff0c;可以通过Geo数据类型进行地理位置查询。这使得Redis在处理地理位置查询时非常高效。 缺点&#xff1a; Redis的地理空间索引功能相对简单&#xff0…

kaggle使用matplotlib画图中文乱码问题解决

import matplotlib import matplotlib.pyplot as plt myfont matplotlib.font_manager.FontProperties(fnamer/kaggle/input/flux-predict/STFANGSO/STFANGSO.TTF) train_corr df_train.corr() k 6 cols train_corr.nlargest(k,4G流量MB&#xff08;1024&#xff09;(兆字…

易点天下携AIGC创新成果KreadoAI亮相数贸会,解锁电商文化出海新可能

11月27日&#xff0c;第二届全球数字贸易博览会&#xff08;以下简称“数贸会”&#xff09;在浙江杭州完美落幕。作为出海营销领域最早一批布局AIGC战略的营销科技公司&#xff0c;易点天下受邀与来自全球800余家境内外数字贸易企业同台参展&#xff0c;并分享了旗下AIGC数字营…

坚鹏:贵州银行西南财经大学零售业务数字化转型与场景营销策略

中国银保监会2022年1月正式发布了中国银保监会发布《关于银行业保险业数字化转型的指导意见》&#xff0c;这标准着中国银行业从局部的数字化转型向全面的数字化转型转变&#xff0c;进一步加速了银行数字化转型高潮的到来。 《关于银行业保险业数字化转型的指导意见》提出明确…