1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 19
|
||||||||||||||||
1 | ||||||||||||||||
Настройка кнопок для электронных часов22.12.2012, 00:35. Показов 3884. Ответов 4
Метки нет Все метки)
(
Добрый вечер!
Задали сделать электронные часы с будильником, часы собрала, все работает, но не знаю как настраивать кнопки в ассемблере. Так как в этом деле я новичок, не все получается, и не во всем разбираюсь. Ниже представлен сам код(все работает):
1 кнопка - выбор часы/будильник (порт С2) 2 кнопка - выбор минуты/часы (порт С3) 3 кнопка - увеличение(+) (порт С4) 4 кнопка - уменьшение(-) (порт С5) 5 кнопка - вкл/выкл. будильника (порт С1)
часы минуты секунды --> <-- при нажатии одного раза переход в минуты, 2 раза переход на часы и т.д. R22 - счетчик При оказании помощи буду благодарна))
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
22.12.2012, 00:35 | |
Ответы с готовыми решениями:
4
Текущее показание электронных часов
|
35 / 35 / 1
Регистрация: 07.02.2012
Сообщений: 79
|
||||||
22.12.2012, 10:08 | 2 | |||||
![]() Решение
Вам надо отслеживать нажатие кнопки, т. е. изменение состояния выводов порта из 1 в 0 (судя по применению команды sbis). Иначе, пока нажата кнопка действие будет выполнено многократно.
Значит, надо хранить предыдущее значение кнопок. Прочитав текущее, выделить те разряды, в которых произошло изменение из 1 в 0. Пример:
(Ассемблер из IAR, есть отличия от используемого Вами). Опрос кнопок оформите подпрограммой и вызывайте из main. Чтобы отрабатывать управление часами/будильником надо вводить дополнительные переменные: будильник вкл/выкл, указатель на корректируемое значение и т. д.. Например: В режиме часов переменная CORR, определяющая корректируемое значение равна 0. При нажатии кнопки ВЛЕВО часы переводятся в режим коррекции секунд, переменная CORR = 1. Для индикации этого режима можно каждую вторую секунду гасить индикаторы корректируемых разрядов. Если нажимают УВЕЛИЧИТЬ – увеличиваем значение секунд, УМЕНЬШИТЬ – уменьшаем значение секунд, ВЛЕВО – увеличиваем переменную CORR, ВПРАВО – уменьшаем переменную CORR. Если CORR = 1, корректируем секунды, CORR = 2 – минуты, CORR = 3 – часы. Аналогично корректируем время будильника. Механические кнопки при нажатии «дребезжат», т.е. замыкаются/размыкаются в течение нескольких миллисекунд. Простейшим способом избавится от этого, является опрос кнопок с периодом, превышающим время дребезга.
3
|
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 19
|
|
23.12.2012, 22:36 [ТС] | 3 |
а вы смогли бы все это написать в форме кода в ассемблере?
0
|
35 / 35 / 1
Регистрация: 07.02.2012
Сообщений: 79
|
|
24.12.2012, 16:30 | 4 |
Если Вас устроит в конце недели, то помогу.
0
|
35 / 35 / 1
Регистрация: 07.02.2012
Сообщений: 79
|
|
28.12.2012, 15:09 | 5 |
Tina37, пришлите в личку Ваш mail.
0
|
28.12.2012, 15:09 | |
Помогаю со студенческими работами здесь
5
Создание электронных часов в формате exe
Получить на экране изображение действующих электронных часов, показывающих текущее время Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |