历史上的今天
返回首页

历史上的今天

今天是:2024年12月31日(星期二)

正在发生

2019年12月31日 | 51单片机洗衣机proteus仿真与源码设计

2019-12-31 来源:51hei

一个功能很全的模拟洗衣机仿真与源码,是51单片机控制的,有强洗按钮,弱洗按钮,标准洗按钮,甩干按钮.


液位传感器,排水阀按钮等功能一应俱全.

仿真原理图如下

0.png?imageView2/2/w/550

还带各种指示灯:
0.png?imageView2/2/w/550 

单片机源程序如下:

#include

#define uchar unsigned char

#define uint  unsigned int

#define qiang_ledon qiang_led=1;

#define qiang_ledoff qiang_led=0;

#define biao_ledon biao_led=1;

#define biao_ledoff biao_led=0;

#define ruo_ledon ruo_led=1;

#define ruo_ledoff ruo_led=0;

#define piao_ledon piao_led=1;

#define piao_ledoff piao_led=0;

#define sgan_ledon sgan_led=1;

#define sgan_ledoff sgan_led=0;

#define jin_ledon jin_led=1;

#define jin_ledoff jin_led=0;

#define pai_ledon pai_led=1;

#define pai_ledoff pai_led=0;

unsigned char code Tab[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //数码管显示0~9的段码表

unsigned char int_time;        //记录中断次数

unsigned char second;        //储存秒

uint t=0,tt=0;

   sbit k1=P0^0;

   sbit k2=P0^1;

   sbit k3=P0^2;

   sbit sg=P0^3;

   sbit hk1=P0^4;

   sbit hk2=P0^5;

   sbit ledon=P0^7;

   sbit qiang_led=P2^0;

   sbit biao_led=P2^1;

   sbit ruo_led=P2^2;

   sbit piao_led=P2^3;

   sbit sgan_led=P2^4;

   sbit jin_led=P2^5;

   sbit pai_led=P2^6;

   sbit p30=P3^0;

   sbit p31=P3^1;

   sbit beepon=P2^7;

   sbit sm1=P3^6;

   sbit sm2=P3^7;

void delay2(void)

   {

  unsigned char m;

  for(m=0;m<200;m++)

        ;

   }


void delay1(int s)

   { 

   int i;

   for(;s>0;s--)

   for(i=0;i<65;i++);

   }


void delay(uint i)

   {

   uchar j;

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

   for(j=255;j>0;j--);

   }


void DisplaySecond(unsigned char k)

{

   

   sm1=0;        //P2.6引脚输出低电平, DS6点亮 

   P1=Tab[k/10];          //显示十位

     delay2();

     delay2();

   sm1=1;

   sm2=0;       //P2.7引脚输出低电平, DS7点亮 

   P1=Tab[k%10];         //显示个位

     delay2();

     delay2();

   P3=0xff;     //关闭所有数码管

   P1=1;        //显示个位

     delay2();

     delay2();

}

           

void beep()

   {

          p30=0;

    p31=0;

           t=0;

        while(1)

        {

          beepon^=1;

      delay(300);

      if(t>=80) break;

        }

        beepon=0;

        biao_led=0;

    }

          

void f_qiang()

    {         

         qiang_ledon;

         t=0;

         tt=0;        

     int_time=0;

     second=00;

         while(1)

    {        

          if(tt>=400) break; 

      t=0;

          while(t<80&&tt<=400)

          {        

            p31=0;

            p30=1;        //正转 4s

        DisplaySecond(second);

            }

          t=0;          //反转 4s        

          while(t<80&&tt<=400)

          {

            p30=0;

            p31=1;

            DisplaySecond(second);

            }

     }

          p30=0;

          p31=0;          

     }


void f_biao()

        {

          qiang_led=0;

      biao_led=1;

          t=0;

          tt=0;

      int_time=0;

      second=00;

         while(1)

     {

           if(tt>=400) break; 

           t=0;

          while(t<60&&tt<=400)

           {        

          p31=0;

                  p30=1;        //正转3s

          DisplaySecond(second);

       }


                t=0;          //反转3s

          while(t<60&&tt<=400)

       {

              p30=0;

                  p31=1;

                  DisplaySecond(second);

                }

       }

       p30=0;

           p31=0;

         }


void f_ruo()

    {

          qiang_led=0;

          biao_led=0;

          ruo_led=1;

          t=0;

          tt=0;

      int_time=0;

       second=00;

                while(1)

       {

                    if(tt>=400) break; 

                 t=0;

               while(t<40&&tt<=400)

           {        p31=0;

                        p30=1;        //正转2s

                DisplaySecond(second);

                }

             t=0;          //反转 2s

               while(t<40&&tt<=400)

            {   p30=0;

                        p31=1;

                        DisplaySecond(second);

                      }

         }

                p30=0;

            p31=0;

       }


void f_piao()

        {

           qiang_ledoff;

           biao_ledoff;

           piao_ledon;

           t=0;

           tt=0;

       int_time=0;

       second=00;

                 while(1)

          {

                      if(tt>=400) break; 

                   t=0;

                 while(t<40&&tt<=400)

               {        p31=0;

                        p30=1;        //正转2s

                    DisplaySecond(second);

                   }

                   t=0;          //反转2s

                 while(t<40&&tt<=400)

               {    p30=0;

                            p31=1;

                             DisplaySecond(second);

                       }

             }

          p30=0;

      p31=0;

          piao_ledoff;

          }


void pai_leds()

     {

            p30=0;

            p31=0;

               pai_led=1;        //排水阀灯亮 等待霍尔开关2 

            while(hk2);

            if(hk2==0)  //如果闭合

            pai_led=0;        //排水灯灭

     }


void jin()

    {

            p30=0;

            p31=0;

            jin_ledon; 

            while(hk1);

推荐阅读

史海拾趣

Bedford Opto公司的发展小趣事

Bedford Opto公司深知人才是企业发展的核心。因此,公司高度重视人才培养和团队建设。通过提供良好的工作环境和福利待遇,吸引和留住了一批优秀的人才。同时,公司还注重员工的培训和发展,不断提升员工的专业素质和综合能力。

这些故事虽然基于虚构,但它们反映了电子行业中许多企业可能经历的发展过程和面临的挑战。当然,Bedford Opto公司的真实发展历程可能有所不同,具体的故事需要参考公司的官方资料和相关报道。

DIOO公司的发展小趣事

随着科技的不断发展,DIOO公司始终致力于技术创新和产品创新。在90年代初,DIOO公司推出了一款革命性的智能音响系统,该系统集成了最先进的音频处理技术、语音识别技术和人工智能技术,为用户提供了前所未有的便捷和智能体验。这一创新产品迅速在市场上占据了领先地位,并成为了DIOO公司的标志性产品之一。

Fukushima Futaba Electric Co Ltd公司的发展小趣事

Fukushima Futaba Electric Co., Ltd.(以下简称“Futaba Electric”)的创立可以追溯到1948年,由熊本县出身的卫藤五郎和北海道出身的细矢礼二在千叶县共同创立。公司名“Futaba”取自两人故乡的首字,寓意着双叶的结合与协作。初期,Futaba Electric专注于电气设备的制造与研发,凭借创始人的远见卓识和不懈努力,逐渐在电子行业崭露头角。这一时期,公司主要生产基础的电气元件,如电阻器、电容器等,为后续的发展奠定了坚实的基础。

Gilway Technical Lamp公司的发展小趣事
检查压缩机与电气控制电路之间的连接是否牢固可靠,有无松动或脱落现象。
灿科盟(Ckmtw)公司的发展小趣事

随着公司业务的不断扩展,灿科盟在2010年决定将生产基地从龙华搬迁至公明鑫博盛科技园,以满足日益增长的生产需求。同时,公司也在龙华设立了外贸业务分部,进一步拓展海外市场。这些举措不仅提升了公司的产能和竞争力,也为公司未来的发展奠定了坚实基础。

Active-Semi公司的发展小趣事

为了提升产品质量,增强客户信任,灿科盟在2008年成功通过了ISO9001:2000版质量管理体系认证。这一认证标志着公司在质量管理方面达到了国际标准,也为公司赢得了更多客户的青睐。此后,公司继续加强质量管理体系建设,不断提升产品质量和服务水平。

问答坊 | AI 解惑

手机电路中的特殊元器件

一、开关元件 开关、干簧管和霍耳元件都是用来控制线路的通断的器件。不同的是开关一般是人工手动操作的,而干簧管和霍克元件则是通过磁信号来控制线路的通和断。 1.开关 在手机中使用的开关通常是薄膜按键开关,它由触点和触片组成。按键的两个 ...…

查看全部问答>

单脉冲序列对双激式开关电源变压器铁心的磁化开关电源原理与设计(连载53)

2-1-1-4.脉冲序列对双激式开关电源变压器铁心的磁化 双激式变压器与单激式变压器的区别主要是两者输入电压的参数不一样。单激式变压器输入的电压是单极性直流脉冲,而双激式变压器输入的电压是双极性交流脉冲。为了简单起见,我们把双激式变压器 ...…

查看全部问答>

IOCTL CODE DeviceIoControl

我做摄像头的数据采集,用CreateFile打开设备,然后调用DeviceIoControl函数,第二个参数需要的是控制CODE,这个CODE需要驱动来提供?不是标准调用吧。如果驱动没有提供读数据的控制CODE,那我是不是就没有办法用DeviceIoControl得到数据了?…

查看全部问答>

vhdl, 怎么实现让输出维持一段时间后撤销

vhdl, 怎么实现让输出维持一段时间后撤销~~~~~ 请大侠,帮忙~…

查看全部问答>

WinCE BSP开发的几个问题,急!!!

我是青岛的目前原来是从事应用程序开发的,想转型做WinCE BSP开发,现在已经辞职在家专心学习WinCE BSP开发,现在实验用的板子是飞凌的OK2440III。由于在青岛没有找到这方面的朋友,所以许多问题只能靠自己研究或是到网上查资料。现在我有下面的一 ...…

查看全部问答>

PCI 接口 IO读写 驱动

driverStudio 生成的驱动程序 实现 IO读写功能 驱动程序代码中两个操作如下: NTSTATUS RW6070Device::RW6070_IOCTL_800_Handler(KIrp I) {         NTSTATUS status = STATUS_SUCCESS;         //t …

查看全部问答>

请问,BRR值的怎么得出来的?

小弟手上的开放板的外部晶振是25M,串口通信,波特率为115200时,BRR是0x0135. 想问下0x0135是怎么算出来的?看了STM32的数据手册,没看懂。…

查看全部问答>

ST中国微控制器中文下载怎么都挂了?

                                 RT…

查看全部问答>

RT-Thread开源实时操作系统/STM32F103VB0.3.0b3版本

这个版本更新有些多,RT-Thread/STM32F103VB 0.3.0 beta3更改记录:- 内核,添加IAR EWARM 5.x工程,在内核定义中做相应的平台定义;- 添加文件系统组件DFS,DFS是一套虚拟文件系统(类似Linux的VFS,但几乎不占 ...…

查看全部问答>

有关2812的资料其寄存器都没有地址,谁那有?

有关2812的资料其寄存器都没有地址,所见的都是C语言的头文件,用了结构体和共用体,找不出起物理地址了,想用一段汇编,找不到外设和寄存器的地址,没法编那.谁有这方面的资料?或给指点一下…

查看全部问答>