Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
MrVadik
1 / 1 / 0
Регистрация: 20.10.2016
Сообщений: 27
1

Проверка ключей на AT90S2313

14.11.2016, 18:44. Просмотров 321. Ответов 6
Метки нет (Все метки)

Доброго времени суток
Прошу помочь с написанием программы,не могу заполнить 2 команды
Суть в том,что проверяем нажатие 1 ключа,потом второго,потом вместе. При нажатии одной кнопки лампочки на выводе должны загораться в одном направлении,при нажатии другой тухнуть обратно вроде как

Есть исходный текст
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
;***** Цифровой ввод/вывод
.include "2313def.inc"
.device AT90S2313
.def Temp =r16 ;temporary register
.def Test =r19 ;temporary test register
.def Delay =r17 ;Delay Variable
.def Delay2=r18 ;Delay
;***** Инициализация
RESET:
ser Temp ;Temp = $FF
<AVR Instruction> ;PORTB = все на вывод
<AVR Instruction> ;включить светодиоды
<AVR Instruction> ;включить подтягивающие
 ;резисторы порта D
;**** Контроль ключей SW0 и SW1
loop: sbis PIND,0 ;SW0 нажат?
dec Temp ;декрементировать Temp
<AVR Instruction> ;SW1 нажат?
<AVR Instruction> ;инкрементировать Temp
9
<AVR Instruction> ;Читать входы порта D
<AVR Instruction> ;Контроль ключей
<AVR Instruction> ;SW0 или SW1 нажат?
ser Temp ;SW0 и SW1 разомкнуты –
;светодиоды выключить
outled:
out PORTB,Temp ;отобразить на индикаторе
;**** задержка для визуализации результата
DLY: dec Delay
brne DLY
dec Delay2
brne DLY
rjmp loop ;продолжить после задержки
Исправлен, но не доделан
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.include "2313def.inc"
.device AT90S2313
.def  Temp  =r16    ;temporary register
.def  Test  =r19    ;temporary test register
.def  Delay =r17    ;Delay Variable
.def  Delay2=r18    ;Delay
;***** Инициализация
RESET:
ser  Temp      ;Temp = $FF
out DDRB,Temp  ;PORTB = все на вывод
out DDRD,Temp  ;включить светодиоды
out PORTD,Temp    ;включить подтягивающие резисторы порта D
;**** Контроль ключей SW0 и SW1
loop: 
sbis  PIND,0  ;SW0 нажат?
dec  Temp    ;декрементировать Temp
sbis PIND,1  ;SW1 нажат?
inc Temp ;инкрементировать Temp 
in Temp,PIND ;Читать входы порта D
<AVR Instruction> ;Контроль ключей
<AVR Instruction> ;SW0 или SW1 нажат?
ser  Temp    ;SW0 и SW1 разомкнуты – светодиоды выключить
outled: 
out  PORTB,Temp  ;отобразить на индикаторе
;**** задержка для визуализации результата
DLY:  
dec  Delay
brne  DLY
dec  Delay2
brne  DLY
rjmp  loop    ;продолжить после задержки
Как видите,не хватате контроля ключей,как это реализовать ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2016, 18:44
Ответы с готовыми решениями:

Замена AT90S2313 на ATtiny2313
Добрый день! Собираю адаптор UNIScan и в связи с тем что не могу найти AT90S2313 решил попробовать...

Работа с SRAM (AT90S2313)
СodeVisionaAVR Записать в кодах МК AT90S2313 программу, которая: - Записывает в ячейку SRAM1...

Зажигание светодиодов AT90S2313
Доброго времени суток. На AVR только начинающий Вот написал программу для циклического зажигания...

Вычисление логической функции в МК AT90S2313
В ячейке SRAM з ADR1 (C4) расположен код (3F). Записать в кодах МК AT90S2313 програму, которая...

интерпритация кода at90s2313 в ATtiny13A
Доброго вечера! Очень нужна помощь в портировании прошивки одного камня на другой. К сожалению...

6
ValeryS
Модератор
7482 / 5665 / 725
Регистрация: 14.02.2011
Сообщений: 19,367
Завершенные тесты: 1
14.11.2016, 19:40 2
MrVadik, не надо кричать
правила п 3.4
Избегайте использования слишком большого количества смайлов в сообщениях в тематических разделах форума, а также "кричащего" выделения текста, в том числе CAPS LOCK.
и выделения кода используйте теги, для ассемблера это ASM
1
Voland_
1694 / 1038 / 98
Регистрация: 04.01.2010
Сообщений: 3,517
14.11.2016, 21:01 3
Цитата Сообщение от MrVadik Посмотреть сообщение
не хватате контроля ключей,как это реализовать ?
попробуйте написать "общим подходом", это когда
1) вы читаете значение регистра порта.
2) накладываете битовую маску с одним установленным битом интересуемого порта.
3) делаете ветвление в зависимости от состояния флага Z процессора. Если Z был выставлен, значит бит был равен нулю. Если Z сброшен - то бит был выставлен в единицу.
0
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,775
15.11.2016, 09:41 4
Позвольте, а это что -
Цитата Сообщение от MrVadik Посмотреть сообщение
sbis *PIND,0 *;SW0 нажат?
?
0
Voland_
1694 / 1038 / 98
Регистрация: 04.01.2010
Сообщений: 3,517
15.11.2016, 17:26 5
Цитата Сообщение от pyzhman Посмотреть сообщение
?
sbis проверяет бит. Соответственно, вторым аргументом идет номер бита... Так что все ок.
0
pyzhman
796 / 488 / 68
Регистрация: 15.05.2012
Сообщений: 2,775
16.11.2016, 10:49 6
Цитата Сообщение от MrVadik Посмотреть сообщение
не хватате контроля ключей
Вот и я про то же самое.
0
ValeryS
Модератор
7482 / 5665 / 725
Регистрация: 14.02.2011
Сообщений: 19,367
Завершенные тесты: 1
16.11.2016, 13:28 7
Цитата Сообщение от MrVadik Посмотреть сообщение
не хватате контроля ключей,
уж договорись сам с собой,ключ или кнопка
Цитата Сообщение от MrVadik Посмотреть сообщение
нажатие 1 ключа,потом второго
Цитата Сообщение от MrVadik Посмотреть сообщение
При нажатии одной кнопки
0
16.11.2016, 13:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2016, 13:28

Переходник для программирования AT90S2313 на WillemProg
Нужен ли какой нибудь переходник вообще или нет? И если нет то как вставлять мк в сокету...

Пример работы таймера AT90S2313 из книги Прокопенко В
Уважаемые форумчане! Помогите новичку, пожалуйста. Обучаюсь самостоятельно по книге Прокопенко...

Записать в кодах AT90S2313 программу вычисления функции
Подскажите пожалуйста как записать в кодах AT90S2313 программу, которая выполняет вычисление...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru