找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1682|回复: 4
收起左侧

基于单片机病房呼叫程序和仿真

[复制链接]
ID:190577 发表于 2023-11-27 21:24 | 显示全部楼层 |阅读模式

一、系统方案
1、本设计采用这51单片机作为主控器。
2、病房呼叫,液晶1602显示。
3、护士站按键取消。
4、蜂鸣器报警。

1.png
二、硬件设计
原理图如下:
2.png

三、单片机软件设计
1、首先是系统初始化
void init()                                //初始化函数
{
        bg_1602=0;                        //开启背光
        TMOD=0x01;                        //定时器0工作方式1
        TH0=0x4b;
        TL0=0xff;                  //赋初值
        EA=1;                           //开总中断
        ET0=1;                           //定时器中断开
        TR0=1;                           //定时器0中断开
        D0=0;
        D1=0;
        D2=0;
        D3=0;                                //清零床号引脚
}
2、液晶显示程序
/******LCD1602******/
void com_1602(uc com)        //写命令
{
        RS=0;
        P0=com;
        delay(1);
        E=1;
        delay(1);
        E=0;
        RS=1;
}
void data_1602(uc date)        //写数据
{
        RS=1;
        P0=date;
        delay(1);
        E=1;
        delay(1);
        E=0;
        RS=0;
}
3、按键程序
if(key==0)                //检测按键
        {
                delay(5);
                if(key==0)
                {
                        if((num_D0!=0)||(num_D1!=0)||(num_D2!=0)||(num_D3!=0))//如果有呼叫时
                        {
                                bg_1602=0;                                                        //打开背光
                                Beep=1;                                                                //关闭蜂鸣器
                                flag=0;                                                                //标志位清零
                                num_D0=0;num_D1=0;num_D2=0;num_D3=0;
                                fu_D0=D0;fu_D1=D1;fu_D2=D2;fu_D3=D3;//将床位清零,并记录当前引脚状态
                                com_1602(0x01);                                                //清屏
                                dis_1602(7,1,4,2,0);                                //显示I Know
                        }
                        else                //如果没有呼叫时
                        bg_1602=0;        //只点亮背光
                }
                while(!key);        //按键释放
                delay(2000);
                com_1602(0x01);//清屏
        }
4、核心算法程序
void display()                //显示函数
{
        if((num_D0==0)&&(num_D1==0)&&(num_D2==0)&&(num_D3==0))        //当没有床位呼叫时
        dis_1602(16,0,0,3,0);                                                                        //显示Happy
        else                                                        //有床位呼叫时
        {
                if(flag==0)
                {
                        flag=1;
                        com_1602(0x01);//清屏
                }
                if(num_D0==1)
                {
                        dis_1602(1,0,2,0,num_D0);
                        dis_1602(1,0,3,0,10);
                }
                if(num_D1==2)
                {
                        dis_1602(1,0,5,0,num_D1);
                        dis_1602(1,0,6,0,10);
                }
                if(num_D2==3)
                {
                        dis_1602(1,0,8,0,num_D2);
                        dis_1602(1,0,9,0,10);
                }
                if(num_D3==4)
                {
                        dis_1602(1,0,11,0,num_D3);
                        dis_1602(1,0,12,0,10);
                }
                dis_1602(10,1,3,1,0);                //在对应床位显示床位号
        }
}

四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
回复

使用道具 举报

ID:491875 发表于 2023-11-28 07:42 | 显示全部楼层
现实中的病房呼叫器不会采用并联设置按钮的!因为呼叫器与主机之间有一定的距离!并联布线会大大增加布线成本和工程量!而且长线效应势必会带来干扰!所以,你的这个设计只能想当然的用于实验室演示并无使用价值!
回复

使用道具 举报

ID:276663 发表于 2023-11-28 10:07 | 显示全部楼层
去病房看看就知道了,简单的使用无线呼叫,复杂的要求高的都是做在床头了
回复

使用道具 举报

ID:190577 发表于 2023-11-28 14:50 | 显示全部楼层
老愚童63 发表于 2023-11-28 07:42
现实中的病房呼叫器不会采用并联设置按钮的!因为呼叫器与主机之间有一定的距离!并联布线会大大增加布线成 ...

我这个就是学校的实验而已,练习编程。
回复

使用道具 举报

ID:190577 发表于 2023-11-28 16:50 | 显示全部楼层
IdeaMing 发表于 2023-11-28 10:07
去病房看看就知道了,简单的使用无线呼叫,复杂的要求高的都是做在床头了

我这个就是学校的实验而已,练习编程。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表