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