Zaujímavosti o referátoch
Ďaľšie referáty z kategórie
Sériový prenos dát
Dátum pridania: | 30.11.2002 | Oznámkuj: | 12345 |
Autor referátu: | IronGirl | ||
Jazyk: | Počet slov: | 1 566 | |
Referát vhodný pre: | Stredná odborná škola | Počet A4: | 9 |
Priemerná známka: | 2.98 | Rýchle čítanie: | 15m 0s |
Pomalé čítanie: | 22m 30s |
hodnota 8.bitu presúva do bitu RB8 v registri špeciálnych funkcií SCON.Prenosová rýchlosť je programovateľná na 1/32 alebo 1/64 frekvencie oscilátora.V režime 3 je prenosová rýchlosť premenná a je ziskávaná buď z časovača 1 alebo 2 v závislosti na log.hono- te bitu TCLK a RCLK.
Najpouživanejšie rýchlosti vysielania sú:110,150,300,600, 1200,1800,2400,4800 a 9600 baudov.
Prijímač potrebuje poznať rýchlosť,počet dátových bitov,pár- nu alebo nepárnu paritu v 8.bite a počet stop bitov.
Inicializačná rutina pre rýchlosť 2400 baudov :
Initial: CLR TR1 ;stop časovača 1
MOV TH1,#F4H ;-12 pre 2400 baud
MOV TL1,#00H ;
MOV TMOD,#20H ;časovač 1 8 bitov,automatické plnenie
MOV SCON,#0DEH;9 bitový UART s premennou rýchlosťou
prenosu
SETB TR1 ;štart časovača 1
Rutina prijmu znaku (CCI - Console Character Output),ktorá oča- káva znak a vracia sa do hlavného programu so znakom v ACC :
CCI: JNB RI,CCI ;čakaj pokiaľ znak nie je prijatý
MOV A,SBUF ;prenos znaku do ACC
CLR RI ;umožní ďalšie prijímanie
RET
Rutina vysielania znaku (CC0 - Console Charakter Output),ktorá skotroluje, či UART dokončil vysielanie a je pripravený vysielať ďalší znak a ktorá presúva znak z ACC na vysielač :
CC0: JNB TI,CC0 ;čakáj pokiaľ nie je dokončený predchá-
dzajúci prenos
CLR TI ;vynuluj príznak
MOV SBUF,A ;pošli znak z ACC
RET
Org 4500h
mov dptr,#0ff43h
mov a,#89h
movx @dptr,a
clr tr1
mov th1,#0f4h
mov tl1,#00h
mov tmod,#20h
mov scon,#0deh
setb tr1
nav0: mov dptr,#0ff40h
setb 0e0h
movx @dptr,a
clr 0e0h
movx @dptr,a
mov r0,#00h
mov r1,#00h
mov dptr,#0FF42h
nav1: movx a,@dptr
jnb 0e0h,vysielanie
inc r0
cjne r0,#00h,nav1
nav2: inc r1
jb 0e0h,nav1
vysielanie:
dfg1: jnb ri,dfg1 ;cakanie na znak
mov a,sbuf
clr ri
cjne a,#80h,dfg1 ;cakanie na 80h
mov a,r0
lcall nav3
dfg2: jnb ri,dfg2
mov a,sbuf
clr ri
cjne a,#0ffh,dfg2 ;cakanie na 0ffh
mov a,r1
lcall nav3
sjmp nav0
nav3: jnb ti,nav3
clr ti
mov sbuf,a
ret
program sercom02;
uses crt;
var znak0,znak:word;
procedure zobraz;near;
begin
znak0:=znak0*105;
gotoxy(3,3);
write(' ');
gotoxy(3,3);
write(word(znak0));
end;
procedure onesk;
begin
delay(10);
end;
begin
clrscr;
writeln('Citanie znaku z COM3.');
writeln('Ak chces skoncit stlac klavesu.');
asm
MOV AL,83h 8,1,N}
MOV DX,3EBh
OUT DX,AL
MOV AX,48 2400}
MOV DX,3E8h
OUT DX,AL
MOV AL,AH
MOV DX,3E9h
MOV AL,3h BRANA 3F8h = V/V}
MOV DX,3EBh
OUT DX,AL
MOV DX,3EAh
IN AL,DX
MOV DX,3EDh
IN AL,DX NULOVANIE BRAN}
MOV AL,80H
MOV DX,3E8H
OUT DX,AL
CALL onesk
MOV AL,0FFH
MOV DX,3E8H
OUT DX,AL
CALL onesk
MOV BX,0
MOV AL,80H
MOV DX,3E8h
OUT DX,AL
PUSH BX
CALL onesk
POP BX
MOV DX,3EDh TESTOVANIE
IN AL,DX
TEST AL,1
JZ @SKOK
MOV DX,3E8h
IN AL,DX
MOV BL,AL
mov al,0ffh
MOV DX,3E8h
out DX,al
push bx
call onesk
pop bx
mov dx,3edh
in al,dx
test al,1
jz @skok0
mov dx,3e8h
in al,dx
mov bh,al
mov word ptr znak0,bx
CALL ZOBRAZ
MOV AH,1
INT 16h
JZ @SKOK
XOR AH,AH
INT 16h
end;
end.
.