基于STM32F103单片机的无线病床呼叫系统

文章目录[隐藏]

系统功能设计

(末尾附文件)

本系统由STM32单片机最小系统、LED指示灯、2档拨动开关、蜂鸣器报警、蓝牙模块组成。
1、手机APP和stm32设备上蓝牙模块进行连接。
2、三个拨动开关分别代表3个床位呼叫开关(1-3床位),开关拨上去,则相应的指示灯闪烁报警,同时蜂鸣器鸣叫报警。开关拨下,则蜂鸣器不鸣叫,LED灯也不闪烁。同时,系统将通过蓝牙模块实现病人和医护人员之间信息的传递。医护人员的手机可以实时接收床位的相关报警信息。

2档拨动开关
在这里插入图片描述

LED信号指示灯电路设计
在这里插入图片描述

STM32F103C8T6单片机核心板:
USB供电接口,复位按键 开关按键
在这里插入图片描述
合理优秀的布局布线:
在这里插入图片描述

部分代码设计

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
#include "key.h"
#include "usart.h"	
#include <string.h>

unsigned char delay20msFlag = 0;

unsigned char BufTab[10]; //串口数据暂存
unsigned char Count;	   //串口数据计数
unsigned char UartBusy=0;  //判断忙碌
unsigned char ReadFlag=0;//读取标志
unsigned char sendDataFlag=0;	//发送数据标志
u8 rebackFalg= 0; //数据返回标志
u8 MesCount=0;	//发送内容计数

unsigned char roomFlag0 = 0; //房间标志
unsigned char roomFlag1 = 0;
unsigned char roomFlag2 = 0;


unsigned char i ;

int main(void)
 {	
	delay_init();	    	 //延时函数初始化
	NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	LED_Init();		  	//初始化与LED连接的硬件接?
	KEY_Init();
	uart_init(4800);//初始化串口//**All notes can be deleted and modified**//
	TIM3_Int_Init(499,7199);//10Khz的计数频率,计数到500为50ms 
	delay_ms(50); 

	buzzer = 0 ;//关闭led及蜂鸣器
	led0 = 1;
	led1 = 1;
	led2 = 1;
	 
	while(1)
	{  
			if(key0 == 0)		//开关是否拨动
			{
				roomFlag0  = 0;	//该房间是否警报标志
			}
			else
			{
				roomFlag0  = 1; //该房间是否警报标志 清空
			}

			if(key1 == 0)		//开关是否拨动
			{
				roomFlag1  = 0;	//该房间是否警报标志
			}
			else
			{
				roomFlag1  = 1; //该房间是否警报标志 清空
			}

			if(key2 == 0)		//开关是否拨动
			{
				roomFlag2  = 0;	//该房间是否警报标志
			}
			else
			{
				roomFlag2  = 1; //该房间是否警报标志 清空
			}
			
			if(delay20msFlag ==1 )//定时更新显示情况
			{
				delay20msFlag = 0;
				if(roomFlag2==0) {led2 = !led2;}//闪烁led灯
				else {led2 = 1;}
				
				if(roomFlag1==0) {led1 = !led1;}	//闪烁led灯
				else {led1 = 1;}
				
				if(roomFlag0==0) {led0 = !led0;}//闪烁led灯
				else {led0 = 1;}
				
				if((roomFlag0 == 0)||(roomFlag1 == 0)||(roomFlag2 == 0))
				{buzzer = !buzzer;}				//有任何异常报警
				else
				{buzzer 	= 0 ;}//取消报警	
				Count++;
				if(Count>=5)
				{
					Count = 0;
				if(roomFlag2==0) 
				{printf("1#Dangerous!\n");}			//蓝牙发送危险信息
				else 
				{printf("1#Normal!\n");}//蓝牙发送正常信息
				
				if(roomFlag1==0) 
				{printf("2#Dangerous!\n");}	//蓝牙发送危险信息
				else 
				{printf("2#Normal!\n");}//蓝牙发送正常信息
				
				if(roomFlag0==0) 
				{printf("3#Dangerous!\n");}//蓝牙发送危险信息
				else 
				{printf("3#Normal!\n");}		//蓝牙发送正常信息		
				}
			}
			
	}
}
 

附:http://www.jh-tec.cn/archives/7151

.

版权声明:本文为CSDN博主「weixin_46018613」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46018613/article/details/122290133

系统功能设计

(末尾附文件)

本系统由STM32单片机最小系统、LED指示灯、2档拨动开关、蜂鸣器报警、蓝牙模块组成。
1、手机APP和stm32设备上蓝牙模块进行连接。
2、三个拨动开关分别代表3个床位呼叫开关(1-3床位),开关拨上去,则相应的指示灯闪烁报警,同时蜂鸣器鸣叫报警。开关拨下,则蜂鸣器不鸣叫,LED灯也不闪烁。同时,系统将通过蓝牙模块实现病人和医护人员之间信息的传递。医护人员的手机可以实时接收床位的相关报警信息。

2档拨动开关
在这里插入图片描述

LED信号指示灯电路设计
在这里插入图片描述

STM32F103C8T6单片机核心板:
USB供电接口,复位按键 开关按键
在这里插入图片描述
合理优秀的布局布线:
在这里插入图片描述

部分代码设计

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
#include "key.h"
#include "usart.h"	
#include <string.h>

unsigned char delay20msFlag = 0;

unsigned char BufTab[10]; //串口数据暂存
unsigned char Count;	   //串口数据计数
unsigned char UartBusy=0;  //判断忙碌
unsigned char ReadFlag=0;//读取标志
unsigned char sendDataFlag=0;	//发送数据标志
u8 rebackFalg= 0; //数据返回标志
u8 MesCount=0;	//发送内容计数

unsigned char roomFlag0 = 0; //房间标志
unsigned char roomFlag1 = 0;
unsigned char roomFlag2 = 0;


unsigned char i ;

int main(void)
 {	
	delay_init();	    	 //延时函数初始化
	NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	LED_Init();		  	//初始化与LED连接的硬件接?
	KEY_Init();
	uart_init(4800);//初始化串口//**All notes can be deleted and modified**//
	TIM3_Int_Init(499,7199);//10Khz的计数频率,计数到500为50ms 
	delay_ms(50); 

	buzzer = 0 ;//关闭led及蜂鸣器
	led0 = 1;
	led1 = 1;
	led2 = 1;
	 
	while(1)
	{  
			if(key0 == 0)		//开关是否拨动
			{
				roomFlag0  = 0;	//该房间是否警报标志
			}
			else
			{
				roomFlag0  = 1; //该房间是否警报标志 清空
			}

			if(key1 == 0)		//开关是否拨动
			{
				roomFlag1  = 0;	//该房间是否警报标志
			}
			else
			{
				roomFlag1  = 1; //该房间是否警报标志 清空
			}

			if(key2 == 0)		//开关是否拨动
			{
				roomFlag2  = 0;	//该房间是否警报标志
			}
			else
			{
				roomFlag2  = 1; //该房间是否警报标志 清空
			}
			
			if(delay20msFlag ==1 )//定时更新显示情况
			{
				delay20msFlag = 0;
				if(roomFlag2==0) {led2 = !led2;}//闪烁led灯
				else {led2 = 1;}
				
				if(roomFlag1==0) {led1 = !led1;}	//闪烁led灯
				else {led1 = 1;}
				
				if(roomFlag0==0) {led0 = !led0;}//闪烁led灯
				else {led0 = 1;}
				
				if((roomFlag0 == 0)||(roomFlag1 == 0)||(roomFlag2 == 0))
				{buzzer = !buzzer;}				//有任何异常报警
				else
				{buzzer 	= 0 ;}//取消报警	
				Count++;
				if(Count>=5)
				{
					Count = 0;
				if(roomFlag2==0) 
				{printf("1#Dangerous!\n");}			//蓝牙发送危险信息
				else 
				{printf("1#Normal!\n");}//蓝牙发送正常信息
				
				if(roomFlag1==0) 
				{printf("2#Dangerous!\n");}	//蓝牙发送危险信息
				else 
				{printf("2#Normal!\n");}//蓝牙发送正常信息
				
				if(roomFlag0==0) 
				{printf("3#Dangerous!\n");}//蓝牙发送危险信息
				else 
				{printf("3#Normal!\n");}		//蓝牙发送正常信息		
				}
			}
			
	}
}
 

附:http://www.jh-tec.cn/archives/7151

.

版权声明:本文为CSDN博主「weixin_46018613」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46018613/article/details/122290133

生成海报
点赞 0

weixin_46018613

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

4.8 51单片机-PCF8591(ADC/DAC)转换芯片

4.8 PCF8591(ADC/DAC)转换芯片 4.8.1 原理图 当前实验板上没有PCF8591芯片,这里采用外接模块的形式使用。 图4-8-1 PCF8591模块实物图 图4-8-2 原理图 通过原理图得到的重要信息:

基础实验——485传感器修改地址

RS-485仅是一个电气标准,描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。 RS-485定义的是使用平衡(也称作差分)多点传输线的驱动器&#xff

stm32+AMG8833+VS2015 C#上位机图像显示

设计思路 本人在电场工作,于是想做一款热成像智能控制小车,通过网上查找资料,发现AMG8833这款芯片可以说是物美价廉,基本能够实现想要的功能。因为我有一定的单片机开发基础&#xff0c