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

📄 at2402.c

📁 24c02存储小时钟程序
💻 C
📖 第 1 页 / 共 2 页
字号:
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SCL = 0;
		write_data <<= 1;
	}
	SDA = 1;			// 读取应答
	_nop_();
	_nop_();
	SCL = 1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	ack_bit = SDA;
	SCL = 0;
	return ack_bit;			// 返回AT24Cxx应答位
}

void write_byte(unsigned char addr, unsigned char write_data)
// 在指定地址addr处写入数据write_data
{
	start();
	shout(OP_WRITE);
	shout(addr);
	shout(write_data);
	stop();
	delay_1ms(10);		// 写入周期
}


unsigned char read_current()
// 在当前地址读取
{
	unsigned char read_data;
	start();
	shout(OP_READ);
	read_data = shin();
	stop();
	return read_data;
}

unsigned char read_random(unsigned char random_addr)
// 在指定地址读取
{
	start();
	shout(OP_WRITE);
	shout(random_addr);
	return(read_current());
}

void delay_1ms(unsigned char ms)	
// 延时子程序
{
	unsigned char i;
	while(ms--)
	{
		for(i = 0; i < 120; i++);
	}
}

unsigned char key_scan()
{
 unsigned char key_number;
 key_number=0x00;
 key_number|=k1;
 key_number<<=1;
 key_number|=k2;
 key_number<<=1;
 key_number|=k3;
 key_number<<=1;
 key_number|=k4;
 return(key_number);
}
void timer_disp()interrupt 1 using 1
 {
  TR0=0;
  TH0=0xfc;
  TL0=0x78;
  P0=0xff;
  P2=0xff;
  ++disp_bit;
  if(flash_bit)
   {
    switch(disp_bit)
	 {
	   case 1:
              P0=disp_code[eeprom_data[0]];
			  disp_bit0=0;
  	          break;
	   case 2:
	          P0=disp_code[eeprom_data[1]];
			  disp_bit1=0;
	          break;
	   case 3:
	          P0=disp_code[eeprom_data[2]];
			  disp_bit2=0;
	          break;
	   case 4:
	          P0=disp_code[eeprom_data[3]];
			  disp_bit3=0;
	          break;
	   case 5:
	          P0=disp_code[eeprom_data[4]];
			  disp_bit4=0;
	          break;
	   case 6:
	          P0=disp_code[eeprom_data[5]];
			  disp_bit5=0;
	         break;
	   case 7:
	          P0=disp_code[eeprom_data[6]];
			  disp_bit6=0;
	         break;
	   case 8:
	          P0=disp_code[eeprom_data[7]];
			  disp_bit7=0;
			  disp_bit=0x00;
	         break;
	   default:break;
	 }
   }
  else 
   {
     if(++flash_500ms==150)
      {
	   flash_cpl=~flash_cpl;
	   flash_500ms=0x00;
	  }
	  if(flash_cpl)
	   {
	    switch(disp_bit)
	      {
	       case 1:
              P0=disp_code[eeprom_data[0]];
			  disp_bit0=0;
  	          break;
	       case 2:
	          P0=disp_code[eeprom_data[1]];
			  disp_bit1=0;
	          break;
	       case 3:
	          P0=disp_code[eeprom_data[2]];
			  disp_bit2=0;
	          break;
	       case 4:
	          P0=disp_code[eeprom_data[3]];
			  disp_bit3=0;
	          break;
	       case 5:
	          P0=disp_code[eeprom_data[4]];
			  disp_bit4=0;
	          break;
	       case 6:
	          P0=disp_code[eeprom_data[5]];
			  disp_bit5=0;
	         break;
	       case 7:
	          P0=disp_code[eeprom_data[6]];
			  disp_bit6=0;
	         break;
	       case 8:
	          P0=disp_code[eeprom_data[7]];
			  disp_bit7=0;
			  disp_bit=0x00;
	         break;
	       default:break;
	     }
	   }
	  else
	   {
	     switch(flash_number_bit)
		  {
		   case 1:
		          switch(disp_bit)
	               {
	                  case 1:
                      P0=0xff;
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=disp_code[eeprom_data[1]];
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=disp_code[eeprom_data[2]];
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=disp_code[eeprom_data[3]];
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=disp_code[eeprom_data[4]];
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=disp_code[eeprom_data[5]];
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=disp_code[eeprom_data[6]];
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=disp_code[eeprom_data[7]];
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   case 2:
		           switch(disp_bit)
	               {
	                  case 1:
                      P0=disp_code[eeprom_data[0]];
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=0xff;
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=disp_code[eeprom_data[2]];
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=disp_code[eeprom_data[3]];
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=disp_code[eeprom_data[4]];
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=disp_code[eeprom_data[5]];
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=disp_code[eeprom_data[6]];
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=disp_code[eeprom_data[7]];
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   case 3:
		          switch(disp_bit)
	               {
	                  case 1:
                      P0=disp_code[eeprom_data[0]];
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=disp_code[eeprom_data[1]];
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=0xff;
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=disp_code[eeprom_data[3]];
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=disp_code[eeprom_data[4]];
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=disp_code[eeprom_data[5]];
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=disp_code[eeprom_data[6]];
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=disp_code[eeprom_data[7]];
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   case 4:
		           switch(disp_bit)
	               {
	                  case 1:
                      P0=disp_code[eeprom_data[0]];
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=disp_code[eeprom_data[1]];
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=disp_code[eeprom_data[2]];
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=0xff;
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=disp_code[eeprom_data[4]];
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=disp_code[eeprom_data[5]];
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=disp_code[eeprom_data[6]];
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=disp_code[eeprom_data[7]];
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   case 5:
		          switch(disp_bit)
	               {
	                  case 1:
                      P0=disp_code[eeprom_data[0]];
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=disp_code[eeprom_data[1]];
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=disp_code[eeprom_data[2]];
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=disp_code[eeprom_data[3]];
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=0xff;
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=disp_code[eeprom_data[5]];
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=disp_code[eeprom_data[6]];
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=disp_code[eeprom_data[7]];
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   case 6:
		          switch(disp_bit)
	               {
	                  case 1:
                      P0=disp_code[eeprom_data[0]];
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=disp_code[eeprom_data[1]];
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=disp_code[eeprom_data[2]];
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=disp_code[eeprom_data[3]];
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=disp_code[eeprom_data[4]];
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=0xff;
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=disp_code[eeprom_data[6]];
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=disp_code[eeprom_data[7]];
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   case 7:
		          switch(disp_bit)
	               {
	                  case 1:
                      P0=disp_code[eeprom_data[0]];
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=disp_code[eeprom_data[1]];
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=disp_code[eeprom_data[2]];
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=disp_code[eeprom_data[3]];
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=disp_code[eeprom_data[4]];
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=disp_code[eeprom_data[5]];
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=0xff;
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=disp_code[eeprom_data[7]];
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   case 8:
		           switch(disp_bit)
	               {
	                  case 1:
                      P0=disp_code[eeprom_data[0]];
			          disp_bit0=0;
  	                  break;
	                  case 2:
	                  P0=disp_code[eeprom_data[1]];
			          disp_bit1=0;
	                  break;
	                  case 3:
	                  P0=disp_code[eeprom_data[2]];
			          disp_bit2=0;
	                  break;
	                  case 4:
	                  P0=disp_code[eeprom_data[3]];
			          disp_bit3=0;
	                  break;
	                  case 5:
	                  P0=disp_code[eeprom_data[4]];
			          disp_bit4=0;
	                  break;
	                  case 6:
	                  P0=disp_code[eeprom_data[5]];
			          disp_bit5=0;
	                  break;
	                  case 7:
	                  P0=disp_code[eeprom_data[6]];
			          disp_bit6=0;
	                  break;
	                  case 8:
	                  P0=0xff;
			          disp_bit7=0;
			          disp_bit=0x00;
	                  break;
	                  default:break;
	               }
		         break;
		   default:break;
		  }
	   }
   }
   TR0=1;
 }

⌨️ 快捷键说明

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