cczero

【资源下载】下载地址如下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
    }

分类:

技术点:

相关文章: