全自动洗衣机单片机c语言程序,全自动洗衣机单片机程序
#include
#define uchar unsigned char
#define uint unsigned int
sbit mo_r = P3^2; //电机右控制线
sbit mo_l = P3^3; //电机左控制线
sbit key_menu = P3^4; // 菜单按键
sbit key_on = P3^5; // 开始按键
sbit key_off = P3^6; // 结束按键
sbit key_se = P3^7; // 菜单选择按键
sbit led_in = P2^0; // 进水指示灯
sbit led_xi = P2^1; // 洗衣指示灯
sbit led_pao = P2^2; // 泡洗指示灯
sbit led_xx = P2^3; // 脱水指示灯
sbit led_out = P2^4; // 出水指示灯
sbit led_over = P2^5; // 洗衣结束指示灯
sbit led_work = P2^6; // 电机工作指示灯
sbit led_wring = P2^7;// 报警指示灯
sbit other = P3^1; // 脱水电源控制开关
sbit anther = P3^0; // 洗衣电源控制开关
uchar code num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char sec = 0; // 时间秒
char min = 0; // 时间分
uchar count=0; // 中断计数
uchar flag0=0; // 洗衣机工作状态标志
uchar flag1=0; // 进水次数标志
uchar flag2=0; // 出水次数标志
uchar flag3=0; // 泡洗次数标志
uchar err =0; // 报警标志
uchar quan = 0;//正反转计数
// 函数声明 //
void in(); // 进水子程序
void out(); // 出水子程序
void over(); // 结束子程序
void xi(); // 洗衣子程序
void pao(); // 泡衣子程序
void xx(); // 脱水子程序
void on(); // 工作on处理子程序
void se(); // 显示菜单选择
void SEG_display(); //显示时间子程序
void key_scan(); // 按键扫描子程序
// 延时函数 //
void mDelay(unsigned int Delay) //延时程序
{
unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0; i<54; i++) ;
}
}
// 工作on处理子程序 //
void on()
{ TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1; ET0=1; TR0=1;
P2 = 0xff;
if(flag0 == 0) in();
if(flag0 == 1) xi();
if(flag0 == 2) pao();
if(flag0 == 3) xx();
if(flag0 == 4) out();
}
// 结束子程序 //
void over()
{ other=0; anther=0; P2 = 0xff;
mo_r=0; mo_l=0; led_over = 0; EA=0; }
// 进水子程序 //*********************************//
void in()
{ anther=0; other=0; P2 = 0xff; led_in = 0; flag1++;
mo_r = 0; mo_l = 0; min = 0; sec = 8; }
// 洗衣子程序//
void xi()
{ anther=1; other=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; P2 = 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; P2 = 0xff; led_xx = 0; mo_r = 0; mo_l = 1; min = 0; sec = 50; }
// 出水子程序 //*********************************//
void out()
{ anther=0; other=0; P2 = 0xff; led_out = 0;
flag2++; mo_r = 0; mo_l = 0; min = 0; sec = 5; }
// 显示菜单选择 //
void se()
{ P2 = 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 == 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)
{ mDelay(5);
if(key_on == 0)
{ while(!key_on);
on(); break;
}
}
if(key_off == 0)
{ mDelay(5);
if(key_off == 0)
{ while(!key_off);
over(); break;
}
}
if(key_se == 0)
{ mDelay(5);
if(key_se == 0)
{ while(!key_se);
flag0++; se();
}
}
}
}
// 按键扫描子程序//
void key_scan()
{ if(key_menu == 0)
{ mDelay(5);
if(key_menu == 0)
{ while(!key_menu); menu();
}
}
if(key_on == 0)
{ mDelay(5);
if(key_on == 0)
{ while(!key_on); on();
}
}
if(key_off == 0)
{ mDelay(5);
if(key_off == 0)
{ while(!key_off); over();
}
}
}
// 显示子程序 //
void SEG_display()
{ P1=0x01; P0 = num[min/10]; mDelay(10);
P1=0x02; P0 = num[min%10]; mDelay(10);
P1=0x04; P0 = num[sec/10]; mDelay(10);
P1=0x08; P0 = num[sec%10]; mDelay(10);
} //*********************************//
// 主函数 //
void main()
{ led_in=0; anther=0; other=0;
while(1)
{ SEG_display(); key_scan(); }
}
// 定时器0中断处理程序//
void timer0() interrupt 1
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256; 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 == 0)&&(min != 0))
{ min--; sec = 59; }
if((sec<0)&&(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((sec<0)&&(min==0)&&(flag0==1)) //洗衣结束
{ flag0 = 4; out(); }
if((sec<0)&&(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((sec<0)&&(min==0)&&(flag0==4)) //出水结束
{ switch(flag2)
{ case 1:flag0=0;in();break;
case 2:flag0=0;in();break;
case 3:flag0=0;in();break;
case 4:flag0=3;xx();break;
default: err= 1;led_wring = 0;
}
}
if((sec<0)&&(min==0)&&(flag0==3))
{ sec = 0; over(); }
}
}
全自动洗衣机单片机c语言程序,全自动洗衣机单片机程序相关推荐
- 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机C语言蜂鸣器发声生日快乐播放程序...
<51单片机C语言蜂鸣器发声生日快乐播放程序>由会员分享,可在线阅读,更多相关<51单片机C语言蜂鸣器发声生日快乐播放程序(4页珍藏版)>请在人人文库网上搜索. 1.按键发音/ ...
- led的c语言程序,单片机C语言LED灯点亮程序完全版
<单片机C语言LED灯点亮程序完全版>由会员分享,可在线阅读,更多相关<单片机C语言LED灯点亮程序完全版(7页珍藏版)>请在人人文库网上搜索. 1.1例子1第二个灯亮#inc ...
- 基于单片机c语言的豆浆机,基于单片机的全自动豆浆机控制系统设计.doc
论文题目: 基于单片机的全自动豆浆机控制系统设计 摘 要 全自动豆浆机基本工作过程是将事先泡好的大豆放入豆浆机内,并加入适量冷水后将电热管通电加热至80°C,粉碎电机通电工作.进行磨豆浆期间断续工作三 ...
- 单片机c语言小灯闪烁,单片机c语言闪烁灯程序.doc
单片机c语言闪烁灯程序 1. 闪烁灯 1. 实验任务 如图4.1.1 所示:在P1.0 端口上接一个发光二极管L1,使L1 在不停地一亮 灭,一亮一灭的时间间隔为0.2 秒. 2. 电路原理图 图4. ...
- 单片机c语言编程教学大纲,《单片机C语言编程》教学大纲
<单片机C语言编程>教学大纲 课程代码:000002336 课程英文名称:Microcontroller C Programming Language 课程总学时:24 讲课:16 实验: ...
- pic单片机c语言存储器定义,PIC单片机C语言程序设计1 7.PDF
PIC单片机C语言程序设计1 7 学电子跟我来FOLLOW ME PIC 单片机C 语言程序设计(1) ◆ 丁锦滔 编者按:为了帮助具有PI C 单片机汇编语言知识的技术人员或工程师,快速掌握利用C ...
- 单片机c语言 i%3c%3c1,单片机C语言作业及上机习题及答案
<单片机C语言作业及上机习题及答案>由会员分享,可在线阅读,更多相关<单片机C语言作业及上机习题及答案(37页珍藏版)>请在人人文库网上搜索. 1.第一次课熟悉winTC编译环 ...
- 单片机c语言模块化实例程序设计,单片机C语言模块化设计
原标题:单片机C语言模块化设计 keil中实现 模块化编程.doc 在使用 KEIL 的时候,我们习惯上在一个.c 的文件中把自己要写的东西按照 自己思路的顺序进行顺序书写.这样是很普遍的写法,当程序 ...
- 杜洋单片机C语言编程组成,8051单片机C语言编程模板
c语言 本文由fan159147贡献 doc文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. <8051 单片机 C 语言编程模板> 杜洋 2009.7 [程 ...
- 51单片机c语言试题及答案,单片机C语言期末考试题..
单片机C语言期末考试题..,单片机的c语言应用程序设计,单片机c语言编程,51单片机c语言程序100例,单片机c语言,单片机c语言编程思想,c语言开发单片机,c语言单片机程序,新概念51单片机c语言教 ...
最新文章
- proxmox超融合集群用户授权
- Scala类的继承,抽象类定义,接口定义
- spring拦截器-过滤器的区别
- 计算机关机电路,实用电脑电源关机全断电电路
- 两化融合:唐山探路重工业城市智慧转型
- BZOJ3529: [Sdoi2014]数表(莫比乌斯反演,离线)
- mysql中的转换类型数据类型_mysql数据类型转换
- 【鱼眼镜头8】张正友畸变公式;鱼眼的畸变公式需要使用入射角
- mysql索引使用b_mysql索引的数据结构,为什么用b+树
- asp绑定gridview属性_《ASP.ENT Core与RESTful API开发实战》(第3章)中
- 在手机上运行 Python,这款工具比 QPython 还好用~
- H5 前端JS添加水印
- python 提取字幕_使用Python从zimuku下载字幕
- 计算机系统原理之程序是怎么运行的
- 【已解决】Spring容器中找不到ServletWebServerFactory类出现的异常
- 保姆式教学:用Tableau制作盒须图(箱线图)
- 安装taro踩到小坑
- 公农历转换和获取二十四节气算法
- 商务本Surface Laptop2用固态U盘安装Ubuntu18.04全教程(补充篇)
- 电子化工作方式:方便保存,提高效率
热门文章
- 微信JSSDK分享页面自定义当前链接最简单示例
- python顺序执行 toggle_编写脚本在Python中运行多个脚本
- vue2 怎么用vite_vue3vite简介
- 下载matlab安装包太慢_MATLAB 2020a商业数学中文版软件下载安装教程
- 一根火柴可以将一瓶大可乐吊起来吗?
- 哪个男孩不想拥有这种牌面?
- 程序员与代码的几种关系,每种都会被我们鄙视
- 趣读:程序员泪流满面的20个瞬间!
- 竞赛发布|100万奖金寻DT时代“最强大脑”!
- lua loadstring传递参数_lua学习之函数篇