Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Управление по паролю


Управление по паролю

Сообщений 1 страница 7 из 7

1

Знатоки помогите , делаю управление по DTMF  на микросхеме MT8870,  подключена к порту В . Как организовать управление по паролю , то есть сначала нужно ввести с порта  пин код -типа 1234  использую первые 4 бита порта В и если код совпадет совершить какое то действие.  По простому паролю - типа 1 или 4   все ясно , а как вот быть с 4 байтным. Я еще только учусь , подскажите.

Отредактировано andreyasb (2016-02-15 17:11:07)

0

2

А когда нет сигнала, микруха выдаёт 0? Если да, то:

1. считаете паузы - это отпускание кнопки/разделитель;
2. долгая пауза - это сброс в ноль ввода.

Но лучше сделать ввод с управляющей кнопкой, что-то вроде "ввод", тогда:

1. считаете паузы - это отпускание кнопки/разделитель;
2. долгая пауза - это сброс в ноль ввода.
3. каждый ввод пароля ограничиваем длиной введённых/нажатых кнопок/данных;
4. запускаем проверку пароля по "ввод".

Пункт 2 в вариантах можно вымерять обычным циклом или просто таймером.

0

3

у этой м-мы есть спец выводы:
- есть сигнал
- сигнал активен
- 4 выхода данных.

Не поленитесь скачать и прочитать документацию

0

4

У меня на вход В поступает байтовая комбинация  если 1 то 00000001 если 2 то 00000010.  Мне нужно принять 4 комбинации  типа 1, 2 , 3 , 4  ( 4  байта) это будет пароль . и проверить этот пароль  на тот который записан в переменной и если совпадет произвести действие.  С одним байтом все понятно, считываю с порта скажем 1 (00000001) сравниваю с 1 . А как с комбинацией 1234  , записывать в переменную  и сдвигать на 8 бит и так 4 раза пока не запишется 1234?

0

5

Получили 1, ждём 2.  если 2 то включаем бит 0 , байта "пароль", если нет то "пароль"=0 и всё сначала. После двойки ждём 3 , и включаем "пароль. 1" и т. д.
Соответственно если в пароле 4 цифры, то "замок" откроется при "пароль"=&b00001111

+1

6

kip написал(а):

Получили 1, ждём 2.  если 2 то включаем бит 0 , байта "пароль", если нет то "пароль"=0 и всё сначала. После двойки ждём 3 , и включаем "пароль. 1" и т. д.
Соответственно если в пароле 4 цифры, то "замок" откроется при "пароль"=&b00001111


То есть ,мне нужно каждый байт принятый с порта сравнивать с 1,2,3,4 (пароль) .и если совпадет выставлять биты . A как хранить такой пароль в энерго нез.памяти и при чтении сравнивать .

я сделал так ,может есть проще способ, покажите пример. 

Код:
Dim A As Long
Dim S As Long     здесь  пароль
Dim E As Byte

Config Portb.0 = Input    -    0,1,2,3 - код
Config Portb.1 = Input
Config Portb.2 = Input
Config Portb.3 = Input
Config Portb.4 = Input    -   проверка пришел ли DTMF
Config Portb.5 = Output
Config Portb.6 = Output
Config Portb.7 = Output

Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Reset Portb.4
Reset Portb.5
Reset Portb.6
Reset Portb.7
С=0

do

Naaaa:     -  основная прогр.
Goto  Riii
Loop
end

Riii:
    If Pinb.4 = 1 Then      - проверка пришел ли  код  DTFM
     Goto Innport

   Else
      Call D3310position(0 , 4)
   Call D3310print( "net DTFM ")
    End If

    Goto Naaaa

 Innport:


    Call D3310position(0 , 4)
   Call D3310print( "YES DTFM ")

    E = Pinb     -  считываю код
    Waitms 50
     Reset E.7         сбрасываю стар 4 бита
      Reset E.6
    Reset E.5
      Reset E.4
     A = A + E
    Incr C
     If C = 4 Then        если пришли все 4 кода  иду на сравнение  с паролем
     Goto Goo
      Else

      Shift A , Left , 8       если нет  сдвигаю  на 8 бит  
      End If
   Wait 1
 Goto Riii


 Goo:
   If A = S Then    --   сравниваю с  пер S   в котор . зап. пароль
   Gosub Okkk              если  прав. То иду на Оккк
    Else
C = 0
     A = 0
      Call D3310position(0 , 5)
   Call D3310print( "parol NO" )

   Wait 1
    End If
    Goto Riii

Okkk:

     Call D3310position(0 , 5)
   Call D3310print( "parol OK" )
     C = 0
     A = 0
   Wait 1

    Goto Riii

Отредактировано andreyasb (2016-02-16 09:19:54)

0

7

Что не кто не знает?

0


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Управление по паролю