找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3862|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)自動(dòng)洗碗機(jī)面板程序+PCB原理圖設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
Altium Designer畫(huà)的自動(dòng)洗碗機(jī)原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機(jī)源程序如下:
#include"STC15Wxx.h"
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint z)
{
        uchar y=0;
        for(;z>0;z--)
        for(y=115;y>0;y--);
}
uint Flag_count=0;
uint Flag_Temp=0;
#include"DS18B20.h"

//#include"LCD1602.h"

sbit LED_FLAG=P1^0;

sbit jinshui=P1^1;//進(jìn)水
sbit chushui=P1^2;//出水
sbit meng=P1^3;
sbit DJ=P1^4; //電機(jī)
sbit ZYB=P1^5;//增壓泵
sbit JE=P1^6;//加熱
sbit JEB=P1^7;//電源加熱

sbit gao=P2^3;//水位高
sbit wu=P2^2; //水位低

sbit qidong=P3^2;
sbit tingzhi=P3^3;

bit FLAG_qidong=0,FLAG_tingzhi=0;

bit detecyion_Water()//檢測(cè)水位
{
        if(gao==0&&wu==1)//水位高
        {
        //        P1=P1|0x40;//進(jìn)水關(guān)
                jinshui=0;
                chushui=0;//出水關(guān)
                return 0;        
        }        
        else                         //水位低
        {
        //        P1=P1&0xfd;//進(jìn)水開(kāi)
                jinshui=1;
                chushui=0;//出水關(guān)
                return 1;        
        }        
}
bit detecyion_Temp() //檢測(cè)溫度
{
        static uchar FLAG=0;
        EA=0;
        Write_Inst();
//        delay_ms(1000);
        Read_RAM();
        EA=1;
//        display_Temp();
        if(Flag_Temp<=3200)//溫度低于32°加熱
        {
        //        P1=P1|0xc0;
                FLAG=1;
                JE=1;
                JEB=1;
                return 1;               
        }
        else if((FLAG==1&&Flag_Temp>=3300)||FLAG==0)//加熱溫度超過(guò)34°或大于32°
        {
        //        P1=P1&0x3f;
                FLAG=0;
                JE=0;
                JEB=0;
                return 0;
        }
        delay_ms(1000);
/*        if(FLAG=0&&Flag_Temp>3200)
        {        
                JE=1;
                JEB=1;
                return 0;
        }*/        
}
void wash_dishes_open()//洗碗開(kāi)2分鐘
{
        TR0=1;
        while((!(Flag_count>300))&&(!FLAG_tingzhi))//一分鐘
        {
                DJ=1;
                ZYB=1;        
        }
        TR0=0;
}
void wash_dishes_cue()//洗碗關(guān)
{
        DJ=0;
        ZYB=0;
        Flag_count=0;
        TH0=(65536-46080)/256;//50ms
        TL0=(65536-46080)%256;               
}
void drainage()//排水
{
        uchar i;
        while((!detecyion_Water())&&(!FLAG_tingzhi))chushui=1;//水排至低水位
        for(i=0;i<5;i++)
        {
                if(FLAG_tingzhi)break;
                if(detecyion_Water())//低水位
                {
                        delay_ms(500);
                        chushui=1;
                        delay_ms(300);
                }
                else
                {
                         while((!detecyion_Water())&&(!FLAG_tingzhi))chushui=1;//水排至低水位
                }        
        }        
}
void CPU_init()
{
        Write_Inst();
        delay_ms(1000);
        P1=P1|0xff;
        P2=P2|0xff;
        IT0=1;//下降沿觸發(fā)
        IT1=1;
        TMOD=0x01;
        TH0=(65536-46080)/256;//50ms
        TL0=(65536-46080)%256;
        ET0=1;
        TR0=0;
        EX0=1;
        EX1=1;
        EA=1;
}
void main()
{         
        CPU_init();
//        lcd_init();
        while(FLAG_qidong&&(!FLAG_tingzhi))
        {                           
                LED_FLAG=0;
                while(detecyion_Water()&&(!FLAG_tingzhi));//水位
                while(detecyion_Temp()&&(!FLAG_tingzhi));//溫度
                wash_dishes_open();//洗碗開(kāi)2分鐘
                wash_dishes_cue(); //洗碗關(guān)
                drainage();//排水
                LED_FLAG=1;
                EA=0;
                Write_Inst();
                EA=1;
                delay_ms(1000);
        }
}
void T0_50ms() interrupt 1
{
        TH0=(65536-46080)/256;//50ms
        TL0=(65536-46080)%256;
        Flag_count++;
}
void INT0_0() interrupt 0
{
        FLAG_qidong=1;
        FLAG_tingzhi=0;        
}
void INT1_1() interrupt 2
{
        FLAG_tingzhi=1;
        FLAG_qidong=0;
}

全部資料51hei下載地址:
面板(共陰)-595.7z (1.83 MB, 下載次數(shù): 46)
一次循環(huán).zip (33.03 KB, 下載次數(shù): 43)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表