基于单片机智能病床呼叫系统设计-毕设课设资料
病床呼叫系统设计与实现该病床呼叫系统基于AT89C52单片机设计结合按键、LED指示灯、蜂鸣器和LCD1602液晶显示屏实现了病房呼叫与护士响应的功能。系统通过硬件电路和软件逻辑的配合确保高效、安全的服务。硬件模块设计主控模块采用AT89C52单片机作为核心控制器配备12MHz晶振和5V电源供电。单片机引脚资源充分利用包括P0-P3端口。输入模块7个病床呼叫按钮连接至P1.0-P1.6引脚7个护士响应按钮分别连接至P1.7、P2.7、P3.7、P2.3-P2.6引脚。按键采用防误触设计需长按一定时间才触发计数。输出模块LED指示灯7个红色LED连接至P3.0-P3.6对应病床呼叫状态。蜂鸣器呼叫触发时发出提示音。LCD1602显示屏通过P0数据端口和P2.0-P2.2控制引脚显示呼叫次数和状态。软件功能实现呼叫计数逻辑全局变量temp10-temp16记录1-7号病床的呼叫次数最大累计9次。按键按下后对应LED点亮、蜂鸣器鸣响并通过防抖逻辑确保有效计数。unsigned char temp10,temp11,temp12,temp13,temp14,temp15,temp16;显示模块驱动LCD1602显示各病床编号及呼叫次数使用HD44780控制器协议。字符数据存储在Flash中以节省内存unsigned char code Tab[11] {0123456789}; unsigned char code string1[] {1:};延时与防抖通过Delayus函数实现微秒级延时配合_nop_()指令确保信号稳定void Delayus(unsigned char m) { while (m--!0) { _nop_(); // 1us延时 } }系统特点资源高效利用AT89C52的40个引脚几乎全部使用未扩展外部器件。防误触设计呼叫按钮需持续按压才生效避免误触发。状态可视化LCD实时显示呼叫次数LED提供直观状态指示。扩展资料开发环境Keil用于代码编译Proteus进行电路仿真。文档支持包含源码、烧录文件、仿真工程及设计说明文档。此设计适用于病房监护场景兼顾功能性与可靠性显著提升护理效率。【资源下载】下载地址如下1556https://docs.qq.com/doc/p/afddc1a75331badc9b4617638a2da89a35d7bfd5?dver2.1.27687431功能7个病床的7个呼叫按钮 控制响应的led灯点亮,同时响应的次数累计 ; 病床按一次对应的蜂鸣器响一次。为防止被错误按下按钮按下一定时间后才累计次数累计次数最多累计9次 7个病床对应的呼叫响应 按钮 控制响应的led灯灭,同时响应的次数累计清零 说明 在这个系统中单片机的40个引脚基本全部用上了当然有几个有特殊功能没有用上 可以说是在不用外部扩展的情况下51单片机的极限了 1.病床呼叫按钮 P1.0~P1.6口 共7个引脚 2.护士呼叫响应按钮P17,P27,P37,P23,P24,P25,P26 共7个引脚 3.呼叫按钮响应红灯P30,P31,P32,P33,P34,P35,P36 共7个引脚 4.病人呼叫次数统计 数据口 P0.0~P0.7 时序RS:P2.0, RW:P2.1, E:P2.0 共11个引脚 液晶模块1602 /LM016L他们的内部控制芯片都是HD44780 5.晶振12MHZ, AT89C52(12T) 共2个引脚 6.电源VCC 5v; 接地 GND 共2个引脚 *********************************************************/ #include reg52.h #include intrins.h sbit P10 P1^0; sbit P11 P1^1; sbit P12 P1^2; sbit P13 P1^3; sbit P14 P1^4; sbit P15 P1^5; sbit P16 P1^6; sbit P17 P1^7; sbit P20 P2^0; sbit P21 P2^1; sbit P22 P2^2; sbit P23 P2^3; sbit P24 P2^4; sbit P25 P2^5; sbit P26 P2^6; sbit P27 P2^7; sbit P30 P3^0 ; sbit P31 P3^1; sbit P32 P3^2; sbit P33 P3^3; sbit P34 P3^4; sbit P35 P3^5; sbit P36 P3^6; sbit P37 P3^7; sbit RSP2^0; //寄存器选择位将RS位定义为P2.0引脚 sbit RWP2^1; //读写选择位将RW位定义为P2.1引脚 sbit EP2^2; //使能信号位将E位定义为P2.2引脚 sbit BFP0^7; //忙碌标志位将BF位定义为P0.7引脚 unsigned char temp10,temp11,temp12,temp13,temp14,temp15,temp16; //设置全局变量 分别表示1~7床呼叫次数 unsigned char code Tab[11] {0123456789}; //字符数组code表示存在FLASH中的这样不会占用MCU内存 unsigned char code string1[ ] {1:}; unsigned char code string2[ ] {2:}; unsigned char code string3[ ] {3:}; unsigned char code string4[ ] {4:}; unsigned char code string5[ ] {5:}; unsigned char code string6[ ] {6:}; unsigned char code string7[ ] {7:}; /******************************************/ /************************************************************ 以下程序为 按键模块 病人按键部分 护士按键部分 ************************************************************/ void Delayus(unsigned char m) { while (m--!0) { _nop_(); //1us }
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2441519.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!