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

📄 msp430fwc.c

📁 tiMSP430F147体能监测设备源码
💻 C
📖 第 1 页 / 共 5 页
字号:
				a = a<<4;
				disp3 = a >> 4;
				disp_lcd(0,disp1,disp2,disp3,0);
				sound_s();
				
				/*incard_led = 1;*/
	                        P5OUT|=BIT0; 
	                        /*test_led = 1;*/
                                P5OUT&=~BIT3; 
                                /*incard_led = 1;*/
	                        P5OUT&=~BIT2; 
	                        /*testend_led = 0;*/
			        P5OUT&=~BIT1; 
			        FLAG&=~BIT3;
			        goto mainloop1;
testend:     		        /*incard_led = 1;*/
	                       P5OUT|=BIT0; 
	                       /*test_led = 1;*/
                               P5OUT&=~BIT3; 
                               /*incard_led = 1;*/
	                      P5OUT&=~BIT2; 
	                      /*testend_led = 0;*/
			      P5OUT&=~BIT1; 
		                FLAG&=~BIT3;
		                goto mainloop; 
				
	               disp_lcd(0x0d,0x0d,0x0d,0x0d,0);
        
}
void checkcard(void)
{
	if((P1IN&BIT2)== 0)    //P1IN&BIT2为card_sw
	{
	      	  delay(200);
	          IC_error = 0;
	          a = IC_read(PASS0);
                  i = a;
		  i = i<<8;
		  a = IC_read(PASS1);
		  i = i+a;
	          if ((IC_error == 0xff)||(i!=0x4a48))		//判卡:1。插反  2。误卡
		  {
		      //while(card_sw == 0)
                        while((P1IN&BIT2)== 0)
                        {
                              disp_lcd(0x0d,0x0c,0x0c,0x0d,0);
                              //EA = 0;
			      _DINT();
			      sound_s();
			      sound_s();
			      //EA = 1;
			      _EINT();
			      delay(100);
			      delay(100);
			      delay(100);
			      delay(100);
			 }
		  }
		  else
		  {
		  	/*prep_led = 0;*/
			//P5OUT|=BIT1;
			/*incard_led = 1;*/
			P5OUT&=~BIT0; 
			/*P5OUT|=BIT0; */
			a = IC_read(NUM0);
			i = a;
			i = i<<8;
			a = IC_read(NUM1);
			i = i+a;
			HEX_BCD(i);
			disp_lcd(BCD[4],BCD[5],BCD[6],BCD[7],0);//显示编号
			sound_s();
			delay(255);
			delay(255);	
			delay(255);
			delay(255);
			readicid();                             /*************读取卡号****************/         
			b = 0;
			//EX0 = 0; 
			P2IE&=~BIT6;   
			prenum = 0;
			a = IC_read(FYS_flag);
			if (a!=0)
			{
			   /*prep_led = 0;*/
			   P5OUT|=BIT0;
			   /*incard_led = 1;*/
			   P5OUT&=~BIT3; 
			   /*P5OUT|=BIT0; */
			   P5OUT&=~BIT1;
			   //repeatestf = 0xb0;
			   //goto disp_end;	//已经测试,显示结果
			   xsjg();
			}
			else
			{
			  P5OUT&=~BIT3; 
			   /*P5OUT|=BIT0; */
			   P5OUT&=~BIT0; 
			   /*P5OUT|=BIT0; */
			   P5OUT|=BIT2; 
			   /*P5OUT|=BIT0; */
			   P5OUT&=~BIT1;
			}
		   }
          }
}
void HEX_BCD(unsigned long dd)
{	
	unsigned long div;
	uchar i;
	div=10000000;
	for (i=0;i<8;i++) 
	{
		BCD[i]=dd/div;
		dd%=div;
		div/=10;
	}
}
void HEX_BCD4(uint dd)
{	
	uint div;
	uchar i;
	div=10000;
	for (i=3;i<8;i++) 
	{
		BCD[i]=dd/div;
		dd%=div;
		div/=10;
	}
}
//////////////////////////////////

void sound_s(void)
{
	/*sound = 1;*/
	P5OUT|=BIT7;     //打开蜂鸣器
	delay(200);
	delay(200);
	/*sound = 0;*/
	P5OUT&=~BIT7;   //关闭蜂鸣器	
}

void sound_star(void)
{
	/*sound = 1;*/
	P5OUT|=BIT7;     //打开蜂鸣器
	delay (200);
	delay (200);
	delay (200);
	delay (200);
	/*sound = 0;*/
	P5OUT&=~BIT7;   //关闭蜂鸣器	
}

void delay1(uchar x)
{
	uint i;
   	for(i=0;i<x;i++);

}
void nop()
{
}
/*void start()
{
	sda=1; 
   	nop(); 
   	scl=1; 
   	nop(); 
   	sda=0; 
   	nop(); 
   	scl=0; 
   	nop();
}*/
void start430()
{
        P3OUT|=(SDA430+SCL430);   //将SDA置1
        P3DIR|=(SCL430+SDA430);   //将SCL SDA定义为输出
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        P3OUT|=SCL430;          //SCL=1
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        P3OUT&=~SDA430;         //SDA=0;
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        P3OUT&=~SCL430;         //SCL=0
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
}
/*void stop()
{
   	sda=0; 
   	nop(); 
   	scl=1; 
   	nop(); 
   	sda=1; 
   	nop();
}*/
void stop430()
{
       P3OUT&=~SDA430;       //SDA=0
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
       P3OUT|=SCL430;        //SCL=1
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
       P3OUT|=SDA430;        //SDA=1
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
}
/*void writex(uchar j)
{
   	uchar i,temp;
   	temp=j;
   	for (i=0;i<8;i++)
   	{
      		temp=temp<<1; 
      		scl=0; 
      		nop(); 
      		sda=CY; 
      		nop(); 
      		scl=1; 
      		nop();
   	}
   	scl=0; 
   	nop(); 
   	sda=1; 
   	nop();
}*/
void writex430(uchar j)
{      
        uchar i,temp,temp1;
   	temp=j;
   	for (i=0;i<8;i++)
   	{
   	     P3OUT&=~SCL430;    //SCL=0;
   	     nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
   	     //P3OUT&=~SDA430;
   	     nop();
   	     nop();
   	     temp1=(temp&0x80);
   	     if(temp1==0) P3OUT&=~SDA430;
   	     else P3OUT|=SDA430;  
   	     /*P3OUT|=((temp&0x80)/32); //sda=temp的最高位*/
   	     temp=temp<<1;
   	     nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
   	     P3OUT|=SCL430;    //SCL=1;
   	     nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
             nop();
   	     
   	  }
   	P3OUT&=~SCL430;       //SCL=0
   	nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
   	P3OUT|=SDA430;      //SDA=1
   	nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
}
   	  
/*uchar readx()
{
   	uchar i,j,k=0;
   	scl=0; 
   	nop(); 
   	sda=1;
   	for (i=0;i<8;i++)
   	{
      		nop(); 
      		scl=1; 
      		nop();
      		if (sda==1) j=1;
      		else j=0;
      		k=(k<<1)|j; 
      		scl=0;
   	}
   	nop(); 
   	return(k);
}*/

uchar readx430()
{
     uchar i,j,k=0;
     P3OUT&=~SCL430;   ///SCL=0;
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
     P3DIR&=~SDA430;   //SDA为输入状态
     for (i=0;i<8;i++)
     {
        
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        nop();
        P3DIR|=SDA430;   //****************************************
        P3OUT|=SCL430+SDA430;  //SCL=1;

⌨️ 快捷键说明

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