简单洗衣机控制基于单片机_第1页
简单洗衣机控制基于单片机_第2页
简单洗衣机控制基于单片机_第3页
简单洗衣机控制基于单片机_第4页
简单洗衣机控制基于单片机_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、1. 用单片机控制洗衣机 通信1411 于波2. 项目名称:项目九:洗衣机控制3. 项目内容及要求;内容: 设自动洗衣机的控制要求是:启动后先开启进水阀进水,水位到达设定值后关闭,然后波轮按正转5秒、反转5秒,正、反转之间停3秒的规律不断循环转动,直至达到设定时间停止,之后打开排水阀放水,水放完后洗衣桶旋转脱水,1分钟后停止并关闭排水阀,洗衣过程结束。要求水位设置不少于高、中、低三档,洗衣时间在312分钟范围内可调,以1分钟为单位,排水时间定为1分钟。运动执行器用指示灯模拟,水位用开关模拟,试设计该洗衣机的控制电路。要求:1. 画出控制系统的框图,说明系统方案设计的思路、理由或依据;2. 选择

2、、确定组成控制系统的各个单元,并阐述选择确定的原则或依据;3. 画出完整的电气原理图,介绍整体电路的工作原理、性能或特点;4. 如采用单片机控制,给出单片机程序的流程图和清单,说明程序的工作原理。5. 制作实物电路,验证设计、制作是否正确。4. 题目分析及设计思路;(弄清楚要完成设计的技术要点、关键是什么,有哪些需要注意的事项,可以采用哪些方法和手段,有哪些可用的方案或电路形式,等等。) 要完成本项目设计的技术要点是对洗衣机的整个运行流程深刻理解之后,再用程序将他表现出来,说以关键就在于程序的编写。需要注意的是运动执行器是用指示灯模拟,水位用开关模拟,还要求水位设置不少于高、中、低三档,洗衣时

3、间在312分钟范围内可调所以大概就要用到6个发光二极管和8个复位按键,因此就要对整个流程控制的逻辑顺序有个很好的设计。对于程序的编写可以采用单片机或PLC(就目前所学而言),而对于这样一个简单的小程序就采用单片机即可。5. 方案设计说明;(在充分调研、思考的基础上确定电路方案并说明理由。画出电路的系统框图,说明系统框图的原理。)一开始看到这个题目我就打算使用单片机来完成本设计,因为单片机使用方便,只需一个最小系统即可,在宿舍就可完成对程序的编写和修改,而PLC价格昂贵且不能随时可用。就本项目采用单片机而言需要一个单片机最小系统,思维数码管及驱动,一组LED和按键。系统框图:MCU(AT89C5

4、1)四位数码管八个控制按键六个LED指示灯通过对八个按键的操作,可对水位设置,洗衣时间设置,开始洗衣,水位确定。四位数码管可显示水位的设置值,洗衣时间设置值,还有洗衣时间计时等。六个LED有两个表示洗衣机波轮的正反转,两个进水和排水,一个脱水,一个洗衣指示灯。通过编写程序实现单片机对按键,四位数码管和发光二极管的控制。启动开进水阀进水是否达到设定水位关进水阀正转5秒停止3秒反转5秒停止3秒是否达到设定时间开排水阀脱水1分钟水是否放完停止脱水关排水阀结束系统流程图:否否否6. 单元设计说明;(按项目的具体要求撰写,没有可不写。) 单片机最小系统: 系统框图:MCU(AT89C51)复位电路时钟电

5、路输入/输出设备电源 最小系统电路图:7. 完整电路原理分析;(按项目的具体要求撰写) 通过单片机扫描水位设置按键和洗衣时间设置按键来设置水位和洗衣时间在四位数码管上显示设置的值和计时时间。进水阀指示灯亮表示进水阀已打开,正转和反转指示灯亮表示洗衣机波轮的正转和反转。脱水阀亮表示脱水阀已打开可以排水。 8. 制作、调试情况;(如实介绍,重点介绍制作、调试过程中遇到的问题和解决问题的方法) 在制作,调试中遇到了许多大大小小的问题,在这选一些较为重要的写出。1 在焊接完单片机最小系统进行调试时指示灯不会亮,也不能下载程序,经过几番检查发现指示灯正负接反,单片机引脚焊点有虚焊点。2 编写好程序进行调

6、试时,四位数码管不能正常显示,经检查发现共阳的数码管使用了共阴的数码管编码。3 在调试程序中,发现四位数码管显示较暗且有闪烁,经多次调试,将数码管显示程序写在定时器中断函数里,发现结果好多了。4 在测试程序中发现按键不起作用,检查了程序和硬件电路发现按键连接的是地,而程序写的高电平接通。改了下程序结果就出来了。9. 实训成果;(如实介绍实训成果的情况) 八个按键从左到右的作用:按键1水位设置和洗衣时间设置切换选择,按键2和按键3是加减数值,按键4是启动,按键5按键6按键7按键8是表示水位的零水位和高中低水位。10. 心得体会: 通过本次实训,收获颇多,感觉自己有进步了一点,许多东西只用大脑去想

7、是不行的,理论可行但实际可不可行就不知道,这就需要实际动手操作了才知道,一开始看了这个项目觉得很简单,随便编写个程序就可以了,但实际坐下来就没有那么简单了,首先硬件电路焊接就出现许多问题,跟别说编写和调试程序就用了一个多星期。不过实际做出来,感觉还是挺好的。这也让我进一步了解了单片机的使用,掌握了一些运动控制的思路与方法。11. 附件:完整程序#include <reg51.h> #define uint unsigned int#define uchar unsigned charuchar gewei,shiwei;uchar xiyitime,num3;uchar shuiw

8、eizhi,shuiwei;uint num1,num2;sbit wei1=P10;sbit wei2=P11;sbit wei3=P12;sbit wei4=P13;sbit shuiwei0=P14;/sbit shuiwei1=P15; /低水位sbit shuiwei2=P16;/中水位sbit shuiwei3=P17; / 高水位sbit shezhi_key=P20;sbit qidong_key=P21;/sbit xiyi_key=P20;sbit up_key=P22;sbit down_key=P23;sbit shuifa=P24;sbit paishuifa=P25

9、;sbit zhengzhuang=P26;sbit fanzhuang=P27;sbit tuoshui=P36;sbit zhishiled=P37;/此表为 LED 的字模, 共阴数码管 0-9 - unsigned char code segtab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e; /段码控制unsigned char code segtab1=0x40,0x4F,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; /共阴0-9带

10、小数点编码/延时X毫秒函数11.0592Mhz时void delay_xms(uint xms) uint i,j; for(i=xms;i>0;i-) for(j=110;j>0;j-);/延时X秒函数void delay_s(uint xs) uint x; for(x=xs;x>0;x-) delay_xms(1000);/延时X分钟函数void delay_min(uint xmin) uint m,n; for(m=xmin;m>0;m-) for(n=60;n>0;n-) delay_s(1); /取操作数的个十位void chuli(uint num

11、) gewei=num%10; shiwei=(num/10)%10;/按键扫描函数void keysaomiao() uchar jianzhi; if(shezhi_key=0) delay_xms(10); if(!shezhi_key) jianzhi+;if(jianzhi>2) jianzhi=1; while(!shezhi_key); if(jianzhi=1)/水位设置 if(up_key=0) delay_xms(10); if(up_key=0) shuiwei+; if(shuiwei>3) shuiwei=0; while(!up_key); if(dow

12、n_key=0) delay_xms(10); if(down_key=0) if(shuiwei<=0) shuiwei=3; shuiwei-; while(!down_key); chuli(shuiwei); P0=segtabgewei; wei1=0; delay_xms(5); wei1=1; P0=segtabshiwei; wei2=0; delay_xms(5); wei2=1; P0=0xFE; wei3=0; delay_xms(5); wei3=1; P0=0x9C; wei4=0; delay_xms(5); wei4=1; if(jianzhi=2) if(

13、up_key=0) delay_xms(10); if(up_key=0) xiyitime+; if(xiyitime>12) xiyitime=3; while(!up_key); if(down_key=0) delay_xms(10); if(down_key=0) xiyitime-; if(xiyitime<3) xiyitime=12; while(!down_key); chuli(xiyitime); P0=segtabgewei; wei1=0; delay_xms(5); wei1=1; P0=segtabshiwei; wei2=0; delay_xms(5

14、); wei2=1; P0=0xF7; wei3=0; delay_xms(5); wei3=1; P0=0xA3; wei4=0; delay_xms(5); wei4=1; /水位检测子函数void shuiweijiance() if(shuiwei0=0) delay_xms(10); if(shuiwei0=0) shuiweizhi=0; while(!shuiwei0); if(shuiwei1=0) delay_xms(10); if(shuiwei1=0) shuiweizhi=1; while(!shuiwei1); if(shuiwei2=0) delay_xms(10)

15、; if(shuiwei2=0) shuiweizhi=2; while(!shuiwei2); if(shuiwei3=0) delay_xms(10); if(shuiwei3=0) shuiweizhi=3; while(!shuiwei3);/初始化函数void init() num2=60; num3=4; shuiweizhi=0; xiyitime=3; TMOD=0x01; /TH0=(65536-45872)/256;/11.0592M晶振 /TL0=(65536-45872)%256; TH0 = 0xB1;/12M晶振 TL0 = 0xE0; EA=1; ET0=1; /

16、*主函数*/ void main() uint i,j; init(); P0=0xbf; wei1=0; wei2=0; wei3=0; wei4=0; while(qidong_key) keysaomiao();/水位和洗衣时间设置 num3=xiyitime-1; if(qidong_key=0) delay_xms(10); if(qidong_key=0)/启动键按下 shuifa=0; /开进水阀进水 while(shuiwei!=shuiweizhi)/检测是否到达设定水位 shuiweijiance();chuli(shuiweizhi);P0=segtabgewei;wei

17、1=0;delay_xms(5); wei1=1;P0=segtabshiwei;wei2=0;delay_xms(5); wei2=1;delay_xms(5);chuli(shuiwei);P0=segtabgewei; wei3=0; delay_xms(5); wei3=1; P0=segtabshiwei; wei4=0; delay_xms(5); wei4=1; while(i<100) i+;shuiweijiance();chuli(shuiweizhi);P0=segtabgewei;wei1=0;delay_xms(5); wei1=1;P0=segtabshiwe

18、i;wei2=0;delay_xms(5); wei2=1;delay_xms(5);chuli(shuiwei);P0=segtabgewei; wei3=0; delay_xms(5); wei3=1; P0=segtabshiwei; wei4=0; delay_xms(5); wei4=1; delay_s(1); while(j<300) j+;chuli(shuiwei); P0=segtabgewei;wei1=0;delay_xms(5);wei1=1;P0=segtabshiwei;wei2=0;delay_xms(5);wei2=1;chuli(xiyitime);P

19、0=segtabgewei;wei3=0; delay_xms(5);wei3=1;P0=segtabshiwei; wei4=0;delay_xms(5); wei4=1; shuifa=1;zhishiled=0; TR0=1; while(!num3=0) if(num2>=59) zhengzhuang=0; if(num2=55) zhengzhuang=1;if(num2=52) fanzhuang=0;if(num2=46) fanzhuang=1;if(num2=42) zhengzhuang=0;if(num2=35) zhengzhuang=1;if(num2=30) fanzhuang=0;if(num2=23) fanzhuang=1;if(num2=19) zhengzhuang=0;if(num2=13) zhengzhuang=1;if(num2=9) fanzhuang=0;if(num2=3) fanzhuang=1; TR

温馨提示

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

评论

0/150

提交评论