Ну на другой двери все равно останется личинка замка) это устройство только для своего удобства)
Нашел код чего то похожего. Попробовал а протеусе работает, прошил и решил попробывать в железе) а оно срабатывает на любую таблетку.... или скоре я туплю .... помогите пожалуйста...
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 22.07.2011
Author : F4CG
Company : F4CG
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 8,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
#define out PORTB.1
#define led PORTB.2
#define button1 PINB.4
#define button2 PINB.3
// 1 Wire Bus functions
#asm
.equ __w1_port=0x1B ;PORTA
.equ __w1_bit=3
#endasm
#include <1wire.h>
// Declare your global variables here
#pragma warn-
eeprom unsigned char zero=255;
eeprom unsigned char rom_code[7,8];
eeprom unsigned char m=0;
#pragma warn+
unsigned char read_rom_code[8];
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
#define DS1990_FAMILY_CODE 1
#define SEARCH_ROM 0xF0
#define MAX_DEVICES 8
// Declare your global variables here
void main(void)
{ // Declare your local variables here
unsigned char i,j,n;
// Crystal Oscillator division factor: 1
#pragma optsize-
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In
// State5=P State4=P State3=P State2=0 State1=0 State0=T
PORTB=0x38;
DDRB=0x06;
// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
while(1)
{
if(w1_init()) // èíèöèàëèçàöèÿ 1-Wire
{w1_search(0xF0,&read_rom_code[0]);
for(i=0;i<m;i++) // ñðàâíåíèå ïîáàéòíî ñ÷èòàííîãî è ñîõðàíåííîãî êîäîâ
{
n=0;
for(j=0;j<8;j++) {if(read_rom_code[j]==rom_code[i,j]) n++;}
if(n==8) goto zamok;}
}
if(button1==0) // ïðîâåðêà íàæàòèÿ êíîïêè
{
while(button1==0) {} // îæèäàíèå îòïóñêàíèÿ êíîïêè
led=1; // ìèãàíèå ñâåòîäèîäà
delay_ms(500);
led=0;
// ðåæèì ïðîãðàììèðîâàíèÿ è ñòèðàíèÿ â EEPROM
while(w1_init()==0) {if(button1==0) goto end;
if(button2==0) break;}
if(button2==0)
{ while(button2==0) {}
for(i=0;i<m;i++) // ñòåðåòü âñå êëþ÷è
{for(j=0;j<8;j++) {rom_code[i,j]=0;}
m=0;}
goto led_end;}
w1_search(0xF0,&read_rom_code[0]); //çàïèñàòü â EEPROM
if(m==7) goto end;
else
{for(j=0;j<8;j++)
{rom_code[m,j]=read_rom_code[j];}
m++;
led_end: led=1; // ïîäòâåðæäåíèå çàïèñè è ñòèðàíèÿ
delay_ms(2000);
led=0;
delay_ms(500);
led=1;
delay_ms(500);
led=0;
delay_ms(200);}
end: while(button1==0) {} // îæèäàíèå îòïóñêàíèÿ êíîïêè
for(i=0;i<2;i++)
{led=1;
delay_ms(500);
led=0;
delay_ms(200);}
}
if(button2==0) delay_ms(200);
if(button2==0)
zamok: { out=1; // ïðîöåäóðà îòêðûòèÿ çàìêà
delay_ms(5000);
out=0; }