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