16f628 přerušení na změnu Nápověda

C

c36041254

Guest
, what I want to do is that LED # 1 lights continiously as power is switched on and as interrupt occur (RB4 goes HIGH ) LED # 1 gets off and LED # 2 lights on and this remains so untill interrupt is not removed.

Snažím se používat IOC (interr. o změnu) v roce 628, zde je kód, který dobře funguje na simmulator ale ne na hardware,
to, co chci udělat, je, že LED # 1 světel continiously jak moc je zapnutý a jako přerušení nastat (RB4 jde HIGH) LED # 1 dostane off a LED # 2 světla, a to tak zůstane až do přerušení není odstraněna.
Ale, co se vlastně děje, je, že jako interr.nastat (RB4 jde vysoká) LED # 1 zhasne, ale LED # 2 není rozsvítí, nemůže pochopit, co je špatně, prosím pomozte!
Kód:

Seznam p = 16f628

# Include <p16f628.inc>

__CONFIG _MCLRE_ON & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT

ERRORLEVEL -302

cblock 0x20

temp

temp_s

endc

;************************************************* *****************

org 0x00

goto hlavní

;*********************************** Přerušit LOOP ************ *****

org 0x04

inter:

MOVWF temp

swapf STATUS, W

clrf STATUS

MOVWF temp_s

MOVLW b'10000000 '

MOVWF PORTA

btfsc PORTB, 0x04

goto inter

BCF INTCON, 0x00

swapf temp_s, w

MOVWF STATUS

swapf temp, w

retfiehlavní:

BSF INTCON, 0x07; Globel přerušení povolit (používáme interr.)BSF INTCON, 0x03, RB4-RB7 přerušení na změnu je povolena / jinými slovy, tyto piny budou fungovat i jako

, Přerušení a přerušení dojde pokaždé, když některý z těchto pin změny stavu

, Tj.: vysoké až nízké, nebo od nejnižší k nejvyšší, nemůžeme nastavit tak, aby se na eather jednoho státu změnu

BCF INTCON, 0x00, jasná RB4-RB7 přerušení vlajku tak, že jiný interr.
může dojít.

;********************************** SET UP Porty *********** ******

BSF STATUS, Rp0, přepínač bance 1

MOVLW b'00010001 '

MOVWF TRISB; nastavit RB0 & RB4 jako vstupní

MOVLW b'00000000 '

MOVWF TRISA; setPORT všech výstupních

BCF OPTION_REG, 0x07, aby slabé zatáhněte na port b / zatáhněte rozumí vnitřní odpory

BSF OPTION_REG, 0x06, interuupt na rostoucí věk / toto je defoult nastavení

BCF STATUS, Rp0, zpět na bankovní 0

MOVLW 0x07; zase komparátory off, tak vysoko, bude jednoduché

, HIGH spíše než 5 V (v porovnání se dodávky), takže s nízkým

MOVWF CMCONSmyčky:MOVLW b'00000001 '

MOVWF PORTA, nastavte pin 0 z přístavu HIGH

goto Smyčka

END
 
Ahoj,
Zkontrolujte, zda napětí na pin D7 portu A. Zkontrolujte, zda je špatný LED, špatné elektroinstalace atd.

S pozdravem,
Laktronics

 
Stejný okruh pracuje pro RB0 vnější interr.ano, každá věc na kolíky je v pořádku
Máte nějaké další návrhy?Všechny LED diody jsou OKPřidáno po 33 minutách:Omlouváme se!obtěžovat můj chléb deska je poškozená CKT pracuje na druhé.

 

Welcome to EDABoard.com

Sponsor

Back
Top