//=========聲明區============================== #include <reg52.h> // 定義8052寄存器的頭文件 #define uchar unsigned char sbit R0=P0^0; sbit R1=P0^1; sbit R2=P0^2; sbit R3=P0^3;
//========延時函數============================== void delay( int x) // 延時函數 { int i,j; // 聲明整數變量i,j for(i=0;i<x;i++) // 晶振12Mhz for(j=1;j<=900;j++); // 大約計數900次,延遲約為1ms可以調整 }
//=======主函數================================
main() // 主函數 { P1=0x00; // 復位 while(1) { if(R0==0) { while(R0==0) { if((R1==0)&&(R2==0)) { while((R1==0)&&(R2==0)) { while(R0==1)break; P1=0x14; } } } } if(R3==0) { while(R3==0) { if(R2==0)) { while(R2==0) { delay(150); while(R0==1)break; P1=0x14; } } } } } } 此程序中,R1為壓力繼電器 到位開關,R1有的機器有,有的機器沒有,現在想在沒有的地方用延時解決。
現在解決的思路為:甩出幾根跳線(R0、R3都為跳線)當連接跳線R0時,為有壓力繼電器。當連接跳線R3時,為選擇延時。
但是此程序為何實現不了呢,里面有個什么問題呢?
怎樣才能解決呢?
|