![]() |
發布時間: 2017-3-24 21:39
正文摘要:題目是通過單片機來控制繼電器從而達到通斷電的效果,通過DC12V電壓或者DC5V電壓來控制AC220V的通斷。然后達到的效果是類似5s通5s斷,之后每1s累加一次,即下一次6s通5s斷,再下一次7s通,5s斷...... 直至40s通,5s ... |
想要樓主的程序 |
原理圖正確,帶上計時器按時間輸出基本就行了 |
dzbj 發表于 2017-4-11 23:52 謝謝,我已經編出來了 ![]() |
dzbj 發表于 2017-4-11 23:52 請問,用單片機控制固態繼電器,再控制高頻電磁閥每秒鐘開關50次,請問這個程序應該怎么寫 |
三極管驅動繼電器 |
剛才少看最后一句了 補上 bit flag_one=0; //第一次工作標記 uchar num1s=0; //1s計數器 uchar n=5; //總秒數計數器 void mast() //主控 { if(flag_one==0) //如果 第一次工作標記為0 這里是你要求的第一次5s開5s關 { jk=1; //繼電器吸合 num1s=0; //延時5s while(num1s<n); jk=0; //繼電器關閉 num1s=0; //延時5s while(num1s<n); flag_one=1; //第一次工作標記置1 不再運行5s間隔的狀態 n++; //總秒數計數器自加 } jk=1; //繼電器吸合 num1s=0; //延時5+n秒 每次+1S while(num1s<n); n++; //總秒計數器自加 jk=0; //繼電器關閉 num1s=0; //延時5s 你要求開時間每次+1S 關時間不變 while(n<5); //剛才沒看見你最后一句話沒寫這段 if(n==40) //判斷總次數 如果總次數是40 { flag_one=0; //第一次工作標記清零 n=5; //總秒數計數器置5 } } void Server_Time0() interrupt 1 //定時器服務程序 { TH0 = xx; //重裝定時初值 1s TL0 = xx; //重裝定時初值 1s num1s++; //1s計數器自加 } void main() { Init_Time(); //定時器初始化 沒給你寫 基礎程序了 while(1) { mast(); //調用 主控程序 } } |
我寫了一個 不知道對不對 一起學習吧 bit flag_one=0; //第一次工作標記 uchar num1s=0; //1s計數器 uchar n=5; //總秒數計數器 void mast() //主控 { if(flag_one==0) //如果 第一次工作標記為0 這里是你要求的第一次5s開5s關 { jk=1; //繼電器吸合 num1s=0; //延時5s while(num1s<n); jk=0; //繼電器關閉 num1s=0; //延時5s while(num1s<n); flag_one=1; //第一次工作標記置1 不再運行5s間隔的狀態 n++; //總秒數計數器自加 } jk=1; //繼電器吸合 num1s=0; //延時5+n秒 每次+1S while(num1s<n); n++; //總秒計數器自加 jk=0; //繼電器關閉 num1s=0; //延時5s 你要求開時間每次+1S 關時間不變 while(n<5); } void Server_Time0() interrupt 1 //定時器服務程序 { TH0 = xx; //重裝定時初值 1s TL0 = xx; //重裝定時初值 1s num1s++; //1s計數器自加 } void main() { Init_Time(); //定時器初始化 沒給你寫 基礎程序了 while(1) { mast(); //調用 主控程序 } } |
用三極管驅動,繼電器。也可以用可控硅控制。 |
Vanessa 發表于 2017-3-26 18:00 只要在繼電器驅動線圈兩端并聯二極管就可。 |
越快樂越墮落 發表于 2017-3-26 21:09 已經改成三極管的了 |
yzwzfyz 發表于 2017-3-25 01:12 那應該怎么改呢? |
yzwzfyz 發表于 2017-3-25 01:12 能給個建議改正嗎,有點不太懂,謝謝 |
199419zzq 發表于 2017-3-26 14:31 正在往出憋程序 ![]() |
imxuheng 發表于 2017-3-26 11:13 調光是什么呢 |
zl2168 發表于 2017-3-25 09:05 三極管接法查的比較容易壞,正在考慮要不要用2003驅動數碼管 |
原理圖正確,就看你編程能不能實現了 |
2003驅動電路7路用了一路,真可惜。沒有性價比更好的方案嗎? |