历史上的今天
返回首页

历史上的今天

今天是:2024年12月23日(星期一)

正在发生

2019年12月23日 | 全自动洗衣机控制器设计的单片机代码

2019-12-23 来源:51hei

基于单片机的洗衣机控制器
采用两位数码管显示洗衣时间,采用驱动芯片控制电机转动

全自动洗衣机课程设计

基于51单片机,C语言实现。
基本要求

模拟全自动洗衣机工作过程。以电机替代洗衣机电机。显示洗衣机工作的状态(进水、浸泡、洗衣、脱水、结束)。显示工作剩余时间(洗衣程序可自定义,时间精度:秒)。
洗衣时交替正、反转。

扩展要求

洗衣和脱水时电机转速不同。增加水位传感器输入。故障报警。增加声音提示。其它自定义功能。


设计用Preteus仿真:

0.png?imageView2/2/w/550 (203.38 KB, 下载次数: 13)

下载附件  保存到相册

2018-6-25 06:57 上传

 

仿真图如下:

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

                        }

推荐阅读

史海拾趣

东科半导体(DK)公司的发展小趣事

东科半导体(DK)公司自创立之初,就专注于电源管理芯片的研发与生产。公司初期面临资金紧张、技术储备不足等挑战,但凭借对技术的执着追求和对市场的敏锐洞察,东科逐步在行业中崭露头角。公司创始人带领团队夜以继日地研发,成功推出了一系列具有竞争力的电源管理芯片产品,赢得了市场的认可。

FORYARD公司的发展小趣事

在快速发展的同时,FORYARD始终不忘企业的社会责任和可持续发展目标。公司积极推广绿色生产和环保理念,采用环保材料和节能技术降低生产过程中的碳排放和资源消耗。此外,FORYARD还积极参与社会公益事业和慈善活动,为贫困地区的教育和医疗事业贡献力量。这些举措不仅提升了公司的社会形象和品牌价值,也为实现可持续发展目标做出了积极贡献。

Danaher Corporation公司的发展小趣事

在十九世纪80年代,丹纳赫集团面对日益严峻的市场竞争,开始推行以精益生产为核心的全新运营方式。这种管理方式不仅强化了其在行业中的领导地位,还逐渐形成了独特的丹纳赫商业系统(Danaher Business System,DBS)。DBS注重持续改进、客户导向和团队合作,成为丹纳赫集团在电子行业取得成功的关键因素。

Comair Rotron公司的发展小趣事

随着电子技术的飞速发展,Comair不断投入研发,力求在技术上取得突破。在某次关键的技术研发中,公司成功开发出了一种新型高效风扇,其性能远超当时市场上的同类产品。这一技术突破为Comair赢得了更多电子行业客户的青睐,公司的市场份额也逐渐扩大。

Cal Test Electronics公司的发展小趣事

随着全球市场的不断变化和公司规模的扩大,Cal Test Electronics开始实施全球化战略。公司积极拓展海外市场,通过参加国际展会、建立海外销售渠道等方式,提高品牌知名度和市场份额。同时,公司还加强与国际同行的合作与交流,引进先进的技术和管理经验,不断提升自身的竞争力。这些努力使得Cal Test Electronics逐渐成为一个具有全球影响力的电子配件和测试产品制造商。


这些故事旨在展示Cal Test Electronics公司可能的发展轨迹和成就,但并非基于实际发生的事件。对于该公司的真实发展历程和故事,建议查阅相关官方资料或行业报告以获取更准确的信息。

中环(Central)公司的发展小趣事

中环公司一直致力于技术创新和研发。在太阳能单晶硅制造领域,公司不断推出新的技术和产品,以满足市场的不断变化。2009年,公司在内蒙古投资建设了太阳能级单晶硅工厂,开始进行太阳能级单晶硅产品的规模生产,并成功研发和应用了金刚线DW切割工艺。这一创新技术大大提高了生产效率和产品质量,使中环在行业中取得了领先地位。

问答坊 | AI 解惑

tms320f2812的开发板

这个就是那个tms320f2812的开发板丢失的文件了,最好是认真检查一下…

查看全部问答>

请问Nand flash、SD卡和RAM区别和联系

请问Nand flash在手机上是存储什么的?相当于外存还是内存,它和RAM有什么区别和联系呢?和SD卡的联系呢? 手机中的程序比如QQ是在那个存储器里运行的呢?Nand flash 和PC机的硬盘是不是一个概念? 谢谢…

查看全部问答>

初学驱动,学到一个函数,希望高手能帮忙解惑,听说标题要长。。。。。。。。。。。。。

Windows 下的驱动编程 有个函数 NTKERNELAPI NTSTATUS IoGetDeviceObjectPointer(   __in PUNICODE_STRING ObjectName,   __in ACCESS_MASK DesiredAccess,   __out PFILE_OBJECT *FileObject,  &nbs ...…

查看全部问答>

将模拟信号转换为数字信号,再把数字信号通过串口在终端读出数据!

我是一个单片机菜鸟,还没有入门,用的是ATmega128单片机,用PF2(ADC2)输入模拟信号,要写一个程序把模拟信号转换为数字信号并通过串口在终端显示出来转换后的数字信号信息,那位大侠帮帮忙,多谢!…

查看全部问答>

高粘度液位传感器&耐压接近开关~求解决方案!

大虾们好!最近最一个产品,测试一个润滑脂的低液位报警,就是提醒要加料了! 装在直径200mm,高度75mm(这个很小)还有高度250mm的塑料桶里面。桶底有一个直流电机带动的刮板。 润滑脂粘度很大,类似于黄油,稍微稀一点,流动性很小。 用音叉肯 ...…

查看全部问答>

看了一下712的管脚的好象没有外部中断管脚

                                 看了一下712的管脚的好象没有外部中断管脚,除了710中的P2.8到P2.10是外部中断管脚。除了712中的capture,还有没有 ...…

查看全部问答>

12864

因学习需要,求购一块5v,可以串行并行的12864液晶屏一块。…

查看全部问答>

学习电子

我学习电子其实好坎坷,以前是学机电的,班上没一个女生,学着没味,之后听说电子的多,我转过来了,感觉电子更纠结,好难,希望在这论坛跟大家共同进步…

查看全部问答>

求帮助。单片机与传感器。急急急急急急急

自由选择一种传感器,设计一款检测仪表,至少包括传感器。单片机。显示及按键四个部分,并完成以下内容。 1.传感器的工作原理 2.该仪表的组成框图 3.(单片机)的开发流程 4.仪表主要构成部分及代码…

查看全部问答>

InstaSPIN-FOC lab 4问题请教

lab 4为电流环控制(创建一个转矩控制器),lab user guide上说对于穿越零速,当电机转速小于10rpm时,使用Iqref的符号来设定方向。请问为啥可以根据Iqref的符号来设定方向? …

查看全部问答>