仿真原版本:proteus 7.8
程序編譯器:keil 4/keil 5
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):S0025
設(shè)計(jì)介紹
1、按鍵功能:
(1)通過(guò)“K1”鍵步進(jìn)改變“標(biāo)準(zhǔn)、經(jīng)濟(jì)、單獨(dú)、排水”四種方式,執(zhí)行相應(yīng)的程序。對(duì)應(yīng)指示燈亮。
(2)通過(guò)“K2”鍵步進(jìn)改變“強(qiáng)洗、弱洗”兩種方式,執(zhí)行相應(yīng)的程序,對(duì)應(yīng)指示燈亮。
(3)通過(guò)“K3”鍵控制洗衣機(jī)運(yùn)行、暫停和解除報(bào)警功能。
2、方式功能選擇:
一般洗衣機(jī)的步驟為:洗滌,漂洗,脫水,當(dāng)處于某種狀態(tài)時(shí),對(duì)應(yīng)的指示燈以0.7S周期閃爍,當(dāng)洗衣機(jī)在洗滌過(guò)程中,洗滌指示燈閃爍。
可以通過(guò)方式選擇設(shè)定具體的運(yùn)行過(guò)程。
(1)標(biāo)準(zhǔn)方式:進(jìn)水—> 洗滌 —> 排水 —> 進(jìn)水 —> 漂洗 —> 排水 —>進(jìn)水 —> 漂洗—> 排水 —> 脫水。
(2)經(jīng)濟(jì)方式:進(jìn)水 —> 洗滌 —> 排水 —> 進(jìn)水 —> 漂洗 —> 排水 —> 脫水。
(3)單獨(dú)方式:進(jìn)水 —> 洗滌。
(4)排水方式:排水 —> 脫水。
(5)強(qiáng)洗即電動(dòng)機(jī)轉(zhuǎn)速快,弱洗即電動(dòng)機(jī)轉(zhuǎn)速慢。
3、整機(jī)功能:
(1)開機(jī)默認(rèn)狀態(tài)為標(biāo)準(zhǔn)方式、強(qiáng)洗。
(2)在洗滌和漂洗過(guò)程中,電動(dòng)機(jī)正轉(zhuǎn)一次,反轉(zhuǎn)一次,連續(xù)運(yùn)行。
(3)在進(jìn)水和脫水過(guò)程中,相應(yīng)的指示燈亮,繼電器吸合。
(4)當(dāng)執(zhí)行某個(gè)步驟時(shí),只有“K3”鍵有效,按下暫停,再按恢復(fù)運(yùn)行。
仿真圖
電動(dòng)機(jī)驅(qū)動(dòng)模塊電路設(shè)計(jì)
電動(dòng)機(jī)驅(qū)動(dòng)采用LD298電動(dòng)機(jī)驅(qū)動(dòng)芯片,單片機(jī)P25、P24與L298的IN1、IN2分別對(duì)應(yīng)相連,ENA直接接VCC,后面所加4個(gè)二極管VD3到VD6起連續(xù)作用。電動(dòng)機(jī)驅(qū)動(dòng)電路原理圖如圖二所示。
電源模塊電路設(shè)計(jì)
電動(dòng)機(jī)驅(qū)動(dòng)芯片的電源VCC和VS之間通過(guò)0歐的電阻R20進(jìn)行隔離后,對(duì)LD298進(jìn)行供電。
控制按鍵
如圖二所示,K3鍵接到單片機(jī)的外部中斷0,通過(guò)中斷實(shí)現(xiàn)運(yùn)行、暫停、繼續(xù)運(yùn)行的控制功能,當(dāng)K3鍵第一次按下時(shí)(num2=1)正常運(yùn)行,當(dāng)K3鍵第二次按下時(shí)(num2=2)暫停運(yùn)行。
進(jìn)水閥和排水閥控制繼電器
如圖二所示,單片機(jī)的P23用來(lái)控制排水閥繼電器,P22用來(lái)控制進(jìn)水閥繼電器,P22和P23對(duì)應(yīng)輸出為0時(shí)對(duì)應(yīng)的閥打開,輸出為1時(shí)對(duì)應(yīng)的閥關(guān)閉。
程序設(shè)計(jì)
main函數(shù)
void main()
{
init();
while(1)
{
key(); //鍵掃描
if((num1==0&&num==0)&&circle==1) //標(biāo)準(zhǔn) 強(qiáng)洗
{
ledruoxi=1; //關(guān)閉弱洗LED
ledpaishui=1; //關(guān)閉排水LED
ledbiaozhun=0;//強(qiáng)標(biāo)準(zhǔn)LED亮
ledqiangxi=0; //強(qiáng)洗LED亮
if(num2==1)
{
qbiaozhun(); //強(qiáng)標(biāo)準(zhǔn)洗
}
if(num2>1) //K3鍵按下次數(shù)為2,暫停洗滌
{
;
}
circle=0;
}
if(num1==0&&num==1) //經(jīng)濟(jì) 強(qiáng)洗
{
ledruoxi=1;
ledbiaozhun=1;
ledqiangxi=0;
ledjingji=0;
if(num2==1)
{
qjingji(); //強(qiáng)經(jīng)濟(jì)洗
ledjingji=1;
}
circle=0;
}
if(num1==0&&num==2) //單獨(dú) 強(qiáng)洗
{
ledruoxi=1;
ledjingji=1;
ledqiangxi=0;
leddandu=0;
if(num2==1)
{
qdandu(); //強(qiáng)單獨(dú)洗
leddandu=1;
}
circle=0;
}
if(num1==0&&num==3)
{
ledruoxi=1; //排水 強(qiáng)洗
leddandu=1;
ledqiangxi=0;
ledpaishui=0;
if(num2==1)
{
dpaishui(); //單排水
ledpaishui=1;
}
circle=0;
}
if(num1==1&&num==0) //弱 標(biāo)準(zhǔn)
{
ledqiangxi=1;
ledpaishui=1;
ledruoxi=0;
ledbiaozhun=0;
if(num2==1)
{
rbiaozhun(); //弱標(biāo)準(zhǔn)洗
ledruoxi=1;
}
circle=0;
}
if(num1==1&&num==1) //弱經(jīng)濟(jì)
{
ledqiangxi=1;
ledbiaozhun=1;
ledruoxi=0;
ledjingji=0;
if(num2==1)
{
rjingji(); //弱經(jīng)濟(jì)洗
ledruoxi=1;
ledjingji=1;
}
circle=0;
}
if(num1==1&&num==2)
{
ledqiangxi=1;
ledjingji=1;
ledruoxi=0;
leddandu=0;
if(num2==1)
{
rdandu(); //弱單獨(dú)洗
ledruoxi=1;
leddandu=1;
}
circle=0;
}
if(num1==1&&num==3)
{
ledqiangxi=1;
leddandu=1;
ledruoxi=0;
ledpaishui=0;
if(num2==1) //K3鍵
{
dpaishui(); //單排水
ledpaishui=1;
}
circle=0;
}
num2=0;
}
}
設(shè)計(jì)報(bào)告
資料清單
下載