реклама на сайте
подробности

 
 
> Кнопки на atmega16
SpiritCoat
сообщение Jul 30 2008, 09:53
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 14-04-08
Пользователь №: 36 773



Искал поиском, но самого простого и базового объяснения нигде не нашел.
В общем идея такова: нажимается кнопочка и двоичное число, высвечиваемое на светодеодах, увеличивается на единичку. Деоды прикреплены к порту D, кнопочка висит на порте А. Вот код:

Код
.include "m16def.inc"

.def     Temp=R16
.def     Temp1=R17
.def     Temp2=R18
.def     Temp3=R19
.def     Temp4=R20


.cseg
.org 0

ldi Temp, 0b11111111  
out DDRB,Temp        

ldi Temp,0b00000001    
out PortB,Temp        

BUT:

sbis PinA,0x00; если нажато - переходим к SWITCH
rjmp BUT

SWITCH:

inc Temp
out PortB,Temp
ldi Temp1,0
ldi Temp2,0

DLY:

dec Temp1 ; задержка
brne DLY
dec Temp2
brne DLY

rjmp BUT


Вроде бы все логично, но почему-то работает как угодно, но не так как описано. Что я делаю неверно?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016