1712131502
級別: 論壇先鋒
|
偶今天折騰了好久,搞了個正反轉的程序,竟然不執行,求指點 #include <reg52.h> sbit s4=P3^6; sbit s5=P3^7; sbit km1=P1^3; sbit km2=P1^5; void main() { km1=1; km2=1; while(1){ if (s4==0) { km1=0; km2=1; } if (s5==0){ km1=1; km2=0; } } } |
|
---|---|---|
|
shi2999
不管學什么,興趣是最好的老師,能賺錢是最強勁的動力
級別: 網絡英雄
|
可以用,幫你頂一個。 #include <reg52.h> sbit s2=P3^4;//停止 sbit s4=P3^6;//正 sbit s5=P3^7;//反 sbit km1=P1^3; sbit km2=P1^5; void delay(); void main() { km1=1; km2=1; while(1) { if (s2==0) { delay(); if(s2==0) { km1=1; km2=1; } } if (s4==0) { delay(); if(s4==0) { km1=0; km2=1; }} if (s5==0) { delay(); if(s5==0) { km1=1; km2=0; }} } } void delay(void) //誤差 0us,延時50微秒 { unsigned char a,b; for(b=1;b>0;b--) for(a=22;a>0;a--); } 樓主留言:好貼!老師可以幫我寫個星三角降壓啟動麼 |
---|---|
本帖最近評分記錄: |
shi2999
不管學什么,興趣是最好的老師,能賺錢是最強勁的動力
級別: 網絡英雄
|
void delay(void) //誤差 0us,延時50微秒 { unsigned char a,b; for(b=1;b>0;b--) for(a=22;a>0;a--); } 時間上,可能不是太準, 只不過,利用一些計算,,推遲一些時間, 你試下把 delay(),, 改成sleep(50) 看看,可以提高效率。 樓主留言:感謝!可是老師啊,按住S2的時候,再按S4和S5依然可以啟動,這個可以解決麼 |
---|---|
|