Mihai Sprinceana
Un forum de programare cu de toate. Va astept sa va inscrieti si sa deveniti moderatori. Oricine este binevenit aici sa se inscrie si sa aiba acces la informatie free! Fiecare este liber sa adauge proiecte programe free etc. Ajutati acest forum sa devina o comunitate puternica unde fiecare invata de la fiecare! Tot ce trebuie sa faceti este sa va inregistrati si fiecare contributie se poate dovedi utila in timp! Forumul este free informatia free dk aveti timp liber ajutati si pe ceilalti si invatati si voi in acelasi timp! Haideti sa facem ceva pt.a ne ajuta intre noi! Cititi regulament postare forum inainte de a posta!
Lista Forumurilor Pe Tematici
Mihai Sprinceana | Inregistrare | Login

POZE MIHAI SPRINCEANA

Nu sunteti logat.
Nou pe simpatie:
OnutzaGirl la Simpatie.ro
Femeie
23 ani
Galati
cauta Barbat
24 - 51 ani
Mihai Sprinceana / Assembler 8051 / Operatii efectuate pe portul serial  
Autor
Mesaj Pagini: 1
andreeamp
Moderator

Inregistrat: acum 18 ani
Postari: 27
Operatii efectuate pe portul serial(stiind rutinele de citire si scriere pe portul serial)

Exemplul1: Transfera 16octeti de pe serial in memoria externa incepand cu adresa 9000h ;citea de pe serial in A(transmisie de pe serial in memoria externa)
;observatie registrul dptr il folosesc doar pt.memoria externa
;pune A->mem

$mod51
Main:
mov DPTR,#9000h       
;initializeaza pointer memorie externa
mov R0,#16        ;contor
Loop: 
call GetChar        ;receptioneaza octet de pe serial
    mov @DPTR,A        ;transfera in memorie   
    inc DPTR  ;avansare in memorie
djnz R0,Loop        ;repeta pana cand R0=0
GetChar:            ;rutina de receptie de pe serial   
jnb RI,$        ;asteapta receptia   
mov A,SBUF        ;transfera octetul in A   
clr RI            ;sterge flagul de receptie
ret            ;revenire in program
END





Exemplul2: Programul invers (transfera 16octeti din memoria externa pe serial)

;trimit A pe serial
$mod51
mov DPTR, #9000h ;initializeaza pointer memorie externa
mov R0,#16 ;contor

Loop:
mov A,@DPTR ;transfera in acumulator
call PutChar ;transfera octet pe serial
inc DPTR ;avansare in memorie
djnz R0,Loop ;repeta pana cand R0=0
PutChar:
mov SBUF,A
jnb TI,$  ;asteapta transmisia
clr TI ;sterge flagul de transmisie
ret





Exemplul3: Transfer de pe portul serial in memoria interna

$mod51

Main:
MOV R1,#10h        ;pointer memorie
mov R0,#16        ;contor

Loop: 
call GetChar        ;receptioneaza octet de pe serial
mov @R1,A        ;transfera in memorie   
inc R1          ;avansare in memorie
djnz R0,Loop        ;repeta pana cand R0=0

GetChar:        ;rutina de receptie de pe serial   
jnb RI,$        ;asteapta receptia   
mov A,SBUF        ;transfera octetul in A   
clr RI            ;sterge flagul de receptie
ret            ;revenire in program
END





Exemplul4: Transfer 16octeti din memoria interna pe portul serial incepand cu adresa 10h

$mod51
mov R1,10h ;pointer memorie
mov R0,#16 ;contor

Loop:
mov A,@R1 ;transfera in acumulator
call PutChar ;transfera octet pe serial
inc R1; avansare in memorie
djnz R0,Loop ;repeta pana cand R0=0

PutChar:
mov SBUF,A
jnb TI,$  ;asteapta transmisia
clr TI ;sterge flagul de transmisie
ret


pus acum 17 ani
   
Pagini: 1  

Mergi la