#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 = P0^0;                //        进水指示灯

sbit led_xi = P0^1;           //  洗衣指示灯

sbit led_pao = P0^2;        //        泡洗指示灯

sbit led_xx = P0^3;           //  脱水指示灯

sbit led_out = P0^4;  //   出水指示灯

sbit led_over = P0^5;  // 洗衣结束指示灯

sbit led_work = P0^6;  // 电机工作指示灯

sbit led_wring = P0^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 delay();//        延时函数

void in();        //          进水子程序

void out();         //          出水子程序

void over();  //  结束子程序

void xi();         //          洗衣子程序

void pao();        //         泡衣子程序

void xx(); //        脱水子程序

void on(); //  工作on处理子程序

void se(); //  显示菜单选择

void SEG_display();         //显示时间子程序

void key_scan();   //  按键扫描子程序

//*****************************//

//     延时函数

//****************************//

void delay(uint i)

{

uint x,y;

for(x=i;x>0;x--)

for(y=120;y>0;y--);

}

//******************************//

//           工作on处理子程序

//********************************//

void on()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

P0 = 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;

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=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;

mo_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 == 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(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();

}

}

}

//*******************************//

//        显示子程序

//*********************************//

void SEG_display()

{

P1=0x01;

P2 = num[min/10];

delay(10);

P1 = 0x02;

P2 = num[min%10];

delay(10);

P1 = 0x04;

P2 = num[sec/10];

delay(10);

P1 = 0x08;

P2 = num[sec%10];

delay(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语言代码大全,全自动洗衣机控制器设计的单片机代码相关推荐

  1. 洗衣机程序c语言代码大全,采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文资料.doc...

    深 圳 大 学 本 科 毕 业 论 文(设计) 题目: 基于单片机设计的全自动 洗衣机控制器 姓名: 郑嘉泽 专业: 电子信息工程 学院: 信息工程学院 学号: 2009130099 指导教师: 李霞 ...

  2. 口袋妖怪c语言代码大全,口袋妖怪漆黑的魅影金手指代码大全

    口袋妖怪漆黑的魅影金手指代码大全 2013-10-29 11:53:51来源:互联网编辑:评论(0) 口袋妖怪漆黑的魅影金手指代码大全 如果你是安卓版的,打开菜单,点击金手指列表输入金手指,电脑版的打 ...

  3. html代码大全(很全的)_5行Python代码就能爬取 3000+ 上市公司的信息?

    前言 入门爬虫很容易,几行代码就可以,可以说是学习 Python 最简单的途径. 刚开始动手写爬虫,你只需要关注最核心的部分,也就是先成功抓到数据,其他的诸如:下载速度.存储方式.代码条理性等先不管, ...

  4. wordvba编程代码大全_面向对象、设计原则、设计模式、编程规范、重构

    面向对象.设计原则.设计模式.编程规范.重构 面向对象 主流的三个编程风格有:面向对象,面向过程,函数式编程. 面向对象是最主流的风格,面向对象具有丰富的特性(封装,抽象,继承,多态). 面向对象 面 ...

  5. 简单代码大全_VBA爱好者请进:VBA代码宝概述

    VBA 代码宝是 ExcelHome 出品的共享工具类软件之一. 虽然 Office 软件本身已经足够强大,但仍然有很多特色功能,需要使用 VBA 来进行定制开发.无论是VBA小白还是经验丰富资深开发 ...

  6. 万圣节html代码大全,方舟生存进化249万圣节新版本代码大全分享

    类型:修改器(游戏工具)大小:4.3M语言:中文 评分:10.0 标签: 立即下载 方舟生存进化万圣节版本已经更新了,各位玩家有没有去更新呢,这次大的更新也是更新了不少的东西,下面小编就来给大家介绍一 ...

  7. python代码大全心形盒子简单_python心形代码

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 之前看到python一行代码就可以在控制台打印心形,感觉非常神奇,昨天突然想起来 ...

  8. java编程代码大全_掌握Java编程技巧,代码重构

    代码重构在不改变软件系统外部行为的前提下,改善它的内部结构,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 代码重构目标 持续纠偏和改进软件设计 随 ...

  9. 代码大全和新月神话_神话般的代码

    代码大全和新月神话 考虑以下代码段: int max = 10; int a = 0; while (true) {// do a thing that may result in an early ...

最新文章

  1. 反向域名解析的用途,如何设置?
  2. 《剑指Offer》——二维数组中的查找(JZ1)C++
  3. range python 3.6 type class_Python 3.6 有什么新特性
  4. php忘记密码啦怎么办,后台账号密码忘记了怎么办.
  5. 力扣--36有效的数独
  6. Asp.net MVC3 RTM的源代调试
  7. linux下iptables详解
  8. Swift - 实现tableView单选系统样式
  9. 苹果怎么滚动截屏_30个小技巧,带你感受苹果系统到底有多好用
  10. 计算机无法验证签名,计算机中win10/win7无法验证文件数字签名的解决方法
  11. UE4 Material 101学习笔记——08-12 凹凸和视差贴图/纹理压缩/布料/体积冰/摇曳树叶
  12. Spring Data Redis 让 NoSQL 快如闪电(2)
  13. 15个Android流行框架
  14. python初学-爬取网页数据
  15. 科沃斯擦窗机器人向上走不动_ECOVACS 科沃斯 W830 解决高空擦玻璃的难处
  16. 【从0到1搭建LoRa物联网】4、国产LoRa终端ASR6505普通GPIO
  17. python 汉字和字节序列转换,汉字编解码
  18. 2022-2028全球与中国汽车空调电动变换部件市场现状及未来发展趋势
  19. 李鬼见李逵——我用翟天临的论文做了分析
  20. 卸载jdk 卸载不干净怎么办

热门文章

  1. uni保存canvas图片_UniApp 用canvas生成图片保存本地
  2. 大牛的学习笔记:步进电机驱动在3D打印应用
  3. 前端开发遇到 STATUS_BREAKPOINT
  4. taobao.trades.sold.get-查询卖家已卖出的交易数据(根据创建时间),淘宝店铺卖出订单查询API接口,淘宝R2接口,淘宝oAuth2.0交易接口代码分享
  5. c语言素数筛法与分解素因数,质因数分解及代码:
  6. 使用 Vue 和 Electron 开发一款简单的 Markdown 编辑器
  7. ospfdr选举规则_OSPF如何选举DR/BDR规则
  8. 深度分析网络游戏运营手段
  9. 3w最简单led灯电路图_一款简单实用的LED灯驱动电路
  10. 基于springboot的茶叶销售商城网站