基于51单片机的智能病房呼叫系统的设计与实现

news2024/11/24 3:36:35

一、前言

        显示床位号使用到4位数码管,为了节约单片IO口,使用TM1637来驱动数码管。

二、TM1637驱动芯片简介

三、电路设计,使用矩阵按键来模拟每个床位的呼叫按钮

四、编写51单片机代码

void delay_ms(u16 n)
{
	u8 i;
	while(n--)
	{
		i = 111;
		while(i--);
	}
}

u8 key_scan()
{
	u8 keyH, keyL, line, row;
	KEY=0xF0;
	if(KEY!=0xF0)
	{
		delay_ms(10); //消抖延时
		if(KEY!=0xF0)
		{
			keyH=KEY&0xF0;
			KEY=0x0F;
			keyL=KEY&0x0F;
			switch(keyH)
			{
				case 0x70: line=1;break;
				case 0xB0: line=2;break;
				case 0xD0: line=3;break;
				case 0xE0: line=4;break;
			}
			switch(keyL)
			{
				case 0x07: row=1;break;
				case 0x0B: row=2;break;
				case 0x0D: row=3;break;
				case 0x0E: row=4;break;
			}
			while(KEY!=0x0F);
			return (line-1)*4+row;
		}
	}
	return 0xFF;
}

code unsigned char tab[] =
{
        0x3F,/*0*/
        0x06,/*1*/
        0x5B,/*2*/
        0x4F,/*3*/
        0x66,/*4*/
        0x6D,/*5*/
        0x7D,/*6*/
        0x07,/*7*/
        0x7F,/*8*/
        0x6F,/*9*/
        0x77,/*10 A*/
        0x7C,/*11 b*/
        0x58,/*12 c*/
        0x5E,/*13 d*/
        0x79,/*14 E*/
        0x71,/*15 F*/
        0x76,/*16 H*/
        0x38,/*17 L*/
        0x54,/*18 n*/
        0x73,/*19 P*/
        0x3E,/*20 U*/
        0x00,/*21 黑屏*/
};

// TM1637串行数据线
sbit CLK = P2^0;
sbit DIO = P2^1;

// LED灯
sbit LED = P3^0;

void delay_us(unsigned int i)
{
	for (; i < 0; i--)
		_nop_();
}

// TM1637开始信号
void TM1637_Start()
{
	CLK	= 1;
	DIO = 1;
	delay_us(2);
	DIO = 0;
}

// TM1637结束信号
void TM1637_Stop()
{
	CLK = 0;
	DIO = 0;
	delay_us(2);
	CLK = 1;
	delay_us(2);
	DIO = 1;
}

void TM1637_ACK(void)
{
	CLK = 0;
	DIO = 1;
	while(DIO == 1);
	CLK =1;
}

// 向TM1637写数据
void TM1637_Write(unsigned char DATA)
{
	unsigned char i;
	for (i = 0; i < 8; i++)
	{
		CLK = 0;
		if (DATA & 0x01)
		{
			DIO = 1;
		}
		else
		{
			DIO = 0;
		}
		DATA = DATA >> 1;
		CLK = 1;
		delay_us(2);
	}
}

void TM1637_Display(u8 index)
{
	TM1637_Start();
	TM1637_Write(0x40);	 // 命令
	TM1637_ACK();
	TM1637_Stop();

	TM1637_Start();
	TM1637_Write(0xC0);	 // 地址
	TM1637_ACK();	
	TM1637_Write(0x3F);	 // 数据1
	TM1637_ACK();
	TM1637_Write(0x3F);	 // 数据2
	TM1637_ACK();
	TM1637_Write(0x3F);	 // 数据3
	TM1637_ACK();
	TM1637_Write(0x3F);	 // 数据4
	TM1637_ACK();
	TM1637_Write(0x3F);	 // 数据5
	TM1637_ACK();
	TM1637_Write(index);	 // 数据6
	TM1637_ACK();


	TM1637_Stop();


	TM1637_Start();
	TM1637_Write(0x89);	 // 亮度命令
	TM1637_ACK();
	TM1637_Stop();
}




void main()
{
	u8  num;
	LED =  LED_ON;
	TM1637_Display(tab[0]);
	while(1)
	{
		num = key_scan();
		if(num!=0xFF)
		{
			TM1637_Display(tab[num]);
		}
	}
}

五、电路仿真运行效果

六、完整Proteus仿真电路图和51单片机源码下载:

链接:https://pan.baidu.com/s/1TojZnTWu3sGl8oGfjc2dhw?pwd=ga5p
提取码:ga5p

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

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

相关文章

软件测试之功能测试详解

一、功能测试概述 1&#xff09;功能测试就是对产品的各功能进行验证&#xff0c;根据功能测试用例&#xff0c;逐项测试&#xff0c;检查产品是否达到用户要求的功能。 2&#xff09;功能测试&#xff0c;根据产品特性、操作描述和用户方案&#xff0c;测试一个产品的特性和…

Qt5开发及实例V2.0-第六章Qt图形与图片

Qt5开发及实例V2.0-第六章Qt图形与图片 第6章 Qt5图形与图片6.1 Qt 5位置相关函数6.1.1 区别概述6.1.2 【实例】 6.2 Qt 5基础图形的绘制6.2.1 绘图框架设计6.2.2 绘图区的实现6.2.3 主窗口的实现 6.3 Qt 5双缓冲机制6.3.1 原理与设计6.3.2 绘图区的实现6.3.3 主窗口的实现 6.4…

Docker搭建DNS服务器--use

前言 DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。 安装 2.1 实验环境 IP 系统版本 角色 192.168.40.121 Ubuntu 22.10 DNS服务器 192.168.40.122 Ubuntu 22.10 测试机器 2.2 …

使用正确的命令重启WSL子系统

问题&#xff1a; 大家都知道一般Linux系统重启非常简单&#xff0c;但是在WSL子系统中执行以下两个重启命令是完全无效的。 $ reboot $ shutdown -r # 执行命令后提示如下&#xff1a; System has not been booted with systemd as init system (PID 1). Cant operate. Fail…

C# OpenCvSharp 图片模糊检测(拉普拉斯算子)

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.VisualStyl…

电脑屏幕实时监控软件有哪些(监控电脑操作的软件叫什么?)

随着科技的不断发展&#xff0c;人们对于电脑使用的需求也越来越高。无论是工作还是娱乐&#xff0c;我们都希望能够更加高效地利用电脑。为了满足这一需求&#xff0c;实时监控电脑屏幕软件应运而生。本文将为大家介绍几款实用的实时监控电脑屏幕软件&#xff0c;帮助大家更好…

架构问题:技术选型

1. 几款数据库特性及如何选型 1.MySQL&#xff1a;一种常用的开源关系型数据库管理系统&#xff0c;可以快速访问大量数据&#xff0c;并支持多用户同时访问。其最大的优点在于成本低&#xff0c;易于安装和配置&#xff0c;因此被广泛应用于各种中小型企业和网站。支持读写分离…

React 全栈体系(九)

第五章 React 路由 一、相关理解 1. SPA 的理解 单页 Web 应用&#xff08;single page web application&#xff0c;SPA&#xff09;。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面&#xff0c;只会做页面的局部更新。数据都需要通过 ajax 请求获取, 并在前端…

软考 -- 计算机学习(2)

文章目录 一、安全性知识1.1 信息安全和信息系统安全1.2 信息安全技术1.3 网络安全技术 二、多媒体技术三、软件工程基础知识3.1 信息系统生命周期3.2 软件过程模型3.3 信息系统开发方法3.4 系统分析和设计概述3.5 结构化开发方法3.6 系统运行与维护 四、项目管理4.1 进度管理4…

(避开网上复制操作)最详细的树莓派刷机配置(含IP固定、更改国内源的避坑操作、SSH网络登录、VNC远程桌面登录)

一、准备工作 SD卡格式化 二、 树莓派系统环境搭建&#xff08;官方&#xff09; 官方镜像 1.1、 必备的配件 读卡器&#xff0c; 内存卡&#xff08;强烈推荐 32GB 内存卡&#xff0c; #lite 命令行界面版本至少需要 8G&#xff0c; 图形化带桌面版镜像需要 16GB&#xf…

Java之异常的详细解析

1. 异常 1.1 异常概念 异常&#xff0c;就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是&#xff1a; 异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最…

web自动化jenkins+git+allure

jenkins -- 持续集成平台 -- 持续集成的场景 -- 【持续】【集成】自动执行你的任务 --- 定时任务 -- 结果通知 -- 报告展示安装jenkins --- http://testingpai.com/article/16092251322041、工作空间 - jenkins的工作空间job任务的工作空间 -- 给任务存放数据/资料 -- 生成的…

闭着眼睛安装Neoj4版本(5.12.0 Community windows)

1.安装 Java SE 17.0.5 &#xff08;及以上&#xff0c;建议和我一样&#xff09;&#xff0c;安装完配置环境变量&#xff0c;成功标志&#xff08;cmd输出java -version的内容&#xff09; 1.上Neo4j Download Center - Graph Database & Analytics 3. 4.进入cmd &#…

tcpdump常用命令

需要安装 tcpdump wireshark ifconfig找到网卡名称 eth0, ens192... tcpdump需要root权限 网卡eth0 经过221.231.92.240:80的流量写入到http.cap tcpdump -i eth0 host 221.231.92.240 and port 80 -vvv -w http.cap ssh登录到主机查看排除ssh 22端口的报文 tcpdump -i …

Java拓展——常见数据结构(数组,栈,链表,树,图)

Java基础11——数据结构 文章目录 Java基础11——数据结构数据结构常见的数据结构数组栈栈简介如何创建一个类实现栈的功能?**栈使用场景**队列队列简介如何实现?**队列分类**链表**单链表****循环链表****双向链表****双向循环链表****链表使用场景****数组** **vs** **链表…

听GPT 讲Istio源代码--cni

在 Istio 项目中&#xff0c; cni: CNI 目录包含了 Istio CNI 插件的相关代码和配置文件。CNI&#xff08;Container Network Interface&#xff09;是一个用于配置容器网络的接口规范。Istio CNI 插件用于将 Istio 的网络功能集成到容器运行时环境中&#xff0c;以便实现对微服…

Nvidia计算卡扫盲

title: Nvidia计算卡扫盲 sidebarDepth: 4 layout: AtmLayout GPU 大的方面来讲&#xff0c; 由显存计算单元组成&#xff1b; 显存 GPU板卡上的DRAM容量大&#xff0c;速度慢&#xff0c;CPU和GPU都可以访问 计算单元 Streaming Multiprocessor,执行计算&#xff0c; 每个…

【FAQ】安防监控系统/视频云存储/监控平台EasyCVR服务器解释器出现变更该如何修改?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

开发高性能知识付费平台:关键技术策略

引言 在构建知识付费平台时&#xff0c;高性能是确保用户满意度和平台成功的关键因素之一。本文将探讨一些关键的技术策略&#xff0c;帮助开发者打造高性能的知识付费平台。 1. 前端性能优化 使用CDN加速资源加载 使用内容分发网络&#xff08;CDN&#xff09;来托管和加…

解决Office Word另存为PDF卡死的问题

今天突然间遇到这个问题&#xff0c;在网上找了好久都没有想要的答案。后来一步一步摸索终于找到了问题所在&#xff0c;希望这篇文章能帮助有同样问题的各位&#xff01; 1.问题 当word文件点击另存为PDF格式时&#xff0c;下一刻光标变为加载状态&#xff0c;并且一直在转圈…