
	void Run_Init()
	{
		S1.D0_DIR = 1;
		S2.D0_DIR = 1;
		S3.D0_DIR = 1;
		S4.D0_DIR = 1;
		
		S1.D0_OUT = 0;
		S2.D0_OUT = 0;
		S3.D0_OUT = 0;
		S4.D0_OUT = 0;
		
		A.D0_DIR = 1;
		B.D0_DIR = 1;
		C.D0_DIR = 1;
		D.D0_DIR = 1;
		E.D0_DIR = 1;
		F.D0_DIR = 1;
		G.D0_DIR = 1;
		H.D0_DIR = 1;
		
		A.D0_OUT = 1;
		B.D0_OUT = 1;
		C.D0_OUT = 1;
		D.D0_OUT = 1;
		E.D0_OUT = 1;
		F.D0_OUT = 1;
		G.D0_OUT = 1;
		H.D0_OUT = 1;
	}

	public void OS_run()
	{
		uint8 seg_data = data_show[current_index];
		uint8 s = point >> current_index;
		seg_data.7(bit) = s.0(bit);
		
		//显示当前位的数据
		send_2_byte( seg_data, current_select );
		current_select >> 1;
		current_index + 1;
		if( current_index == 4 ) reset();
	}
	
	void send_2_byte( uint8 d, uint8 select )
	{
		select =~select;
		
		S1.D0_OUT = 1;
		S2.D0_OUT = 1;
		S3.D0_OUT = 1;
		S4.D0_OUT = 1;
		
		A.D0_OUT = d.0(bit);
		B.D0_OUT = d.1(bit);
		C.D0_OUT = d.2(bit);
		D.D0_OUT = d.3(bit);
		E.D0_OUT = d.4(bit);
		F.D0_OUT = d.5(bit);
		G.D0_OUT = d.6(bit);
		H.D0_OUT = d.7(bit);
		
		S1.D0_OUT = select.0(bit);
		S2.D0_OUT = select.1(bit);
		S3.D0_OUT = select.2(bit);
		S4.D0_OUT = select.3(bit);
	}
	void DataChanged()
	{
		
	}


