標(biāo)題: 單片機(jī)控制的洗衣機(jī)程序 [打印本頁]

作者: 忖腹食水    時(shí)間: 2018-11-30 17:13
標(biāo)題: 單片機(jī)控制的洗衣機(jī)程序
#include<reg52.h>
void delay_s(unsigned int t);
void delay_ms(unsigned int t);
void UART_Init(void);
void Speech(unsigned char*text,unsigned char length);
void init_lcd(void);
void ch_disp_any(unsigned char line,unsigned char row,unsigned char num,unsigned char chn);
#define led P0
sbit g=P1^0;
sbit z=P1^1;
sbit d=P1^2;
sbit chengxv=P1^3;
sbit shuiwei=P1^4;
sbit qiting=P1^5;
sbit jinshui=P1^6;
sbit chushui=P1^7;
sbit forward=P2^0;
sbit backward=P2^1;
sbit xidi=P2^2;
sbit piaoxo=P2^3;
sbit tuoshui=P2^4;
sbit gai=P2^5;
unsigned char water,mode;
void JS()
{
  ch_disp_any(2,6,4,"進(jìn)水");
  jinshui=0;
  switch(water)
  {
   case 0:while(g||z||d);break;
   case 1:while(z||d);break;
   case 2:while(d);break;
   default:break;
  }
  delay_ms(2);jinshui=1;
}
void BZ()
{
ch_disp_any(3,6,8,"正在進(jìn)行");
xidi=0;
JS();
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;delay_ms(500);
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
xidi=1;
piaoxi=0;
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;delay_ms(500);
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
piaoxi=1;
tuoshui=0;
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
tuoshui=1;
}
void JJ()
{
ch_disp_any(3,6,8,"正在進(jìn)行");
xidi=0;
JS();
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;delay_ms(500);
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
xidi=1;
piaoxi=0;
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;delay_ms(500);
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
piaoxi=1;
tuoshui=0;
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
tuoshui=1;
}
void DX()
{
ch_disp_any(3,6,8,"正在進(jìn)行");
xidi=0;
JS();
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;delay_ms(500);
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
xidi=1;
piaoxi=0;
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;delay_ms(500);
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;delay_ms(500);
ch_disp_any(2,6,4,"反轉(zhuǎn)");backward=1;delay_s(4);backward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
piaoxi=1;
tuoshui=0;
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
tuoshui=1;
}
void PS()
{
tuoshui=0;
ch_disp_any(2,6,4,"整轉(zhuǎn)");forward=1;delay_s(4);forward=0;
ch_disp_any(2,6,4,"出水");chushui=0;delay_s(2);chushui=1;
tuoshui=1;
}
void main()
{
  UART_Init();
  init_lcd();
  forward=0;
  backward=0;
  led=0xee;
  ch_disp_any(1,1,16,"洗衣方式:標(biāo)準(zhǔn)     ");
  ch_disp_any(2,1,16,"洗衣狀態(tài):         ");
  ch_disp_any(3,1,16,"運(yùn)行狀態(tài):         ");
  while(1)
  {
   while(chengxv&&shuiwei&&qiting);
delay_ms(50);
if(chengxv==0)
{
  mode++;
  if(mode>3) mode=0;
  if(mode==0) {ch_disp_any(1,6,4,"標(biāo)準(zhǔn)");led=(led|0x0f)&0xfe;}
  if(mode==1) {ch_disp_any(1,6,4,"經(jīng)濟(jì)");led=(led|0x0f)&0xfd;}
  if(mode==2) {ch_disp_any(1,6,4,"單洗");led=(led|0x0f)&0xfb;}
  if(mode==3) {ch_disp_any(1,6,4,"排水");led=(led|0x0f)&0xf7;}
}
if(shuiwei==0)
{
  water++;
  if(water==3) water=0;
  if(water==0) led=(led|0xf0)&0xef;
  if(water==1) led=(led|0xf0)&0xdf;
  if(water==2) led=(led|0xf0)&0xbf;
}
if(qiting==0)
{
   if(gai==0)
   {
    ch_disp_any(4,1,10,"請(qǐng)關(guān)機(jī)蓋!");
    Speech("請(qǐng)關(guān)機(jī)蓋",8);
    while(gai==1);
   }
   ch_disp_any(4,1,16,"              ");
   switch(mode)
   {
    case 0:BZ();break;
    case 1:JJ();break;
    case 2:DX();break;
    case 3:PS();break;
    default:break;
   }
   ch_disp_any(3,6,4,"停止");
}
  }
}



作者: admin    時(shí)間: 2018-11-30 17:21
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
作者: mumu168    時(shí)間: 2018-12-7 15:15
定義 sbit piaoxo=P2^3 時(shí)與程序里的 piaoxi 不一致。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1