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

📄 5w mself.c

📁 这是一款老化新型的小型继电器的装置
💻 C
字号:
//--------------头文件------------------------
#include<REG51.H>
//--------------自定义-----------------------
#define DB_port P2
sbit key_start=P1^0;
sbit key_stop=P1^1;
sbit relay_out=P1^7;
sbit clk_164=P2^4;
sbit data_164=P2^5;
unsigned char step;
unsigned int relay_data;
unsigned char data_array[5];
//--------------函数声明---------------------
void delay(unsigned char j);
void delays(void);
void key_dispose(void);
void display(void);
void display2(void);
void transmit(unsigned char digital);
void timer0_initial(void);
void xxxqq(void);
//--------------主函数------------------------
void main(void)
{     
      relay_out=1;
	  clk_164=1;
	  delay(50);
      transmit(0x00);
	  do{
      xxxqq();
	  }
	  while(1);
}
void xxxqq(void)
	  {
      if(key_start==0)
      delays();
      if(key_start==0)
      {   
	      relay_out=1;
          DB_port=DB_port||0x0f;
          timer0_initial();
	      for(;;)
	      {	  
		      if(key_stop==0)
              delays();
              if(key_stop==0)
	          {EA=0;}
			  if(key_start==0)//+
			  delays();       //+
			  if(key_start==0)//+
			  {EA=1;}         //+
	          if(relay_data>=25000)
		      {EA=0;}
		      display();
	      }
       }
       else
	      display2();
	   }
//-------------延时--------------------------
void delay(unsigned char j)
{
    unsigned char i;
	unsigned int db_data;

    for(i=0;i<j;i++)
	{
	data_array[4]=relay_data/10000;
          db_data=relay_data%10000;
	data_array[3]=db_data/1000;
	         db_data=db_data%1000;
	data_array[2]=db_data/100;
	      db_data=db_data%100;
	data_array[1]=db_data/10;
	data_array[0]=db_data%10;	  
	}
}
void delays(void)
{
     unsigned char d;
	 for(d=0;d<10;d++);
}
//-------------响应按键----------------------
void key_dispose(void)
{
}
//--------------定时器初始化------------------
void timer0_initial(void)
{
        EA=0;
		ET0=0;
		TR0=0;
		TMOD=0x01;
		TH0=0x3c;
		TL0=0xb0;
		ET0=1;
		TR0=1;
		EA=1;
}
//--------------定时器中断函数----------------
void timer0(void) interrupt 1 using 1
{
        TH0=0x3c;
		TL0=0xb0;
        step++;
        if(step==80)
  	    relay_out=0;
        if(step==86)
        {
		relay_out=1;
		step=0;
		relay_data++;
        }
} 
//--------------显示处理函数-------------------0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
void display(void)
{
       unsigned char code 
	   form[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//

       DB_port=DB_port|0x0f;
       transmit(form[0]);
       DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf0;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(form[data_array[4]]);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf1;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(form[data_array[3]]);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf2;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(form[data_array[2]]);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf3;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(form[data_array[1]]);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf4;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(form[data_array[0]]);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf5;
	   delay(1);
	   DB_port=DB_port|0x0f;
}
void display2(void)
{
       DB_port=DB_port|0x0f;
       transmit(0x3f);
       DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf0;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(0x3f);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf1;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(0x3f);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf2;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(0x3f);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf3;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(0x3f);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf4;
	   delay(1);

	   DB_port=DB_port|0x0f;
	   transmit(0x3f);
	   DB_port=DB_port|0x0f;
	   DB_port=DB_port&0xf5;
	   delay(1);
	   DB_port=DB_port|0x0f;
}
//--------------发送字节函数-------------------
void transmit(unsigned char digital)
{
     unsigned char a;
     unsigned char b=0x01;
	 unsigned char i=0;
	 for(i=0;i<8;i++)
	{
	    a=(digital&b);
	    if(a==0)
	    {
	       data_164=0;
		   data_164=0;
		   data_164=0;
		   clk_164=0;
		   clk_164=0;
		   clk_164=1;
		   clk_164=1;
	     }
	     else
	     {
	       data_164=1;
		   data_164=1;
		   data_164=1;
		   clk_164=0;
		   clk_164=0;
		   clk_164=1;
		   clk_164=1;
		  }
		  b<<=1;
	 }
}
		   

⌨️ 快捷键说明

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