【资源下载】下载地址如下1556:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
【摘要】 病床呼叫系统以AT89C52单片机为核心,结合按键,LED灯指示,蜂鸣器,以及液晶屏显示,来实现病床呼叫端和医护响应端的功能设计。从而可以建立合理、高效、安全的服务系统,可以有效地减轻护理工作人员的劳动强度,同时又保障病人的安全。
【关键词】 AT89C52 液晶屏显示 按键 蜂鸣器 响应按钮
功能: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 RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P2^1; //读写选择位,将RW位定义为P2.1引脚
sbit E=P2^2; //使能信号位,将E位定义为P2.2引脚
sbit BF=P0^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
}