//=========声明区============================== #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时,为选择延时。
但是此程序为何实现不了呢,里面有个什么问题呢?
怎样才能解决呢?
|