kaip sukurti RF 16f84a programavimas

Z

zawani

Guest
I mean, kaip sukurti programavimo RF CONTROLLER naudojant IPS 16F84A.Aš SORCE AT kodas http://www.hobby-elec.org BET FUNTION Į grandinę.CAN SOME BODY man padėti REMONTAS PROGRAMAVIMAS BELOW

;************************************************* *******
;
; Remote Controller Transmitter
;
; Autorius: zawani
;************************************************* *******

list P = pic16f84a
įtraukti p16f84a.inc
__config _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
errorlevel -302; Pašalinkite banko perspėjimas;**************** Label Definition ********************
cblock h'0c "
tx_status; TX statusas sutaupyti plotą
tx_substatus; TX substatus Prisiminti plotas
modelį; Pattern sutaupyti plotą
endc

ptn1 kongresas b'11110000 "Planas 1 dalyje nurodytus duomenis
PTn2 kongresas b'00001111 "Planas 2 duomenų
ra4 kongresas Kaulo 4 "; RA4 Pozicija bitų

;**************** Programos Pradėti ***********************
org 0; Reset Vector
goto init
org 4; Interrupt Vector
Goto int

Pirminis ;**************** procesas *********************
init BSF STATUSAS, RP0; Pakeisti Bank1
movlw b'00000011 "; RA4: iš RA1, 0: būsena
movwf TRISA; Nustatyti TRISA reg
movlw b'00000101 "; RBPU / TOCS / PSA = 0, PS = 101
movwf OPTION_REG; Nustatyti OPTION_REG
bcf STATUS, RP0; Pakeisti Bank0

clrf PORTA; Stotelė bangų emisijos
clrf tx_status; Išvalyti TX statusas
clrf tx_substatus; Išvalyti TX substatus

movlw b'00000001 "; Nustatyti kaukė modelis
andwf PORTA, W; Pick up RA0
btfsc STATUS, Z; RA0 = 1 (SW1 ON)?
Goto in1; skaičiusPažymėkite šalia įėjimo
movlw ptn1; Nustatyti pattern1 duomenų
in0 movwf modelį; Prisiminti modelio duomenys
Goto tm; Peršokti į laikmatis nustatytas
in1 movlw b'00000010 "; Nustatyti kaukė modelis
andwf PORTA, W; Pick up RA1
btfsc STATUS, Z; RA1 = 1 (SW2 ON)?
goto init; skaičiusNelegali indėlis
movlw PTn2; Nustatyti pattern2 duomenų
Goto in0; Peršokti į modelio Prisiminti

tm movlw d'100 '; 256-10000us/64us = 100
movwf TMR0; Nustatyti 10msec į TMR0
movlw h'a0 "; GIE = 1, TOIE = 1
movwf INTCON; nutraukimas galima

goto $; Palauk pertraukos

;********* Pradžia Laikmatis nutraukimas procesas ***********
LC
BCF INTCON, T0IF; Išvalyti laikmatis LC vėliava

stchk0
movf tx_status, W; Skaityti TX statusas
btfss STATUS, Z; TX status = 0?
Goto stchk1; skaičiusKitas

;************ Preambulė duomenų Siųsti procesas **************
movlw d'7 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfsc STATUS, Z; Substatus = 7?
Goto stinc; Taip.Substatus 1
movlw d'8 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfsc STATUS, Z; Substatus = 8?
Goto st01; Taip.
movlw d'9 "; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfsc STATUS, Z; Substatus = 9?
Goto st02; Taip.
movlw b'00000001 "; Nustatyti kaukė modelis
andwf tx_substatus, W; Pick up LSB
btfss STATUS, Z; LSB = 0 (juoda)?
Goto st00, skaičius(ODD)
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1
st00 bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st01 bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st02 BSF Porta, ra4; Pradėti bangų emisijos
clrf tx_substatus; Išvalyti TX substatus
incf tx_status, F; Nustatyti TX status = 1
Goto int_end; Peršokti į laikmatis LC pabaigos

;************************************************* *******
stchk1
movlw d'1 "; Nustatyti patikrinti duomenų
subwf tx_status, W; TX būklė - patikrinti duomenų
btfss STATUS, Z; TX status = 1?
Goto stchk2; skaičiusKitas

;************ Kontrolės duomenų Siųsti procesas ***************
movf tx_substatus, W; Skaityti TX substatus
btfss STATUS, Z; Substatus = 0?
Goto st11, skaičiusKitas
movlw b'00000001 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto ST10; skaičiusDuomenų = 1
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
ST10 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st11 movlw d'1 "; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 1?
Goto ST12; skaičiusKitas
bcf PORTA, ra4; Stop bangų emisijos
Goto stinc; Peršokti į Substatus 1

ST12 movlw d'2 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 2?
Goto st13, skaičiusKitas
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st13 movlw d'3 "; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 3?
Goto ST15; skaičiusKitas
movlw b'00000010 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto st14, skaičiusDuomenų = 1
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st14 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

ST15 movlw d'4 "; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 4?
Goto st16, skaičiusKitas
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1

st16 movlw d'5 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 5?
Goto ST17; skaičiusKitas
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

ST17 movlw d'6 "; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 6?
Goto st19, skaičiusKitas
movlw b'00000100 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto st18, skaičiusDuomenų = 1
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st18 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st19 movlw d'7 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 7?
Goto st20, skaičiusKitas
bcf PORTA, ra4; Stop bangų emisijos
Goto stinc; Peršokti į Substatus 1

st20 movlw d'8 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 8?
Goto st21, skaičiusKitas
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st21 movlw d'9 "; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 9?
Goto st23, skaičiusKitas
movlw b'00001000 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto st22, skaičiusDuomenų = 1
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st22 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st23 movlw d'10 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 10?
Goto st24, skaičiusKitas
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1

st24 movlw d'11 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 11?
Goto st25, skaičiusKitas
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st25 movlw d'12 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 12?
Goto st27, skaičiusKitas
movlw b'00010000 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto st26, skaičiusDuomenų = 1
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st26 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st27 movlw d'13 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 13?
Goto st28, skaičiusKitas
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1

st28 movlw d'14 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 14?
Goto st29, skaičiusKitas
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st29 movlw d'15 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 15?
Goto st31, skaičiusKitas
movlw b'00100000 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto st30, skaičiusDuomenų = 1
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st30 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st31 movlw d'16 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 16?
Goto st32, skaičiusKitas
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1

st32 movlw d'17 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 17?
Goto st33, skaičiusKitas
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st33 movlw d'18 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 18?
Goto st35, skaičiusKitas
movlw b'01000000 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto st34, skaičiusDuomenų = 1
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1
st34 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st35 movlw d'19 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 19?
Goto st36, skaičiusKitas
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1

st36 movlw d'20 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 20?
Goto St37; skaičiusKitas
BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

St37 movlw d'21 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 21?
Goto st39, skaičiusKitas
movlw b'10000000 "; Nustatyti kaukė modelis
andwf modelis, W; Pick up duomenų
btfss STATUS, Z; duomenys = 0?
Goto st38, skaičiusDuomenų = 1
bcf PORTA, ra4; Stop bangų emisijos
Goto stinc; Peršokti į Substatus 1
st38 BSF Porta, ra4; Pradėti bangų emisijos
Goto stinc; Peršokti į Substatus 1

st39 movlw d'22 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 22?
Goto st40, skaičiusKitas
bcf PORTA, ra4; Stotelė bangų emisijos
Goto stinc; Peršokti į Substatus 1

st40 BSF Porta, ra4; Pradėti bangų emisijos
clrf tx_substatus; Išvalyti TX substatus
incf tx_status, F; Nustatyti TX status = 2
Goto int_end; Peršokti į laikmatis LC pabaigos

;************** Pabaiga duomenų Siųsti procesas *****************
stchk2 movlw d'2 '; Nustatyti patikrinti duomenų
subwf tx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 2?
Goto stinc; No.Jump į Substatus 1
bcf PORTA, ra4; Stotelė bangų emisijos
clrf tx_substatus; Išvalyti TX substatus
clrf tx_status; Išvalyti TX statusas
Goto int_end; Peršokti į laikmatis LC pabaigos

;*********** Substatus Taškinis procesas **************
stinc incf tx_substatus, F; Substatus 1

;******** Pabaiga Laikmatis nutraukimas procesas ***********
int_end movlw d'100 '; 256-10000us/64us = 100
movwf TMR0; Nustatyti 10msec į TMR0
retfie; pabaiga pertraukimo

;************************************************* *******
; Pabaiga Remote Controller Transmitter
;************************************************* *******

pabaiga;************************************************* *******
;
; Remote Controller Receiver
;
; Autorius: zawani Ichigo
;************************************************* *******

list P = pic16f84a
įtraukti p16f84a.inc
__config _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
errorlevel -302; Pašalinkite banko perspėjimas;**************** Label Definition ********************
cblock h'0c "
rx_status; RX statusas sutaupyti plotą
rx_substatus; RX substatus Prisiminti plotas
rx_edge; Input kraštas patikrinti vėliava
last_look; Input paskutinis ieškoti vėliava
code_ck; kodas patikrinti vėliava
cont_data, kontrolės duomenys
Relay; Relay kovos
w_save; W reg Prisiminti plotas
s_save; Statusas reg Prisiminti plotas

endc

ptn1 kongresas b'11110000 "Planas 1 dalyje nurodytus duomenis
PTn2 kongresas b'00001111 "Planas 2 duomenų
RA1 kongresas Kaulo 1 "; RA1 bitas pozicija
rb5 kongresas d'5 '; RB5 Pozicija bitų
rb7 kongresas d'7 '; RB7 Pozicija bitų

;**************** Programos Pradėti ***********************
org 0; Reset Vector
goto init
org 4; Interrupt Vector
Goto int

Pirminis ;****************** procesas *******************
init BSF STATUSAS, RP0; Pakeisti Bank1
movlw b'00011111 "; RA4-0: būsena
movwf TRISA; Nustatyti TRISA reg
movlw b'00000000 "; RB7-0: OUT būdas
movwf TRISB; Nustatyti TRISB reg
movlw b'00000101 "; RBPU / TOCS / PSA = 0, PS = 101
movwf OPTION_REG; Nustatyti OPTION_REG
bcf STATUS, RP0; Pakeisti Bank0

clrf PORTB; RL1, RL2 OFF
clrf rx_status; Išvalyti RX statusas
clrf rx_substatus; Išvalyti RX substatus
clrf rx_edge; Išvalyti kraštas patikrinti vėliava
incf last_look, F; Nustatyti Paskutinis Žiūrėti vėliava
clrf code_ck; Atviras kodas patikrinti vėliava
clrf cont_data; aiškūs kontrolės duomenys
clrf Relay; Išvalyti Relay kovos
movlw d'100 '; 256-10000us/64us = 100
movwf TMR0; Nustatyti 10msec į TMR0
movlw h'a0 "; GIE = 1, TOIE = 1
movwf INTCON; nutraukimas galima

;*********** Pradinis Input patikrinti proceso **************
edge_check
btfss Porta, RA1, įvesties signalas?
Goto check1; skaičiusSignaliniai OFF
btfsc last_look, 0; Paskutinis Žiūrėti vėliava off?
Goto edge_check; skaičiusĮvedimo nepasikeitė
BCF INTCON, GIE; nutraukimas išjungti
incf code_ck, F; Nustatyti kodas patikrinti vėliavą
incf last_look, F; Nustatyti Paskutinis Žiūrėti vėliava
movlw d'178 '; 256-5000us/64us = 178
movwf TMR0; Nustatyti 5msec į TMR0
BSF INTCON, GIE; nutraukimas galima
palaukti
btfss rx_edge, 0; Input kraštas patikrinti?
goto wait; skaičiusPalaukite pertraukos
clrf rx_edge; Išvalyti kraštas patikrinti vėliava
Goto edge_check; Peršokti į Įvesties kraštas patikrinti
check1
clrf last_look; Nustatyti Paskutinis Žiūrėti vėliava OFF
Goto edge_check; Peršokti į Įvesties kraštas patikrinti

;************ Laikmatis nutraukimas procesas **************
LC movwf w_save; Prisiminti W registrą
movf Statusas W; Skaityti Statusas reg
movwf s_save; Prisiminti Statusas reg
bcf STATUS, RP0; Pakeisti Bank0
BCF INTCON, T0IF; Išvalyti laikmatis LC vėliava

movf relės, W; Skaityti Relay kovos
btfsc STATUS, Z; counter = 0?
Goto stchk0; Taip
decfsz relės, F; Counter - 1 = 0?
Goto stchk0; Ne
clrf PORTB; Relay OFF

stchk0
movf code_ck, W; Skaityti kodas patikrinti vėliava
btfsc STATUS, Z; vėliavą?
Goto int_end; skaičiusPabaiga pertraukimo
movf rx_status, W; Skaityti RX statusas
btfss STATUS, Z; Status = 0?
Goto stchk1; skaičiusKitas

;*********** Preambulė duomenų patikrinimo procesą *************
movf rx_substatus, W; Skaityti RX substatus
btfss STATUS, Z; Substatus = 0?
Goto st00, skaičiusKitas
Goto st_on; Įvesties signalas?
st00 movlw d'1 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 1?
Goto st01, skaičius
Goto st_off; Įvesties signalas off?
st01 movlw d'2 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 2?
Goto st02, skaičius
Goto st_on; Įvesties signalas?
st02 movlw d'3 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 3?
Goto st03, skaičius
Goto st_off; Įvesties signalas off?
st03 movlw d'4 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 4?
Goto st04, skaičius
Goto st_on; Įvesties signalas?
st04 movlw d'5 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 5?
Goto st05, skaičius
Goto st_off; Įvesties signalas off?
st05 movlw d'6 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 6?
Goto st06, skaičius
Goto st_on; Įvesties signalas?
st06 movlw d'7 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 7?
Goto st07, skaičiusSubstatus = 8
Goto st_on; Įvesties signalas?
st07 btfsc Porta, RA1, įvesties signalas off?
Goto neteisėta; skaičiusPeršokti į nelegalios
clrf rx_substatus; RX substatus = 0
incf rx_status, F; RX status = 1
clrf cont_data; Išvalyti Count duomenų
Goto int_end; pabaiga pertraukimo

;************************************************* *******
stchk1
movlw d'1 "; Nustatyti patikrinti duomenų
subwf rx_status, W; RX būklė - patikrinti duomenų
btfss STATUS, Z; RX status = 1?
Goto stchk2; skaičiusKitas

;************ Kontrolės duomenų patikrinimo procesą **************
movf rx_substatus, W; Skaityti RX substatus
btfss STATUS, Z; Substatus = 0?
Goto ST10; skaičiusKitas
Goto st_on; Įvesties signalas?
ST10 movlw d'1 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 1?
Goto st11, skaičius
btfss Porta, RA1; B0 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 0; Nustatyti B0 = 1
Goto stinc; Peršokti į Substatus 1
st11 movlw d'2 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 2?
Goto ST12; skaičius
Goto st_off; Įvesties signalas off?
ST12 movlw d'3 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 3?
Goto st13, skaičius
Goto st_on; Įvesties signalas?
st13 movlw d'4 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 4?
Goto st14, skaičius
btfss Porta, RA1, B1 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 1; grupę B1 = 1
Goto stinc; Peršokti į Substatus 1
st14 movlw d'5 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus ≤ 5?
Goto ST15; skaičius
Goto st_off; signalas off?
ST15 movlw d'6 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 6?
Goto st16, skaičius
Goto st_on; Įvesties signalas?
st16 movlw d'7 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 7?
Goto ST17; skaičius
btfss Porta, RA1, B2 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 2; Nustatyti B2 = 1
Goto stinc; Peršokti į Substatus 1
ST17 movlw d'8 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 8?
Goto st18, skaičius
Goto st_off; signalas off?
st18 movlw d'9 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 9?
Goto st19, skaičius
Goto st_on; Įvesties signalas?
st19 movlw d'10 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 10?
Goto st20, skaičius
btfss Porta, RA1, B3 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 3; Nustatyti B3 = 1
Goto stinc; Peršokti į Substatus 1
st20 movlw d'11 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 11?
Goto st21, skaičius
Goto st_off; Įvesties signalas off?
st21 movlw d'12 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 12?
Goto st22, skaičius
Goto st_on; Įvesties signalas?
st22 movlw d'13 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 13?
Goto st23, skaičius
btfss Porta, RA1, B4 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 4; Nustatyti B4 = 1
Goto stinc; Peršokti į Substatus 1
st23 movlw Kaulo 14 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 14?
Goto st24, skaičius
Goto st_off; signalas off?
st24 movlw Kaulo 15 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 15?
Goto st25, skaičius
Goto st_on; Įvesties signalas?
st25 movlw Kaulo 16 "; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 16?
Goto st26, skaičius
btfss Porta, RA1, B5 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 5; Nustatyti B5 = 1
Goto stinc; Peršokti į Substatus 1
st26 movlw d'17 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 17?
Goto st27, skaičius
Goto st_off; signalas off?
st27 movlw d'18 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 18?
Goto st28, skaičius
Goto st_on; Įvesties signalas?
st28 movlw d'19 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 19?
Goto st29, skaičius
btfss Porta, RA1, B6 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 6; Nustatyti B6 = 1
Goto stinc; Peršokti į Substatus 1
st29 movlw Kaulo 20 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 20?
Goto st30, skaičius
Goto st_off; Įvesties signalas off?
st30 movlw d'21 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 21?
Goto st31, skaičius
Goto st_on; Įvesties signalas?
st31 movlw d'22 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 22?
Goto st32, skaičiusSubstatus = 23
btfss Porta, RA1, B7 = 1?
Goto stinc; Peršokti į Substatus 1
BSF cont_data, 7; Nustatyti B7 = 1
Goto stinc; Peršokti į Substatus 1
st32 btfsc Porta, RA1, signalas off?
Goto neteisėta; skaičiusPeršokti į nelegalios
clrf rx_substatus; RX substatus = 0
incf rx_status, F; RX status = 2
Goto int_end; pabaiga pertraukimo

st_on
btfss Porta, RA1, įvesties signalas?
Goto neteisėta; skaičiusPeršokti į nelegalios
Goto stinc; Peršokti į Substatus 1
st_off
btfsc Porta, RA1, įvesties signalas off?
Goto neteisėta; skaičiusPeršokti į nelegalios
Goto stinc; Peršokti į Substatus 1

;************** Pabaiga duomenų patikrinimo procesą ****************
stchk2 btfss Porta, RA1, įvesties signalas?
Goto neteisėta; skaičiusPeršokti į nelegalios
movlw d'2 '; Nustatyti patikrinti duomenų
subwf rx_substatus, W; Substatus - patikrinti duomenų
btfss STATUS, Z; Substatus = 2?
Goto stinc; Peršokti į Substatus 1

;**************** Duomenys Patikrinimo ******************
movf cont_data, W; Skaityti kontrolės duomenų
xorlw ptn1; keista Pattern1
btfss STATUS, Z; duomenys = Pattern1?
Goto dtchk0; skaičius
BCF PORTB, rb7; RL2 OFF
BSF PORTB, rb5; RL1 ON
Goto dtchk1; Peršokti į kovos rinkinys
dtchk0
movf cont_data, W; Skaityti kontrolės duomenų
xorlw PTn2; keista Pattern2
btfss STATUS, Z; duomenys = Pattern2?
Goto neteisėta; skaičiusPeršokti į nelegalios
BCF PORTB, rb5; RL1 OFF
BSF PORTB, rb7; RL2 ON
dtchk1 movlw d'50 '; Nustatyti 500msec Relay ON
movwf Relay; Prisiminti Relay kovos

;***************** Neteisėtas proceso ********************
neteisėtas incf rx_edge, F; kraštas patikrinti vėliavą
clrf rx_substatus; RX substatus = 0
clrf rx_status; RX status = 0
clrf code_ck; Atviras kodas patikrinti vėliava
Goto int_end; pabaiga pertraukimo

;*********** Substatus Increment proceso **************
stinc incf rx_substatus, F; Substatus 1

;******** Pabaiga Laikmatis nutraukimas procesas ***********
int_end movlw d'100 '; 256-10000us/64us = 100
movwf TMR0; Nustatyti 10msec į TMR0
movf s_save, W; Skaityti išgelbėti Statusas reg
movwf STATUS; Priminti Statusas reg
swapf w_save, F; Skaityti išgelbėti W registrą
swapf w_save, W; Priminti W registrą
retfie; pabaiga pertraukimo

;************************************************* *******
; Pabaiga Remote Controller Receiver
;************************************************* *******

pabaiga
Paskutinį kartą redagavo zawani On 16 Apr 2006 7:59; Redaguota 1 kartą iš viso

 
Ar jums reiškia, kad jūs norite Programm PIC16F84A naudojant RF .????

 
PLZ paaiškinti, ką ir nori daryti su PIC16F84A ir RF

 
madnanelahi rašė:

PLZ paaiškinti, ką ir nori daryti su PIC16F84A ir RF
 
Check this, It's for PIC16F84A.

Aš ne bandė jį dar.
Atsiprašome, bet jums reikia prisijungęs, kad galėtumėte peržiūrėti šį priedą

 
seadolphine2000 rašė:

Check this, It's for PIC16F84A.Aš ne bandė jį dar.
 

Welcome to EDABoard.com

Sponsor

Back
Top