//=========声明区==============================
#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时,为选择延时。
但是此程序为何实现不了呢,里面有个什么问题呢?
怎样才能解决呢?
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |