1927


LABORATORIUM PODSTAW

SYSTEMÓW

MIKROPROCESOROWYCH

∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇

SPRAWOZDANIE Z ĆWICZENIA NR 7.

TEMAT:Układy transmisji szeregowej. Programowa transmisja szeregowa.

Sprawozdanie sporządził: ROBERT SIWIEC

Grupa dziekańska: ED 5.1

Rok akademicki: 96/97

∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇∇

KATEDRA ELEKTRONIKI

POLITECHNIKA LUBELSKA

ZADANIE NR 1

Wykorzystując wewnętrzny układ transmisji szeregowej dokonano wizualizacji komunikacji szeregowej pomiędzy DSM-51 a komputerem PC, która jest przedstawiona w tabeli nr 2. W tabeli nr 1 zaproponowano ustawienia rejestrów dla poszczególnych prędkości transmisji:

Tabela 1:

Lp.

Prędkość transmisji

TH1

TL1

SCON

TMOD

1.

1200

D0H

D0H

40H

20H

2.

2400

E8H

E8H

40H

20H

3.

9600

FAH

FAH

40H

20H

Tabela 2:

Znak

1200

2400

9600

`7'

błąd

`7'

spacja

`5'

błąd

`5'

spacja

`9'

błąd

`9'

spacja

ZADANIE NR 2

Opierając się na przykładzie z zadania 1, dokonano modyfikacji programu p7_1.asm dla transmisji asynchronicznej w trybie odbiór przyjmując kolejno szybkości transmisji: 300, 1200, 4800, 9600 bodów. Poniżej przedstawiono propozycje ustawień rejestrów:

Tabela 3:

Lp.

prędkość transmisji

TH1

TL1

SCON

TMOD

1.

300

40H

40H

50H

20H

2.

1200

D0H

D0H

50H

20H

3.

4800

F4H

F4H

50H

20H

4.

9600

FAH

FAH

50H

20H

Poniżej przedstawiono w tabeli wyniki obserwacji poprawności transmisji:

Tabela 4:

Znak

300

1200

4800

9600

`7'

błąd

błąd

`7'

błąd

`5'

błąd

błąd

`5'

błąd

`9'

błąd

błąd

`9'

błąd

ZADANIE NR 3

Wykorzystując przykłady z zadań 1 i 2 wykonano operację transmisji szeregowej dwustronnej o parametrach jak w zadaniu 2. Poniżej przedstawiona jest propozycja programu realizujące to zadanie. Program działa w taki sposób, że DSM-51 wysyła jeden znak i przechodzi w tryb odbioru również jednego znaku. I tak na przemian.

Listing programu:

;********************************************************

;Cwiczenie7 - STEROWNIK TRANSMISJI SZEREGOWEJ

;PRZYKłAD 1 - NADAWANIE

;********************************************************

;********* Ustawienie TIMERÓW *********

;TIMER 0

T0_G EQU 0 ;GATE

T0_C EQU 0 ;COUNTER/-TIMER

T0_M EQU 0 ;MODE (0..3)

TIM0 EQU T0_M+T0_C*4+T0_G*8

;TIMER 1

T1_G EQU 0 ;GATE

T1_C EQU 0 ;COUNTER/-TIMER

T1_M EQU 2 ;MODE (0..3)

TIM1 EQU T1_M+T1_C*4+T1_G*8

TMOD_SET EQU TIM0+TIM1*16

;*************** Transmisja Szeregowa ********************

TR_M EQU 1 ;tryb transmisji (1..3)

TR_R EQU 1 ;zezwolenie na odbiór

SCON_SET EQU TR_M*64+TR_R*16

;SMOD=1

;TIMER1=57600/300bodów=192

TH1_SET EQU 256-192

TL1_SET EQU 256-192

;**************************************

LJMP START

ORG 100H

START:

MOV SCON,#SCON_SET ;port szeregowy

ORL PCON,#80H ;SMOD=1

MOV TMOD,#TMOD_SET ;Timer 1 dla

MOV TH1,#TH1_SET ;transmisji

MOV TL1,#TL1_SET

SETB TR1 ;start Timera 1

SETB TI

LCALL LCD_CLR

LOOP:

LCALL WAIT_KEY

JNB TI,$ ;czy można nadać

CLR TI ;kolejny znak

ADD A,#30H

MOV SBUF,A ;nadaj znak

LCALL WRITE_DATA ;wyświetl na LCD

CLR RI

JNB RI,$

MOV A,SBUF

LCALL WRITE_DATA

SJMP LOOP

ZADANIE NR 4.

Wykorzystując sposób programowej transmisji szeregowej dokonano wizualizacji komunikacji pomiędzy DSM-51 a PC, na przykładzie programu p7_4.hex. Poniżej zaproponowano ustawienia rejestrów:

Tabela 5:

Lp.

Prędkość transmisji

TH0

TL0

PCON

TMOD

1.

4800

F4H

F4H

02H

2.

9600

A0H

A0H

02H

Poniżej przedstawiono tabele pokazującą poprawność transmisji:

Tabela 6:

Znak

3600

4800

9600

`7'

`7'

błąd

błąd

`6'

`6'

błąd

błąd

`1'

`1'

błąd

błąd

ZADANIE NR 5.

W oparciu o zadanie 4 dokonano modyfikacji programu p7_4.asm dla transmisji asynchronicznej w trybie odbiór przyjmując kolejno szybkości transmisji: 3600, 9600 bodów. W tabeli poniżej zaproponowano wstępne ustawienia rejestrów:

Tabela 7:

Lp.

Prędkość transmisji

TH0

TL0

PCON

TMOD

1.

3600

F0H

F0H

02H

2.

9600

A0H

A0H

02H

Poniżej przedstawiono propozycję programu:

Listing programu:

;************************************************

;Źwiczenie 7 - PROGRAMOWA REALIZACJA TRANSMISJI

;PRZYKťAD 4 - NADAWANIE

;************************************************

;********* Ustawienie TIMER˘w *********

;TIMER 0

T0_G EQU 0 ;GATE

T0_C EQU 0 ;COUNTER/-TIMER

T0_M EQU 2 ;MODE (0..3)

TIM0 EQU T0_M+T0_C*4+T0_G*8

;TIMER 1

T1_G EQU 0 ;GATE

T1_C EQU 0 ;COUNTER/-TIMER

T1_M EQU 0 ;MODE (0..3)

TIM1 EQU T1_M+T1_C*4+T1_G*8

TMOD_SET EQU TIM0+TIM1*16

;******* Transmisja Szeregowa *********

;Timer/Bit = Fosc[Hz] /12 /V[bod]

BIT_TIME EQU 11059200/12/3600

T0_SET EQU 256-BIT_TIME

T0_STRT EQU 256-BIT_TIME/2

IN EQU INT0

;**************************************

LJMP START

;******PRZERWANIE INT 0****************

ORG 03H

SETB TR0

CLR EX0 ;BLOKUJ PRZERWANIE INT 0

RETI

;********* Przerwanie TIMER 0 *********

ORG 0BH

PUSH PSW

PUSH ACC

DJNZ R2,NEXT

CLR TR0

MOV TL0,#T0_STRT

MOV R2,#10

SETB EX0

MOV A,R7

LCALL WRITE_DATA

POP ACC

POP PSW

RETI

NEXT: ;kolejny bit transmisji

MOV C,IN

MOV A,R7

RRC A

MOV R7,A ;bit na port

POP ACC

POP PSW

RETI

;***************************************

ORG 100H

START:

LCALL LCD_CLR

MOV TMOD,#TMOD_SET

MOV TH0,#T0_SET

MOV TL0,#T0_STRT

MOV R2,#10

SETB EA

SETB ET0

SETB EX0

SJMP $

ZADANIE NR 6.

W oparciu o program z zadania 4 dokonano modyfikacji programu p7_4.asm tak aby poszerzyć zakres szybkości transmisji szeregowej do 300 bodów. Poniżej przedstawiono propozycje programu realizującego to zadanie. Program z braku czasu nie został przetestowany.

Listing programu:

;************************************************

;ćwiczenie 7 - PROGRAMOWA REALIZACJA TRANSMISJI

;PRZEKŁAD 4 - NADAWANIE

;************************************************

;********* Ustawienie TIMERÓW *********

;TIMER 0

T0_G EQU 0 ;GATE

T0_C EQU 0 ;COUNTER/-TIMER

T0_M EQU 1 ;MODE (0..3)

TIM0 EQU T0_M+T0_C*4+T0_G*8

;TIMER 1

T1_G EQU 0 ;GATE

T1_C EQU 0 ;COUNTER/-TIMER

T1_M EQU 0 ;MODE (0..3)

TIM1 EQU T1_M+T1_C*4+T1_G*8

TMOD_SET EQU TIM0+TIM1*16

;******* Transmisja Szeregowa *********

;Timer/Bit = Fosc[Hz] /12 /V[bod]

BIT_TIME EQU 11059200/12/300 ;=3072

TL0_SET EQU FF

TH0_SET EQU F3

IN EQU INT0

;**************************************

LJMP START

;******PRZERWANIE INT 0****************

ORG 03H

SETB TR0

CLR EX0 ;BLOKUJ PRZERWANIE INT 0

RETI

;********* Przerwanie TIMER 0 *********

ORG 0BH

PUSH PSW

PUSH ACC

DJNZ R2,NEXT

CLR TR0

MOV TL0,#TL0_SET

MOV TH0,#TH0_SET

MOV R2,#10

SETB EX0

MOV A,R7

LCALL WRITE_DATA

POP ACC

POP PSW

RETI

NEXT: ;kolejny bit transmisji

MOV C,IN

MOV A,R7

RRC A

MOV R7,A ;bit na port

POP ACC

POP PSW

RETI

;***************************************

ORG 100H

START:

LCALL LCD_CLR

MOV TMOD,#TMOD_SET

MOV TH0,#TH0_SET

MOV TL0,#TL0_SET

MOV R2,#10

SETB EA

SETB ET0

SETB EX0

SJMP $



Wyszukiwarka

Podobne podstrony:
IR(95) 1927 pl
1927
pd wykl pr 91011, STMS - sprawa statku Lotus (1927) - „Reguły prawa wiążąc
1927
Nowiny Techniczne 1927 nr 42 Gdynia zasilanie energii
IR(95) 1927 pl
1927 Wielka czwórka
1927 CapistranodeAbreuporJoaoPandia
1927 28HudsonMarvelCarb
1927 CombateemSobral 1840
Husserl, Edmund Phenomenology (1927 Britannica Article)
Radiostacja w Katowicach (Światowid Ilustrowany Kurjer Tygodniowy 1927 49)

więcej podobnych podstron