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; } } }
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; }
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); } }
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); }
//向地址读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); }
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); }
/*------ 主函数 ------*/ 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);//刷新 } }
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); } }
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); }
/* 读取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); }
/* 读扇区活跃单元序号 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); } } } }
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);