基于单片机的洗衣机的控制系统设计内容摘要:

水位到位时, K1 闭合。 在进水期 间,系统不断检测 K1,当检测到 K1 闭合就停止进水; ③按键 K2,接 P1. 6,作为工作过程中的启动键; ④按键 K3 是洗衣强度选择键,接 P3. 4,每按一次代表一种强度。 分别是标准、弱洗、强洗和自编,由 4 个指示灯进行显示; ⑤ 按键 K4,接 P3. 5,对洗衣时间进行设置,并用数码管 LEDl 和 LED2 显示: ⑥按键 K5,接 P3. 6,对漂洗、脱水次数进行设置,并用数码管 LEDI 显示; ⑦压电蜂鸣器接 P1. 7,作为洗衣时间到以及故障发生的报警器。 洗衣机的功能及设计 图六 控制电路 ( 2)洗衣机状态显示 74LSl38 译码器为 3—8 译码器,选用它可以解决 I/ 0 口线数量不足问题。 从控制要求可知,洗衣机的工作模式以及工作程序必须有 7 中不同的显示加以区别。 74LSl38 译码器的输入端 C、 B、 A 分别接 P1. P1. P1. 5,输出端分别与 7 个发光二极管 DOD6 的阴极相连,发光二极管阳极接电源。 输出端YO 控制 D0“弱洗 ”指示灯: Y1 控制 D1“标准洗 ”指示灯, Y2 控制 D2“强洗 ”指示灯, Y3 控制 D3“自编 ”指示灯, Y4 控制 D4“洗衣 ”指示灯, Y5 控制 D5“漂洗 ”指 示灯, Y6 控制 D6“脱水 ”指示灯 洗衣机的功能及设计 图七 状态显示图 ( 3)输出控制电路 输出控制电路由触发器电路和相应的双向晶闸管组成。 控制电机正反转以及进水阀和排水阀的开启和关闭。 通过触发器电路和相应的双向晶闸管,电动机的正转和反转用单片机 P1. 1 和 P1. 2 进行控制;进水电磁阀和排水电磁阀用单片机的 P3. 0 和 P3. 1 进行控制 ( 4)整体设计图 把上述电路图整合在一起如图所示 洗衣机的功能及设计 图七 整体设计图 洗 衣机软件系统设计 (1)主程序设计 根据硬件设计要求 ,控制主程序流程图如图 所示。 洗衣机通电之后,单片机上电,首先进行程序的初始化,包括定时器 O、外部中断 O、外部中断 l的初始化,以及各参数初值的设定。 默认洗衣强度为 “标准洗 ”,漂洗次数 3 次。 然后扫描 KK K K5 键的状态,确定洗衣强度 R洗衣时间 R3 和漂洗次数 R4。 洗衣机处于待命状态,控制指示灯显示洗衣强度, 液晶 显示预设洗衣时间。 当发现启动键 K2 按下,洗衣机从待命状态进入工作状态。 完成进水 —— 洗涤 —— 脱水 —— 漂洗的循环过程。 当洗衣结束时,控制蜂鸣器发声。 洗衣机的功能及设计 图八 主程序流程图 1进水程序设计 当 P3. 0=1 时,打开进水电磁阀开始进水。 当水位到达要求时, P1. 0=0,即水位开关 K1 闭合,关闭进水电磁阀, P3. 0=0,迸水结束; 2洗涤过程程序设计 电机正反转均为 10S,根据 R2 的值确定洗衣强度、洗衣时间 R3 以及电动机的间歇时间。 开始 结束 报警。 脱水、漂洗程序 洗涤程序 进水程序 启动。 初始化 查询洗衣强度 R2 的值 查询洗衣时间 R3 的值 查询漂洗次数 R4 的值 洗衣机的功能及设计 图九 洗涤过程流程图 3脱水、漂洗过程程序设计 脱水前先打开排水阀排水 1min。 然后启动电动机脱水 1min,并保持排水阀开启 ,然后停止脱水。 接着判断漂洗次数即 R4 的值,若 R4 为 0 则洗衣结束,开蜂鸣器提醒洗衣结束,系统返回初始待命状态;若 R4 不为 0,则再次执行进水操作,进入下一循环。 程序如下图所示: 图十 脱水、漂洗程序流程图 (2)内部定时中断设计 洗衣开始 电机正转 10s 电机停转 延时 1s 进入漂洗脱水程序 电机反转 10s 剩余时间=0 R2=0。 关脱水,关脱水阀 漂洗脱水开始 开排水闸 开电动机脱水 继续漂洗 关蜂鸣器 开蜂鸣器报警 R4=0。 洗衣机的功能及设计 工作过程中所需的各种计时均有定时器 0 定时中断服务 64 程序提供。 单片机晶振频率 12Mllz,定时器 0 选择工作方式 1,设置时间常数,每 0. 1S 中断~次。 中断处理程序流程图如下图所示。 图十一 内部定时中断流程图 (3)外部中断设计 为了防止外部电压过高或过低对洗衣机的电器及控制硬件产生破坏,用外部中断 0 进行保护。 当电压过高或过低时,引起外部中断 0,洗衣机停止一切动作,进入保护状态。 用外部中断 1 来实现洗衣过程停止工作。 在洗衣过程中,当暂停键 K0 按下时,引起外部中断 1,转入中断 1 处理程序。 中断 l 处理程序将使洗衣机停止工作,并将停止前的状态存储起来。 当按下启动键 K2 时,洗衣机又恢复工作。 程序设计流程图 中断入口 显示子程序 计数清零 秒值加 1 秒值清 0 分值减 1 是否到1s 是否到 1民、 中断返回 洗衣机的功能及设计 图十二 外部中断流程图 ( 4)源程序 include //各个引脚功能定义 sbit key_move_stop = P2^0。 //启动、暂停按键 sbit key_wash_dehydration = P2^1。 //洗涤、脱水按键 sbit key_water_detection = P3^2。 //水位检测按键 外部中断 0 sbit key_cap_open = P3^3。 //机盖装置按键 外部中断 1 sbit LED1 = P0^0。 //启动指示灯 sbit LED2 = P0^1。 //暂停指示灯 sbit LED3 = P0^2。 //洗涤指示灯 sbit LED4 = P0^3。 //脱水指示灯 sbit LED5 = P0^4。 //进水阀指示灯 sbit LED6 = P0^5。 //排水阀指示灯 sbit LED7 = P0^6。 //水位满指示灯 sbit LED8 = P0^7。 //机盖松指示灯 sbit LED9 = P2^7。 //报警指示灯 sbit LS138A = P2^2。 //数码管片选 中断入口 相关寄存器进栈 暂停否。 相关寄存器出栈 置外部中断控制字 中断返回 洗衣机的功能及设计 sbit LS138B = P2^3。 sbit LS138C = P2^4。 sbit BEEP = P2^6。 //蜂鸣器报警 sbit PWM = P2^5。 //直流电动机 //共阴数码管 09 unsigned int code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}。 unsigned int i=0,LedNumVal=0。 //数码管计时 09 选择 unsigned int lednum = 0。 //定时器 0 数码管计时速率调控变量 unsigned int LedOut[3]。 //数码管计时存储区 unsigned char key_s,key_v。 //按键扫描变量 static unsigned int m = 0。 //启动、暂停键计数变量 static unsigned int movenum = 0。 //暂停功能变量 /***********************************************************/ unsigned char scan_key() //启动 /暂停键。 洗涤 /脱水键扫描 { unsigned char Key_s。 Key_s = 0x00。 Key_s |= key_wash_dehydration。 Key_s = 1。 Key_s |= key_move_stop。 return Key_s。 } /************************************************************/ void delay( unsigned int a) //数码扫描延时子程序 { unsigned char b。 for(。 a 0。 a) for(b = 200。 b 0。 b)。 } 洗衣机的功能及设计 /**********************************************************/ void。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。