SCHEMA DI UN PROGRAMMATORE
PER ST6260/65
Nel set di istruzioni dei microcontrollori ST6 non é supportato listruzione OR la cui funzione logica é:
riconducibile comunque alla seguente:
dallalgebra boleana risulta infatti che U(or) = A + B é equivalente a
Quanto sopra espresso é confermato anche dalla tabella di verità qui sotto riportata.
Ne consegue che la funzione OR può essere implementata usando le istruzioni COM ed AND supportate dagli ST6
pertanto OR di A e B (dove A e B possono essere registri o variabili) sará:
or com a ;complemento registro a (come un NOT su tutti i bit) ld x,a ;salva reg. a in reg. x ld a,b ;mette in a il valore di B com a ;lo complementa and a,x ;esegue l AND di com a ;in a si trova lOR di A e B
SET/RESET DEL BIT Nr DI UN BYTE
Dove Nr rappresenta una variabile o un registro.
Il set di istruzioni degli ST6 supporta il SET e RESET di un N bit del registro a o di una variabile ma solo nel modo immediato, cioè N deve essere un valore EQU o dato nel software come cifra di un numero compreso fra 0 e 7.
Esempio: SET 2,variabile ;mette a 1 il bit 2 della variabile RES 0,variabile ;mette a 0 il bit 0 della var.
Se Nr é un registro o una variabile (con valore compreso tra 0 e 7)
non é ammesso usare direttamente:SET Registro, Variabile.
Un metodo che permette di ottenere tale risultato é il seguente:
SET:
Nel registro a si ha il numero del bit da settare e nella variabile b il byte in cui settare il bit.
Set_ ld x,a ;in x il numero del bit da settare ldi a,255 ;a = 11111111b com a ;carry = 1 e a = 0 rcla rcl a ;ruota carry nel bit 0 e b7 in carry dec x ;conta numero volte jrnz rcla ;con nr. bit=5 si avrà a = 00010000b or com a ;a = 11101111b ld x,a ;salvo a in x ld a,b ;a = byte b dove settare il bit 5 (ex: b=10001101b) com a ;complementa a = 01110010b and a,x ;a = 01100010b com a ;a = 10011101b ld b,a ;nel byte b dopo loperazione si ha b=10011101
come si può osservare il bit numero 5 é settato mentre prima delloperazione era resettato = 0.
RESET:
Nel registro a si ha il numero del bit da resettare e nella variabile b il byte in cui resettare il bit.
Res_ ld x,a ;in x il numero del bit da resettare clr a ;carry = 0 e a =0 ldi a,255 ;a=11111111b rcla rcl a ;ruota carry nel bit 0 e b7 in carry dec x ;conta numero di volte jrnz rcla ;con nr. bit= 4 si avrá a= 11110111b ld x,a ;salva a in x ld a,b ;a = byte b dove resettare il bit 4 (ex: b=10001101b) and a,x ;a = 10000101b ld b,a ;nel byte b dopo loperazione si ha 10000101b
come si può osservare il bit numero 4 é resettato mentre prima delloperazione era settato = 1.
Cosa si puó fare con un ST6225
Come implemenmtare XOR negli ST6
Rotazione a destra di 1 bit RRCVisitate SOFTEC e prelevate il programma DSE622 che permette di emulare ST6 su PC
[
HomePage ] [ Ham Radio ] [ Link ST6 ] [Electronic]
© by Vittorio Crapella