[资料] 51驱动HCTL2032源代码
722 查看
2 回复
 楼主 | 发布于 2018-03-28 | 只看楼主
分享到:


#include "reg51.h"
#include "intrins.H"
typedef unsigned char BYTE;
typedef unsigned int WORD;

#define FOSC 12000000L
#define BAUD 9600

#define NONE_PARITY  0
#define ODD_PARITY 1
#define	EVEN_PARITY 2
#define MARK_PARITY 3
#define SPACE_PARITY 4

#define PARITYBIT NONE_PARITY

#define DATA P1
sbit	EN1=P0^0;
sbit	EN2=P0^1;
sbit	SEL1=P0^2;
sbit	OE=P0^3	;
sbit	XY=P0^4	;
sbit	SEL2=P0^5  ;
sbit	RSTX=P0^6 ;
sbit	CHBX=P0^7  ;
sbit	CHAX=P2^7;
sbit	CLK=P2^5;
sbit	UDX=P2^0;

sbit bit9 = P2^2;
bit busy;
void SendData(BYTE dat) ;
void SendString(char *s);
char *data1;
	 unsigned char xdata i=0;
int OLD,NEW,RESULT1,RESULT2,RESULT3,RESULT4,OK1,OK2,OK3,OK4,j;
void main()
{
	for(i=0;i<250;i++){}
		for(i=0;i<250;i++){}
			for(i=0;i<250;i++){}





  	SCON=0x50;
	EA = 1; 
	ES = 1; 
	TMOD = 0x20;	
	SCON = 0x50;	
	TH1 = 0xF3;	
	TL1 = 0XF3;	
	PCON = 0x80;	
	TR1 = 1;	  





//	 SBUF=DATA;
//	 SendString("abcdefg");
//	SendData(0x);
//	while(1);
	OLD=0;
	NEW=0;
	EN1 = 1;
	EN2 = 0;
	XY=0;


//	RSTX=0;
	UDX=0; 
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<250;j++){}
						 CLK=0;
						for(j=0;j<250;j++){}
						 CLK=1;
			}
	for(i=0;i<250;i++){}
//	RSTX=1;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<250;j++){}
						 CLK=0;
						for(j=0;j<250;j++){}
						 CLK=1;
			}	
	for(i=0;i<250;i++){}
//	SendString("HCTL-2032 INTI OK!");	//HCTL-2032初始化完毕!	
	OK1=1;
	OK2=1;
	OK3=1;
	OK4=1;
/////////////////////////////							 、///脉冲输出
	while(1)
	{
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}										 //
	 CHAX=1;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	 CHBX=0;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<100;j++){}
						 CLK=1;
						for(j=0;j<100;j++){}
						 CLK=0;
			}
												 //
	 CHAX=0;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	 CHBX=0;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
												 //
	 CHAX=0;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	 CHBX=1;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
												 //
	 CHAX=1;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	 CHBX=1;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}



//////////////////////////////




												  ////读取





	OE=1;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	for(i=0;i<250;i++){}
	SEL1=0;
	SEL2=1;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	OE=0;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	while(OK1)
	{
//	SendString("11");
	for(i=0;i<50;i++){}
	for(i=0;i<50;i++){}
	for(i=0;i<50;i++){}
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}

	OLD=DATA;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	for(i=0;i<50;i++){}
	NEW=DATA;
		if(OLD==NEW)
		{	RESULT1=NEW;
			OK1=0;
		
		}
	}
	OK1=1;
//	SendString("1 d OK!r=");
	SendData(RESULT1);
	for(i=0;i<50;i++){}
	for(i=0;i<50;i++){}
	for(i=0;i<50;i++){}
//	SendString("1 d s OK!")
    OE=1;
	 ////1
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}

	SEL1=1;
	SEL2=1;
	OE=0;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	while(OK2)
	{	for(j=0;j<50;j++){}
//	SendString("Start secend data read!");
	OLD=DATA;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	for(i=0;i<50;i++){}
	NEW=DATA;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
		if(OLD==NEW)
		{	RESULT2=NEW;
			OK2=0;
		
		}
	}
	OK2=1;
//	SendString("secend data OK!result=");
	SendData(RESULT2);

		////2
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	SEL1=0;
	SEL2=0;

				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	while(OK3)
	{  for(j=0;j<50;j++){}
//	SendString("Start thirth data read!");
	OLD=DATA;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	for(i=0;i<50;i++){}
	NEW=DATA;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
		if(OLD==NEW)
		{	RESULT3=NEW;
			OK3=0;
		
		}
	}
	OK3=1;
//	SendString("thirth data OK!result=");
	SendData(RESULT3);

	   ///3
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	SEL1=1;
	SEL2=0;

				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	while(OK4)
	{  for(j=0;j<50;j++){}
//	SendString("Start 4 data read!");

	OLD=DATA;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	for(i=0;i<50;i++){}
	NEW=DATA;
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
		if(OLD==NEW)
		{	RESULT4=NEW;
			OK4=0;
		
		}
	}
	OK4=1;
//	SendString("4 data OK!result=");
	SendData(RESULT4);
				for(i=0;i<18;i++)
			{  		   	for(j=0;j<50;j++){}
						 CLK=1;
						for(j=0;j<50;j++){}
						 CLK=0;
			}
	OE=1;
/*	while(1)
	{  		   	for(j=0;j<250;j++){}
						 CLK=1;
				for(j=0;j<250;j++){}
						 CLK=0;
	
	}	 		*/
	////4

	 }
}

void Uart_Isr() interrupt 4 using 1
{	char *data1;
int i;	
   if(RI)
   {
   		RI=0;
		P0=SBUF;
		*data1=SBUF;
		bit9=RB8;

   }
   if(TI)
   {   TI=0;
   		busy=0;
   }




}
void SendData(BYTE dat)
{
	    while(busy);
	    ACC=dat;
		busy=1;
		SBUF=ACC;

}
void SendString(char *s)
{
	 while(*s)
	 {
	 	 SendData(*s++);
	 }
}

本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(0 ) (0 )
回复 举报

回复于 2018-11-30 沙发

感谢分享!!
(0 )
评论 (0) 举报

回复于 2019-02-24 2#

谢谢分享!!!
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部