课程设计(论文)-基于单片机的全自动洗衣机设计.doc_第1页
课程设计(论文)-基于单片机的全自动洗衣机设计.doc_第2页
课程设计(论文)-基于单片机的全自动洗衣机设计.doc_第3页
课程设计(论文)-基于单片机的全自动洗衣机设计.doc_第4页
课程设计(论文)-基于单片机的全自动洗衣机设计.doc_第5页
免费预览已结束,剩余24页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论 洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,而全自动式洗衣机因使用 方便更加得到大家的青睐,全自动即进水、洗涤、漂洗、甩干等一系列过程自动完成,控 制器通常设有几种洗涤程序,对不同的衣物可选择不同的洗涤方式。 近几十年,在工业发达国家,全自动洗衣机制造技术又得到迅速发展,其年总产 量及社会普及率均以达到相当高得水平。 全自动洗衣机的发展首先表现在洗涤方式发生巨大变化。原先大多侧重于水流的 改变、动力的加大。现在,超音波、电解水、臭氧和蒸汽洗涤的运用,使洗衣机的去 污能力从单纯依靠洗衣粉、洗涤剂的化学作用和强弱变化的水流机械作用,向更高层 次的健康、环保洗涤方式转变,特别是电解水、超音波技术在洗衣机行业的运用几乎 改变了洗衣机的历史洗衣不用或少用洗衣粉、洗涤剂,减少化学品对皮肤的损害 和对环境的污染。电解水、臭氧、蒸汽的杀菌除味及消毒功能倍受青睐,引发了洗衣 机消费健康潮。 另一变化就是高度自动化、智能化、人性化。从半自动、全自动到现在流行的人 工智能、模糊控制,只需按一下按钮一切搞定!同时,用户可以按照自己的洗衣习惯, 自主选择时间和方式,自编和记忆程序让用户真正做到随心所欲。人性化还表现在使 用的方便和舒适,如子母分洗洗衣机可以做到不同衣物分开洗;斜桶和顶开滚筒可以 做到取放衣物方便不需深弯腰;蒸汽烘干功能使得晾晒更加方便,dd 直驱电机在节能 降噪方面效果更加突出,等等。 业内人士表示,尖端洗涤技术的革新,所表现出的洗衣方式更加注重健康和个性 化,已在市场发展中倍受欢迎。 2 目录 绪论绪论 - - 2 2 - - 一一 全自动洗衣机设计方案全自动洗衣机设计方案 - - 4 4 - - 1.1 按键 - 4 - 1.2 洗衣机自检 - 4 - 1.3 显示 - 4 - 1.4 洗衣程序 - 4 - 二二 硬件电路介绍硬件电路介绍 - - 5 5 - - 2.1cpu 选择 .- 5 - 2.2 传感器 - 5 - 2.5 显示器 - 7 - 三三 软件设计软件设计 - - 8 8 - - 3.1 模糊控制方式 - 8 - 3.2 软件流程图及其代码 - 9 - 心得体会心得体会 - - 2929 - - 参考文献参考文献 - - 3030 - - 3 一 全自动洗衣机设计方案 本设计实现了对洗衣机整个洗衣过程的控制,包括用户参数输入、洗衣、漂洗、 排水和脱水等阶段。控制系统主要由电源电路、数字控制电路和机械控制电路三大模 块构成。电源采用三端集成固定稳压器 7805 提供+5v 电源,数字控制电路负责控制洗 衣机的工作过程,主要由 at89s51 单片机、三位共阴数码管、按键、蜂鸣器、led 指 示灯组成;机械控制电路实现传感器检测、电机驱动、进水、排水等功能,主要由水 位检测器、电动机、传动系统部件、进水排水电磁阀组成。 1.1 按键 洗衣机面板上有 6 个按钮 k1、k2、k3、k4、k5 和 k6 k1 为启动暂停键:按奇数次视为启动,偶数次视为暂停。 k2 用于洗衣程序选择:按一下选择洗涤,按两下选择漂洗,按三下选择脱水。 k3 用于洗衣方式选择:按一下选择标准洗方式,按两下选择快速洗方式,按三下 选择轻柔洗方式。 k4 用于水位选择:按一下进水至低水位,按两下进水至中水位,按三下进水至高 水位。 k5 用于时间选择:按一下洗衣时间短,按两下洗衣时间适中,按三下洗衣时间长。 1.2 洗衣机自检 洗衣机上电后,先进行自检,包括检查安全开关,排水阀状态,进水阀工作过程, 电机的运转等,若发现异常现象则蜂鸣器响,报警灯亮。 1.3 显示 洗涤、漂洗及脱水时间都通过倒计时的方式显示在 3 个 led 上,依次为分位,秒 十位和秒个位,此外,还有发现异常现象时错误信息的显示 1.4 洗衣程序 洗涤过程:通电后,若不选择洗衣周期,则洗衣机从洗涤过程开始。进入洗涤 过程,首先进水阀接通,开始向洗衣机供水,当到达要求水位时,进水阀断电关闭, 停止进水;电机 m 接通,带动波轮旋转,形成洗衣水流。电机 m 是一个正反转电机, 可以形成往返水流,有利于洗涤衣物。 4 漂洗过程:与洗涤过程操作相同,只是时间短一些。 脱水过程:洗涤或漂洗过程结束后,电机 m 停止转动,排水阀 m 接通,开始排 水。排水阀动作的同时,电机 m 也接通,使电机可以带动内桶转动。当水位低到一定 值,再经过一段时间后,电机开始正转,带动内桶高速旋转,甩干衣物。 二 硬件电路介绍 2.1cpu 选择 本次设计采用 51 系列,而 51 系列的典型产品是 8051。8051 是一种 40 引脚双列 直播式芯片。它含有 4kb 可反复烧录及擦除内存和 128 字节的 ram,有 32 条可编程控 制的 i/o 线,5 个中断发源,指令与 mcs-51 系列完全兼容。选用它作为核心控制新片, 可使电路极大地简化,而且程序的编写及固化也相当方便、灵活。选用它设计制作全 自动洗衣机控制电路,该电路的组成相对简单,工作原理清晰,易于理解。 89c51 引脚图如图 2-1 所示 2.2 传感器 本次设计中用到 4 个传感器,分别为:ts 污浊度传感器、温度传感器、负载传感 图 2-189c51 引脚图 5 器和水位传感器。其中污浊度、温度和负载传感器输出的都是模拟信号,需要通过 a/d 转换才能作为单片机的控制信号,而水位传感器本身输出的就是数字信号,所以不需 要通过 a/d 转换,直接可用做单片机的控制信号。 1.ts 污浊度传感器 浑浊度检测传感器(内部原理图如图 2-2所示)的主要原理是光电耦合器,而普通的 光电耦合器不能有效的检测洗衣机水的浑浊度。光电耦合器的光源必须是红外光才能 准确的检测浑浊度。ts 浊度传感器是 ge 公司开发的一种专门用于家电产品的低成本传 感器,主要用于洗衣机、洗碗机等产品的水污浊程度的测量。 图 2-2 浊度传感器内部原理图 2.温度传感器 温度传感器有四种主要类型:热电偶、热敏电阻、电阻温度检测器(rtd)和 ic 温 度传感器下)。ic 温度传感器又包括模拟输出和数字输出两种类型。 我们常用温度传感器有 ds18b20、ad590 等,它们都是集成温度传感器。 ds18b20 输出是数字信号可以直接和单片机相连,而且硬件连接电路少,但需要对其 进行复杂的软件编程。 本设计我们选用 ad590 作为温度传感器。ad590 比 ds18b20 精度更高、线性度 误差小,且不需要温度报警和复杂的程序编程,非常适合用于洗衣机的温度检测传感 器。它的主要特性如下: 流过器件的电流(ma)等于器件所处环境的热力学温度(开尔文)度数。 ad590 的测温范围为-55+150。 ad590 的电源电压范围为 4v30v。电源电压可在 4v6v 范围变化,电流变化 1ma,相当于温度变化 1k。ad590 可以承受 44v 正向电压和 20v 反向电压,因而器件反 接也不会被损坏。 输出电阻为 710mw。 精度高。ad590 共有 i、j、k、l、m 五档,其中 m 档精度最高,在-55+150 范围内,非线性误差为0.3。 3.负载传感器 根据模糊控制要求,负载检测时通过检测电动机的反电动势来实现的,而电动机 6 的反电动势比单片机所用电压大的多,不能直接采样,必须经过隔离。采用线性光电 耦合器既能隔离高电压和干扰,又能得到满意的检测信号。 4.水位传感器 谐振式水位传感器(原理图如图 2-5 所示),采用了新型的传感原理 ,把水位的高低 ,通 过水位传感器直接变成水位与频率的对应关系。衣物的洗净度、水流强度、洗涤时间 等参数的检测 ,对模糊控制洗衣机在节水、节能、减少洗涤时间方面起决定性的作用。 图 2-5 水位传感器原理图 2.5 显示器 显示器有 led 和 lcd 两种。 lcd(liquid crystal display)是液晶显示器英文名称的缩写,液晶显示器是一种被动 式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的 特征,达到白底黑字或黑底白字显示的目的。 led(light emiting diode)是发光二极管英文名称的缩写。led 显示器是由发光 二极管构成的,所以在显示器前面冠以“led” 。本次设计只是显示时间,所以采用 led 就可以达到目的了。 常用的 led 为 8 段或 7 段。每一个段对应一个发光二极管。这种显示器有共阳极 和共阴极 2 种。led 显示器有静态显示和动态显示 2 种方式。led 显示器工作于静态显 示方式时,各位的共阴极(共阳极)连接在一起并接地(或+5v) ;每位的段码线(a- dp)分别与一个 8 位的锁存器输出相连。之所以称之为静态显示,是因为各个 led 的 显示字符一经确定,相应锁存器锁存的段码输出将维持不变,直到送入另一个的段码 为止。正因为如此,静态显示器的亮度都较高,但静态现实的缺点是占用口线太多, 如果显示器的位数太多,则需要加锁存器,因此一般情况下采用动态显示。 led 不同位显示的时间间隔应根据实际情况而定。发光二极管从导通到发光有一定 的延时,导通时间太短,则发光太弱,人眼无法看清,但也不能太长,因为要受限于 临界闪烁频率,而且时间越长,占用 cpu 时间也越多,本次设计我们采用 1ms 延时。 7 三 软件设计 本次设计是基于模糊控制理论上的全自动洗衣机,模糊控制是利用负载、衣质、 浊度、水温等检测所得到信息,进行分段评估计算使其模糊化,再根据模糊规则进行 推理,最后根据所激活的规则进行解模糊判决,以决定最适当和明确的水位、洗涤时 间、洗涤方式以及脱水时间等。 3.1 模糊控制方式 洗涤量和水量的确定: 如果检测到衣物量很多,则洗涤量多,水位高; 如果检测到衣物量较多,则洗涤量较多,水位适中; 如果检测到衣物量很少,则洗涤量少,水位低。 脱水时间的确定: 如果检测到衣物很多,则脱水时间长; 如果检测到衣物较多,则脱水时间适中; 如果检测到衣物很少,则脱水时间短。 洗涤时间的确定: 如果检测到衣物很多,布质以棉布偏多且水温低,则洗衣时间长; 如果检测到衣物较多,布质以化纤偏多且水温偏高,则洗衣时间适中; 如果检测到衣物较少,布质以棉布偏多且水温偏高,则洗衣时间适中; 如果检测到衣物很少,布质以化纤偏多且水温高,则洗衣时间短。 漂洗时间的确定: 寄存器注释 r4,r5比较标准值 r4 高位,r5 低位 r6,r7a/d 转换结果 r6 高位,r7 低位 20h衣量多位 21h衣量少位 22h衣量适中位 23h化纤多位 24h棉多位 27h1s 中断标志位 2ah1s 中断次数 30h,31h洗涤时间 32h,33h漂洗时间 34h,35h脱水时间 36h,37h排水时间 38h漂洗次数 3ah电机正转时间 8 如果检测到洗涤水很脏,则漂洗时间长; 如果检测到洗涤水较脏,则漂洗时间适中; 如果检测到洗涤水不脏,则漂洗时间短 3.2 软件流程图及其代码 本次设计是分模块进行编写的,以下就是各模块的流程图及其代码 1.主程序流程图如图 3-2 所示 3bh电机反转时间 3ch电机转速 3d洗涤量投放时间 40h显示分缓存器 41h显示秒十缓存器 42h显示秒个缓存器 44h零水位 45h低水位 46h中水位 47h高水位 48h水位检测值 50h启动/暂停键按键次数 51h程序键按键次数 52h选择键按键次数 53h水量键按键次数 54h时间键按键次数 程序代码: main: mov sp,#60 lcall chushi ;调初始化程序 setb ea ;cpu 允许中断 mov tmod,#10h ;设置定时器 1 方式 mov 28h,#0ah ;装入定时中断次数 loop: lcall xianshi ;调显示子程序 lcall jianpan ;调键盘扫描子程序 sjmp loop 设置堆栈指针 调洗衣机初始化程序 允许定时器中断 自检 调显示子程序 调键盘扫描子程 序 开始 图 3-2 主程序流程图 9 2.显示子程序流程图如图 3-3 所示 显示内容送缓冲区 设显示缓冲区指针 40h-r0 扫描模式置初值-r2 r2-8155c口 取显示数据段码 送8155a口 延时1ms 显示缓冲器r0加1 r3左移1位 y n 显示到最后 一位吗? 入口 返回 图 3-3 显示子程序流程图 程序代码: xianshi: mov r0,40h ;置缓冲器指针初值 mov r2,#01h ;置位选初值 mov a,r2 ld0: mov dptr,#7f03h ;位选送 8155c 口 mov dptr,a dec dptr dec dptr mov a,r0 add a,#0dh ;加偏移量 movc a,a+pc dir1: movx dptr,a ;段码送 8155a 口 acall dl1ms ;调 1ms 延时 inc r0 mov a,r2 jb acc.2,ld1 ;三位都显示完了吗 rl a ;没完,显示位右移 mov a,r2 ajmp ld0 ld0: ret dseg: db 3fh,06h,5bh,4fh,66h,6dh db 7dh,07h,7fh,6fh,77h,7ch db 39h,5eh,79h,71h,73h,3eh db 31h,6eh,1ch,23h,40h,03h db 18h,00 dl1ms: mov r7,02h dl: mov r6,#0ffh dl6: djnz r6,dl6 djnz r7,dl ld1: ret 10 3.键盘扫描子程序流程图如图 3-4 所示 程序代码: jianpan: jb p1.0,k2 ;判断是 k1 键按下吗,不是则转 k2 lcall dl10ms ;调 10ms 延时消抖 jb p1.0,k2 ;再次读 p1.0 状态,若仍为 0,则 k1 键确定按下 lcall pk1 ;调 pk1 处理 k2: jb p1.1,k3 ;判断是 k2 键按下吗,不是则转 k3 lcall dl10ms ;调 10ms 延时消抖 jb p1.1,k3 ;再次读 p1.0 状态,若仍为 0,则 k2 键确定按下 lacll pk2 ;调 pk2 处理 k3: jb p1.2,k4 ;判断是 k3 键按下吗,不是则转 k4 lcall dl10ms ;调 10ms 延时消抖 jb p1.2,k4 ;再次读 p1.2 状态,若仍为 0,则 k3 键确定按下 lcall,pk3 ;调 pk3 处理 k4: jb p1.3,k5 ;判断是 k4 键按下吗,不是则转 k5 入口 有键按下吗? 次数加1,转水量设置 返回 暂停 次数加1,转时间设置 是干扰吗? 是启动/暂停键吗? 是程序键吗? 次数加1,转方式设置 次数加1,转程序设置 是选择键吗? 是时间键吗? 是水量键吗? 次数加1, 是奇数次按下吗? 转运行程序 y n n y n y y n y n y n y n n y 图 3-4 键盘扫描子程序流程图 入口 是第一次按 下吗? 是第三次按 下吗? 是第二次按 下吗? 返回 调洗涤子程序 调脱水子程序 调漂洗子程序 y n y n y n 图 3-5 程序设置子程序流程图 11 lcall dl10ms ;调 10ms 延时消抖 jb p1.3,k5 ;再次读 p1.3 状态,若仍为 0,则 k4 键确定按下 lcall pk4 ;调 pk4 处理 k5: jb p1.4,return ;判断是 k5 键按下吗,不是则转 k6 lcall dl10ms ;调 10ms 延时消抖 jb p1.4,return ;在此读 p1.4 状态,若仍为 0,则 k4 键确定按下 lcall pk5 ;调 pk5 处理 return: ret pk1: inc 50h ;按键次数加 1 mov a,50h ;判断是奇数次按下吗 mov b,#2 div ab mov a,b jz a,zanting ;若为偶数次按下,则转暂停状态 lcall yunzhuan ;若为奇数次按下,则进入运转程序 zanting: inc 50h ;按键次数加 1 mov a,50h ;判断是奇数次按下吗 mov b,#2 div ab mov a,b jz a,zanting ;若为偶数次按下,则暂停 lcall yunzhuan ;若为奇数次按下,则进入运转程序 return: ret 4.程序设置子程序流程图如图 3-5 所示 程序代码: pk2: inc 51h ;按键次数加 1 mov a,51h cjnz a,#1,l2 ;是第一次按下吗,不是转 l2 lcall xidi ;是第一次按下,则调用洗涤子程序 l2: cjnz a,#2,l3 ;是第二次按下吗,不是转 l3 lcall piaoxi ;是第二次按下,则调用漂洗子程序 l3: cjnz a,#3,return ;是第三次按下吗,不是则返回 lxall tuoshui ;是第三次按下,则调用脱水子程序 return: ret 5.洗衣方式选择子程序流程图如图 3-6 所示 程序代码: pk3: inc 52h ;按键次数加 1 mov a,52h ; mov dptr,#7f02h cjne a,#1,l4 ;是第一次按下吗, ,不是转 l4 mov a,#0efh ;是第一次按下,则标准洗涤指示灯亮 movx dptr,a 12 mov a,52h l4: cjne a,#2,l5 ;是第二次按下吗,不是转 l5 mov a,#0dfh ;是第二次按下,则快速洗涤指示灯亮 movx dptr,a mov a,52h l5: cjne a,#3,return ;是第三次按下吗,不是则返回 mov a,#0bfh ;是第三次按下,则轻柔洗涤指示灯亮 movx dptr,a return: ret 6.水量设置子程序流程图如图 3-7 所示 程序代码: pk4: inc 53h ;按键次数加 1 mov a,53h cjne a,#1,l6 ;是第一次按下吗,不是转 l6 mov 45h, #08h ;是第一次按下,则进水至低水位 l6: cjne a,#2,l7 ;是第二次按下吗,不是转 l7 mov a,46h,#09h ;是第二次按下,则进水至中水位 l7: cjne a,#3,returen ;是第三次按下吗,不是则返回 mov a,47h,#10h ;是第三次按下,则进水至高水位 return: ret 7.时间设置子程序流程图如图 3-8 所示 程序代码: pk5: inc 54h ;按键次数加 1 mov a,54h cjne a,#1,l8 ;是第一次按下吗,不是转 l8 mov 48h,#01h ;是第一次按下,则时间选择 5min 入口 是第一次按 下吗? 是第三次按 下吗? 是第二次按 下吗? 返回 选择标准洗涤 选择轻柔洗涤 选择快速洗涤 y n y n y n 图 3-6 洗衣方式选择子程序流程图 入口 是第一次按 下吗? 是第三次按 下吗? 是第二次按 下吗? 返回 注水至低水位 注水至高水位 注水至中水位 y n y n y n 图 3-7 水量设置子程序流程图 13 入口 是第一次按 下吗? 是第三次按 下吗? 是第二次按 下吗? 返回 选择短时间5min 选择长时间15min 选择适中时间 10min y n y n y n 图 3-8 时间设置子程序流程图 入口 通道选择 读取结果 调平均值计算 转换结束了吗? 都转换完 了吗? 返回 启动转换 y n n y 图 3-9a/d 转换流程图 入口 读安全开关 状态为低电平吗? 开排水阀 开进水阀 返回 指示灯亮 启动电机 读排水阀状态 为低电平吗? 到低水位了吗? 到高水位了吗? 停止电机 报警 报警 水位复位了吗? 关排水阀 n n y y n y n y y n 图 3-10 自检子程序流程图 入口 判断是否 为全自动 进入半自动洗涤 调漂洗子程序 返回 调检测子程序 调洗涤子程序 n y 图 3-11 运转程序流程图 入口 是第一次按 下吗? 是第三次按 下吗? 是第二次按 下吗? 返回 选择短时间5min 选择长时间15min 选择适中时间 10min y n y n y n 图 3-8 时间设置子程序流程图 mov 49h,#2ch l8: cjne a,#2,l9 ;是第二次按下吗,不是转 l9 mov 48h,#02h ;是第二次按下,则时间选择 10min 14 mov 49h,#58h l9: cjne a,#3,return ;是第三次按下吗,不是则返回 mov 48h,#38h ;是第三次按下,则时间选择 15min mov 49h,#40h return: ret 8.a/d 转换流程图如图 3-9 所示 9.自检子程序流程图如图 3-10 所示 程序代码: zijian: mov dptr,#7f02h ;自检指示灯亮 mov a,#0fbh movx dptr,a jb p1.6,baojing1 ;读安全开关状态,异常则报警 jb p2.3,baojing2 ;读排水阀状态,异常则报警 mov 45h,#08h ;置低水位值 mov 47h,#09h ;置高水位值 mov 44h, #00h ;置零水位值 clr p2.4 ;开进水阀 lcall shuijian ;调水位检测 mov a,45h l10: cjne a,48h,l10 ;到底水位了吗,到了启动电机 clr p2.0 lacll shuijian mov a,47h l11: cjne a,48h,l11 ;到高水位了吗,到了开排水阀 clr p2.3 lcall shuijian mov a,44h l12: cjne a,48h,l12 ;是零水位吗,是则检测完毕 setb p2.4 setb p2.0 setb p2.3 mov a,#offh movx dptr,a baoojing1: mov 40h,#0eh ;显示异常代码 mov 41h,#0 mov 42h,#1 clr p1.7 ;蜂鸣器响,报警灯亮 jb p1.5,baojing1 ;判断是否有人为干扰 setb p1.7 baojing2: mov 40h,#0eh ;显示异常代码 mov 41h,#0 mov 42h,#2 clr p1.7 ;蜂鸣器响,报警灯亮 15 电机运转3s 调洗涤量(水量检 测) 进水至检测水位 读水位值-4ah 电机运转30s 调衣量检测 调水位检测读水位值 -4bh 进水至检测水位 电机运转15s 调衣质检测 调温度检测 确定洗衣时间 入口 返回 图 3-12 检测子程序流程图 jb p1.5,baojing2 ;判断是否有人为干扰 setb p1.7 ret 10.运转程序流程图如图 3-11 所示 程序代码: yunzhuan: lcall panduan ;调判断子程序 jz ld1 ;为 1 为全自动 lcall jianpan ld1: lcall jiance lcall xidi lcall paishui ret panduan: orl a,51h ;各按键次数相与,为 1 为全自动 orl a,52h orl a,53h orl a,54h ret 11.检测子程序流程图如图 3-12 所示 程序代码: jiance: mov 39h,#3 ;电机运转时间 3s lcall dianji1 lcall shuiliang lcall jinshui mov 39h,#30 ;电机运转时间 30s lcall dianji1 lcall yiliang lcall shuijian lcall jinshui mov 39h,#15 ;电机运转时间 15s lcall dianji1 lcall zhiyi lcall wendu lcall shijian ret dianji1: clr p2.0 ;开电机 setb tr1 ;开定时器 loop1: jnb 27h,loop1 clr 27h dec 39h cjne 39h,#o,loop1 clr tr0 setb p2.0 ret 16 12.洗涤量、水量检测子程序流程图如图 3-13 所示 程序代码: shuiliang: lcall zhuanhuan0 mov r4,#00h ;标准最大值 mov r5,#0a0h mov a,r6 ;与标准最大值比较 cjne a,#00h,ld2 mov a,r7 clr c subb a,r5 jnc ld2 mov r4,#00h ;标准最小值 mov r5,#05h mov a,r6 ;与标准最小值比较 cjne a,#00h,ld3 mov a,r7 clr c subb a,r5 jc ld3 mov 46h, ;进水至中水位 mov 3ch,#10 ;洗涤量投放时间适中 ajmp return ld2: mov 47h, ;进水至高水位 mov 3ch,#15 ;洗涤量投放时间长 ajmp return ld3: mov 45h, ;进水至低水位 mov 3ch,#5 ;洗涤量投放时间短 return: ret 13.衣量检测子程序流程图如图 3-14 所示 程序代码: yiliang: lcall zhuanhuan0 mov r4,#00h ;标准最大值 mov r5,#0a0h mov a,r6 ;与标准最大值比较 cjne a,#00h,ld4 mov a,r7 clr c subb a,r5 jnc ld4 mov r4,#0h ;标准最小值 mov r5,#05h mov a,r6 ;与标准最小值比较 cjne a,#00h,ld5 17 调a/d转换 入口 转换结果 与标准最大值比较大于 最大值吗? 转换结果 与标准最小值比较小于 最小值吗? 进水至高水位,洗涤 量投放时间长 n n y y 返回 进水至低水位,洗涤 量投放时间短 进水至中水位,洗涤 量投放时间适中 图 3-13 洗涤量、水量检测子程序流程图 mov a,r7 clr c subb a,r5 jc ld5 setb 22h mov 34h,#01h ;脱水时间适中 mov 35h,#2ch mov 80h,#4 ;脱水倒计时暂存 mov 81h,#5 mov 82h,#9 ajmp: return ld4: setb 20h mov 34h,#02h ;脱水时间长 mov 35h,#58h mov 80h,#9 mov 81h,#5 mov 82h,#9 ajmp: return ld5: setb 21h mov 34h,#00h ;脱水时间短 mov 35h,#0b4h mov 80h,#2 mov 81h,#5 mov 82h,#9 return: ret 14.衣质检测子程序流程图如图 3-15 所示 程序代码: yizhi: mov a,4ah ;读第一次水位值 clr c subb a,4bh ;读第二次水位值 mov r5,#o5h clr c subb a,r5 ;两次值相减比较 jnc ld6 setb 23h ajmp return ld6: setb 24h return: ret 18 两次水位值相减 入口 结果 与标准最大值比较大于 最大值吗? n n y 返回 将23h位置1 将24h位置1 图 3-15 衣质检测子程序流程图 调a/d转换 入口 转换结果 与标准最大值比较大于 最大值吗? 转换结果 与标准最小值比较小于 最小值吗? 脱水时间长,将20h位 置1 n n y y 返回 脱水时间短,将21h位 置1 脱水时间适中,将22h 位置1 图 3-14 衣量检测子程序流程图 调a/d转换 入口 转换结果 与标准最大值比较大于 最大值吗? 转换结果 与标准最小值比较小于 最小值吗? 将25h位置 1 将26h位置 1 将27h位置 1 n n y y 返回 图 3-16 温度检测子程序流程图 15.时间确定子程序流程图如图 3-16 所示 程序代码: 19 入口 开进水阀 调水位检测 水位到了吗? 关排水阀 返回 n y 图 3-17 进水子程序流程图 weudu: lcall zhuanhuan1 mov r4,#00h ;标准最大值 mov r5,#f0h mov a,r6 ;与标准最大值比较 cjne a,#00h,ld7 mov a,r7 clr c subb a,r5 jnc ld7 mov r4,#00h ;标准最小值 mov r5,#0eh mov a,r6 ;与标准最小值比较 cjne a,#00h,ld8 mov a,r7 clr c subb a,r5 jc ld8 setb 27h ;温度适中位置 1 ajmp return ld7: setb 25h ;温度高位置 1 ajmp return ld8: setb 26h ;温度低位置 1 return: ret 16. 进水子程序流程图如图 3-17 所示 程序代码: jinshui: clr p2.4 ;开进水阀 loop4: lcall shuijian ;调水位检测 mov a,48h cjne a,45h,ld11 ;检测值与标准值比较 ajmp l10 ld11: cjne a,46h,ld12 ajmp l10 ld12: cjne a,47h,loop4 l10: setb p2.4 ;若水位到了,关闭进水阀 ret 17. 水位检测子程序流程图如图 3-18 所示 程序代码: shuijian: mov tmod,#04h ;定时器 t0 设置为计数方式 mov th0,#00h ;计数初值 mov tl0,#00h setb tr0 ;启动定时器 mov 48h,tl0 ;记录检测值 ret 20 入口 开计数器,开始计数 返回 读计数值-48h 图 3-18 入口 调a/d转换 返回 调漂洗程序 转换结果与 标准值比较大于标准值吗? y n 图 3-19 18.污浊度检测子程序流程图如图 3-19 所示 程序代码: zhuodu: lcall zhuanhuan2 ;调 a/d 转换 mov r4,#00h ;标准值 mov r5,#08h mov a,r6 ;结果与标准值比较 cjne a,#00h,ld12 mov a,r7 clr c subb a,r5 jnz return ld12: lcall piaoxi ;大于标准值则调漂洗子程序 return: ret 19.污浊度检测 1 子程序流程图如图 3-20 所示 程序代码: zhuodu1: lcall zhuanhuan2 ;调 a/d 转换 mov r4,#00h ;标准最大值 mov r5,#90h mov a,r6 ;与标准最大值比较 cjne a,#00h,ld13 mov a,r7 clr c subb a,r5 jz ld13 ;大于标准最大值转 mov r4,#00h ;标准最小值 mov r5,#09h 入口 调a/d转换 返回 漂洗时间长 转换结果与 标准最大值比较大于最大 值吗? y 转换结果与 标准最小值比较小于最小 值吗? 漂洗时间适中 漂洗时间短 y n n 图 3-20 污浊度检测 1 子程序流程图 21 入口 置转速 停止电机 置电机正转时间 启动电机 停止电机 置电机反转时间 启动电机 时间到了吗? 时间到了吗? n y n y 图 3-21 电机运转子程序流程图 mov a,r6 ;与标准最小值比较 cjne a,#00h,ld14 mov a,r7 clr c subb a,r5 jnz ld14 ;小于标准最小值转 mov 36h,#01h ;漂洗时间适中 mov 37h,#0e0h mov 86h,#7 ;漂洗时间倒计时暂存 mov 87h,#5 mov 88h,#9 ajmp return ld13: mov 36h,#02h ;漂洗时间长 mov 37h,#0d0h mov 86h,#0bh mov 87h,#5 mov 88h,#9 ld14: mov 36h,#00h ;漂洗时间短 mov 37h,#0fh mov 86h,#3 mov 87h,#5 mov 88h,#9 return: ret 20.电机运转子程序流程图如图 3-21 所示 程序代码: dianji: mov 3ch,#0a0h ;置转速初值 loop7: mov 3ah,#60 ;置电机正转时间 clr p2.0 ;启动电机正转 setb tr0 ;开定时器 loop5: jnb 29h,loop5 ;1s 到了吗 clr 29h ;到了,标志位清 0 dec 3ah ;时间减 1 cjnz 3ah,#00h,loop5 ;正转时间到了吗 clr tr0 ;到了,关定时器 setb p2.0 ;正转停止 mov 3bh,#60 ;置电机反转时间 clr p2.1 ;启动电机反转 setb tr0 loop6: jnb 29h,loop6 clr 29h dec 3bh cjnz 3bh,#00h,loop6 clr tr0 22 入口 洗涤灯亮 调排水子程序 调洗涤1子程序 调洗涤剂投放程序 确定洗涤时间 调脱水子程序 灭洗涤灯 返回 判断是全自动吗? n y 图 3-22 洗涤子程序流程图 setb p2.1 ajmp return 21.洗涤子程序流程图如图 3-22 所示 程序代码: zhuxi: mov dptr,#7f02h ;洗涤灯亮 mov a,#0feh movx dptr,a lcall puanduan ;判断是否全自动 jz ld14 ;是全自动转 lcall jianpan ;不是,转半自动 ld14: lcall xidi1 ;调洗涤 1 lcall paishui ;调漂洗 lcall tuoshui ;调脱水 mov dptr,#7f02h ;洗涤结束,洗涤 灯灭 mov a,#0feh movx dptr,a ret puanduan: orl a,51h orl a,52h orl a,53h orl a,54h ret 22.洗涤 1 子程序流程图如图 3-23 所示 程序代码: xidi: lcall dianji ;调电机运转 setb tr1 ;开定时器 mov 40h,83h ;显示洗涤倒计时时间 mov 41h,84h mov 42h,85h loop6: jnb 27h,loop6 ;1s 到了吗 clr 27h ;到了,清标志位 dec 30h ;洗涤时间减 1 cjne 30h,#00h,loop6 dec31h cjne 31h,#00h,loop6 ;洗涤时间结束了吗 clr tr1 ;结束,关定时器 ret 23 23.洗涤量投放子程序流程图如图 3-24 所示 程序代码: xidiji: clr p2.2 ;开洗涤量投放阀门 setb tr1 ;开定时器 loop7: jnb 27h,loop7 clr 27h dec 3dh cjne 3dh,#00h,loop ;投放时间到了吗 clr tr1 ;到了,关定时器 setb p2.2 ;关阀门 ret 24.漂洗子程序流程图如图 3-25 所示 程序代码: piaoxi: mov dptr,#7f02h ;漂洗灯亮 mov a,#0fdh movx dptr,a lcall puanduan ;判断是全自动吗 jz ld4 ;是全自动转 lcall jianpan ld4: lcall yipiao ;调一漂 lcall erpiao ;调二漂 djnz 38h,ld4 ;两次漂洗都完了吗 mov dptr,#7f02h ;灭漂洗灯 mov a,#0feh movx dptr,a ret 25.一漂和二漂子程序流程图如图 3-26 所示 程序代码: 入口 调电机运转程序 显示洗涤倒计时时间 返回 洗涤结束了吗? y n 图 3-23 洗涤 1 子程序流程图 入口 时间到了吗? 返回 开投放阀门 开始计时 n y 3-24 洗涤量投放子程序流程图 24 入口 漂洗灯亮 调一漂子程序 返回 漂洗两次都完了吗? 灭漂洗灯 调二漂子程序 判断是全自动吗?确定漂洗时间 n y n y 图 3-25 漂洗子程序流程图 入口 调进水子程序 调排水子程序 返回 调脱水子程序 调漂洗1子程序 图 3-27 一漂和二漂子程序流程图 yipiao: lcall jinshui ;调进水 lcall piaoxi1 ;调漂洗 1 子程序 lcall paishui ;调排水 lcall tuoshui ;调脱水 dec 38h ;漂洗次数减 1 ret erpiao: lcall jinshui lcall piaoxiji lcall paishui lcall tuoshui dec 38h ret 26.漂洗 1 子程序流程图如图 3-27 所示 程序代码 piaoxi1: lcall dianji ;调电机运转 setb tr1 ;开定时器 mov 40h,86h ;显示漂洗倒计时时间 mov 41h,87h mov 42h,88h loop8: jnb 27h,loop8 clr 27h dec 32h ;漂洗时间减 1 cjne 32h,#00h,loop8 dec 33h 25 入口 调电机运转子程序 返回 停止电机 显示漂洗倒计时时间 漂洗结束了吗? n y 图 3-27 漂洗 1 子程序流程图 入口 脱水灯亮 返回 开排水阀 确定脱水时间判断是全自动吗? 置脱水转速 启动电机 显示脱水倒计时时间 脱水结束了吗? 停止电机 灭脱水灯 关排水阀 n y n y 图 3-28 脱水子程序流程图 cjne 33h,#00h,loop8 ;漂洗时间到了吗 clr tr1 ;到了关定时器 ret 27.脱水子程序流程图如图 3-28 所示 26 程序代码 tuoshui: mov dptr,#7f02h ;脱水灯亮 mov a,#0f7h movx dptr,a lcall puanduan ;判断是全自动吗 jz ld15 ;是全自动转 lcall jianpan ld15: mov 3ch,#0b0h ;置脱水转速 clr p2.3 ;开排水阀 clr p2.0 ;启动电机 setb tr1 ;开定时器 mov 40h,80h ;显示脱水倒计时时间 mov 41h,81h mov 42h,82h loop9: jnb 27h,loop9 clr 27h dec 34h cjne 34h,#00h,loop9 dec 35h cjne 35h,#00h,loop9 ;脱水时间到了吗 clr tr1 ;到了,关定时器 setb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论