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