Здраствуйте! У меня вопрос....У нас учебные стенды , на которых мы изучаем микроконтроллер AVR ATmega128. Наша специальность экономист-программист. эта наша не основная специальность и сейчас мы выполняем работу, где нужно запрграммировать микроконтроллер так, чтобы нажатием клавиши загорался соответствующий ей светодиод.
Я приложила схему стенда.
Я так поняла, вот такой мой алгоритм, если не так поправьте.
Алгоритм программирования задания
Дальше я никак не пойму как подать эту информацию на шину SPI если я правильно поняла , чтобы загорелся светодиод, как записать код клавиши....Подскажите кто как!
Спасибо!
Формирование кода клавиши AVR студио...Может так, хотя честно кодскопировала откуда-то
Start:
out portC,R24
ld R16,X+
out portA,R16
cbi portC,3
sbi portC,3
dec R25
brne PC-1
ldi R16,0xFF
out portA,R16
cbi portC,3
sbi portC,3
in R16,pinC
andi R16,0b11100000
breq Label_1
swap R16
lsr R16
clc
ldi R17,-1
inc R17
lsr R16
brcc PC-2
lsl R17
lsl R17
add R17,R24
andi R17,0x0F
ldi R18,0
ldi R30,low(2*KeyTable) ;Z = KeyTable
ldi R31,high(2*KeyTable)
add R30,R17
adc R31,R18
lpm R10,Z
sts VideoD,R10
; breq PC+18
Я не на кого не сбрасываю свое задание, хочу сама это все понять, только б помощь..а то даже схему не почитаю полностью
Раздел: AVR
Я приложила схему стенда.
Я так поняла, вот такой мой алгоритм, если не так поправьте.
Алгоритм программирования задания
Определение нажатой клавиши на клавиатуре:
- на порт PC0-PC2 по циклу подаём переменные комбинации из 0 и 1: 0, 1, 2, …, 7
- Двоично-десятичный позициционный дешифратор DD3 с инверсными выходами создает бегающий ноль по строкам ROW1...ROW8 нашей клавиатуры.
- Со столбцов COL1...COL3 идёт ответная от клавиатуры информация(код), которая подаётся на линии PC5...PC7.
- В зависимости от того на какой линии по столбцам появится единица в моменты, соответствующие зажиганию определенной строки и будет пересечением столбца-строки, т.е. однозначного определения кнопки.
- Создать массив данных, с чётким определением кода каждой клавиши. Используя команду cmp сравнить код полученный на выходе с массивом и чётко определить номер клавиши.
Дальше я никак не пойму как подать эту информацию на шину SPI если я правильно поняла , чтобы загорелся светодиод, как записать код клавиши....Подскажите кто как!
Спасибо!
Формирование кода клавиши AVR студио...Может так, хотя честно кодскопировала откуда-то
Start:
out portC,R24
ld R16,X+
out portA,R16
cbi portC,3
sbi portC,3
dec R25
brne PC-1
ldi R16,0xFF
out portA,R16
cbi portC,3
sbi portC,3
in R16,pinC
andi R16,0b11100000
breq Label_1
swap R16
lsr R16
clc
ldi R17,-1
inc R17
lsr R16
brcc PC-2
lsl R17
lsl R17
add R17,R24
andi R17,0x0F
ldi R18,0
ldi R30,low(2*KeyTable) ;Z = KeyTable
ldi R31,high(2*KeyTable)
add R30,R17
adc R31,R18
lpm R10,Z
sts VideoD,R10
; breq PC+18
Я не на кого не сбрасываю свое задание, хочу сама это все понять, только б помощь..а то даже схему не почитаю полностью
Прикрепленные файлы:
Раздел: AVR