|
RUTINETTE E QUANT'ALTRO ALTRO PER ST6 |
| INVERTIAMO IL DATO: |
| Vi è mai successo di dover invertire un byte per poterlo trasmettere o magari per leggerlo dopo averlo ricevuto da una periferica ? ecco unasemplice routine che risolve i vostri problemi :supponiamo di avere il seguente dato 00110010b e vogliamo che diventi 01001100b |
| Gestione del dato da programma: | Lettura di un dato dalla porta del micro ( per questo es.: è C0 ): |
| ldi cont,8 | ldi cont,8 |
| ldi molt,1 | ldi molt,1 |
| clr dato | clr dato |
| ldi byte ,0110010b | loop3 jrr 0,port_c,loop1 |
| subi a,0 | ld a,molt |
| ld a,byte | add a,dato |
| loop3 rlc a | ld dato,a |
| jrc loop1 | loop1 ld a,molt |
| jp loop2 | sla a |
| loop1 ld a,molt | ld molt,a |
| add a,dato | dec cont |
| ld dato,a | jrz out |
| loop2 ld a,molt | jp loop3 |
| sla a | out ................... programma |
| ld molt,a | |
| dec cont | |
| jrz out | |
| jp loop3 | |
| out ................ programma | |
| _________________________________________________ | ________________________________________________ |