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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » кодовый замок


кодовый замок

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

1

Всем привет
Нужна помощь в написании прошивки кодового замка с тремя или пятью кнопками.
Если у кого есть примеры в васике прошу поделитесь .

0

2

Пишешь алгоритм работы устройства, хотя бы на словах, но лучше блок-схемой. Так называемое ТЗ. Еще до написания кода возникнет куча вопросов.

0

3

Алоха.

Вы бы хоть логику описали...
А так, было бы прикольнее сделать кодовый замок на ритм (с одной кнопкой), типа как в футболе кричалка. :D Только подобное потом сложно передать кому...

0

4

ну приблизительно так

$regfile = "m8def.dat"
$crystal = 1000000

'конфигурация дисплея
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Cursor Off
Cls

'переменные
Dim W As Byte                                               '
Dim D As Byte
D = 1234

'цикл программы замка
Do
'А Здесь Опрос Кнопок

Loop Until D = W выходим из цикла
End

'Главный цикл программы

Do
' Ждесь Будет Написана Основная Прога
Loop
End

вот как сделать опрос кнопок пока не могу придумать

0

5

миша, сначала на словах по пунктам распиши, что устройство должно делать.

0

6

[spoiler="опрос KEYPAD"]['--------------------------   МАТРИЦА 4Х4  -------------------------------------
Опрос_keypad:
   Ddrd = &B11110000       'задаем: D7-D4_ВЫХОД, D3-D0_ВХОД
   Portd = &B11111111
   '-----колонна 1
   Portd = &B11101111
   waitms 5
If Pind.0 = 0 Then
   Цифра_нажатой_кнопки = 49       '"1"
   Return
Elseif Pind.1 = 0 Then
   Цифра_нажатой_кнопки = 52       '"4"
   Return
Elseif Pind.2 = 0 Then
   Цифра_нажатой_кнопки = 55       '"7"
   Return
Elseif Pind.3 = 0 Then
   Цифра_нажатой_кнопки = 42       '"*"
   Return
End If
   '-----колонна 2
   Portd = &B11011111
   waitms 5
If Pind.0 = 0 Then
   Цифра_нажатой_кнопки = 50       '"2"
   Return
Elseif Pind.1 = 0 Then
   Цифра_нажатой_кнопки = 53       '"5"
   Return
Elseif Pind.2 = 0 Then
   Цифра_нажатой_кнопки = 56       '"8"
   Return
Elseif Pind.3 = 0 Then
   Цифра_нажатой_кнопки = 48       '"0"
   Return
End If
   '-----колонна  3
   Portd = &B10111111
   waitms 5
If Pind.0 = 0 Then
   Цифра_нажатой_кнопки = 51       '"3"
   Return
Elseif Pind.1 = 0 Then
   Цифра_нажатой_кнопки = 54       '"6"
   Return
Elseif Pind.2 = 0 Then
   Цифра_нажатой_кнопки = 57       '"9"
   Return
Elseif Pind.3 = 0 Then
   Цифра_нажатой_кнопки = 35       '"#"
   Return
End If
   '-----колонна  4
   Portd = &B01111111
   waitms 5
If Pind.0 = 0 Then
   Цифра_нажатой_кнопки = 65       '"A"
   Return
Elseif Pind.1 = 0 Then
   Цифра_нажатой_кнопки = 66       '"B"
   Return
Elseif Pind.2 = 0 Then
   Цифра_нажатой_кнопки = 67       '"C"
   Return
Elseif Pind.3 = 0 Then
   Цифра_нажатой_кнопки = 68       '"D"
   Return
End If
Return]

Вот схема замка с кодом до 5-ти знаков
Клава вот такая
Выполняет: Сработка звука по состоянию шлейфа. Можно управлять магнитом. Звук выключается "правильным" набором кода. Запоминает набранную комбинацию (в сервисном режиме).
http://se.uploads.ru/t/IFrpK.jpg
http://sg.uploads.ru/t/PqasG.jpg
Если чутка доработать, будет работать и как кодовый замок.

Отредактировано Каримов (2016-08-23 16:47:50)

+1


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » кодовый замок