3. Instrukcje modyfikacji bitów 87
Rozwiązanie problemu pokazano w poniższym przykładzie, realizując programowo funkcję bit_1 xor bit..2:
MOV C,bit _1 JNB bit_2,Dalcj
crL c
Dalej:
;C c= biM
;jeśli bit_2 ■ 0 to skok do instrukcji Dalej ;C <= not C ;C <=bit_l xor blt_2 ;dalsza część programu
Podany w tabeli 8-1 zestaw instrukcji jest szczególnie efektywny przy selektywnym dostępie do wybranych bitów:
SETB PI.4 ;P1.4<= 1,
;ustaw linię 4 portu PI w stan jedynki logicznej MOV C,P3.2 ;C <= P3.2, P3.2-wcjśdowa linia przerywająca INTO
MOV C,TI ,-C <= Tl, Tl-znacznik końca transmisji szeregowej
;dla nadajnika, dostępny w rejestrze SCON
Poniżej przedstawiono listę instrukcji modyfikacji bitów.
Move Bit
MOV bił_l,bit_2
Działanie
Cer bit
bit C
Adresowanie Mnemonik Struklura bajtów. • Cykle Znacz-
maszynowe: nikt
bezpośrednie: MOV Cbit [ 1 0 1 0 1 0 0 1 0 1 1 C
1 adres bitu ~~]
bezpośrednie: MOV bit,C 1 1 Q 0 1 | 0 0 1 0 1
adres bitu
Przesłania bitowe:
• wybranego bitu o adresie bit do znacznika przeniesienia (C).
• znacznika przeniesienia (O do wybranego bitu o adresie bit.
Bitowo adresowane są poszczególne bajty komórek wewnętrznej pamięci RAM o adresach 20H..2FH (adresy bitów 0..7FH) i te bity rejestrów specjalnych SFR, których adresy są wielokrotnością 8, np. 80H. 88H..0FFH
Mikrokontroler 80(C)5I - procramowanie
2. Struktura pamięci mikrokontrolera ___________16
Bity RS1 i RSO wyboru banku rejestrów umożliwiają uaktywnienie jednego z czterech banków:; . W. -\\v j
RS1 |
RSO. |
bjymer wybranego banku rejestTÓw |
Adres wybranego banku rejestrów |
0 |
0 |
0 |
00H -07H |
0 |
1 |
1 |
08H.. OFH |
1 |
0 |
2 |
10H.. 17H |
1 |
1 |
3 |
18H.. 1FH |
J Ze względu na bajtowy i bitowy dostęp do słowa statusowego możliwe jest użycie jednej z poniższych instrukcji powodujących ustawienie np. bitu R51.
bajtowo: | ||
MOV |
ODOHJIOH |
;(ODOH) <= 10H => 0001 0000B |
MOV |
P$W,#10H |
;(PSW) c= 10H - 0001 OOOOB |
bitowo: | ||
SETB |
0D0H.4 |
;(0D0H.4)bit c= 1 |
SETB |
0D4H |
;(0D4H)bit c= 1 |
SETB |
PSW.4 |
;(PSVV.4)bilc:l |
SETB |
RS1 |
;(RSDbuc=l |
Wskaźnikowy rejestr danych (DPTR - Data Pointer) - adresy: 82H, 83H 16-bitowy wskaźnikowy rejestr danych (DPTR) złożony jest z dwóch 8-bitowych rejestTÓw, z części bardziej znaczącej DPH (adres 83H) i części mniej znaczącej DPL (adres 82H). Rejestr ten stosowany jest do adresowania 64 kBajtów pamięd zewnętrznej RAM w trybie indeksowo-rejestrowym, np:
MOVX A.0DITR ;przcślij do akumulatora (A) zawartość komórki
.zewnętrznej pamięd RAM adresowaną ;wskaźnikowym rejestrem danych (DPTR)
lub pobierania argumentów z pamięd kodu programu, np:
MOVC A.0A+DPTR .prześlij do akumulatora (A) zawartość komórki
:pamięri kodu programu ROM/EPROM adresowaną ;sumą akumulatora (A) i wskaźnikowego rejestru ;danych (DPTR)
Mikrokontroler 80(C)51 - programowanie