352 基于单片机医院病床病床房间呼叫系统【毕设课设】

51单片机医院病床呼叫系统Protues仿真以及详细程序

完全模拟现实情况,一分价钱一分货
任意病房病床呼叫报警,护士接到呼叫后,可任意对病房病床取消报警。

完整版 电路图和程序代码 下载地址

https://pan.baidu.com/s/1b5dT-mjzWk_BqurXvTO2jw?pwd=8888

部分代码展示

include <reg51.h>

#define uchar unsigned char
#define uint unsigned int	

sbit cs1=P2^3;
sbit cs2=P2^4;
sbit di=P2^2;
sbit rw=P2^1;
sbit e=P2^0;
sbit d1=P1^0;
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^3;
sbit d5=P1^4;
sbit d6=P1^5;
sbit buzzer=P3^7;

uchar keydata;
uchar senddata;
uchar receivedata;
uchar Btime;
uchar Btime1;
uchar room[6]={0,0,0,0,0,0};
uchar bed[6]={0,0,0,0,0,0};


/**********************************取字模 ********************************************/
/*--  文字:房    --*/
/*--  Times New Roman12; 宽x高=16x16   --*/
uchar code fang[32]={0x00,0x00,0xFC,0x94,0x94,0x94,0x94,0x95,0xB6,0xD4,0x94,0x94,0x94,0x9C,0x80,0x00,
							0x40,0x30,0x0F,0x80,0x40,0x30,0x0F,0x04,0x04,0x44,0x84,0x44,0x3C,0x00,0x00,0x00};
/*--  文字:间  --*/
/*--  Times New Roman12;  ??????????:?x?=16x16   --*/
uchar code jian[32]={0x00,0xF8,0x01,0x06,0x00,0xF0,0x92,0x92,0x92,0x92,0xF2,0x02,0x02,0xFE,0x00,0x00,
							0x00,0xFF,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04,0x07,0x40,0x80,0x7F,0x00,0x00};
/*--  文字:床  --*/
/*--  Times New Roman12;  宽x高=16x16    --*/
uchar code chuang[32]={0x00,0x00,0xFC,0x44,0x44,0x44,0x44,0xC5,0xFE,0x44,0x44,0x44,0x44,0x44,0x04,0x00,
	0x80,0x60,0x1F,0x40,0x20,0x18,0x06,0x01,0xFF,0x01,0x02,0x04,0x08,0x30,0x10,0x00};
/*--  文字:号 --*/
/*--  Times New Roman12;  宽x高=16x16   --*/
uchar code hao[32]={0x40,0x40,0x40,0x5F,0xD1,0x51,0x51,0x51,0x51,0x51,0x51,0x5F,0x40,0x40,0x40,0x00,
							0x00,0x00,0x00,0x02,0x07,0x02,0x02,0x22,0x42,0x82,0x42,0x3E,0x00,0x00,0x00,0x00};
/*--0--9数字--*/
/*--  Times New Roman12;  宽x高=16x16    --*/
uchar code shu[10][16]={
  {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},
	{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},
	{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},
	{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},
	{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},
	{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},
	{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},
	{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},
	{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},
	{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00},
};

/**********************毫秒延时************************/
void delay(uint num)
{
	while(num--) ;
}

/*************************写LCD函数********************************/
void lw(uchar x,uchar y,uchar dd) 
{
		if (x<64) 
		{
			cs1=cs2=0;
			di=rw=0;cs1=1;cs2=0;P0=0xb8|y;e=1;delay(2);e=0;delay(2);
			di=rw=0;cs1=1;cs2=0;P0=0x40|x;e=1;delay(2);e=0;delay(2);
			di=1;rw=0;cs1=1;cs2=0;P0=dd;e=1;delay(2);e=0;delay(2);	
			
		}
		else 
		{
			cs1=cs2=0;x=x-64;
			di=rw=0;cs1=0;cs2=1;P0=0xb8|y;e=1;delay(2);e=0;delay(2);			
			di=rw=0;cs1=0;cs2=1;P0=0x40|x;e=1;delay(2);e=0;delay(2);
			di=1;rw=0;cs1=0;cs2=1;P0=dd;e=1;delay(2);e=0;delay(2);
   			cs1=cs2=1;
		}
}

/************************LCD初始化*************************/
void lcd_init(void) {
	uchar x,y;	
	e=di=rw=0;
	cs1=cs2=1;
	cs1=0;cs2=1;
	di=rw=0;P0=0x3f;e=1;delay(2);e=0;delay(2);
	cs1=0;cs2=1;
	di=rw=0;P0=0xc0;e=1;delay(2);e=0;delay(2);
	cs1=cs2=0;
	cs1=1;cs2=0;
	di=rw=0;P0=0x3f;e=1;delay(2);e=0;delay(2);
	cs1=1;cs2=0;
	di=rw=0;P0=0xc0;e=1;delay(2);e=0;delay(2);
	cs1=cs2=0;
      for (y=0;y<8;y++) {
		for (x=0;x<128;x++) lw(x,y,0); 
	}
}

/***************写16*16分辨率汉字************/
void write_chinese(x,y,array)
uchar x,y;
uchar array[];
{
	uchar j,dd;			
	for(j=0;j<32;j++)
	{
		dd=array[j];
		if(j<16) lw(x+j,y,dd);
		 else  lw(x+j-16,y+1,dd);
	}	
}

/***************写8*16分辨率数字,字母**********/
void write_english(x,y,array)
uchar x,y;
uchar array[];
{
	uchar j,dd;			
	for(j=0;j<16;j++)
	{
		dd=array[j];
		if(j<8) lw(x+j,y,dd);
		 else  lw(x+j-8,y+1,dd);
	}	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值