Atmega8 подключение кнопки :(
Добавлено: Сб фев 27, 2010 19:30:06
Здраствуйте!!!
Подскажите кто может пожалуйста почему нерабатает это прога:
.INCLUDE "m8def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def Counter=R21
.def Temp5=R22
.def Temp6=R23
.def Temp7=R24
.def Temp8=R25
; Пробное подключение кнопки к порту МК
.cseg
.org 0
ldi Temp,0xFF
out DDRC,temp
ldi Temp,0b00000011
out PORTD,Temp
Reset1:
ldi Temp4,0b00000010
out PORTC,Temp4
Pincykle: sbic PinD,0 ;прпустить следующию строчку, если кнопка нажата
rjmp PinCykle
;кнопка нажата, ждём 0,2С
ldi Temp2,$02
ldi Temp1,$71
ldi Temp,$00
rcall Delay
Pin_release:
sbis PinD,0 ;пропустиь если отпущена
rjmp Pin_release
lsl Temp4
cpi Temp4,0b01000000
breq Reset1
out PORTC,Temp4
ldi Temp2,$06
ldi Temp1,$1A
ldi Temp,$80
rcall Delay
;пауза 0,5С
rjmp Pincykle
Delay: subi Temp,1
sbci Temp1,0
sbci Temp2,0
brcc Delay
ret
Начиная с PC1 по PC5 подключены 5 светодиодов.
PinD0 и PinD1 подключены 2 кнопки
По идее при нажатие кнопки должен загораться следующий светодиод порта C. Но непроисходит ничего
((.
Собрал эту схему в Protuse сначала незаработало. Затем убрал внутренние подтягивающие резисторы и заработало, но на практике всё равно неработает
((((
Подскажите кто может пожалуйста почему нерабатает это прога:
.INCLUDE "m8def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def Counter=R21
.def Temp5=R22
.def Temp6=R23
.def Temp7=R24
.def Temp8=R25
; Пробное подключение кнопки к порту МК
.cseg
.org 0
ldi Temp,0xFF
out DDRC,temp
ldi Temp,0b00000011
out PORTD,Temp
Reset1:
ldi Temp4,0b00000010
out PORTC,Temp4
Pincykle: sbic PinD,0 ;прпустить следующию строчку, если кнопка нажата
rjmp PinCykle
;кнопка нажата, ждём 0,2С
ldi Temp2,$02
ldi Temp1,$71
ldi Temp,$00
rcall Delay
Pin_release:
sbis PinD,0 ;пропустиь если отпущена
rjmp Pin_release
lsl Temp4
cpi Temp4,0b01000000
breq Reset1
out PORTC,Temp4
ldi Temp2,$06
ldi Temp1,$1A
ldi Temp,$80
rcall Delay
;пауза 0,5С
rjmp Pincykle
Delay: subi Temp,1
sbci Temp1,0
sbci Temp2,0
brcc Delay
ret
Начиная с PC1 по PC5 подключены 5 светодиодов.
PinD0 и PinD1 подключены 2 кнопки
По идее при нажатие кнопки должен загораться следующий светодиод порта C. Но непроисходит ничего
Собрал эту схему в Protuse сначала незаработало. Затем убрал внутренние подтягивающие резисторы и заработало, но на практике всё равно неработает