ENGLISH

ESEMPIO DIDATTICO
come trasmettere e ricevere un byte con ST6210, su linea bifilare

SCHEMA DI UN PROGRAMMATORE PER ST6260/65

COME IMPLEMENTARE L' “ OR “ CON GLI ST6

Nel set di istruzioni dei microcontrollori ST6 non é supportato l’istruzione OR la cui funzione logica é:

riconducibile comunque alla seguente:

dall’algebra 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 l’OR  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 l’operazione si ha b=10011101

come si può osservare il bit numero 5 é settato mentre prima dell’operazione 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 l’operazione si ha 10000101b

come si può osservare il bit numero 4 é resettato mentre prima dell’operazione era settato = 1.
Cosa si puó fare con un ST6225
Come implemenmtare XOR negli ST6
Rotazione a destra di 1 bit RRC

DSE EMULATOR Visitate SOFTEC e prelevate il programma DSE622 che permette di emulare ST6 su PC

[ HomePage ] [ Ham Radio ] [ Link ST6 ] [Electronic]

© by Vittorio Crapella