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

📄 430f7289.c

📁 这是430中7289的源代码
💻 C
字号:
         #include<REG52.h>
         //#include<in430.h>
         #define uchar unsigned char
         #define uint unsigned int

          sbit cs=P2^0;
          sbit clk=P2^1;
          sbit dio=P2^2;
          sbit key=P2^3;

     uint re_buf,send_buf,decimal;
      uint com_data;
    //  P2DIR|=BIT0+BIT1;
   //  sbit mos_bit=com_data^7;
  //   sbit low_bit=com_data^0;
  /*
  void reset(void);
  void zlg7289_send(uchar send_buf);
  void uchar zlg7289_receive(void);
  
    void main()
  {
    P2DIR|=BIT0+BIT1;
   // EA=1;
   // EX0=1;
   P2IES&=~BIT3;
   P2IE|=BIT3;
   _EINT();
    reset();
    for(;;);
    //while(1);
   }
*/


     void delay_25ms()
    {
	uint a,b;
	for(a=0;a<0x64;a++)
	 {for(b=0;b<0xfa;b++)_NOP();
	 }
     }
    void delay_25us()
   {
	uint i;
	for (i=0;i<0x19;i++)_NOP();
    }	
    void delay_8us()
   {
	uint i;
	for(i=0;i<0x8;i++)_NOP();
   }


   void zlg7289_send(uchar send_buf)
  {
        uchar i;
	//P2DIR|=0x07;
	P2DIR|=0x04;
	
	com_data=send_buf;
	P2OUT&=0x0fc;
	//clk=0;
	//cs=0;
	delay_25us();
	for(i=0;i<8;i++)
	{
	 delay_8us();
	 if(com_data&0x80)
	   P2OUT|=0x04;
	   //dio=1;
	 else
	   P2OUT&=0x0fb;
	   //dio=0
	 //dio=mos_bit;
	 _NOP();
	 _NOP();
	 P2OUT|=0x02;
        //clk=1;
	 delay_8us();
 	 com_data=com_data<<1;
 	P2OUT&=0x0fd;
 	// clk=0;
	}
	P1OUT&=0x0fb;
	//dio=0;
    }
 
     uchar zlg7289_receive()
   {
	uchar i;
	  P2DIR&=0x0fb;
	  P2OUT|=0x04;
	  
	//dio=1;
	delay_25us();
	for(i=0;i<8;i++)
	{
	 com_data=com_data<<1;
	  P2OUT|=0x02;
	// clk=1;
	 delay_8us();
	 if(P2IN&0x04)
	 com_data|=0x01;
	 else
	 com_data&=0x0fe;
	 //low_bit=dio;
	 _NOP();
	 _NOP();
	 P2OUT&=0x0fd;
	 //clk=0;
	 delay_8us();
	 
	}	
	re_buf=com_data;
	P2OUT&=0x0fb;
	//dio=0;
	return(re_buf);
   }

   void reset(void)
  {
	//cs=1;
       // key=1;
	//dio=1;
	//delay_25ms();
	P2OUT|=0x0fd;
	zlg7289_send(0xa4);
	//cs=1;
	P2OUT|=0x01;
   }
  //
  // void int0_srv(void)interrupt 0 using 1
//  interrupt void Port2(void)
   void  Chuli()
  {
    P2DIR|=BIT0;
    if(P2IFG&BIT3)
    {
     zlg7289_send(0x15);
     zlg7289_receive();
     P2OUT|=0x01;
   //  cs=1;
     zlg7289_send(0xa1);
     zlg7289_send(0xa1);
     P2OUT|=0x01;
     //cs=1;
     decimal=re_buf/10;
     re_buf=re_buf%10;
     zlg7289_send(0x81);
     zlg7289_send(decimal);
     P2OUT|=0x01;
    // cs=1;
     zlg7289_send(0x80);
     zlg7289_send(re_buf);
     P2OUT|=0x01;
    // cs=1;
     zlg7289_send(0x88);
     zlg7289_send(0x0fc);
     P2OUT|=0x01;
     while(!(P2IN&BIT3));
     }
    // cs=1;
   }
   
   
   void main()
  {
    WDTCTL=WDTPW+WDTHOLD; 
    BCSCTL1&=~(XT2OFF+XTS);
    BCSCTL2|=SELM1;
    BCSCTL2&=~SELS;
    P2DIR|=BIT0+BIT1;
   // EA=1;
   // EX0=1;
 //  P2IES&=~BIT3;
//   P2IE|=BIT3;
  //  _EINT();
   reset();
   P2DIR|=~BIT3;
 //  zlg7289_send(0x80);
 //  zlg7289_send(8);
   while(1)
   {
     if(!(P2IN&BIT3))Chuli();
   } 
     }
     
     
     
     
     
     
     
     

⌨️ 快捷键说明

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