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

📄 ck.c

📁 读招行
💻 C
字号:
/*****************************************************************************/
//init.c
//功能:初始化
//修改:2007-7-3
//作者:ZYJLCQ
/*****************************************************************************/
#include <regX52.H>
#include"pr/TWJ.h"
//unsigned char code  TAB[15]={ 0x30,0x31,0x32,0x33,0x34,0x35,0X36,0X37,0X38,0x39,0X0d,0X0a }; 
                               
void cpu_init(void)
{  
    TMOD=0X21;
    SCON=0x40;
      
    TH1=0xfd;		 //14400: tl:fe  //9600:  tl:fd	//7200:tl:fc  //4800:tl:fa
    TL1=TH1;		
     		
    ET1=0;
	ET0=0;			
    //ES=1;
    
	RI=0;
	TI=0;

    TR0=0;
    TR1=1;

	EX0=1;
	IT0=1;// 中断方式选择,1为边沿触发,0为电平触发
	ABL;
    EA=1;
}
void WBZD(void) interrupt 0	using 3
{
	bit st=0;	   //开始标记
	bit cc_flag=0; //出错标记
    BYTE i,temp,j,cc,sb;
	sb=0;
	cc=0;
	EA=0;
	cc_flag=0;
	do{
   		while(CK_CLK==1)
		{
		 cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
		cc=0; 
		if(CK_DATA==0)st=1;
   		while(CK_CLK==0)
		{
 		 cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
		cc=0;
  	   }while(!st);
	   i=4,temp=0;
     do{
		while(CK_CLK==1)
		{cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
		 cc=0;
		 temp<<=1;
         if(CK_DATA==0)temp|=0x1,sb++;
  		while(CK_CLK==0)
		{cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
	    cc=0;
       	i--;
      }while(i);
	  i=5;
 	 if(temp!=0x0a)
 	 {
 	   cc=0;
	   if(sb==0);
 	   for(j=0;j<40;j++)
 	  { 						   //先来校验
	  
      do{
		while(CK_CLK==1)
		{cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
		 cc=0;
         if(CK_DATA==0)temp|=0x1;
 		temp<<=1;
 		while(CK_CLK==0)
		{cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
	    cc=0;
       	i--;
      }while(i);
 	   temp>>=1;
  	 revie[j]=temp;

 	 i=5,temp=0;

 	   }
	 }
	 else
	 {
	  for(j=0;j<40;j++)
 	 { 
	  cc=0;
      do{
		while(CK_CLK==1)
		{cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
		cc=0;
      	if(CK_DATA==0)temp|=0x20;
  		temp>>=1; 
  		while(CK_CLK==0)
		{cc++;
	     if(cc==250)cc_flag=1;
	     if(cc_flag)goto loop;
 		}
		cc=0; 
        i--;
      }while(i);
   	 revie[j]=temp;
  	 i=5,temp=0;
  	}
   }
 	 falg_ck=1;
 	 delayx(50);
    loop:
   EA=1;
}

void CKZD(void) interrupt 4	using 2
{    EA=0;
     //TI=0;
     //P2_0=~P2_0;

	 //#pragma ASM

     //#pragma ENDASM
	/* #pragma asm
	  mov r0,#0h
	 #pragma endasm
     */
	 P0_7=0;			   	  
     EA=1;
}

⌨️ 快捷键说明

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