找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1154|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)呼叫病房程序設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1062867 發(fā)表于 2023-2-15 14:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>          //調(diào)用單片機(jī)頭文件
#define uchar unsigned char  //無符號(hào)字符型 宏定義 變量范圍0~255
#define uint  unsigned int  //無符號(hào)整型 宏定義 變量范圍0~65535
  

sbit rs=P2^6;  
sbit rw=P2^5;  
sbit e =P2^7;

sbit beep = P1^5; //蜂鳴器IO口定義
sbit key_quxiao = P3^3;   //取消鍵IO口定義

bit flag_300ms ;    //300ms的標(biāo)志位


sbit led1 = P2^0;   //第1號(hào)病房指示燈
sbit led2 = P2^1;   //第2號(hào)病房指示燈
sbit led3 = P2^2;   //第3號(hào)病房指示燈

sbit key1 = P3^1;   //按鍵1定義
sbit key2 = P3^0;   //按鍵2定義
sbit key3 = P3^2;   //按鍵3定義
sbit key4 = P3^3;   //按鍵4定義

uchar dis_lcd[8];   //3個(gè)病房數(shù)據(jù)顯示的緩沖區(qū)
uchar br_geshu;     //報(bào)警病人數(shù)
uchar key_can;  //按鍵值

/********************************************************************
* 名稱 : delay_1ms()
* 功能 : 延時(shí)1ms函數(shù)
* 輸入 : q
* 輸出 : 無
***********************************************************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}

/***********************延時(shí)函數(shù)************************/
void delay_uint(uint q)
{
while(q--);
}

/***********************lcd1602寫命令函數(shù)************************/
void write_com(uchar com)
{
  rs=0;      //寫命令
rw=0;      //對(duì)1602寫操作
P0=com;      //P0口對(duì)1602寫命令數(shù)據(jù)
delay_uint(25);
e=1;  //e=1使能信號(hào)
delay_uint(100);   //延時(shí)一下等1602完成操作
e=0;
}

/***********************lcd1602寫數(shù)據(jù)函數(shù)************************/
void write_data(uchar dat)
{
  rs=1;      //寫數(shù)據(jù)
rw=0;      //對(duì)1602寫操作
P0=dat;    //P0口對(duì)1602寫數(shù)據(jù)
delay_uint(25);
e=1;  //e=1使能信號(hào)
delay_uint(100);   //延時(shí)一下等1602完成操作
e=0;
}


/***********************lcd1602上顯示這字符串函數(shù)************************/
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)   
write_com(0x80+add);    //1602寫第一行的地址
else
write_com(0x80+0x40+add);   //1602寫第二行的地址
while(1)  
{
if(*p == '\0')  break; //\0字符串的結(jié)尾標(biāo)志  break結(jié)束while循環(huán) 結(jié)束寫字符
write_data(*p);     //寫數(shù)據(jù)
p++;             //指針地址加1  
}
}

/***********************lcd1602上顯示這字符函數(shù)************************/
void write_string_ge(uchar hang,uchar add,uchar *p,uchar ge)
{
uchar i;
if(hang==1)   
write_com(0x80+add);    //1602寫第一行的地址
else
write_com(0x80+0x40+add);  //1602寫第二行的地址
for(i=0;i<ge;i++)
{
write_data(0x30+*p);    //寫數(shù)據(jù)
p++;             //指針地址加1  
}
}

/***********************lcd1602初始化設(shè)置************************/
void init_1602()  //lcd1602初始化設(shè)置
{
write_com(0x38);  //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口 不檢測(cè)忙信號(hào)
write_com(0x0c);  //開顯示 不顯示光標(biāo)
write_com(0x06);  //當(dāng)寫一個(gè)字符是,地址指針加 1
  write_string(1,0," bingfang hujiao "); //初始化顯示  
write_string(2,0,"  wu bingren     "); //初始化顯示
}

/*********************定時(shí)器0、定時(shí)器1初始化******************/
void time0_init()   
{  
EA  = 1;     //開總中斷
TMOD = 0X01;   //定時(shí)器0、工作方式1
ET0 = 1;   //開定時(shí)器0中斷
TR0 = 1;   //允許定時(shí)器0定時(shí)
TH0 = 0X3C;
TL0 = 0XB0;    //50ms

}

/********************獨(dú)立按鍵程序*****************/


void key()  //獨(dú)立按鍵程序
{

key_can = 0;            //按鍵值還原
if((key1 == 0)&&(led1==1))           //按鍵按下
{
delay_1ms(1);     //延時(shí)按鍵消抖動(dòng)
if(key1 == 0)   //確認(rèn)是按鍵按下
key_can = 1; //得到按鍵值
}
if((key2 == 0)&&(led2==1))            //按鍵按下
{
delay_1ms(1);     //延時(shí)按鍵消抖動(dòng)
if(key2 == 0)   //確認(rèn)是按鍵按下
key_can = 2; //得到按鍵值
}
if((key3 == 0)&&(led3==1))            //按鍵按下
{
delay_1ms(1);     //延時(shí)按鍵消抖動(dòng)
if(key3 == 0)   //確認(rèn)是按鍵按下
key_can = 3; //得到按鍵值
}
   
}
void key_qx()  //取消按鍵程序
{
if(key_quxiao == 0) //按鍵按下
{
delay_1ms(1);       //延時(shí)按鍵消抖動(dòng)
if(key_quxiao == 0)
{ //確認(rèn)是按鍵按下
key_can = 4; //得到按鍵值
while(key_quxiao == 0);  //等待按鍵松手
}
}
}

pdf格式的原理圖: 病房呼叫.pdf (218.6 KB, 下載次數(shù): 4)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表