⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p456.c

📁 用于检测排 线是否正确连通
💻 C
字号:
#include <Winbond\REG54.H>
#include <INTRINS.H> // for _nop_()

sbit P14 = P1^4;     //count Switch
sbit P13 = P1^3;	 //Tray-In/Out Switch
sbit P12 = P1^2;
sbit P11 = P1^1;
sbit P16 = P1^6;
	
void delay_1ms(unsigned short t);
void delay_10us(unsigned char t);
void delay_20us(unsigned char t);														
void delay_50us(unsigned char t);	
void delay_100us(unsigned char t);	
void delay_500us(unsigned char t);
void DA_invert(unsigned int voltage,unsigned int time);		
void systemini();

void systemini()
{
	EA=0;		                    //inetrrupt Disable
}

void delay_1ms(unsigned short t)	//useful range t = 1(1ms) ~ 1000(1s)
{
           
	int i;

	while(t>0)
	{
		i=120;
		while(i>0)
		 { 
			i--;
	 	 }
		t--;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
	}
}
void delay_10us()	                //useful range (10us)
{
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
}	

void delay_20us(unsigned char t)	//useful range t = 1(20us)
{
	while(t>0)
	{
		_nop_();
		t--;
	}
}

void delay_50us(unsigned char t)	//useful range t = 1(100us) 
{
   	int i;

	while(t>0)
	{
		i=3;
		while(i>0)
		{ 
			_nop_();
			_nop_();	
			i--; 
		}
		t--;
	}
}

void delay_100us(unsigned char t)	//useful range t = 1(100us) 
{
   	int i;
	while(t>0)
	{
		i=10;
		while(i>0)
		{ 
			i--; 
		}
		t--;
		_nop_();
	}
}

void delay_500us(unsigned char t)	//useful range t = 1(500us) 
{
   	int i;
	while(t>0)
	{
		i=60;
		while(i>0)
		{ 
			i--;
		}
		t--;
	}
}

void DA_invert(unsigned int voltage,unsigned int time)
{
	unsigned int j;
	unsigned int T;
	T=time*1000;
	
	for(j=0;j<T;j++)
	{
	    		P16=0;
				delay_100us(1);
				delay_100us(1);
				delay_100us(1);
				delay_20us(1);
				delay_20us(1);
				P16=1;
				delay_500us(1);
				delay_100us(1);
				delay_50us(1);
				delay_10us();
	}	
}

main()
{
	char i=0;
	P2=0x00;
	P1=0X00;
				P16=0;
				delay_100us(1);
				delay_100us(1);
				delay_100us(1);
				delay_20us(1);
				delay_20us(1);
				P16=1;
				delay_500us(1);
				delay_100us(1);
				delay_50us(1);
				delay_10us();

	while(1)
	{

	do	{ 							//out turn
 	    		
				P13=0;
				delay_1ms(200);
				P14=0;
				delay_1ms(200);
				P13=1;
				delay_1ms(200);
				P14=1;
				delay_1ms(200);
				P2=0x00;

		} while(P12==1 && P11==1);
			
	do	{			 					//in turn
 	    		P14=1;
				delay_1ms(200);
				P13=1;
				delay_1ms(200);
				P14=0;
				delay_1ms(200);
				P13=0;
				delay_1ms(200);
				P2=0x01;
		} while(P11==0 && P11==0);
			
   }


	while(1)			                //LED 0~1 Add Count Display
	{

		delay_1ms(1000);
		P2++;
		if (P2==0x0a) P2=0x00;
	}		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -