版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 全自动洗衣机课程设计 基于单片机,语言实现。 C51基本要求 模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间(洗衣程序可自定义,时间精度:秒)。 洗衣时交替正、反转。 扩展要求 洗衣和脱水时电机转速不同。增加水位传感器输入。故障报警。增加声音提示。其它自定义功能。 设计用Preteus仿真: 仿真图如下: C文件函数代码: #include /*/ #define uchar unsigned char #define uint unsigned int /*/ /*/ sbit mo_r = P32; /电机右控制线
2、sbit mo_l = P33; /电机左控制线 /*/ sbit key_menu = P34; / 菜单按键 / 开始按键sbit key_on = P35; 结束按键sbit key_off = P36; / sbit key_se = P37; / 菜单选择按键 /*/ sbit led_in = P00; / 进水指示灯 sbit led_xi = P01; / 洗衣指示灯 sbit led_pao = P02; / 泡洗指示灯 脱水指示灯 / sbit led_xx = P03; sbit led_out = P04; / 出水指示灯 sbit led_over = P05; /
3、洗衣结束指示灯 sbit led_work = P06; / 电机工作指示灯 sbit led_wring = P07; / 报警指示灯 sbit other = P31; / 脱水电源控制开关 sbit anther = P30; / 洗衣电源控制开关 /*/ uchar code num10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; / /*/ 时间秒 / char sec = 0; / 时间分 char min = 0; 中断计数 / uchar count=0; 洗衣机工作状态标志/ uchar flag0=0; 进水次数标志
4、uchar flag1=0; / 出水次数标志 / uchar flag2=0; 泡洗次数标志/ uchar flag3=0; / 报警标志 uchar err =0; 正反转计数uchar quan = 0;/*/ / 函数声明 /*/ void delay();/ 延时函数 void in(); / 进水子程序 void out(); / 出水子程序 void over(); / 结束子程序 void xi(); / 洗衣子程序 void pao(); / 泡衣子程序 void xx(); / 脱水子程序 void on(); / 工作on处理子程序 void se(); / 显示菜单选择
5、 void SEG_display(); /显示时间子程序 void key_scan(); / 按键扫描子程序 /*/ / 延时函数 /*/ void delay(uint i) uint x,y; for(x=i;x0;x-) for(y=120;y0;y-); /*/ / 工作on处理子程序 /*/ void on() TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1; ET0=1; TR0=1; P0 = 0xff; if(flag0 = 0) in(); if(flag0 = 1) xi(); if(flag0 =
6、 2) pao(); if(flag0 = 3) xx(); if(flag0 = 4) out(); /*/ / 结束子程序 /*/ void over() other=0; anther=0; P0 = 0xff; mo_r=0; mo_l=0; led_over = 0; EA=0; /*/ / 进水子程序 /*/ void in() anther=0; other=0; P0 = 0xff; led_in = 0; flag1+; mo_r = 0; mo_l = 0; min = 0; sec = 8; /*/ / 洗衣子程序/*/ void xi() anther=1; other
7、=0; P0 = 0xff; led_work = 0; led_xi = 0; mo_r = 1; mo_l = 0; min = 1; sec = 36; quan = 0; /*/ / 泡衣子程序 /*/ void pao() anther=1; other=0; P0 = 0xff; led_pao = 0; led_work = 0; flag3+; mo_r = 1; mo_l = 0; min = 1; sec = 35; quan = 0; /*/ / 脱水子程序 /*/ void xx() other=1; anther=0; P0 = 0xff; led_xx = 0; m
8、o_r = 0; mo_l = 1; min = 0; sec = 50; /*/ 出水子程序 / /*/ void out() anther=0; other=0; P0 = 0xff; led_out = 0; flag2+; mo_r = 0; mo_l = 0; min = 0; sec = 5; /*/ / 显示菜单选择 /*/ void se() P0 = 0xff; if(flag0 = 5) flag0 = 0; if(flag0 = 0) led_in = 0; if(flag0 = 1) led_xi=0; if(flag0 = 2) led_pao=0; if(flag0
9、 = 3) led_xx=0; if(flag0 = 4) led_out=0; /*/ / 菜单处理子程序 /*/ void menu() min = 0; sec = 0; mo_r=0; mo_l=0; SEG_display(); while(1) if(key_on = 0) delay(5); if(key_on = 0) while(!key_on); on(); break; /*/ if(key_off = 0) delay(5); if(key_off = 0) while(!key_off); over(); break; /*/ if(key_se = 0) delay
10、(5); if(key_se = 0) while(!key_se); flag0+; se(); /*/ 按键扫描子程序 / /*/ void key_scan() if(key_menu = 0) delay(5); if(key_menu = 0) while(!key_menu); menu(); /*/ if(key_on = 0) delay(5); if(key_on = 0) while(!key_on); on(); /*/ if(key_off = 0) delay(5); if(key_off = 0) while(!key_off); over(); /*/ / 显示子
11、程序 /*/ void SEG_display() P1=0x01; P2 = nummin/10; delay(10); P1 = 0x02; P2 = nummin_x0010_; delay(10); P1 = 0x04; P2 = numsec/10; delay(10); P1 = 0x08; P2 = numsec_x0010_; delay(10); /*/ / 主函数 /*/ void main() led_in=0; anther=0; other=0; while(1) SEG_display(); key_scan(); /*/ / 定时器中断处理程序0/*/ void
12、timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%6; count+; if(count=20) count = 0; sec-; if(flag0=1)|(flag0=2) quan+; switch(quan) case 1:mo_r=1;mo_l=0;break; case 10:mo_r=0;mo_l=0;break; case 15:mo_r=0;mo_l=1;break; case 25:mo_r=0;mo_l=0;break; default:; if(quan=30) quan=0; /*/ if(sec
13、 = 0)&(min != 0) min-; sec = 59; /*/ if(sec0)&(min=0)&(flag0=0) /进水结束 switch(flag1) case 1:flag0=1;xi();break; case 2:flag0=2;pao();break; case 3:flag0=2;pao();break; case 4:flag0=2;pao();break; default: err=1;led_wring = 0; /*/ if(sec0)&(min=0)&(flag0=1) / 洗衣结束 flag0 = 4; out(); /*/ if(sec0)&(min=0)&(flag0=2) /泡衣结束 switch(flag3) case 1:flag0=4;out();break; case 2:flag0=4;out();break; case 3:flag0=4;out();break; default: err=1;led_wring = 0; /*/ if(sec0)&(min=0)&(fla
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年铜丝网项目投资申请报告代可行性研究报告
- 2023年绕线绞线设备资金筹措计划书
- 小学教师年度考核总结
- 汽车轮胎行业市场前景及投资研究报告:后疫情时代中国轮胎加速
- 吊篮安拆施工环境管理计划
- 地下防水施工安全管理计划
- 智能输送带生产项目人力资源管理方案
- 轻质高强刨花板生产项目投资估算分析报告
- 家庭安全疏散逃生培训
- 灭火器材维护保养培训
- (完整版)大专机电一体化-毕业设计
- GB∕T 28458-2020 信息安全技术 网络安全漏洞标识与描述规范
- 2022年离婚房产分割补充协议
- (PEP)人教版五年级下册英语《Unit 2 Part A Let's talk》教学设计
- 气相色谱法分析(氯氟氰菊酯和高效氯氟氰菊酯氯氰菊酯和高效氯氰菊酯)原始记录
- B族链球菌PPT课件
- 三年级下册Unit3PartALet’sspell教学设计
- TCECS 1000-2021 工程建设标准编写导则
- 玻化微珠无机保温砂浆外墙内保温施工方案
- 小学语文一年级下册《小猴子下山》教资面试试讲逐字稿
- 浙教版初中生物知识点总复习中考专用超全
评论
0/150
提交评论