基于51单片机64位病床呼叫系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

news2025/1/18 17:03:59

基于51单片机病床呼叫系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0095

1. 主要功能:

基于51单片机的病床呼叫系统proteus仿真设计

1、设计一个可容64张床位的病房呼叫系统;

2、每个床位都有一个按钮,当患者需要呼叫护士时,按下按钮;

3、护士值班室LCD1602显示呼叫床位号,并响铃3秒;

4、当护士按下“响应”键时,取消当前处理的病床呼叫;

5、按照病床呼叫先后时间处理患者需求;

img

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602显示Bed call。

img

每个床位都有一个按钮,当患者需要呼叫护士时,病床按键呼叫护士台。护士值班室LCD1602面板上显示呼叫床位号,并响铃3秒;

Call num显示的是当下需要处理的床位号,ALL显示的是等待处理的剩余床位总数。

img

护士站处理完当前病床后按下,回应按键,LCD显示下一个呼叫的病床床号,按照病床呼叫先后时间处理患者需求。

img

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

#include "reg51.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P1^0;//按钮
sbit beep=P1^7;//蜂鸣器

uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0,sec=0;
uchar xian1[]="Call num:00";//显示数组
uchar xian2[]="All:00";
uchar key=0,all=0;
//按键存储
uchar num[64]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0
};

void key_scan() // 定义一个名为key_scan的函数,用于搜索矩阵键盘上的按键状态
{
    uchar i, j; // 定义两个uchar类型(通常为8位无符号字符型)变量i和j,分别用作行和列的计数器

    for(i = 0; i < 8; i++) // 通过循环遍历键盘的8行
    {
        P3 = ~(1<<i); // 将P3口设置为行线输出,这里对P3口进行操作,将第i位置为低电平,其他位不变,实现逐行扫描
                           // 即置低当前行,让这一行的键处于可检测状态

        for(j = 0; j < 8; j++) // 再通过内部循环遍历键盘的8列
        {
            if((P2 & (1<<j)) == 0) // 检查P2口的状态,如果第j位为0,表示对应的列线上有按键被按下
            {
                if(!num[i*8+j]) // 如果当前位置的按键尚未记录为已按过(num数组对应元素为0)
                {
                    time = 60; //时间变量time为60,用于蜂鸣器提醒倒计时
                    num[i*8+j] = 1; // 在num数组中记录此次按键按下,将对应行列号的数组元素置为1
                    all++; // 增加全局按键按下总数统计all
                }
            }
        }
    }
}
void search() // 定义一个名为search的函数,用于搜索下一个被呼叫的位置
{
    uchar i; // 定义一个uchar类型变量i,用作循环计数器

    for(i = 0; i < 64; i++) // 遍历num数组(大小为64,对应8x8矩阵键盘的所有按键位置)
    {
        if(num[i]) // 检查num数组中当前位置的元素是否非零,即判断该位置是否有按键被按下并已记录
        {
            key = i + 1; // 若找到已按下的按键,将其位置索引加1后赋值给全局变量key。通常情况下,矩阵键盘的位置索引是从0开始的,这里加1可能是因为实际应用中从1开始编号
            break; // 找到第一个被呼叫的按键后立即跳出循环,避免不必要的额外遍历
        }
    }
}
void main()
{
	init_1602();
	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		 key_scan();
		 search();
		 if(!k1) //清除呼叫
		 {		 	
			if(all>0)
			{
				all--;
				num[key-1]=0;
			}
			while(!k1);
		 }
	}
}
完整代码见文章压缩包下载链接

img

5. 设计报告

7464字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

随着现代医疗技术的飞速发展,医院日常运营中的各个环节都在不断地得到优化和完善。其中,病房管理作为医院运营体系中的核心环节之一,其重要性日益凸显。一个高效、有序的病房管理系统不仅能够提升医院的运营效率,更能为患者提供更加舒适、安全的就医环境。

在病房管理的众多组成部分中,病床呼叫系统占据着举足轻重的地位。它不仅是医护人员与患者之间沟通的重要桥梁,更是保障患者及时就医、提高医疗服务质量的关键所在。然而,传统的病床呼叫系统往往存在诸多弊端,如响应速度慢、误报率高等问题,这些问题不仅影响了患者的就医体验,也给医护人员的日常工作带来了诸多不便。

为了解决上述问题,提高病床呼叫的准确性和效率,我们提出了一种基于51单片机的病床呼叫系统设计方案。通过利用51单片机的强大功能和灵活性,我们可以实现对病床呼叫信号的快速响应和准确处理。同时,结合Proteus仿真设计平台,我们可以在虚拟环境中对系统进行全面的测试和优化,从而确保系统的稳定性和可靠性。

6. 原理图

原理图使用AD绘制,可供实物参考,仿真不同于实物,经验不足不要轻易搞实物。

img

元器件清单:

元件型号数量
单片机AT89C511
电容30pf2
电容10uf1
晶振12MHz1
按钮65
蜂鸣器有源1
三极管PNP1
电阻1k1
显示器LCD16021
排阻10k1
电源部分
排针2P1
电容0.1uf2
电容100uf2
稳压器78051

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

7. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

img

0、常见使用问题及解决方法–必读!!!!

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、原理图

8、元器件清单

9、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接(可点击):

https://docs.qq.com/doc/DS1NFaWxPbkZySFBC

更多资源 点击下方链接:

https://docs.qq.com/sheet/DS0xIa0llTmtNakRW

us 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接:

KEY_S0095 51单片机病床呼叫(64位)系统仿真设计
链接:https://pan.baidu.com/s/1NESTRRudd6KQLf9NPT6I4Q?pwd=mrl6
提取码:mrl6

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

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

相关文章

windows10下,nvidia控制面板升级驱动后osgearth三维程序无法运行

osg系列文章目录 文章目录 osg系列文章目录一.前言二.解决办法 一.前言 windows10下&#xff0c;nvidia控制面板升级驱动后osgearth三维程序无法运行&#xff0c;情景如下: 笔者使用的是天选1笔记本&#xff0c;硬件配置如下 osgearth和osg对应的版本是&#xff1a; Osg3.4.1…

【计算机学习笔记】GB2312、GBK、Unicode等字符编码的理解

之前编写win32程序时没怎么关注过宽字符到底是个啥东西&#xff0c;最近在编写网络框架又遇到字符相关的问题&#xff0c;所以写一篇文章记录一下&#xff08;有些部分属于个人理解&#xff0c;如果有错误欢迎指出&#xff09; 目录 几个常见的编码方式Unicode和UTF-8、UTF-16、…

七种msvcp140.dll丢失的解决方法及了解msvcp140.dll丢失的原因

在Windows操作系统中&#xff0c;msvcp140.dll是Microsoft Visual C 2015 Redistributable Package的一部分。这个动态链接库文件对于许多应用程序的正常运行至关重要&#xff0c;因为它包含了C程序所需的标准库函数。当用户遇到“msvcp140.dll丢失”或类似的错误信息时&#x…

QT4和 QT5 槽函数连接的区别

正常连接方式 //QT4官方用列QLabel *label new QLabel;QScrollBar *scrollBar new QScrollBar;QObject::connect(scrollBar, SIGNAL(valueChanged(int)),label, SLOT(setNum(int)));//QT5官方用列QLabel *label new QLabel;QLineEdit *lineEdit new QLineEdit;QObject::c…

LeetCode - #152 乘积最大子数组(Top 100)

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 本题为 LeetCode 前 100 高频题 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&#xff0c;ACE 职业健身教练。&#xff09;的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 …

新手前端开发入职公司全流程

作为一名前端开发新手&#xff0c;进入一家公司开启职业生涯是既兴奋又充满挑战的旅程。今天就来和大家分享一下这个过程中的各个环节。 一、入职准备 在收到心仪公司的offer后&#xff0c;可别只顾着高兴啦。首先要准备好入职资料&#xff0c;像身份证、学历证明这些是必不可…

【深入探索 C++ STL 容器 list】 —— 编程世界的万能胶,数据结构中的百变精灵

STL系列学习参考&#xff1a; STL 数据结构与算法__Zwy的博客-CSDN博客https://blog.csdn.net/bite_zwy/category_12852141.html 学习C STL的三个境界&#xff0c;会用&#xff0c;明理&#xff0c;能扩展&#xff0c;STL中的所有容器都遵循这个规律&#xff0c;下面我们就按…

【数电】常见时序逻辑电路设计和分析

本文目的&#xff1a;一是对真题常考题型总结&#xff0c;二是对常见时序电路设计方法进行归纳&#xff0c;给后面看这个文档的人留有一点有价值的东西。 1.不同模计数器设计 2.序列信号产生和检测电路 2.1序列信号产生电路 2.1.1设计思路 主要设计思路有三种 1&#xff09…

MCU、ARM体系结构,单片机基础,单片机操作

计算机基础 计算机的组成 输入设备、输出设备、存储器、运算器、控制器 输入设备&#xff1a;将其他信号转换为计算机可以识别的信号&#xff08;电信号&#xff09;。输出设备&#xff1a;将电信号&#xff08;&#xff10;、&#xff11;&#xff09;转为人或其他设备能理解的…

数字图像处理考研考点(持续更新)

一、数字图像基本概念 1、人眼视觉特性 &#xff08;1&#xff09;眼睛上有两类光感受器&#xff1a;锥状体和杆状体 锥状体(锥细胞)&#xff1a;约 700 万个&#xff0c;对颜色高度敏感&#xff0c;每个锥状体都连接到神经末梢&#xff0c;人可以充分地分辨图像细节。锥细胞…

Lumos学习王佩丰Excel第二十讲:图表基础

Excel图表就像是把一堆复杂的数字变成了一幅幅直观的图画&#xff0c;让我们能够更快地理解数据之间的关系和趋势&#xff0c;使工作表更易于读懂和交流。学好这几节课&#xff0c;不仅可以辅助工作&#xff0c;还可以装X哈哈哈~~~ 一、认识图表中的元素&#xff08;七块积木&…

VTK知识学习(20)- 数据的存储与表达

1、数据的存储 1)、vtkDataArray VTK中的内存分配采用连续内存&#xff0c;可以快速地创建、删除和遍历&#xff0c;称之为数据数组(DataArray)&#xff0c;用类 vtkDataArray 实现。数组数据的访问是基于索引的&#xff0c;从零开始计数。 以 vtkFloatArray 类来说明如何在 …

如何在UI自动化测试中创建稳定的定位器?

如何在UI自动化测试中创建稳定的定位器&#xff1f; 前言1. 避免使用绝对路径2. 避免在定位器中使用索引3. 避免多个类名的定位器4. 避免动态和自动生成的ID5. 确保定位器唯一6. 处理隐藏元素的策略7. 谨慎使用基于文本的定位器8. 使用AI创建稳定的定位器 总结 前言 在自动化测…

SparkSQL 读写数据攻略:从基础到实战

目录 一、输入Source 1&#xff09;代码演示最普通的文件读取方式&#xff1a; 2&#xff09; 通过jdbc读取数据库数据 3) 读取table中的数据【hive】 二、输出Sink 实战一&#xff1a;保存普通格式 实战二&#xff1a;保存到数据库中 实战三&#xff1a;将结果保存在h…

【1】Python交叉编译到OpenHarmony标准系统运行(arm32位)

本文介绍如何Python语言如何在OpenHarmony标准系统运行,包括5.0r和4.1r以及4.0r,和未来版本的OpenHarmony版本上。 Python语言在OpenHarmony上使用,需要将Python解释器CPython移植到OpenHarmony标准系统。通过交叉编译的方式。 首先来了解几个概念: CPython 是 Python 编…

Windows环境中Python脚本开机自启动及其监控自启动

1 开机自启动 Windows 10/Windows Server 201X具有一个名为“启动”的已知文件夹&#xff0c;系统每次启动开始自动运行应用程序、快捷方式和脚本时都会检查该文件夹&#xff0c;而无需额外配置。 要在Windows启动时运行脚本&#xff0c;先使用WindowsR快捷键打开“运行”对话…

Mysql索引原理及优化——岁月云实战笔记

根据Mysql索引原理及优化这个博主的视频学习&#xff0c;对现在的岁月云项目中mysql进行优化&#xff0c;我要向这个博主致敬&#xff0c;之前应用居多&#xff0c;理论所知甚少&#xff0c;于是将学习到东西&#xff0c;应用下来&#xff0c;看看是否有好的改观。 1 索引原理…

JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))

目录 一、Servlet详细。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 &#xff08;1&#xff09;实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…

第6章:布局 --[CSS零基础入门]

CSS 布局是网页设计中至关重要的一个方面&#xff0c;它决定了页面上元素的排列和展示方式。以下是几种常见的 CSS 布局方法和技术&#xff1a; 1. 浮动布局&#xff08;Float Layout&#xff09; 浮动布局&#xff08;Float Layout&#xff09;曾经是网页设计中创建多列布局…

哪里可以找到高质量的街道夜景短视频素材?夜景素材网站推荐

在短视频创作的浪潮中&#xff0c;街道夜景作为一种视觉效果独特、氛围浓郁的题材&#xff0c;深受创作者的青睐。不论是商业广告、创意短片还是个人Vlog&#xff0c;街道夜景的视频素材都能为你的作品增添不小的分量。那么&#xff0c;在哪里可以找到这些高质量的街道夜景短视…