Beispiel #1
0
void i2c()
{
	comm_init();
	init_24c02();
	while(temp!='#')
	{
		temp=_getkey();
		if(temp=='&')
		{
			while(temp!='$')
			{
				temp=_getkey();
				write_add(i++,temp);
			}
			i=0;
		}
		if(temp=='^')
		{
			while(read_add(t++)!='$')
			{
				printf("%c",read_add(t-1));
			}
			t=0;
		}
	}
}
Beispiel #2
0
Datei: IIC.c Projekt: hnulong/C51
void init()
{	
	wela=0;
	dula=0;
	//temp=0;
	TMOD=0x01;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	EA=1;
	ET0=1;
	TR0=1;	

	sda=1;
	delay();
	scl=1;
	delay();

	bai=read_add(23);
	delay1(10);
	shi=read_add(24);
	delay1(10);
	ge=read_add(25);
	delay1(10);
	temp=bai*100+shi*10+ge;
}
Beispiel #3
0
Datei: IIC.c Projekt: hnulong/C51
void main()
{	
	init();//初始化子程序
	while(1)
	{
		if(aa==10)
		  {
			aa=0;
			temp++;
			if(temp==1000)
			   {
					temp=0;
			   }
			bai=temp/100;
			shi=temp%100/10;
			ge=temp%10;
			write_add(23,bai);
			delay1(10);
			write_add(24,shi);
			delay1(10);
			write_add(25,ge);
			delay1(10);
		  }
		  bai=read_add(23);
		  delay1(10);
		  shi=read_add(24);
		  delay1(10);
		  ge=read_add(25);
		  delay1(10);
		  display(bai,shi,ge);
	}
}
Beispiel #4
0
void init()
{
	write_com(0x01);
	year=readyear+2000;
	month=readmonth;
	day=readday;
	hour=readhour;
	minute=readminute;
	second=readsecond;
	week=readweek;
	display1();
	TMOD=0x01;
	TH0=(65536-5000)/256; 
	TL0=(65536-5000)%256;
	EA=1; //¿ª×ÜÖжÏ
	ahour=read_add(1);
	amin=read_add(2);
}
Beispiel #5
0
//向地址读n个字节数据,数据存放在指针P指的数组中
unsigned char read_n_add(unsigned char * p,unsigned char address,unsigned char n)
{
 unsigned char i;
 for(i = 0; i < n; i++)
 {
  *(p + i) = read_add(address + i);
 // *(p + i) = read_add(address++);
  
 }
 return  (address + i);
}
Beispiel #6
0
PCFOP * read_instr(struct PCFState * st, const char * line, uint32_t iptr)
{
  char buf[LINE_MAX], *bitr;
  buf[0] = '\0';
  bitr = buf;

  assert(line[0] == '(');
  line++;

  while((line[0] != ' ') && (line[0] != ')'))
    {
      bitr[0] = line[0];
      line++;
      bitr++;
    }
  bitr[0] = '\0';

  if(strcmp(buf, "LABEL") == 0)
    return read_label(line, st, iptr);
  else if(strcmp(buf, "INITBASE") == 0)
    return read_initbase(line);
  else if(strcmp(buf, "CONST") == 0)
    return read_const(line);
  else if(strcmp(buf, "GATE") == 0)
    return read_gate(line);
  else if(strcmp(buf, "BITS") == 0)
    return read_bits(line);
  else if(strcmp(buf, "MKPTR") == 0)
    return read_mkptr(line);
  else if(strcmp(buf, "COPY") == 0)
    return read_copy(line);
  else if(strcmp(buf, "COPY-INDIR") == 0)
    return read_copy_indir(line);
  else if(strcmp(buf, "INDIR-COPY") == 0)
    return read_indir_copy(line);
  else if(strcmp(buf, "CALL") == 0)
    return read_call(line);
  else if(strcmp(buf, "RET") == 0)
    return read_ret(line);
  else if(strcmp(buf, "BRANCH") == 0)
    return read_branch(line);
  else if(strcmp(buf, "CLEAR") == 0)
    return read_clear(line);
  else if(strcmp(buf, "JOIN") == 0)
    return read_join(line);
  else if(strcmp(buf, "ADD") == 0)
    return read_add(line);
  else if(strcmp(buf, "MUL") == 0)
    return read_mul(line);
  assert(0);
}
Beispiel #7
0
/*------
主函数
------*/
void main()
{
	INIT();//初始化IIC总线
	timer_init();//初始化定时器,但不启动
	sec=read_add(2);//上电后首先从芯片读取之前数据
	if (sec>99)//防止读取错误
		sec=0;
	TR0=1;//开始计时
	while(1) 
	{	
		if (write==1)//1s钟到,可以写入
		{
			write_add(2,sec);
			write=0;//写入后清零
		}
		show_2_number(sec);//刷新
	}
}
Beispiel #8
0
void main()
{
	uchar i,temp;
	init_24c02();
	while(1)
	{
		for(i=0;i<=0xfe;i++)
		{
			write_add(i,i);
			delay(10);
		}
		for(i=0;i<=0xfe;i++)
		{
			temp=read_add(i);
		}
		while(1);
	}
}
Beispiel #9
0
void main()
{
	setlocale(LC_ALL, "Russian");
	struct der *dr;
	dr = NULL;
	int flag = 0, sh, i;
	FILE *file;

	GG = (struct der **)calloc(M, sizeof(struct der *));

	while (1)
	{
		puts("Выбирите вид операции:");
		puts("	1 - Создать дерево");//
		puts("	2 - Загрузить дерево из файла");
		puts("	3 - Вывод содержимого дерева");//
		puts("	4 - Добавление элемента в дерево");//
		puts("	5 - Удаление элемента из дерева");//
		puts("	6 - Полное удалнение (очистка) дерева");//
		puts("	7 - Сорханить в файл");//
		puts("	8 - Удалить все до определенной даты");//
		puts("	9 - Выход");
		do
		{
			//fflush(stdin);
			__fpurge(stdin);
			if (!scanf("%d", &flag) || (flag < 1) || (flag > 9))
			{
				puts("Ошибка ввода. Введите заново");
			}
		} while (!flag || (flag < 1) || (flag > 9));

		switch (flag)
		{
		case 1: dr = sozd(dr); break;
		case 2: 
		{
			file = fopen("file.txt", "r");
			if (!file)
			{
				puts("Файл не найден");
				break;
			}
			fscanf(file, "%d", &GP);
			
			if (dr || GP == 0)
			{
				fclose(file);
				puts("Бинарное дерево уже создано");
				break;
			}
			dr = read(dr, file);
			sh = 1;
			while (sh != GP)
			{
				read_add(dr, file);
				sh++;
			}
			
			fclose(file);
			break;
		}
		case 3: see(dr); puts("Если пусто, то элементы дерева удалены, добавте."); break;
		case 4: add(dr); break;
		case 5: del(dr); break;
		case 6: f_free(dr); dr = NULL; break;
		case 7:
		{
			file = fopen("file.txt", "w");
			fprintf(file, "%d\r\n\r\n", GP);
			save(dr, file);
			fclose(file);
			break;
		}
		case 8: del_op(dr); break;
		case 9: f_free(dr); free(GG); return;
		}
	}
}
   void main()
    {
   int   ldr1,ldr2,ldr1_p,ldr2_p, v, t,count ;
        char tx[7], a,b;
    int i;
int temp1;
char test[32];

CE_DIR=0;
CSN_DIR=0;
CSK_DIR=0;
MOSI_DIR=0;
MISO_DIR=1;

nrf24_config();
CSN=1;
CE=1;
//////////////////////////////////////////////

       lcd_init();
       //trisc=0;
        trisd=0;
        portd=0;
        count=0;
                   while(1)
          {
           //////////////////////////////////////////////////////////
           temp1=read_add(0x07);
if(((temp1&0b01000000)>>6)==1)
{
CE=0;
delay_ms(50);
//lcd_out(1,1,"data");
read_buff(0x61,test,32);
lcd_out(1,1,test);
delay_ms(2000);
reset();
CE=1;

}
else
lcd_out(1,1,"no  ");
          
          
          
          
          
          
          
          
          
          
          
          
         ///////////////////////////////////////////////////////////////
         /*ldr1=adc_read(1);
          ldr2=adc_read(2);
           v=adc_read(0);
              t=0.4887*v;
              if(t>=28)
                {portd=0b00110000;}
              else
                {portd=0;}

               a  =t/10;
               b =t%10;
               lcd_out(1,1,"temp=");
               lcd_chr(1,7,a+48);
               lcd_chr(1,8,b+48);
               if(ldr1>=900&&ldr1_p<800)
               {
             count++;
               }
               ldr1_p=ldr1;
                if(ldr2>=400&&ldr2_p<350)
               {
                count--;
                if(count<0)
                count=0;
               }
               ldr2_p=ldr2;
               a  =count/10;
               b =count%10;
               lcd_out(2,1,"count=");
               lcd_chr(2,8,a+48);
               lcd_chr(2,9,b+48);*/




}
//////////////////////////////////////////RETSET /////////////////////////
void reset()
{
write_add(0x07,0x7E);
read_add(0xE1);
read_add(0xE2);
}
Beispiel #12
0
/*
	读取flash数据
	add:输入flash_reg_add里的偏移量
	data_length:输入所读取的数据的长度1八位,2十六位
	return:flash数据*/
unsigned int flash_read(unsigned char add,unsigned char data_length)
{
	return read_add(block_head_locate(active_sector_num,active_block_num)+add,data_length);
}
Beispiel #13
0
/*
	读扇区活跃单元序号
	sec:扇区号
	return:活跃单元号*/
unsigned int read_sector_mark(unsigned char sec)
{
	return ram_flash(read_add(((sec+1)*sector_size)-2,2),left);
}
void main() {
int i;
int temp1;
char test[32];
uart1_init(2400);
CE_DIR=0;
CSN_DIR=0;
CSK_DIR=0;
MOSI_DIR=0;
MISO_DIR=1;
delay_ms(500);
nrf24_config();
CSN=1;
CE=1;




lcd_init();
Lcd_Cmd(_LCD_CURSOR_OFF);
//lcd_out(2,1,"welcome");

trisb.f0=0;
rb0_bit=0;
trisd.f0=0;
for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(400);
rd0_bit=0;
delay_us(19600);

}
uart1_write_text("TEST");
uart1_write(13);

//lcd_out(1,1,"S");
while(1)
{
  temp1=read_add(0x07);
if(((temp1&0b01000000)>>6)==1)
{
CE=0;
delay_ms(50);
//lcd_out(1,1,"data");
read_buff(0x61,test,32);
uart1_write_text(test);
lcd_out(1,1,test);
reset();
CE=1;

}


















 if(uart1_data_ready())
 {
  rfid[idx]=uart1_read();

   ///////////////////////////////////////////////////////////03002e2838
  if(rfid[idx]=='0'&&valid2<10)
  {
   valid2++;
  }
   else if(rfid[idx]=='3'&&valid2<10)
  {
   valid2++;
  }
   else if(rfid[idx]=='2'&&valid2<10)
  {
   valid2++;
  }
  else if(rfid[idx]=='E'&&valid2==5)
  {
   valid2++;
  }
  else if(rfid[idx]=='8'&&valid2<10)
  {
   valid2++;
   }
  else
  {
  valid2=0;
  }



   if(rfid[idx]=='0'&&valid1<10) //03002e90b0
  {
   valid1++;
  }
   else if(rfid[idx]=='3'&&valid1==1)
  {
   valid1++;
  }
   else if(rfid[idx]=='2'&&valid1==4)
  {
   valid1++;
  }
  else if(rfid[idx]=='E'&&valid1==5)
  {
   valid1++;
  }
  else if(rfid[idx]=='9'&&valid1==6)
  {
   valid1++;
  }
    else if(rfid[idx]=='B'&&valid1==8)
  {
   valid1++;
  }
  else
  {
  valid1=0;
  }








  if(valid2>=10)
  {
  lcd_out(2,1,"User2 : 03002E2838");
  delay_ms(1000);
   lcd_cmd(_lcd_clear);
   lcd_out(2,1,"UnValid");
   valid2=0;
   for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(400);
rd0_bit=0;
delay_us(19600);

}
   delay_ms(1000);
   lcd_cmd(_lcd_clear);
  }



 if(valid1>=10)
  {
  lcd_out(2,1,"User1 : 03002E90B0");
     delay_ms(1000);
   lcd_cmd(_lcd_clear);
   lcd_out(2,1,"Valid");
   valid1=0;
   for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(1500);
rd0_bit=0;
delay_us(18500);

}
   delay_ms(1000);
    for(i=0;i<30;i++)
{
rd0_bit=1;
delay_us(400);
rd0_bit=0;
delay_us(19600);

}
   
   
   
   lcd_cmd(_lcd_clear);
  }

 }



}






}
Beispiel #15
0
	write_byte(0xa0);//a表示器件地址,0表示接收数据
	respons();//应答
	write_byte(address);//读数据的地址
	respons();//应答
	start();
	write_byte(0xa1);//1表示读数据
	respons();
	date=read_byte();
	stop();
	return date;
}void timer0() interrupt 1
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	   num++;
		t=read_add(13);
		if(num%20==0)
		{

			t++;
			num=0;
  			write_add(13,t);
			delay1(10);
		}
}
void display(uchar bai,uchar shi,uchar ge)
{

		P0=table[bai];//送百位
		P1=0xfe;//位选通百
		delay1(1);