开水房半自动供水接口设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本次试验设计的需求分析 1、1需求: 本实验设计一个模拟开水房半自动供水系统,实现开水房供水半自动化。由于开水房是个环境比较危险(容易发生烫伤事故),不太适合人类亲自工作的场所,所以实现开水房自动供水具有很高的现实意义。 1、2分析: 人机交互设计,温度检测设计,水位检测(锅炉的上界、下界)设计,控动烧水设计,交换锅炉设计。 系统介绍 1、1设计平台的基本介绍 以Microsoft Visual C++ 6.0作为实验开发平台。 1、2开发系统功能和解决问题 本实验完成了对供水锅炉的实时监控:锅炉水位的监控,锅炉水温的监控等,其中对水位的监控可以用连通器实现,而锅炉水温则可以通过传感器实现,本系统只做模拟,当系统获取这些监控数据时可以对其作出一定的反应,包括对锅炉水的注入、输出,控制锅炉的加热和取消加热等。 原理及设计 3、1硬件设计部分 硬件设计如下图所示:本实验主要以8255A芯片为主,8255A采用基本I/O方式即0方式,输出锁存,输入有三态缓冲能力,为了驱动虚拟抽水机(步进电机)加入了74LS373驱动,其中PA口控制抽水机(步进电机)向锅炉抽水,PB口控制试验仪上的作为警报的灯,为了实现装置的实时监控,特意安排了三个硬件开关SW1、SW2、SW3,分别作为启动锅炉后,加水的同时可以控制停止加水,加热的同时控制停止加热,输出开水的同时可以停止输出,采用软件延时。 3、2软件设计部分 本次设计基于VC++开发平台运行的主界面如图1-1所示: 图1-1 图中有1号锅炉和2号备用锅炉,由于实验设备有限只演示一号锅炉,其中“启动”按钮主要是用来控制供水装置的通电情况及接口芯片的初始化工作,然后依次完成对锅炉“加水”“加热”“输出开水”等功能的设置,一方面通过底层接口控制模拟抽水机、加热开关、输出开水开关、报警显示灯,另一方面通过MFC界面将计算机已经实现的功能直观的反应到视图界面上,实现开水房供水的实时监控。具体功能及主要代码演示如下。 单击一号锅炉下的“启动”按钮初始化系统后,提示一号锅炉启动! 会自动的完成8255A的初始化功能,运行界面如图1-2: 图1-2 “启动”按钮实现代码如下: void CMyDlg::OnButton1() { AfxMessageBox(一号锅炉启动!); outportd(Port_io_Base + 3,0x81);//初始化8255A命令口 outportd(Port_io_Base + 2,0x00);//初始化8255A的PC口 } 若此时再按下“加水”按钮,会在硬件实验仪器上发现LED中第一号灯亮起,表示装置正在往锅炉加水,同时启动步进电机(抽水机),在试验仪上可以看到步进电机在转,如果锅炉的水位低于锅炉容积的%15,则发出警报声,而且灯也会一闪一闪提示锅炉水位低于安全水位;当水位超过锅炉的容积的%95时,一号灯灭,提示水满,同时水满警报响起。如果期间紧急想停止往锅炉加水,按SW1硬件开关,再点停止加水按钮,“水柱”将停止不动,同时关闭74LS373,即完成停止步进电机(抽水机)的操作。如图1-3所示: 图1-3 “加水”按钮实现代码如下: void CMyDlg::OnButton5() { outportd(Port_io_Base + 3,0x09);//置PC4=1关闭74LS373 outportd(Port_io_Base + 3,0x08);//置PC4=0,打开74LS373 do{ outportd(Port_io_Base,xu[i]);//送相序代码到PA口,步进电机的转动代表抽水机向锅炉注水 i++; if(i==8) i=0; Sleep(50);//延时 m_pro1.SetPos(m_pro1.GetPos()+5);//可以设置加速加水,减速加水 if(inportd(Port_io_Base + 2)0x01 !=0)//检查sw1是否按下 { m_pro1.SetPos(m_pro1.GetPos()+50);//可以设置加速加水,减速加水 sw1=true; break; } Sleep(50);//延时 outportd(Port_io_Base+1,xu1[1]); //二极管xu1[1]灯亮,表示正在加水 if(m_pro1.GetPos()150) { for(j=0;j=5;j++)//缺水报警 { outportd(Port_io_Base + 3,0x0d); //令PC6=1,发高频音 Sleep

文档评论(0)

精品资源 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档