//=========聲明區==============================
#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.denmoz.com/bbs/) | Powered by Discuz! X3.1 |