Ülesanne:
Koosta või
katseta olemasolevat programmi, millega lülitatakse kõik
digitaalväljundid sisse
Käik:
Kasutasime registreid PORTC, PORTD, TRISC, TRISD. Need aga paiknevad
erinevates mäluakendes, seega lülitasime ümber mäluaknad registri
signaalidega 5 ja 6 (RP0 EQU 5 ja RP1 EQU 6). Siis lülitatasime
sisse mäluakna 1. Järgnevalt kustutasime
registrid TRISC ja TRISD
nulliks ja mõlemas määrasime RD0, RD1, RD2, RD, RD4, RD5, RD6 ja
RD7 väljunditeks. Lõpetuseks laadisime
registrisse W 8-bitilise
arvu, milles kõik
signaalid on ühed ninglülitasime sisse mäluakna
0 ning laadisime registrist W oleva arvu registritesse PORTC ja
PORTD. Kõige lõpuks olid kõik signaalid RD väärtusega 1 ning
LED-lambid põlesid.
Plokkskeem :Juhtprogrammi väljatrükk:
;
N�idisprogramm
mis l�litab
k�ik
PORTC ja PORTD v�
ljundid sisse
processor 16F877A
radix DEC
;
Kiibi konfiguratsiooniregistri p�sim�llu
salvestatavasse koodi kirjutamine.
; Kiibi 16F877A puhul paikneb konfiguratsioonis�na
p�sim�lus
aadressil 2007.
; Omistame programmim�lu
aadressil 2007 olevatele m�lupesadele
16-bitilise s�na
; mis m��rab,
et taktsignaaligeneraatoril on kasutusel v�line
kristall . */
__config
0x3FFA
;
Kasutatavate
registrite aadressid mikrokontrolleris
PORTC EQU 0x07
PORTD EQU 0x08
TRISC EQU 0x87
TRISD EQU 0x88
;
Kuna registrid PORTC ja TRISC (v�i
ka PORTD ja TRISD) paiknevad erinevates m�lualades,
siis on vajalik m�lualasid
�mberl�
litada .
;
�mberl�litamine
toimub registri
STATUS signaalidega 5 ja 6.
STATUS EQU 0x03
;
T�histame
m�lualade
l�litamiseks
signaalid registris STATUS t�histega
RP0 ja RP1
RP0 EQU 5
RP1 EQU 6
ORG
0x00 ; Transleerimise algusaadress
BSF STATUS,RP0 ; L�litatakse
sisse m�luaken
1
BCF STATUS,RP1
CLRF TRISC ; Kustutatakse register TRISC nulliks - Signaalid RC0, RC1,
RC2, Rc3, RC4, RC5, RC6 ja RC7 m��
ratakse v�ljunditeks
CLRF TRISD ; Kustutatakse register TRISD nulliks - Signaalid RD0, RD1,
RD2, RD3, RD4, RD5, RD6 ja RD7 m��ratakse
v�ljunditeks
MOVLW
0xFF ; Laetakse registrisse W 8-bitiline arv, milles k�ik
signaalid on �hed
BCF STATUS,RP0 ; L�litatakse
sisse m�luaken
0
MOVWF
PORTC ; Laetakse registrist W olev arv registrisse PORTC -
Signaalid RC0, RC1, RC2, Rc3, RC4, RC5, RC6 ja RC7
seatakse k�ik
�
heks */
MOVWF
PORTD ; Laetakse registrist W olev arv registrisse PORTD -
Signaalid RD0, RD1, RD2, RD3, RD4, RD5, RD6 ja RD7 seatakse k�ik
�heks
*/
m001 GOTO m001 ; L�putu
ts�kkel
END
Kõik kommentaarid