自动洗衣机课程设计报告

时间:2019-05-12 12:57:27下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《自动洗衣机课程设计报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《自动洗衣机课程设计报告》。

第一篇:自动洗衣机课程设计报告

课程设计

课程名称: 学院:专业: 姓名:学号: 年级:任课教师:

年月日

文档编写格式,本页在报告完成后删除

目录为参考格式,可根据具体情况修改,目录应为超链接形式。正文中文为宋体小四,其他(包含程序字体)为Consolas,段落间距1.3。除在附录总附上图纸外,还需要打印A3大小图纸两张,内容包括:

1、控制电路设计原理图,绘制软件为Altium Designer,右下角包含以下信息:大图名课程名称指导教师制图人班级学号姓名制图时间

2、系统仿真图(proteus),如无仿真则不用,但需绘制系统PCB(Altium Designer)。

原理图例:

目录

目录

键入章标题(第 1 级)..................................................................................................1 键入章标题(第 2 级)...............................................................................................2 键入章标题(第 3 级)...........................................................................................3 键入章标题(第 1 级)..................................................................................................4 键入章标题(第 2 级)...............................................................................................5 键入章标题(第 3 级)...........................................................................................6 1.1设计背景.............................................................................X 1.2设计要求.............................................................................X 1.3设计思路简介.........................................X 第2章系统开发平台与环境.................................X 1.1 XXXXXXXXX开发环境简介.........................................X 2.2 XXXXXXXXX开发环境简介............X.......................................第3章XXXX硬件系统设计过程...............................X 3.1 XXXX硬件系统总体框图.................................X 3.2 XXXX硬件系统元件选型.................................X 3.3XXXX硬件系统的设计方法................................X.......................................第4章XXXX系统软件设计.......................................X 4.1 程序流程图...........................................X 4.2程序源代码...........................................X..........................第5章系统仿真与调试..........................................X 5.1调试过程............................................X..........................第6章总结(心得体会)..............................................X 参考文献.................................................X 附录 控制电路图纸 仿真电路图纸 程序清单

第二篇:全自动洗衣机课程设计

全自动洗衣机课程设计

PLC课程设计

目: 全自动洗衣机的控制

院系名称: 机械设计制造及其自动化

专业班级:

学生姓名:

号:

指导老师:

目录

目录........................................................................................................................................2 第一章 课程设计任务............................................................................错误!未定义书签。第二章 总体方案分析............................................................................错误!未定义书签。

2.1 分析控制要求......................................................................错误!未定义书签。2.2 选择PLC型号.....................................................................错误!未定义书签。2.3 分配I/O点...........................................................................错误!未定义书签。

第三章 PLC控制系统设计...................................................................错误!未定义书签。

3.1 输入/输出电路设计.............................................................错误!未定义书签。3.2 控制程序设计......................................................................错误!未定义书签。

3.2.1 梯形图设计................................................................错误!未定义书签。3.2.2 指令表........................................................................错误!未定义书签。3.3 控制程序分析......................................................................错误!未定义书签。

第四章 课程设计小结............................................................................错误!未定义书签。参 考 文 献............................................................................................错误!未定义书签。

一、课程设计任务

全自动洗衣机已经是普及的家用电器,并且现在工业用的全自动洗衣机由于其特殊性,也越来越多的采用 PLC、变频器和触摸屏。该控制对象具有如下功能:波轮式全自动洗衣机的洗衣桶(外桶)和脱水桶(内桶)是以同一中心安装的。外桶固定,作乘水用;内桶可以旋转,作脱水(甩干)用。内桶的四周有许多小孔,使内外桶水流相通。洗衣机的进水和排水分别由进水电磁阀和排水电磁阀控制。进水时,控制系统使进水电磁阀打开,将水注入外桶;排水时,使排水电磁阀打开,将水由外桶排到机外。洗涤和脱水由同一台电动机拖动,通过电磁阀离合器来控制,将动力传递给洗涤波轮或甩干桶(内桶)。电磁离合器失电时,电动机带动洗涤波轮实现正、反转,进行洗涤;电磁离合器得电时,电动机带动内桶单向旋转,进行甩干(此时波轮不转)。水位高低分别由高低水位开关进行检测,启动按钮用来启动洗衣机工作。

二、总体方案分析

2.1控制要求

启动时,首先进水,到高位时停止进水,开始洗涤。正转洗涤15s 暂停3s后反转洗涤15s,暂停3s后再正转洗涤,如此反复30次。洗涤结束后开始排水,当水位下降到低水位时,进行脱水(同时排水),脱水时间为10s。这样完成一次从进水到脱水的大循环过程。

经过3次上述大循环后(第2、3次为漂涤),进行完成后报警,报警10s后结束全部过程,自动停机。

此外,还要求可以按下排水按钮以实现手动排水;按下停止按钮以实现手动停止进水、排水、脱水及报警。

所需设备

(1)液位传感器、按钮、报警器、选择开关、电磁离合器、电动机等;(2)计算机(用户自备)一台;(3)可编程控制器(带编程电缆)一根;(4)编程软件;(5)导线若干。2.2 PLC选择、PLC选型及I/O分配图

根据设计要求、控制要求,选定PLC的型号为: 三菱FX2N

● 控制规模:16~256点

● 内置8K容量的RAM存储器,最大可以扩展到16K ● CPU运算处理速度0.08μS/基本指令

● 在FX2N系列右侧可连接输入输出扩展模块和特殊功能模块

● 基本单元内置2轴独立最高20kHz定位功能(晶体管输出型)全自动洗衣机系统的I/0分配:

输人

输出 X0:启动按钮

X1:限位开关SQ

1X2:限位开关SQ

2第三章 PLC控制系统设计

3.1 输入/输出电路设计

Y0:进水电磁阀控制KA1

Y1:电动机正转接触器KM1 Y2:电动机反转接触器KM2

Y3:排水电磁阀控制KA2 Y4:脱水离合器控制KA3

Y5:报警蜂鸣器KA4

全自动洗衣机步进梯形图

指令表

3.3 控制程序分析

连接好PLC,打开软件,选定合适的通信端口。首先用软件远程使PLC停止工作,RUN灯熄灭。然后把编好的程序写入PLC,再用软件启动PLC,发现PLC的RUN指示灯亮,程序运行时,按下启动按钮X0,置位状态寄存器S20,控制进水阀开始进水。由外部跟定液位信号,比如选定高水位洗涤,则闭合X1,过一会儿再闭合X1,相当于已达到高水位,从而置位S21,S20自动复位,关闭进水,同时启动T0计时器暂停3s。计时完毕,T0常开点闭合,置位S22,洗衣机开始正转,并开启T0计时器计时15s。计时完毕,T1常开点闭合,置位S23,开启暂停3s的T2计时器。计时完毕,T2常开点闭合,置位S24,控制电动机反转,同时开启T3计时器计时15s。计时完毕,T3常开点闭合,从而置位S25,开启暂停3s计时器T4。计时到时,并启动计时器C0,计数一次,同时返回S22,直到计数器计到30次时,置位S26,开始排水.当排空后,从而置位S27,启动脱水,并保持排水,同时开启T5计时器计时10s。计时到时,T5常开点闭合,C1计数一次,同时返回S20,直到C1计时3次时,即反复洗涤三次后,C1常开点闭合,置位S28,开启报警电路,扬声器发出响声提示洗衣完成。在每一步顺序运行时,上一步的状态寄存器均自动复位。

在程序运行中,闭合X3,各状态寄存器均无信号,通过选择手动排水和手动脱水档位,可实现手动排水和手动脱水功能。若要实现轻柔洗功能,需添加X0作为轻柔洗档位,把X1设为标准洗档位,轻柔洗的过程可以通过一些计时器把正反转的时间设定的小一些。编程和上述基本类似。

第四章 课程设计小节

经过将近一周的全自动洗衣机PLC课程设计,让我收获颇丰,不仅熟悉了全自动洗衣机的工作过程,还学会了使用步进指令。步进指令简单,直观,易于阅读,使用它来控制洗衣机的工作过程,真的很是方便。几天的课程设计,让我加深了对PLC的认识和理解,也知道了PLC应用于工业控制的优点所在,更重要的是让我看到了自己知识的匮乏,也坚定了以后要不断的学习,不断的向身边的人虚心请教,同时要借助于图书馆和网络来扩充自己的知识面的决心。也只有这样,在以后的社会竞争中,自己才能有立足之地,才能有所作为。

五、参考文献

[1]电气控制与PLC应用,胡汉文 丁如春 主编,人民邮电出版社,2009 [2]科威PLC资料 [3]三菱及西门子PLC资料

[4]可编程控制器教程,黄云龙主编,科学出版社,2003 [5]可编程控制器应用技术,张万忠主编,化学工业出版社,2002 [6]机电电气自动控制(修订版),陈远龄主编,重庆大学出版社出版,2005 [7]可编程控制器原理及应用教程,王晖 孙玉峰 王文华 主编,清华大学出版社出版,2004

第三篇:出租车自动计费器设计(课程设计报告)

目 录 绪论....................................................................................................................................................1 1.1设计背景......................................................................................................................................1 1.2QUARTUS II简介.......................................................................................................................1 1.3VHDL语言基础..........................................................................................................................2 2 出租车计费器总体设计结构.............................................................................................................2 2.1

系统设计要求和目的..................................................................................................................2 2.2.1 系统设计要求......................................................................................................................2 2.2.1 系统设计目的......................................................................................................................2 2.2

设计思路......................................................................................................................................3 2.3

系统总体结构..............................................................................................................................3 2.4出租车计费器系统工作流程图..................................................................................................4 3 出租车计费器的实现........................................................................................................................5 3.1

出租车计费器的顶层原理图......................................................................................................5 3.2

系统各功能模块的实现..............................................................................................................5 3.2.1 计费模块JIFEI....................................................................................................................5 3.2.2 计量模块JILIANG..............................................................................................................6 3.2.3 显示控制模块SELTIME.....................................................................................................7 3.2.4 显示模块DELED................................................................................................................7 4 出租车计费器系统仿真及分析.........................................................................................................8 4.1

计费系统的仿真..........................................................................................................................8 4.2

单元模块的仿真及分析............................................................................................................10 4.2.1 译码显示模块的仿真及分析............................................................................................10 4.2.2 显示控制模块的仿真及分析............................................................................................12 4.2.3 计量模块的仿真及分析....................................................................................................13 4.2.4 计费模块的仿真及分析....................................................................................................13 5 锁定管脚及硬件实现......................................................................................................................14 5.1

锁定管脚图................................................................................................................................14 5.2

硬件实现....................................................................................................................................14 5.2.1 显示结果的几种情况........................................................................................................15 5.2.2 硬件实现总结....................................................................................................................16 6 设计体会与总结..............................................................................................................................17 参考文献................................................................................................................................................18 附

录................................................................................................................................................19 1

JILIANG模块的VHDL编程......................................................................................................19 2

JIFEI模块的VHDL编程............................................................................................................21 3

SELTIME控制模块的VHDL编程.............................................................................................22 4

DELED模块的VHDL编程........................................................................................................23

出租车自动计费器设计 绪论

1.1 设计背景

随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具,它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是具有一定意义的。出租车计费器是出租车营运收费的专用智能化仪表,是出租车市场规范化,标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备,简单易用,计量准确的出租车计费器是加强出租车行业管理,提高服务质量的必需品。本设计就是采用VHDL硬件描述语言作为设计手段,采用自己的设计思路,得到一种出租车计价系统的软件结构,通过Quartus II 6.0软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求,具有一定的实用性。

1.2 QUARTUS II简介

QUARTUS II 是Altera公司的综合性CPLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整CPLD设计流程。QUARTUS II 支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera QUARTUS II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

出租车自动计费器设计

1.3 VHDL语言基础

一般而言,一个相对完整的VHDL语言程序至少应三个基本组成部分:①库(Library)、程序包(Package)使用说明;②实体(Entity)说明;③实体对应的结构体(Architecture)说明。其中,库、程序包使用说明用于打开(调用)本设计实体将要用到的库、程序包;实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。在一个实体中,允许含有一个或多个结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。出租车计费器总体设计结构

2.1 系统设计要求和目的

2.2.1 系统设计要求

1.起步价为5.0元,起步公里为3公里;

2.超过3公里,每公里按1元收费,也可每0.1公里按0.1元收费; 3.等候时间累计1分钟,按每分钟0.1元收费;

4.用三个数码管显示总金额,最大值为99.9元;用三个数码管显示总里程,最大值99.9公里;用两个数码管显示等待时间,最大值99分钟。2.2.1 系统设计目的

1.通过这次实验设计使我们加深对EDA技术与数字系统设计相关理论和概念的理解,培养我们的理论联系实际的能力,特别是实际动手能力。

2.学习使用QUARTUS II软件设计。

3.根据原理图学会用VHDL语言设计时序电路。4.学会绘制功能仿真波形图。

出租车自动计费器设计

2.2 设计思路

根据设计要求,电路具有计时、计程、计费功能,用数码管显示行驶公里数、等待时间、收费金额,行车里程和等待时间的处理电路将汽车行驶的里程数、转换成与之成正比的计费脉冲,然后由计费电路转换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,3公里以后每0.1公里产生一个计费脉冲,一个1HZ的脉冲用来表示等待时间,60个脉冲代表1分钟,1分钟即60个脉冲产生一个等待计费脉冲,然后用计费电路对计费脉冲进行计费。

2.3 系统总体结构

图2-1 系统总体结构图

出租车计费器的组成如上图所示,通过控制模块以高低脉冲模拟出租汽车启动、行驶、暂停,具有控制作用;通过控制模块控制出租车的状态来选择出租车是计里程还是计等待时间,相应产生的时间计费脉冲信号和里程脉冲信号来计费,译码/动态扫描模块将等待时间、路程与费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将里程数、等待时间和计费金额用数码管显示。

出租车自动计费器设计

2.4 出租车计费器系统工作流程图

图2-2 出租车计费系统工作流程图

出租车载客后,启动计费器,整个系统开始工作,进入初始化状态,即计程从0开始,计费从5.0元开始。再根据BREAK信号判断行驶还是暂停。若是行驶状态,计费器开始进行里程计数,当里程超过3公里时,计费器开始累加,按每0.1公里收费0.1元计算,计程器则继续,否则计费器不变。若是暂停状态,计费器开始进行等候时间计数,当等候时间累计1分钟,则每分钟0.1元计费。最后将等候时间、里程、计费都显示出来。

出租车自动计费器设计 出租车计费器的实现

3.1 出租车计费器的顶层原理图

图3-1 出租车计费器顶层原理图

原理图中输入部分分别是CLK:秒脉冲信号,1个脉冲代表1秒,则60个脉冲表示1分钟。CLK1:10米脉冲信号,1个脉冲代表10米,则10个脉冲表示100米,100个脉冲代表1公里。START:计程车开启信号;DRIVE:计费器启动信号;BREAK:等待信号,SEL为计数控制信号输出端。

3.2 系统各功能模块的实现

3.2.1 计费模块JIFEI 计费(JIFEI)模块也是本系统的核心,完成起步价计费,等待时间计费,里程计费功能。计费器启动,显示起步价5.0元,之后每来一个行驶里程计费脉冲或者等待时间计费脉冲,计费金额自动加0.1元。计费显示用3位数码管,所

出租车自动计费器设计

以计费最大值为99.9元。其中CH2表示费用的十位,CHI表示费用的个位,CH0表示费用的十分位。B为等待时间计费脉冲信号或里程计费脉冲信号。

图3-2 JIFEI模块图

3.2.2 计量模块JILIANG

图3-3 JILIANG模块图

本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲进行计数。因为行驶距离每脉冲代表10米,所以计满100个数就输出一个行驶距离计费脉冲,因为3公里之内属于起步价,所以前3公里内不输出行驶距离计费脉冲,因为用3位数码管来显示行驶距离,其中两位整数,一位小数,所以行驶距离最小分辨率为0.1公里,行驶距离脉冲每计10个数,行驶距离输出加0.1,行驶距离最大值为99.9公里。其中KM2为里程的十位,KM1为里程的个位,KM0为里程的十分位。等待时间脉冲频率为1HZ,所以一个脉冲代表1秒,60个等待脉冲是1分钟,输出等待时间加1,等待时间满1分钟计一次费,所以对等待时间脉冲计数,计满60个数就输出一个等待计费脉冲。等待时间最大值为99分钟。MIN1为等待时间的十位,MIN0为等待时间的个位。将行驶距离、等待时间送到SELTIME模块,时间与里程计费脉冲送到计费模块完成里程、等待时间的计费功

出租车自动计费器设计

能。B1为超过3公里后,每0.1公里产生的计费脉冲。B2为每等待一分钟产生的计费脉冲。

3.2.3 显示控制模块SELTIME

图3-4 SELTIME模块图

SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在数码管上的显示位置。sel为计数控制信号输出端,功能主要是利用其计数的八个状态,使daout在其每个状态下选择某一输入数据,进而将选择的的数据送入到DELED模块。dp为小数点脉冲控制信号,当该模块输出的值为里程的个位、费用的个位时,需要考虑小数点的存在,即此时dp=‘1’,在其他不需要小数点的情况下,dp=‘0’,最后dp将信号输出到DELED模块。3.2.4 显示模块DELED

图3-5 DELED模块图

出租车自动计费器设计

DELED模块把送入的每个四位数据转换为7段码送出显示,能够使数码管正常显示送入的数据。其中DP为小数点输入信号。出租车计费器系统仿真及分析

4.1 计费系统的仿真

图4-1 出租车启动时计费系统功能仿真图

由图4-1 可知,当出租车未启动时,里程、等待时间、费用均为0。出租车刚启动时,里程、等待时间为0,费用为出租车起步价5元。

出租车自动计费器设计

图4-2 出租车等待时计费系统功能仿真图

由图4-2可知,当出租车在等待过程中,行驶里程16.2公里,等待时间为32分钟时,出租车的费用为:5+(16.2-3)×1+32×0.1=21.4元,与仿真结果一致。

图4-3 出租车行驶时计费系统功能仿真图

由图4-3可知,当出租车行驶到66.6千米,等待时间60分钟时,由仿真结果可得出费用为74.6元;根据设计要求计算可得费用为:5+(66.6-3)×1+60×0.1=74.6元。仿真结果与计算值一致,验证了设计的正确性。

出租车自动计费器设计

图4-4 出租车停车时计费系统功能仿真图

当出租车停车时,出租车上的时间、里程和费用清零,为下次计费的开始做准备。

4.2 单元模块的仿真及分析

4.2.1 译码显示模块的仿真及分析

图4-5 译码显示模块的功能仿真图

图4-5为译码显示模块的功能仿真波形图,DP、S为信号输入端,也是显示

出租车自动计费器设计

控制模块的信号输出端口,ABCDEFGH八个端口为八位二进制的输出端口。假设DOUT=“HGFEDCBA”,由上图可以看出:

1.DP=0时:

当S(3 downto 0)=”0000”,则DOUT=”00111111”; 当S(3 downto 0)=”0001”,则DOUT=”00000110”; 当S(3 downto 0)=”0010”,则DOUT=”01011011”; 当S(3 downto 0)=”0011”,则DOUT=”01001111”; 当S(3 downto 0)=”0100”,则DOUT=”01100110”; 当S(3 downto 0)=”0101”,则DOUT=”01101101”; 当S(3 downto 0)=”0110”,则DOUT=”01111101”; 当S(3 downto 0)=”0111”,则DOUT=”00000111”; 当S(3 downto 0)=”1000”,则DOUT=”01111111”; 当S(3 downto 0)=”1001”,则DOUT=”01101111”;

当S(3 downto 0)等于上述值以外的值时,则DOUT=”00000000”。2.DP=1时:

当S(3 downto 0)=”0000”,则DOUT=”10111111”; 当S(3 downto 0)=”0001”,则DOUT=”10000110”; 当S(3 downto 0)=”0010”,则DOUT=”11011011”; 当S(3 downto 0)=”0011”,则DOUT=”11001111”; 当S(3 downto 0)=”0100”,则DOUT=”11100110”; 当S(3 downto 0)=”0101”,则DOUT=”11101101”; 当S(3 downto 0)=”0110”,则DOUT=”11111101”; 当S(3 downto 0)=”0111”,则DOUT=”10000111”; 当S(3 downto 0)=”1000”,则DOUT=”11111111”; 当S(3 downto 0)=”1001”,则DOUT=”11101111”;

当S(3 downto 0)等于上述值以外的值时,则DOUT=”10000000”。

出租车自动计费器设计

4.2.2 显示控制模块的仿真及分析

图4-6 显示控制模块的功能仿真图

图4-6为显示控制模块功能仿真图,其中clk为时钟脉冲输入端,sel为计数控制信号输出端,daout为sel所控制状态下的输出到数码管的位选信号,dp为小数点控制输出信号。可以看出,当时钟沿上升时刻到来时,计数器的输出sel就自动加1,当计数器输出端加到“111”时,再来一个脉冲上升沿,则计数的输出端sel变为“000”,该显示控制模块的功能主要是利用其计数的八个状态,进而去轮流控制数码管的位选信号。由图4-6可知:当sel=“000”时,则daout=CH0;当sel=“001”时,daout=CH1;当sel=“010”时,daout=CH2;当sel=“011”时,daout=KM0;当sel=“100”时,daout=KM1;当sel=“101”时,daout=KM2;当sel=“110”时,daout=MIN0;当sel=“111”时,daout=MIN1。由于KM1、CH1表示里程的个位和费用的个位,其后都存在小数,故在设计中当显示KM1、CH1时须加入小数点,此时dp=‘1’,在其他没有小数点的情况时dp=‘0’。

出租车自动计费器设计

4.2.3 计量模块的仿真及分析

图4-7 计量模块的功能仿真图

图4-7为计量模块的功能仿真图,START信号为高电平时(即出租车启动)。当DRIVE为高电平且BREAK为低电平时,出租车为行驶状态,此时里程计数模块开始计数,每经过10个CLK1脉冲信号,里程加0.1公里,当里程计数大于3公里时,每计0.1公里产生1个B1脉冲信号。当DRIVE为高电平且BREAK为高电平时,出租车为暂停状态,此时等待时间计数模块开始计数,每经过60个CLK脉冲信号,时间加1分钟,每计1分钟产生一个B2脉冲信号。B1和B2分别为里程计费脉冲和等待时间计费脉冲。4.2.4 计费模块的仿真及分析

图4-8 计费模块的功能仿真图

图4-8为计费模块的功能仿真图当START处于高电平且DRIVE处于高电平时,每送入一个计费脉冲且计费脉冲处于上升沿时,CH0自动加1(即每送入一

出租车自动计费器设计

个计费脉冲加0.1元)。CH0、CH1、CH2为十进制计数。CH2表示费用的十位,CH1表示费用的个位,CH0表示费用的十分位,计费的最大值为99.9元。锁定管脚及硬件实现

5.1 锁定管脚图

在验证出租车计费器系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:

图5-1 顶层原理图

5.2 硬件实现

通过硬件下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编辑.pin文件。完成管脚定义后选择器件,编译后生成.sof文件。选择.sof文件进行下载。

下载完成后,将第一全局时钟CLK1的跳线器接1Hz(作为秒脉冲信号),将第二全局时钟CLK2的跳线器接1Hz(作为十米脉冲信号),将第三全局时钟CLK3的跳线器接32768Hz,用拨位开关模拟控制出租车的启动、行驶、暂停。观察数

出租车自动计费器设计

码管上数据的变化是否符合设计标准。在试验箱上八个数码管从左至右分别显示的是:等待时间的十位、等待时间的个位、里程的十位、里程的个位、里程的十分位、费用的十位、费用的个位、费用的十分位。5.2.1 显示结果的几种情况

图5-2 验证结果1 图5-2表示出租车等待了1分钟,行驶了3.9公里,即时车费为6.0元。根据设计要求计算所得费用为:5元+(3.9-3)公里×1元/公里+1分钟×0.1元/分钟=6.0元,计算结果与试验箱上所得显示结果相同。

图5-3 验证结果2

出租车自动计费器设计

图5-3表示出租车等待了3分钟,行驶了6.8公里,即时车费为9.1元。根据设计要求计算所得费用为:5元+(6.8-3)公里×1元/公里+3分钟×0.1元/分钟=9.1元,计算结果与试验箱上所得显示结果相同。

在试验箱验证过程中,我们可以看到,八位数码管的右三位显示起步价05.0,中间三个数码管在以0.1为步长进行加法显示行驶里程,当行驶里程超过3公里之后,每0.1公里计费金额加0.1元,当我们按下等待暂停键,每分钟左边两个数码管加1,其显示的等待时间,当等待时间到1分钟时,计费金额加0.1元,由此我们可以判断,系统设计符合要求。5.2.2 硬件实现总结

通过对每一模块的仿真和下载,可以实现各个模块的逻辑功能,验证了各个模块的正确性。在出租车计费系统的4个模块中,重点在于计量模块(JILIANG),计费模块(JIFEI),显示控制模块(SELTIME),译码显示模块(DELED)。JILIANG模块主要有汽车的开始、运行、暂停,JILIANG模块主要记录出租车的行驶里程和等待时间,并将等待时间计费脉冲和行驶里程计费脉冲送入JIFEI模块;JIFEI模块主要是完成起步价计费、等待时间计费、行驶里程计费,并完成总费用;SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在八个数码管上的位置。DELED模块是把送入的每个四位数据转换为7段码,从而能在数码管上正确的显示。这四个模块的组合成完整的出租车系统,在设计过程中还需要改进的是控制出租车计费系统的控制功能。

出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车开始、启动、暂停、停止等功能,由数码管显示出租车等待时间,行驶里程,费用。车暂等待时停止行驶里程计费,车费仅由等待时间计费;出租车正常行驶时,仅根据里程收费方式。若停止则车费清零,等待下一次计费的开始。出租车计费系统的设计中体现了VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言本设计在实用方面具有一定的价值。

该计费器实现了按预置参数自动计费(最大计费金额为99.9元)、自动计程(最大计程公里数为99.9公里)等功能;能够实现起步价、每公里收费、等待时间计费的参数预置(如:起步价5.0元;3公里后1元每公里;等待时间0.1元每分钟),且预置参数可调范围广。由于采用CPLD大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。

出租车自动计费器设计 设计体会与总结

通过这次紧张而又充实的EDA课程设计,我感受到了VHDL语言和普通软件语言之间的区别,也能够更加熟练地运用VHDL语言进行逻辑电路的设计了,受益匪浅。我们所做的课题是出租车计费器的设计。老师给了我们课程设计题目,在这半个月的实验操作中,不断的完善自己的设计要求,将自己的想法融入到实验的程序中去。最终通过仿真达到了自己预想的效果。有种先苦后甜的成就感。

同时在本次试验中,我们熟练的掌握了Quartus II软件的使用。学会了如何把自己所设计的程序,通过软件用波形仿真出来,再通过试验箱仿真出来。

在这次课程设计过程中,要感谢陈老师在课程设计上给予我的帮助,提供给我的支持与建议,特别是帮助我解决了我半个月来一直遇到的运行程序警告多的问题,这是我能顺利完成这次报告的主要原因,让我能把课程设计做得更加完善。在此期间,我不仅学到了许多新知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学们,他们也为我解决了不少难题。这些东西是无法再平时上课的过程中学到的,实践出真知,只有在实验中我们才能更好的学到东西,不用纸上谈兵,做无用功。

出租车自动计费器设计

参考文献

[1] 徐飞.EDA技术与实践[M].北京:清华大学出版社,2011.[2] 王行,李衍.EDA技术入门与提高[M].西安:西安电子科技大学出版社,2005.[3] 刘昌华.数字逻辑EDA设计与实践[M].北京:国防工业出版社,2011.[4] 李蓉.基于VHDL语言的出租车自动计费器的设计[J].科技风,2008,24:33.出租车自动计费器设计

附 录 JILIANG模块的VHDL编程

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JILIANG IS PORT(CLK,CLK1 : IN STD_LOGIC;START : IN STD_LOGIC;DRIVE : IN STD_LOGIC;BREAK : IN STD_LOGIC;B1,B2 : OUT STD_LOGIC;KM2,KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN1,MIN0 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END JILIANG;

ARCHITECTURE BEHAVE OF JILIANG IS SIGNAL R1:INTEGER RANGE 0 TO 9;SIGNAL K:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL K2,K1,K0 :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL W1:INTEGER RANGE 0 TO 59;SIGNAL M1:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL M0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN RUN:PROCESS(CLK1,DRIVE,BREAK,K0,K1,K2)BEGIN IF START='1' THEN IF DRIVE='0' THEN K0<=“0000”;K1<=“0000”;K2<=“0000”;R1<=0;ELSIF CLK1'EVENT AND CLK1='1' THEN IF DRIVE='1'AND BREAK='0' THEN IF R1=9 THEN R1<=0;IF K0=“1001” THEN K0<=“0000”;k1<=k1+1;

IF K1=“1001” THEN K1<=“0000”;k2<=k2+1;

IF K2=“1001” THEN K2<=“0000”;ELSE K2<=K2+1;

END IF;ELSE K1<=K1+1;END IF;

出租车自动计费器设计

ELSE K0<=K0+1;END IF;ELSE R1<=R1+1;B1<='0';END IF;K<=K2&K1;IF K>“00000010” THEN

IF R1<9 THEN R1<=R1+1;B1<='0';

ELSE R1<=0;B1<='1';

END IF;END IF;END IF;END IF;ELSE K0<=“0000”;K1<=“0000”;K2<=“0000”;END IF;KM0<=K0;KM1<=K1;KM2<=K2;END PROCESS;

PAUSE:PROCESS(CLK,DRIVE,BREAK,M0,M1)BEGIN IF START='1' THEN IF DRIVE='0' THEN M0<=“0000”;M1<=“0000”;W1<=0;ELSIF CLK'EVENT AND CLK='1' THEN IF DRIVE='1' AND BREAK='1'THEN IF W1=59 THEN W1<=0;B2<='1';

IF M0=“1001”THEN M0<=“0000”;M1<=M1+1;

IF M1=“1001”THEN M1<=“0000”;

ELSE M1<=M1+1;

END IF;ELSE M0<=M0+1;END IF;ELSE W1<=W1+1;B2<='0';END IF;END IF;END IF;ELSE M0<=“0000”;M1<=“0000”;END IF;MIN0<=M0;MIN1<=M1;END PROCESS;END ARCHITECTURE;

出租车自动计费器设计 JIFEI模块的VHDL编程

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIFEI IS PORT(B :IN STD_LOGIC;START:IN STD_LOGIC;DRIVE:IN STD_LOGIC;CH2,CH1,CH0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END JIFEI;ARCHITECTURE BEHAVE OF JIFEI IS SIGNAL C2,C1,C0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(B,DRIVE,C0,C1,C2)BEGIN IF DRIVE='0' THEN C0<=“0000”;C1<=“0101”;C2<=“0000”;ELSIF DRIVE='1' THEN IF B'EVENT AND B='1' THEN

IF C0=“1001” THEN C0<=“0000”;

IF C1=“1001”THEN C1<=“0000”;

IF C2=“1001”THEN C2<=“0000”;

ELSE C2<=C2+1;

END IF;

ELSE C1<=C1+1;

END IF;

ELSE C0<=C0+1;

END IF;END IF;END IF;ELSE C0<=“0000”;C1<=“0000”;C2<=“0000”;END IF;CH0<=C0;CH1<=C1;CH2<=C2;END PROCESS;END;

出租车自动计费器设计 SELTIME控制模块的VHDL编程

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

entity seltime is port(clk : in std_logic;CH2,CH1,CH0 : in std_logic_vector(3 downto 0);KM2,KM1,KM0 : in std_logic_vector(3 downto 0);MIN1,MIN0 : in std_logic_vector(3 downto 0);dp : OUT STD_LOGIC;daout : out std_logic_vector(3 downto 0);sel : out std_logic_vector(2 downto 0));end seltime;

architecture behav of seltime is signal sec : std_logic_vector(2 downto 0);begin process(clk)begin if(clk'event and clk='1')then

if(sec=“111”)then sec<=“000”;else sec<=sec+1;end if;end if;end process;process(sec,MIN1,MIN0,CH2,CH1,CH0,KM2,KM1,KM0)begin case sec is when “000”=>daout<=CH0(3 downto 0);dp<='0';when “001”=>daout<=CH1(3 downto 0);dp<='1';when “010”=>daout<=CH2(3 downto 0);dp<='0';when “011”=>daout<=KM0(3 downto 0);dp<='0';when “100”=>daout<=KM1(3 downto 0);dp<='1';when “101”=>daout<=KM2(3 downto 0);dp<='0';when “110”=>daout<=MIN0(3 downto 0);dp<='0';

when “111”=>daout<=MIN1(3 downto 0);dp<='0';when others=>daout<=“XXXX”;end case;end process;

出租车自动计费器设计

sel<=sec;end behav;DELED模块的VHDL编程

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;

ENTITY DELED IS PORT(DP: IN STD_LOGIC;S: IN STD_LOGIC_VECTOR(3 DOWNTO 0);A,B,C,D,E,F,G,H: OUT STD_LOGIC);END DELED;

ARCHITECTURE BEHAV OF DELED IS SIGNAL DATA : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DOUT : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN DATA<=S;PROCESS(DATA,DP)BEGIN IF DP='0' THEN

CASE DATA IS

WHEN “0000”=>DOUT<=“00111111”;

WHEN “0001”=>DOUT<=“00000110”;

WHEN “0010”=>DOUT<=“01011011”;

WHEN “0011”=>DOUT<=“01001111”;

WHEN “0100”=>DOUT<=“01100110”;

WHEN “0101”=>DOUT<=“01101101”;

WHEN “0110”=>DOUT<=“01111101”;

WHEN “0111”=>DOUT<=“00000111”;

WHEN “1000”=>DOUT<=“01111111”;

WHEN “1001”=>DOUT<=“01101111”;

WHEN OTHERS=>DOUT<=“00000000”;

END CASE;ELSE

CASE DATA IS

WHEN “0000”=>DOUT<=“10111111”;

WHEN “0001”=>DOUT<=“10000110”;

WHEN “0010”=>DOUT<=“11011011”;

WHEN “0011”=>DOUT<=“11001111”;

WHEN “0100”=>DOUT<=“11100110”;

WHEN “0101”=>DOUT<=“11101101”;

出租车自动计费器设计

WHEN “0110”=>DOUT<=“11111101”;

WHEN “0111”=>DOUT<=“10000111”;

WHEN “1000”=>DOUT<=“11111111”;

WHEN “1001”=>DOUT<=“11101111”;

WHEN OTHERS=>DOUT<=“10000000”;

END CASE;END IF;END PROCESS;H<=DOUT(7);G<=DOUT(6);F<=DOUT(5);E<=DOUT(4);D<=DOUT(3);C<=DOUT(2);B<=DOUT(1);A<=DOUT(0);END BEHAV;

第四篇:微机原理课程设计——洗衣机控制系统

微机原理与接口技术课程设计

设计题目:设计者:专业 : 班级 : 学号 :

洗衣机控制系统设计

电气工程及其自动化 1

课程设计的意义

1.1 洗衣机的发展状况概述

1.洗衣机的发展史

洗衣服是每个家庭都无法逃避的家庭劳动。洗衣机的出现给人们的生活带来了相当大的方便,它的普及大大降低了大多数家庭的体力劳作。

1858年,美国人汉密尔顿·史密斯制成了第一台洗衣机。1874年,美国人比尔·布莱克斯发明了第一台人工搅动式洗衣机,使得“手洗时代”受到了挑战。1910年美国人研制出了第一台电动式洗衣机。1922年美国玛塔依格公司生产出了第一台搅拌式洗衣机。1932年美德克斯航空公司研制成功了第一台前装式滚筒式洗衣机,这台机衣机能够使洗涤、漂洗、脱水三个步骤在同一个滚中操作。与此同时,世界各地也相继出现了洗衣机。洗衣机工业快速迅猛地发展起来。

1937年第一台自动洗衣机问世。1955年日本研制出波轮式洗衣机。60年代日本出现了半自动洗衣机。70年代生产出了波轮式套桶全自动洗衣机。70年代后期以电脑控制的全自动洗衣机在日本问世。80年代“模糊控制”开始应用于洗衣机中,使得洗衣机能够通过模糊控制使洗衣机操作更加简单,实现智能化。近半个多世纪里,在工业发达国家,全自动洗衣机技术得到广范的应用,其年总产量及社会普及率均以达到相当高的水平。

2.我国洗衣机的发展现状

洗衣机在中国起步较晚,1978年才开始正式生产家用洗衣机。随着改革开放的不断深入,经济的持续增长,人民生活水平的普遍提高,人们对于洗衣机的认识也在不断发展,进入80年代后,中国洗衣机行业一直保持着旺盛的发展形势。目前,洗衣机在我国城市甚至广大农村已得到大范围的普及。中国洗衣机市场正处于快速更新换代阶段,市场潜力巨大,随着家用电器的自动化、智能化发展,人们对于洗衣机的期望也越来越高。1983年,中国洗衣机产量由1978年的400台增至365万台。此后全国各处都大规模的引进国外先进洗衣机技术。中国的洗衣机发展突飞猛进,先进技术的引进、吸收和创新,极大地促进了中国洗衣机的生产能力和产业质量。经过三十年的发展,我国的洗衣机年产量已位于世界第一,将近为世界总年产量的四分之一。

1.2课程设计的意义

课程设计进一步锻炼同学们在微机原理应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的问题。《微机原理与接口技术》课程是我们电气工程及其自动化专业本科生必修的一门技术基础课程。通过该课程的学习使学生对微机系统有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法。

洗衣机控制系统的设计

2.1 设计内容

系统设计并建立一个由微机控制的洗衣机控制系统,并完成: 1.给水和排水的自动控制。2.用户定时时间的设定。3.电机的正反转。

4.各种定时和故障报警电路。5.定时开、关机的控制。6.三分钟延时启动的保护。

7.设计相应的A/D、D/A、键盘、显示接口和传感器测量水位电路,可在线键盘参数设置、定时检测、显示、报警,其中控制输出部分采用模拟量或开关量进行控制。

8,写出相应工作原理,编写程序及程序流程图。

希望实现的功能:智能检测

待洗衣物的智能检测是智能洗衣机能够实现智能的关键技术之一。智能检测利用了模糊控制原理,根据各类传感器提供的洗涤物状态和洗衣机运行参数进行模糊推理。通过各类传感器对布量、布质、温度、浊度的检测来确定洗涤过程中的洗涤水位,洗涤时间,漂洗次数,排水时间,脱水时间等等。三

总体设计方案

3.1 洗衣机系统原理与设计思想

图 1洗衣机示意图

洗衣机的系统(1).涤脱水系统

它主要有盛水桶,洗涤桶和波轮组成。盛水桶又称为外桶,主要用来盛放洗涤液。盛水桶固定在钢制底板上,通过4根吊杆悬挂在洗衣机箱体上。电动机,离合器,排水阀等部件都装在桶底下面。洗涤桶又称为脱水桶或者离心桶,也称为内桶,它的主要功能是用来盛放衣物,在洗涤或漂洗时配合波轮完成洗涤或漂洗功能,在脱水时便成为离心式的脱水桶。波轮是全自动洗衣机中对衣物产生机械作用的主要部件。按波轮的形状来分,基本上有小波轮(直径在160mm左右)的涡卷式水流和大波轮(直径在300mm左右)新水流两类。

(2).进水系统

波轮式全自动洗衣机的进排水系统都采用了电磁阀控制。为了对桶内的水位进行检测和控制,洗衣机上都安装有水位控制器(水位开关)。波轮式全自动套桶洗衣机使用最多的水位开关是空气压力式开关,主要有气压传感器装置,控制装置及电触点开关3部分组成,用来监视水位的高低。此外电磁阀分进水和排水电磁阀,进水电磁阀是洗衣机上的自动进水开关,它受水位开关动断触点的控制。而排水电磁阀是全自动洗衣机上的自动排水装置,同时还起改变离合器工作状态。进水、排水电磁阀是采用电流流过线圈形成磁场的原理,洗衣机电磁阀在进,排水时使用,220V交流电压与电磁阀线圈接通,形成磁场,电磁线圈吸合。自

动打开香蕉阀门,洗衣机里的水就顺着管道流出去了。断电后,电磁阀线圈失去电流,磁场消失,电磁铁松开,橡胶阀门自动关闭,洗衣机里的水就流不出去了。

(3).动机及传动系统

波轮式全自动套桶洗衣机的电动机及传动系统主要由电动机和离合器组成,离合器又有普通离合器和减速离合器两种。其中普通离合器用在采用小波轮的套桶洗衣机上,这种洗衣机在洗涤或者漂洗时波轮的转速和脱水时离心桶的转速相同,目前各种大波轮新水流套桶洗衣机普遍采用减速离合器,它在洗涤,漂洗时波轮的转速较慢,而脱水时离心桶的转速较快。电动机同时作为洗涤和脱水时的动力源,普遍采用主,副绕组完全对称的电容式电动机。

洗衣机的基本工作原理

洗衣机的洗涤原理是由模拟人工洗涤衣物发展而来的,即通过翻滚、摩擦、水的冲刷等机械作用以及洗涤剂的表面活化作用,将附着在衣物上的污垢除掉,以达到洗净衣物的目的。现今,大多数的全自动洗衣机都使用以单片机为核心的控制电路来控制电动机、数码显示管、进水阀、排水阀及蜂鸣器的电压输出,使洗衣机根据程序运转。而在设计全自动洗衣机的控制系统时,要把握好洗涤、漂洗和脱水的时间:

(1).洗涤时间

有人认为,洗涤时间越长,衣物就洗得越干净。其实不然,如果洗涤时间超过一定的限度,衣物不但不会随洗涤时间的延长而提高洗净度,反而会加速衣物的磨损,还会造成能源的浪费。实验证明,洗衣机(波轮式洗衣机)的最佳洗涤时间为5~10分钟,最长也不应超过15分钟。

(2).漂洗时间

在漂洗刚开始的3分钟时间内,残留在衣物上的表面活性剂脱落最快。此后,活性剂脱落趋缓,漂洗10分钟后活性剂几乎不再脱落。一般采用贮水方式漂洗,每次3分钟,漂洗2~3次就可以了。

(3).脱水时间

电动机高速地转动洗涤桶,水份就会由于离心力而脱离衣物被甩出去。脱水时间一般为2~3分钟,时间太短会造成脱水不够彻底,太长又可能会损坏衣物。

总体设计思想

首先构思系统的总体结构,根据设计要求确定好系统大致的硬件组成及其结构,其次根据系统的各个功能把软件分为几个不同的模块。依次实现各个模块的功能,最后把各个模块组合起来已完成整个系统的功能。3.2 洗衣过程流程图

3.3 设计流程图

弄清系统的需求根据系统的需求设计出相应的硬件电路在确定系统硬件结构的基础上,把软件划分为各个模块调试各个模块,并组成一个完整的系统

硬件设计

4.1 硬件设计概要

用Intel的8086作为控制芯片,配合其他接口电路及配套的芯片组成洗衣机的控制电路。主要用到8255串行通行芯片,74LS137三线八线译码器发出片选信号,AD0809以及DA0832模数、数模转换芯片。用一个电位计和AD0809模拟水量信号,DA0832和LM324运放最和来控制直流电机的正反转和停止。此外还用到了4*4扫描键盘作为输入设备,两个共阴数码管作为显示设备。详情见各个芯片的介绍。

4.2 所用到的芯片及其各自功能说明 4.2.1芯片列表

8086,8284,74LS138,8255,AD0809,DA0832,74LS02,LM324 4.2.2 8086的功能简介

Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085(它与8080有组合语言上的原始码兼容性)的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth)的队列(queue)喂指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元都有一个惟一的地址与之对应,其地址范围用十进制表示为0~1048575,用十六进制表示为00000H~FFFFFH。

Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。

Intel 8086有四个 内存区段(segment)寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有

用),可以完全地控制分段,使在编程中使用指针(如C 编程语言)变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。

在这个系统中,8086作为整个系统的主控芯片,用来控制协调整个系统的工作。

4.2.3

8284的功能简介

向8086CPU提供外部的基准时钟信号,并把时钟信号进行功率放大。

4.2.3 74LS138的功能简介

74LS138 为3 线-8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其工作原理如下:

当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电译出。

利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。

若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器,在该系统中,74LS138用来产生各芯片的片选信号。

4.2.4 8255的功能简介

8255特性

(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.(2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.8255引脚功能

RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。

D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行

输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'

A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A0=0,A1=0时,PA口被选择;

当A0=0,A1=1时,PB口被选择;

当A0=1,A1=0时,PC口被选择;当A0=1.A1=1时,控制寄存器被选择

4.2.5 AD0809的功能简介

1、ADC0809 是8 位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。

2、AD0809 的工作原理

IN0-IN7:8 条模拟量输入通道

ADC0809 对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:4条

ALE 为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和C 为地址输入线,用于选通IN0-IN7 上的一路模拟量输入。通道选择表如下表所示。

C B A 选择的通道

0 0 0 IN0

0 0 1 IN1

0 1 0 IN2

0 1 1 IN3 0 0 IN4 0 1 IN5 1 0 IN6 1 1 IN7

数字量输出及控制线:11 条

ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。EOC 为转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0 为数字量输出线。

CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。

4.2.6 DA0832芯片的功能简介

DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

DAC0832的主要特性参数如下:

分辨率为8位;

电流稳定时间1us;

可单缓冲、双缓冲或直接数字输入;

只需在满量程下调整其线性度;

单一电源供电(+5V~+15V);

低功耗,200mW。DAC0832结构:

D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);

ILE:数据锁存允许控制信号输入线,高电平有效;

CS:片选信号输入线(选通数据锁存器),低电平有效;

WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;

WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;

IOUT2:电流输出端2,其值与IOUT1值之和为一常数;

Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;

Vcc:电源输入端,Vcc的范围为+5V~+15V;

VREF:基准电压输入线,VREF的范围为-10V~+10V;

AGND:模拟信号地

DGND:数字信号地 DAC0832的工作方式:

根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。

4.2.7 LM324芯片功能简介

LM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。

LM324的引脚排列图

LM324的特点: 1.短跑保护输出 2.真差动输入级

3.可单电源工作:3V-32V 4.低偏置电流:最大100nA 5.每封装含四个运算放大器。6.具有内部补偿的功能。7.共模范围扩展到负电源 8.行业标准的引脚排列 9.输入端具有静电保护功能 4.3 硬件电路设计系统原理图及其说明

微机总线扩展键盘DB译码电路并行接口功放电路电机驱动电路排水闸驱动电路进水闸驱动电路AB门开关定时器A/D时钟电路水位传感器启动按钮及电路IRQiDBIRQjIRQk

图4.3-1系统总体框架。图4.3-2系统硬件电路

软件设计

5.1 流程图及其说明

正传washytpe秒并刷新数码管开始判断按下启动键FalseTure停转5秒秒并刷新数码管设置洗衣方式其他反转washtype秒秒并刷新数码管FalseWashtype=151从键盘读一个数据2Washtype=10停转5秒秒并刷新数码管修改显示参数更新剩余时间设置洗衣时间设置定时洗衣时间判断到达定时时间TureFalse判断到达洗衣时间TureTure排水并显示当前水量False进水打开并显示当前水量False判断水排干Ture判断水满甩干,电机加速正传2分钟漂洗若干次并甩干,流程同上故障 服务中断程序有故障标志吗?False结束,电机停转,三分钟开机保护14

说明:软件可以分为10大块,分别为主程序、键盘扫描子程序、参数设置子程序、延时子程序、显示子程序、进水子程序、排水子程序、甩干子程序、停止及开机延时保护子程序组成。其中,进水、洗衣、排水为一次洗衣的三个不同状态,由相应的子程序来控制电机的运动和进水排水。它们的关系如图5.1-2.主程序参数设置进水洗衣排水甩干停止及开机保护键盘扫描延时显示 图5.1-2

5.2 源程序及其说明

CODE SEGMENT

ASSUME

CS:CODE

WASHTIME DW

20H

WASHTYPE DW

08H

ONTIME DW

00H

TIME DW

0

ADPORT EQU

0010H

ORG

1000H

IOCONPT EQU

0FF2BH

IOAPT EQU

0FF28H

IOBPT EQU

0FF29H

IOCPT EQU

0FF2AH

ORG

10E0H

DAPORT EQU

0020H

ORG

10A0H

MAIN PROC

;键盘参数设置

MOV

AL,01H

CALL

CONVERS

CALL

DISP

;显示01,提示输入洗衣时间

CALL

KEY

MOV

DL,10

MUL

DL

MOV

WASHTIME,AX

CALL

KEY

CBW

ADD

WASHTIME,AX

K1: MOV

AL,02

;显示02;提示选择洗衣方式

CALL

CONVERS

CALL

DISP

CALL

KEY

CMP

AL,2

JA

K1

CMP

AL,1

JB

K1

CMP

AL,1

JE

RUOXI

CMP

AL,2

JE

QIANGXI

RUOXI: MOV

WASHTYPE,08H

JMP

NEXT

QIANGXI: MOV

WASHTYPE,0FH

NEXT: MOV

AL,03

;显示3,提示输入定时时间

CALL

CONVERS

CALL

DISP

CALL

KEY

MOV

DL,10

MUL

DL

MOV

ONTIME,AX

CALL

KEY

CBW

ADD

ONTIME,AX

MOV

CX,ONTIME

LOOP

K2

K2: CALL

DELAY

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ADD

AX,WASHTIME

ADD

AX,WASHTIME

ADD

AX,WASHTIME

MOV

TIME,AX

CALL

STEP1

;洗衣

MOV

CX,WASHTIME

LOOP

WASH

CALL

STEP3

CALL

SHUAIGAN

CALL

STEP1

;漂洗

MOV

CX,WASHTIME

LOOP

WASH

CALL

STEP3

CALL

SHUAIGAN

CALL

STEP1

;漂洗

MOV

CX,WASHTIME

LOOP

WASH

CALL

STEP3

CALL

SHUAIGAN

CALL

STOP

;洗衣完成,三分钟启动保护

JMP

MAIN

MAIN ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;WASH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

WASH PROC

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

DX,DAPORT

DACON1: MOV

AL,0FFH

OUT

DX,AL

MOV

CX,WASHTYPE

LOOP

W1

W1: CALL

DELAY

DACON2: MOV

AL,80H

OUT

DX,AL

MOV

CX,8H

LOOP

W2

W2: CALL

DELAY

DACON3:

MOV

AL,00H

OUT

DX,AL

MOV

CX,WASHTYPE

LOOP

W3

W3: CALL

DELAY

MOV

AL,80H

OUT

DX,AL

MOV

CX,8H

LOOP

W4

W4: CALL

DELAY

DEC

TIME

MOV

AX,TIME

CALL

CONVERS

CALL

DISP

POP

DX

POP

CX

POP

BX

POP

AX

RET

WASH ENDP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;STEP1;;;;;;;;;;;;;;;;;;;;;;;;

STEP1 PROC

;判断水位

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

ADCONTORL: CALL

FORMAT

ADCON: MOV

AX,00

MOV

DX,ADPORT

OUT

DX,AL

DELAYS: LOOP

DELAYS

MOV

DX,ADPORT

MOV

DX,ADPORT

IN

AL,DX

PUSH

AX

CALL

CONVERS

CALL

DISP

POP

AX

CMP

AL,0EEH

JAE

LA

CALL

JINSHU

LA: MOV

DX,IOCONPT;水满,关水

MOV

AL,89H

OUT

DX,AL

MOV

DX,IOCPT

IN

AL,DX

AND

AL,0FEH

PUSH

AX

MOV

DX,IOCONPT

MOV

AL,80H

OUT

DX,AL

MOV

DX,IOCPT

POP

AX

OUT

DX,AL

POP

DX

POP

CX

POP

BX

POP

AX

RET

STEP1 ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;JINSHU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

JINSHU

PROC

;控制进水

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

DX,IOCONPT

MOV

AL,89H

OUT

DX,AL

MOV

DX,IOCPT

IN

AL,DX

OR

AL,01H

PUSH

AX

MOV

DX,IOCONPT

MOV

AL,80H

OUT

DX,AL

MOV

DX,IOCPT

POP

AX

OUT

DX,AL

POP

DX

POP

CX

POP

BX

POP

AX

JMP

ADCON

JINSHU

ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;XIANSHI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CONVERS:

;字符转换

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

AH,AL

AND

AL,0FH

DISP:

DISP0:

DISP1:

MOV

BX,077AH MOV

DS:[BX],AL INC

BX MOV

AL,AH AND

AL,0F0H MOV

CL,04H SHR

AL,CL MOV

DS:[BX],AL POP

DX POP

CX POP

BX POP

AX RET

;显示 PUSH

AX PUSH

BX PUSH

CX PUSH

DX MOV

DX,077FH MOV

AH,20H MOV

CX,00FFH MOV

BX,DX MOV

BL,DS:[BX] MOV

BH,0H PUSH

DX MOV

DX,0FF22H MOV

AL,CS:[BX+1060H] OUT

DX,AL MOV

DX,0FF21H MOV

AL,AH OUT

DX,AL LOOP

DISP1 POP

DX

DEC

DX

SHR

AH,01H

JNZ

DISP0

MOV

DX,0FF22H

MOV

AL,0FFH

OUT

DX,AL

POP

DX

POP

CX

POP

BX

POP

AX

RET

DATA1:

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0AH

DB

86H,8EH,0FFH,0CH,89H,0DEH,0C7H,8CH,0F3H,0BFH

FORMAT:

;显示初始化

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

BX,0

MOV

WORD PTR DS:[BX+077AH],0000H

ADD

BX,2

MOV

WORD PTR DS:[BX+077AH],0009H

ADD

BX,2

MOV

WORD PTR DS:[BX+077AH],0008H

POP

DX

POP

CX

POP

BX

POP

AX

RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;STEP3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

STEP3 PROC

;判断水是否排干?

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX ADCON1TORL: CALL

FORMAT

ADCON1: MOV

AX,00

MOV

DX,ADPORT

OUT

DX,AL

MOV

CX,0500H

DB

DELAYSS: LOOP

DELAYSS

MOV

DX,ADPORT

IN

AL,DX

PUSH

AX

CALL

CONVERS

CALL

DISP

POP

AX

CMP

AL,08H

JBE

LAA

CALL

PAISHU

LAA: MOV

DX,IOCONPT;排干,停止排水

MOV

AL,89H

OUT

DX,AL

MOV

DX,IOCPT

IN

AL,DX

AND

AL,0FDH

PUSH

AX

MOV

DX,IOCONPT

MOV

AL,80H

OUT

DX,AL

MOV

DX,IOCPT

POP

AX

OUT

DX,AL

POP

DX

POP

CX

POP

BX

POP

AX

RET

STEP3 ENDP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;PAISHU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

PAISHU PROC

;控制进水

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

DX,IOCONPT

MOV

AL,89H

OUT

DX,AL

MOV

DX,IOCPT

IN

AL,DX

OR

AL,02H

PUSH

AX

MOV

DX,IOCONPT

MOV

AL,80H

OUT

DX,AL

MOV

DX,IOCPT

POP

AX

OUT

DX,AL

POP

DX

POP

CX

POP

BX

POP

AX

JMP

ADCON1

PAISHU ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;SHUAIGAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SHUAIGAN PROC

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

DX,DAPORT

MOV

AL,0FFH

OUT

DX,AL

MOV

CX,80H

LOOP

SHUA1

SHUA1: CALL

DELAY

MOV

AL,80H

OUT

DX,AL

POP

DX

POP

CX

POP

BX

POP

AX

RET

SHUAIGAN ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DELAY;;;;;;;;;;;;;;;;;;;;;;;;;;

DELAY:

POP

DX

POP

CX

POP

BX

POP

AX

MOV

CX,0FFFFH

DELAY1: LOOP

DELAY1

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;STOP;;;;;;;;;;;;;;;;;;;;;;;;

STOP PROC

PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

CX,0FFFFH

LOOP

DE

DE: CALL

DELAY

POP

DX

POP

CX

POP

BX

POP

AX

RET

STOP ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;键盘扫描;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

KEY: PUSH

AX

PUSH

BX

PUSH

CX

PUSH

DX

MOV

AL,0FFH

MOV

DX,0FF22H

OUT

DX,AL

MOV

BL,00H

MOV

AH,0FEH

MOV

CX,08H

KEY1: MOV

AL,AH

MOV

DX,0FF21H

OUT

DX,AL

SHL

AL,01H

MOV

AH,AL

NOP

NOP

NOP

NOP

NOP

NOP

MOV

DX,0FF23H

IN

AL,DX

NOT

AL

NOP

NOP

AND

AL,0FH

JNZ

KEY2

INC

BL

LOOP

KEY1

JMP

KEY

KEY2: TEST

AL,01H

JE

KEY3

MOV

AL,00H

JMP

KEY6

KEY3: TEST

AL,02H

JE

KEY4

MOV

AL,08H

JMP

KEY6

KEY4: TEST

AL,04H

JE

KEY5

MOV

AL,10H

JMP

KEY6

KEY5: TEST

AL,08H

JE

KEY

MOV

AL,18H

KEY6: ADD

AL,BL

CMP

AL,10H

JNC

FKEY

MOV

BL,AL

MOV

BH,0H

MOV

AL,BYTE PTR DS:[BX+DATA2]

POP

DX

POP

CX

POP

BX

POP

AX

FKEY: RET

DATA2: DB

07H,04H,08H,05H,09H,06H,0AH,0BH

DB

01H,00H,02H,0FH,03H,0EH,0CH,0DH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CODE ENDS

END

MAIN 收获、体会

在这次微机的课程设计中进一步熟悉的汇编语言的编程方法,借助现代的网络技术,解决问题,不让问题遗留到下一天,极大地加快的进度,也让我们对汇编有了更深一层的认识,并且还让我们初步领略到计算机控制的魅力,可谓一举多得。

课程设计是我们从书本到实践非常关键的一步,当代大学生动手创新能力是社会所急需的,正因如此我们应该加强对自身动手实践能力的锻炼。当今社会计算机科学在应用上得到飞速发展,因此,学习知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最终到达胜利的彼岸。

课程设计中我们不仅培养了我们的实践能力,也培养了我们发现问题、分析问题、解决问题的能力。在学习设计过程中我查询了相关资料,也学习到了很多东西。感谢老师的谆谆教导和学校给我们提供了这么一次机会。

参考文献

微型计算机技术及应用,戴梅萼,清华大学出版社

第五篇:软件工程课程设计(自动售货机)

《软件工程》课程设计报告

一、问题描述

(一)关于自动售货机

自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。

(二)自动售货机的设计

自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币和一分币。其它货币都被认为是假币。机器拒收假币,并将其从退币孔退出。当机器接收了有效的硬币之后,将之送入硬币储藏器。顾客支付的货币根据硬币的面值进行累加。

自动售货机装有货物分配器,每个分配器中包含0 个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果有货,且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将找零返回到退币孔。如果无货,则和顾客支付的货币值相等的硬币将被送到退币孔。如果顾客支付的货币值小于所选货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的硬币将从退币孔中退出。

二、需求分析

(一)UML自动售货机系统功能需求:

自动售货机系统是一种无一元等3个硬币投币口。顾客确认购货后,售货机可根据硬币的面值进行累加。

自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过 1 选择货物分配器来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送加到退币孔。如果顾客支付的货币值少于所选择的分配器中的货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,将所投硬币从退币孔退出。

(二)UML自动售货机系统控制要求:

根据售货机自动控制系统的流程可以知道自动售货机的主要系统包括:计币系统、比较系统、选择系统、饮料供应系统、退币系统和报警系统。

1.计币系统:

当有顾额色买饮料时,投入的钱币经过感应器,感应器记忆投币的个数关且传送到检测系统(即电子天平)和计币系统。只有当电子天平测量的重量少于误差值时,允许计币系统进行叠加钱币,叠加的钱币数据存放在数据寄存器中。如果不正确时,认为是假币。既定出投币,既定出系统,等待新顾客。

2.比较系统:

投入完毕后,系统会把钱币数据和可以购买饮料的价格进行区间比较,当投入的钱币小于2元时,指示灯亮,显示投入的钱币不足。此时可以再投币或选择退币。当投稿的钱币在2~3元之间时,汔水选择指示灯长亮。当大于3元时,汔水和咖啡的指示灯同时长亮。此时可以选择饮料或选择退币。

3.选择系统:

比较电路完成后选择电路指示灯是长亮的,当按下汽水或咖啡选择时,相应的选择指示灯由长亮转为以1秒为周期闪烁。当饮料供应完毕时,闪烁同时停止。

4.饮料供应系统:

当按下选择按钮时,相应的电磁阀(Y4或Y6)和电机(Y3或Y5)同时启动。在饮料输出的同时,减去相应的购买钱币数。当饮料输出达到8秒时,电磁阀首先关断,小电机继续工作0.5秒后停机。此小电机的作用是:在输出饮料时,加快输出。在电磁阀关断时,给电磁阀加压作用,加速电磁阀的关断。(注:由于该售货机是长期使用,电磁阀使用过多时,返回弹力减少,不能完全关断会出现漏饮料的现象。此时电机Y3和Y5延长工作0.5秒起到电磁阀加压的作用,使电磁阀可以完好的关断。)

5.退币系统:

当顾客购完饮料后,多余的钱币只要按下退币按钮。系统就会把数据寄存器D2内的钱币数首先除以10得到整数部分,是1元钱需要退回的数量,存放在D10里。余数存放在D11里。再用D11除以5得到的整数部分是5角钱需要退回的数量,存放在D12里。余数存放在D13里。最后D13里面的数值,就是1角钱需要退回的数量。在选择退币的同时启动3个退币电机。3个感应器开始计数,当感应器记录的个数等于数据寄存器退回的币数时,退币电机停止运转。

6.报警系统:

报警系统如果是非故障报警,只要通过网络通知送液车或者送币车即可。但是如果是故障报警则需要通知维修人员到现声进行维修。同时停止服务,避免造成顾客的损失。

(三)业务流程图

钱币记录仪对钱币前端接受顾客投的进行识别币判断退出钱币发送信息到分配器判断没有货物时发送信息到前端发送货物4

(四)数据流程图

钱币钱币记录仪对分配器反钱币钱币进行计算与货物价格进货物发放行比较取走零钱与购买的货物

三、各种UML图型及其分析

(一)用例图

1.顾客的用例图

inputCoinchooseSodaCustomer

2.自动售货机的用例图

RegisterDispenserFrontSodaMachine

(二)类图

(三)序列图

理想状态(不找零钱)的序列图

:Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: releaseSoda()8 1.没有货物的序列图

:Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: displayPrompt()12: sendReturnCoin()13: returnCoinToFront()14: returnCoin()9 2.3.需找零钱的序列图

:Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: sendSodaPrice()12: checkForChange()13: releaseChange()14: receiveSoda()15: receiveChange()10

没有零钱找给顾客

:Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnSodaFree()6: displayPrompt()7: chooseSoda()8: sendChooseToDis()9: checkAvailability()10: releaseSoda()11: sendSodaPrice()12: checkForCharge()13: returnNoCharge()14: returnCoinToFront()15: displayPrompt()16: returnSodaToDispenser()17: returnCoin()11 4.5.完整的序列图

:Front:Register:Dispenser : Customer1: inputCoin()2: accept()3: getCustomerInput()4: checkForSoda()5: returnNoCharge()6: returnCoinToFront()7: displayPrompt()8: returnCoin()9: End()10: returnSodaFree()11: displayPrompt()12: chooseSoda()13: sendChooseToDispenser()14: checkAvailability()15: returnUnavailability()16: displayPrompt()17: sendReturnCoin()18: returnCoinToFront()19: returnCoin()20: End()21: releaseSoda()22: sendSodaFrice()23: checkForCharge()24: returnNoCharge()25: returnCoinToFront()26: displayPrompt()27: returnSodaToDispenser()28: returnCoin()29: End()30: releaseCharge()31: receiveSoda()32: receiveCharge()33: End()34: receiveSoda()35: End()12

(四)协作图

1.理想状态的协作图

3: getCustomerInput()9: checkAvailability()4: checkForSoda():Registe:Dispensrer8: sendChooseToDis()2: accept()5: returnSodaFree()1: inputCoin()10: releaseSoda()7: chooseSoda():Front : Customer6: displayPrompt()11: releaseSoda()2.没有货物的协作图

1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()11: displayPrompt()14: returnCoin()13: returnCoinToFront()8: sendChooseToDis()2: accept()5: returnSodaFree()12: sendReturnCoin()10: releaseSoda()3: getCustomerInput()9: checkAvailability()4: checkForSoda():Registe:Dispensrer 3.需找零钱的协作图

1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()14: receiveSoda()15: receiveChange()13: releaseChange()8: sendChooseToDis()2: accept()5: returnSodaFree()10: releaseSoda()3: getCustomerInput()12: checkForChange()9: checkAvailability()4: checkForSoda():Registe:Dispensrer11: sendSodaPrice()4.没有零钱找给顾客的协作图

1: inputCoin()7: chooseSoda():Front : Customer6: displayPrompt()15: displayPrompt()17: returnCoin()13: returnNoCharge()14: returnCoinToFront()8: sendChooseToDis()16: returnSodaToDispenser()2: accept()5: returnSodaFree()3: getCustomerInput()10: releaseSoda()12: checkForCharge()9: checkAvailability()4: checkForSoda():Registe:Dispensrer11: sendSodaPrice()

完整的协作图

29: End()33: End()35: End()1: inputCoin()12: chooseSoda():Front : Customer7: displayPrompt()8: returnCoin()11: displayPrompt()16: displayPrompt()19: returnCoin()26: displayPrompt()28: returnCoin()31: receiveSoda()13: sendChooseToDispenser()32: receiveCharge()27: returnSodaToDispenser()34: receiveSoda()10: returnSodaFree()5: returnNoCharge()15: returnUnavailability()6: returnCoinToFront()21: releaseSoda()18: returnCoinToFront()24: returnNoCharge()14: checkAvailability()25: returnCoinToFront()30: releaseCharge()2: accept()17: sendReturnCoin():Dispenser4: checkForSoda()3: getCustomerInput()22: sendSodaFrice()23: checkForCharge():Register15 5.(五)状态图

提示投币do/ 请求投币do/ 提示是假币假币do/ 检查硬币真币否购买do/ 存储硬币,计算货币总值do/ 确认投完硬币有do/ 请求选择商品选择货品do/ 提示无货无货do/ 检测货品存量有货计算小于do/ 比较货币总值和货物价值do/ 提示货币不足不小于确认do/ 确认顾客购买do/ 送出货品,请求取货有零钱退币无零钱do/ 请求退币不购买显示do/ 提示交易完成17

(六)活动图

1.投币的活动图

投币确认投币完成2.选择货物的活动图

请求选择输入货物确认选择货物ID 3.前端的活动图

接受货币显示可购显示面值货物过小显示没有该货物接受饮料显示没有零钱找零钱退货币 19

货币记录仪的活动图

接受从前端来的钱币判断钱币发送信息给分配仪发送货物金额给前端返回钱币计算零钱20 4.5.分配器的活动图

接受货币启示录仪的信息发送货物提示没有该货物 21

(七)组件图

CustomerSodaMachineFrontRegisterDispenserDB_0

(八)配置图

Clint数据库

(九)数据模型图

下载自动洗衣机课程设计报告word格式文档
下载自动洗衣机课程设计报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    EDA课程设计—自动售票机

    燕 山 大 学 EDA课程设计报告书 题目:自动售票机 姓名: 班级: 学号: 成绩: (注:此文件应以同学学号为文件名) 一、设计题目及要求 1.设计题目:自动售票机 2.设计要求: ⑴、每次投一......

    出租车自动计费器设计(课程设计报告)课件

    目录 1 绪论 .........................................................................................................................................................

    电子技术课程设计智能洗衣机控制器(最终5篇)

    电子技术基础课程设计 ——智能洗衣机控制器 目录 一、课程设计的目的 二、课程设计的课题与要求 1.课程设计的课题 2.课程......

    电子课程设计洗衣机控制电路(共五则)

    电子课程设计 ——洗衣机控制电路 学院:电子信息工程学院......

    ATM自动取款机C++课程设计

    C++课程设计 学校: 惠州学院 题目: 设计ATM自动取款机系统 系别: 电子科学系 班级: 11电信2班 学号: 110703229 姓名: 王志勇2014年4月21日 一、课程设计目的及要求 1.1设计目的 1......

    基于PLC的自动洗车机课程设计

    电气控制与PLC课程设计 院 系:工学院电气与电子工程系专 业:电气工程及其自动化班 级:电气工程姓 名:学 号:指导教师: 题目:自动洗车机 XXXX班 XXXXXX XXXXXXXXXXXX XXXXXX 二......

    洗衣机调研报告五篇范文

    产品设计调研报告 从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打 …… 这些不断重......

    洗衣机实训报告

    湖北轻工职业技术学院(设计)课题:全自动洗衣机plc控制学生:蒋承学号:0905031224 专业:电子仪器测量班级:电仪(2)班指导教师:劳泽峰完成日期:2010年12月24日 全自动洗衣机设计报告 第......