找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1493|回复: 0
打印 上一主题 下一主题
收起左侧

自动洗衣机程序

[复制链接]
跳转到指定楼层
楼主
ID:336007 发表于 2018-5-22 20:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  • //数码显示倒计时,四位数码管共阳显示
  • #include<reg51.h>
  • #define uchar unsigned char
  • #define uint  unsigned int
  • uchar code dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  • uchar minute,second=0;
  • sbit led1=P1^0;
  • sbit led2=P1^1;
  • sbit button1=P1^2;
  • sbit button2=P1^3;
  • sbit button3=P1^4;
  • sbit m1=P3^0;
  • sbit m2=P3^1;
  • void show(void)        ;
  • void delay(uchar t);        //US延时程序
  • void scankey() ;//
  • void init_timer(void);//定时器初始化
  • void clockwise(void);
  • void unclockwise(void)        ;
  • void stop(void);
  •   main()
  •   {P3=0x00;
  •    minute=20;
  •     init_timer();
  •         while(1)
  •          {scankey();
  •          show();
  •          }
  •          }
  • void init_timer(void)  //定时器初始化程序
  • {  TH0=0x0f8;
  •          TL0=0x30;
  •    TMOD|=0x01; //使用模式一,16位定时器
  •    EA=1;        // 总中断打开
  •    ET0=1;  //        定时器中断打开
  •    TR0=0;        //        定时器开关打开
  •    }
  • void show(void)//显示程序
  • { uchar a=10;
  •   P2=0x01;
  •   P0=dis[minute/10];
  •   delay(a);
  •   P2=0x02;
  •   P0=dis[minute%10]        ;
  •   delay(a);
  •   P2=0x04;
  •   P0=dis[second/10];
  •   delay(a);
  •   P2=0x08;
  •   P0=dis[second%10]         ;
  •   delay(a);
  •   }
  • void timer0_isr(void) interrupt 1          //定时器
  • {        static uint num1, num2,num0,i,num;
  •       TL0=0x30;
  •       TMOD|=0x01;
  •           TH0=0x0f8;
  •          TL0=0x30;
  •            num++; num1++;num2++;
  •            if(num2==1000)
  •             {i++;
  •                  num2=0;
  •                  switch(i)
  •                   {case 1:clockwise();break;//正转
  •                    case 4:stop();break;//停转
  •                    case 6:unclockwise();break;//反转
  •                    case 9:stop();break;//停止
  •                    case 11:i=0;break;}}
  •          if(num1==250)
  •            {led2=~led2;
  •             num1=0;}
  •          if(num==500)
  •          {num=0;
  •      if((minute==0)&&(second==0))
  •                     { TR0=0;
  •                           led1=~led1;}
  •               else  if(second==0)
  •                {second=59;
  •                     minute--;
  •                 }
  •                 else second--;
  •        }
  • }
  • void delay(uchar t)
  • {         uchar i;
  •     while(t--)for(i=0;i<120;i++);
  • }
  • void scankey()
  • { if(button1==0)
  •     { delay(100);
  •           if(button1==0)
  •              minute++;
  •         }
  •    if(button2==0)
  •    {delay(100);
  •      if(button2==0)
  •           minute--;
  •           }
  •         if(button3==0)
  •         {delay(100);
  •          if(button3==0)
  •           TR0=~TR0;
  •           if(TR0==0)
  •             stop();
  •           }}
  •   void clockwise(void)
  • { m1=1;
  •   m2=0;
  •   }
  •   void unclockwise(void)
  •   { m1=0;
  •     m2=1;
  •         }
  • void stop(void)
  • {m1=0;
  • m2=0;
  • }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表