LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH
Imię i Nazwisko: Piotr Jurek & Tadeusz Klukowski |
Grupa: ED 5.1 |
||||
Data wyk. ćwicz. 18.01.99
|
Numer ćwiczenia 11 |
Temat ćwiczenia: Układy transmisji szeregowej. Programowa transmisja szeregowa. |
Ocena: |
ZADANIE NR 1
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
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 |
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
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.
Tabela 5:
Lp. |
Prędkość transmisji |
TH0 |
TL0 |
PCON |
TMOD |
1. |
4800 |
F4H |
F4H |
80H |
02H |
2. |
9600 |
A0H |
A0H |
80H |
02H |
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.
Tabela 7:
Lp. |
Prędkość transmisji |
TH0 |
TL0 |
PCON |
TMOD |
1. |
3600 |
F0H |
F0H |
F0H |
02H |
2. |
9600 |
A0H |
A0H |
F0H |
02H |
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 $