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

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!
一、系统方案
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仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
在这里插入图片描述

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

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

相关文章

香港科技大学广州|智能制造学域博士招生宣讲会—天津大学专场

时间:2023年12月07日(星期四)15:30 地点:天津大学卫津路校区26楼B112 报名链接:https://www.wjx.top/vm/mmukLPC.aspx# 宣讲嘉宾: 汤凯教授 学域主任 https://facultyprofiles.hkust-gz.edu.cn/faculty-p…

OpenStack云计算平台-Networking 服务

目录 一、网络服务概览 二、网络(neutron)概念 三、安装并配置控制节点 1、先决条件 2、配置网络选项(公共网络) (1)安装组件 (2)配置服务组件 (3)配…

kali系统复现环境:Vulfocus 提示服务器内部错误,请联系管理员的解决方法

Linux-kali系统复现环境:Vulfocus&&提示服务器内部错误,请练习管理员的解决方法 第一步: 先下载docker和docker-compose apt-get update apt-get install docker apt-get install docker-compose输入如下图命令,有版本…

时间序列预测实战(二十)自研注意力机制Attention-LSTM进行多元预测(结果可视化,自研结构)

一、本文介绍 本文给大家带来的是我利用我自研的结构进行Attention-LSTM进行时间序列预测,该结构是我专门为新手和刚入门的读者设计,包括结果可视化、支持单元预测、多元预测、模型拟合效果检测、预测未知数据、以及滚动长期预测,大家不仅可…

WPS Office JS宏实现批量处理Word中的表格样式

由于本职工作原因,经常会用到office办公软件,经常很多内容审批后,需要统一修改内容或样式,如果Word文档中有上百页或上千页,则一个一个修改太麻烦了。 在接触到WPSJS宏后,发现工作效率大大提升;…

OpenAI神秘项目Q-star曝光,人类永生或灭绝,将在我们有生之年发生

上周,OpenAI人事风波暂停的尾声中,有个“可能威胁人类”的、代号为“Q*”的神秘项目被抛掷出来。 传言中,Sam Altman被解雇前,几名研究人员向董事会发了一封信,警告一项强大的人工智能发现可能威胁到人类,而…

前端入职环境安装

前端入职 后环境安装 ,内函 nodenvmgit微信开发者工具vscode 的安装包 一.node安装-js运行环境 1.node下载,下载地址Node.js 2.配置淘宝镜像 npm config set registry https://registry.npmmirror.com/ 3.查看配置 npm config list 二.nvm安装-切…

力扣hot100 滑动窗口最大值 单调队列

👨‍🏫 题目地址 🍻 AC code class Solution {public int[] maxSlidingWindow(int[] nums, int k){int n nums.length;int[] res new int[n - k 1]; // 单调递减队列int[] q new int[n];// q数组维护的是元素在 nums 数组对应的下标int…

C#开发的OpenRA游戏之属性SelectionDecorations(10)

C#开发的OpenRA游戏之属性SelectionDecorations(10) 前面分析了选择属性,继续分析前面的内容,不过这里不再是选择,而是选择相关的属性。 当用玩家选择地图上一个物品,或者士兵,或者坦克时,就会在周边画上一些指示标记,并且有一个状态条。 通过上图,可以看到建筑物周…

Linux(10):Shell scripts

什么是 Shell scripts shell script(程序化脚本):shell 部分是一个文字接口下让我们与系统沟通的一个工具接口;script 是脚本的意思,shell script 就是针对 shell 写的脚本。 shell script 是利用 shell 的功能所写的…

通义灵码,你的智能编码助手,免费公测啦!

目录 ​编辑 1、介绍 2、安装 3、功能介绍 行/函数级实时续写 自然语言生成代码 单元测试生成 代码注释生成 代码解释 研发智能问答 多编程语言、多编辑器全方位支持 4、视频 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家…

进程等待讲解

今日为大家分享有关进程等待的知识!希望读完本文,大家能有一定的收获! 正文开始! 进程等待的引进 既然我们今天要讲进程等待这个概念!那么只有我们把下面这三个方面搞明白,才能真正的了解进程等待&#x…

【中间件】配置中心中间件intro

中间件middleware 内容管理 why use 配置中心配置中心feature配置中心develop主流配置中心Apollo浅谈 本文从理论上介绍一下服务化中服务治理系统中的配置中心的理论并浅析Apllo 配置在生产中是很关键的一个部分,cfeng在work中遇到几次配置问题引发的问题&#xff0…

计算机基础知识59

MySQL的卸载流程 1、先停止MySQL服务:右键“此电脑”,选择“管理”,之后选择“服务和应用程序”--“服务”,在服务中找到“MySQL”,右键选择“停止”。 2、找到“控制面板”--“程序和功能”,找到MySQL&…

SocialFi 和 GameFi 的碰撞 — Socrates 构建新的 Web3 流量入口

伴随着比特币现货 ETF 即将通过 SEC 批准的消息,整个加密市场在11月份达到了熊市以来的新高峰。市场普遍上涨,新的玩法和项目不断涌出吸引了大量老用户回归以及新用户加入。加密市场经过长期的低迷,终于来到了牛市的起点! 上一轮牛…

Selenium 连接到现有的 Firefox 示例

当前环境: python 3.7 selenium 3.14.1 urllib3 1.26.8 Frefox 115.1.0esr(32位) geckodriver.exe 0.33.0 1 下载 Firefox 浏览器,根据自己的需要选择。 下载 Firefox 浏览器,这里有简体中文及其他 90 多种语言版本…

Python交互式解释器及用法

为了让开发者能快速学习、测试 Python 的各种功能,Python 提供的“python”命令不仅能用于运行 Python 程序,也可作为一个交互式解释器一一开发者逐行输入 Python 代码,它逐行解释执行。 当输入“python”命令时,可以看到如下输出…

带你用uniapp从零开发一个仿小米商场_10. 首页开发

图标菜单栏开发 轮播图开发完成后,就是图标菜单栏了 可以看出这些图标都是一样的样式,所以可以勇哥flex布局让他们每个占百分之20 代码如下,既然都是一样的那就直接用个循环嵌套一下 data数据如下 同样,为了能让这段代码能在别的地方也用到,我直接把它封装成组件 <templ…

【Element】el-switch开关 点击弹窗确认框时状态先改变----点击弹窗取消框失效

一、背景 需求&#xff1a;在列表中添加定期出账的开关按钮&#xff0c;点击开关时&#xff0c;原来的状态不改变&#xff0c;弹出弹窗&#xff1b;点击弹窗取消按钮&#xff1a;状态不改变&#xff0c;点击弹窗确定按钮&#xff1a;状态改变&#xff0c;并调取列表数据刷新页…

LINUX入门篇【10】---进程篇【2】---进程状态

前言&#xff1a; 有了上一篇关于进程的初步认识和我们的PCB第一个数据段–标识符的讲解&#xff0c;接下来我们将继续讲解PCB的其他数据段&#xff0c;本篇要讲的是进程状态。 进程状态&#xff1a; 就像我们写贪吃蛇的时候&#xff0c;构建的游戏状态来判定游戏结束的方式…