705


WYDZIAŁ ELEKTRYCZNY POLITECHNIKI LUBELSKIEJ

LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH

Imię i Nazwisko: Piotr Skwarek

Grupa: ED 5.4

Data wyk. ćwicz. 25.11.96

Numer ćwiczenia

6

Temat ćwiczenia: Układy transmisji równoległej.

Sterowanie światłami na skrzyżowaniu.

Ocena:

Zespół:

1. Skwarek Piotr

2. Małaj Marcin

1. Cel ćwiczenia.

Celem ćwiczenia było zapoznanie się z układami transmisji równoległej systemu DSM 51 , ze sposobami ich obsługi ustawiania i adresowania oraz ze sposobami ich praktycznego wykorzystania , na przykładzie modelu świateł sygnalizacyjnych na skrzyżowaniu.

2. Wykonanie ćwiczenia.

Zadanie 1

Zadanie to polegało na obserwacji zmian rejestrów akumulatora ACC oraz rejestrów R6 i R7 podczas wykonywania programu L16_p1, a także zmian zachodzących w modelu. Wyniki obserwacji zostały zamieszczone w poniższej tabelce:

Tabela pomiarowa

Lp.

ACC.7

ACC.6

ACC.5

ACC.4

ACC.3

ACC.2

ACC.1

ACC.0

R6

R7

1

0

0

0

0

0

0

0

0

00

00

2

1

0

0

0

0

0

0

0

00

00

3

1

0

0

0

0

0

0

0

00

00

4

1

0

0

0

0

0

0

0

00

00

5

1

1

1

1

1

1

1

1

00

00

6

1

1

1

1

1

1

1

1

00

00

7

1

1

1

1

1

1

1

1

00

00

8

1

1

1

1

1

1

1

1

00

00

9

1

1

1

1

1

1

1

1

FF

00

10

1

1

1

1

1

1

1

1

FF

06

11

0

0

0

0

0

1

0

1

FF

06

12

0

0

0

0

0

0

0

0

FF

06

13

1

1

1

1

1

1

1

1

FF

06

14

1

1

1

1

1

1

1

1

FF

06

15

1

1

1

1

1

1

1

0

FF

06

16

1

1

1

1

1

1

1

0

FE

06

17

1

1

1

1

1

1

1

0

FE

06

18

1

1

0

0

0

0

0

0

C0

00

19

1

1

0

0

0

0

0

0

C0

06

20

0

0

0

0

0

1

0

1

C0

06

21

0

0

0

0

0

0

0

0

C0

06

22

1

1

0

0

0

0

0

0

C0

06

23

1

1

0

0

0

0

0

0

C0

06

24

1

0

0

0

0

0

0

1

C0

06

25

1

0

0

0

0

0

0

1

81

06

26

1

0

0

0

0

0

0

1

81

06

27

0

0

1

1

1

1

1

1

3F

00

Zadanie 2

Zadanie to polegało na takim zmodyfikowaniu przykładu z zadania 1 aby dla świateł dla pieszych wykonywał analogiczny test jak w zadaniu 1. Listing zmodyfikowanego programu wykonującego ten test został przedstawiony poniżej:

Listing programu:

PA_M EQU 0 ;TRYB 0..2

PA_D EQU 0 ;OUT->0, IN->1

PCA_D EQU 0 ;OUT->0, IN->1

PB_M EQU 0 ;TRYB 0..1

PB_D EQU 0 ;OUT->0, IN->1

PCB_D EQU 0 ;OUT->0, IN->1

PA EQU PA_M*4+PA_D*2+PCA_D

PB EQU PB_M*4+PB_D*2+PCB_D

SET_8255 EQU 80H+PA*8+PB

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

LJMP START

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

ORG 100H

START:

MOV R0,#CS55D ;inicjalizacja 8255

MOV A,#SET_8255

MOVX @R0,A

MOV R0,#CS55B ;zgaszenie świateł

MOV A,#0FFH ;-wpisanie jedynek

MOVX @R0,A ;na port A i B

INC R0

MOVX @R0,A

DEC R0

MOV R6,A ;stan LEDÓW

LOOP:

MOV R7,#4 ;licznik - liczba diod

MOV R0,#CS55A

LOOP_ON: ;ptętla włączania diod

MOV A,#5

LCALL DELAY_100MS

MOV A,R6

CLR C ;zapalenie kolejnej diody

RLC A

MOV R6,A

MOVX @R0,A

DJNZ R7,LOOP_ON ;powtórz zgodnie z R7

MOV R7,#4

LOOP_OFF: ;ptętla wyłączania diod

MOV A,#5

LCALL DELAY_100MS

MOV A,R6

SETB C ;zgaszenie kolejnej diody

RLC A

MOV R6,A

MOVX @R0,A

DJNZ R7,LOOP_OFF ;powtórz zgodnie z R7

SJMP LOOP

ZADANIE NR 3

Analiza programu skrzyż.hex - rozpisanie i zdekodowanie stanów świateł na skrzyżowaniu zgodnie z procedurą SET_AUTO dla samochodów, oraz SET_PEOPLE dla pieszych.

Stany świateł w procedurze SET_PEOPLE


STAN

ŚWIATEŁ

PORT

A

STAN

ZNACZENIE

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

1

A4

1

żółte zgaszone kierunek 2

A3

0

czerwone świeci kierunek 2

A2

1

zielone zgaszone kierunek 1

A1

1

żółte świeci kierunek 1

A0

0

czerwone świeci kierunek 1

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

2

A4

1

żółte zgaszone kierunek 2

A3

0

czerwone świeci kierunek 2

A2

1

zielone zgaszone kierunek 1

A1

1

żółte świeci kierunek 1

A0

0

czerwone świeci kierunek 1

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

3

A4

1

żółte zgaszone kierunek 2

A3

1

czerwone świeci kierunek 2

A2

0

zielone zgaszone kierunek 1

A1

1

żółte świeci kierunek 1

A0

0

czerwone świeci kierunek 1

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

4

A4

1

żółte zgaszone kierunek 2

A3

1

czerwone świeci kierunek 2

A2

0

zielone zgaszone kierunek 1

A1

1

żółte świeci kierunek 1

A0

0

czerwone świeci kierunek 1

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

5

A4

1

żółte zgaszone kierunek 2

A3

1

czerwone świeci kierunek 2

A2

0

zielone zgaszone kierunek 1

A1

0

żółte świeci kierunek 1

A0

1

czerwone świeci kierunek 1

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

6

A4

1

żółte zgaszone kierunek 2

A3

1

czerwone świeci kierunek 2

A2

0

zielone zgaszone kierunek 1

A1

0

żółte świeci kierunek 1

A0

1

czerwone świeci kierunek 1

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

7

A4

1

żółte zgaszone kierunek 2

A3

1

czerwone świeci kierunek 2

A2

0

zielone zgaszone kierunek 1

A1

1

żółte świeci kierunek 1

A0

0

czerwone świeci kierunek 1

A7

1

bity nie

A6

1

znaczące

A5

1

zielone zgaszone kierunek 2

8

A4

1

żółte zgaszone kierunek 2

A3

1

czerwone świeci kierunek 2

A2

0

zielone zgaszone kierunek 1

A1

1

żółte świeci kierunek 1

A0

0

czerwone świeci kierunek 1


Stany świateł w procedurze SET_AUTO

STAN

ŚWIATEŁ

PORT

B

STAN

ZNACZENIE

B7

1

bity nie

B6

1

znaczące

B5

1

zielone zgaszone kierunek 2

1

B4

1

żółte zgaszone kierunek 2

B3

0

czerwone świeci kierunek 2

B2

0

zielone zgaszone kierunek 1

B1

1

żółte świeci kierunek 1

B0

1

czerwone świeci kierunek 1

B7

1

bity nie

B6

1

znaczące

B5

1

zielone zgaszone kierunek 2

2

B4

1

żółte zgaszone kierunek 2

B3

0

czerwone świeci kierunek 2

B2

1

zielone zgaszone kierunek 1

B1

0

żółte świeci kierunek 1

B0

1

czerwone świeci kierunek 1

B7

1

bity nie

B6

1

znaczące

B5

1

zielone zgaszone kierunek 2

3

B4

1

żółte zgaszone kierunek 2

B3

0

czerwone świeci kierunek 2

B2

1

zielone zgaszone kierunek 1

B1

1

żółte świeci kierunek 1

B0

0

czerwone świeci kierunek 1

B7

1

bity nie

B6

1

znaczące

B5

1

zielone zgaszone kierunek 2

4

B4

0

żółte zgaszone kierunek 2

B3

0

czerwone świeci kierunek 2

B2

1

zielone zgaszone kierunek 1

B1

1

żółte świeci kierunek 1

B0

0

czerwone świeci kierunek 1

B7

1

bity nie

B6

1

znaczące

B5

0

zielone zgaszone kierunek 2

5

B4

1

żółte zgaszone kierunek 2

B3

1

czerwone świeci kierunek 2

B2

1

zielone zgaszone kierunek 1

B1

1

żółte świeci kierunek 1

B0

0

czerwone świeci kierunek 1

B7

1

bity nie

B6

1

znaczące

B5

1

zielone zgaszone kierunek 2

6

B4

0

żółte zgaszone kierunek 2

B3

1

czerwone świeci kierunek 2

B2

1

zielone zgaszone kierunek 1

B1

1

żółte świeci kierunek 1

B0

0

czerwone świeci kierunek 1

B7

1

bity nie

B6

1

znaczące

B5

1

zielone zgaszone kierunek 2

7

B4

1

żółte zgaszone kierunek 2

B3

0

czerwone świeci kierunek 2

B2

1

zielone zgaszone kierunek 1

B1

1

żółte świeci kierunek 1

B0

0

czerwone świeci kierunek 1

B7

1

bity nie

B6

1

znaczące

B5

1

zielone zgaszone kierunek 2

8

B4

1

żółte zgaszone kierunek 2

B3

0

czerwone świeci kierunek 2

B2

1

zielone zgaszone kierunek 1

B1

0

żółte świeci kierunek 1

B0

0

czerwone świeci kierunek 1

ZADANIE NR 4

Modyfikacja programu z zadania poprzedniego: - odmierzanie czasu za pomocą timera

- wydłużenie przejazdu samochodów w kierunku 1

Listing programu

SET_8255 EQU 10000000B

SET_TMOD EQU 00000001B

SET_TH0 EQU 4CH

SET_TL0 EQU 00H

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

LJMP START

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

ORG 100H

START:

MOV R0,#CS55D ;inicjalizacja 8255

MOV A,#SET_8255

MOVX @R0,A

MOV R0,#CS55A ;port A - światła dla pieszych

MOV R1,#CS55B ;port B - światła dla samochodów

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

;kolejne powtórzenie wszystkich stanów świateł na skrzyżowaniu

LOOP:

MOV R7,#8 ;8 stanów świateł na skrzyżowaniu

MOV R2,#1 ;stan pierwszy

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

;ustawienie kolejnego stanu świateł

STAN:

MOV A,R2 ;światła dla samochodów

ACALL SET_AUTO ;dla stanu numer (R2)

MOVX @R1,A

MOV A,R2 ;światła dla pieszych

ACALL SET_PEOPLE ;dla stanu numer (R2)

MOVX @R0,A

MOV R3,A ;zapamiętaj status pieszych

MOV A,R2 ;mruganie świateł dla pieszych

ACALL SET_BLINK ;dla stanu numer (R2)

MOV R4,A ;zapamiętaj status mrugania

MOV A,R2 ;czas świateł w stanie numer (R2)

ACALL SET_TIME ;N * 0.5 sek

MOV R5,A ;zapamiętaj czas

MOV A,R2 ;text na wyświetlacz LCD

ACALL SET_TEXT ;dla stanu numer (R2)

LCALL LCD_CLR

LCALL WRITE_TEXT

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

;odliczanie czasu jednego stanu z dokładnością 0.5 sek.

;mruganie świateł dla pieszych jeśli to konieczne

;z częstotliwością 1Hz

BLINK:

MOV TMOD,#SET_TMOD

MOV TH0,#SET_TH0

MOV TL0,#SET_TL0

MOV ACC,#10

SETB TR0

PĘTLA:

JNB TF0,$

MOV TH0,#SET_TH0

CLR TF0

DJNZ ACC,PĘTLA

MOV A,R3 ;mruganie świateł dla pieszych

XRL A,R4 ;zmiana stanu na przeciwne

MOV R3,A ;dla wybranych świateł

MOVX @R0,A

DJNZ R5,BLINK ;czas = R5 * 0.5 sek.

INC R2 ;kolejny stan

DJNZ R7,STAN

SJMP LOOP ;rozpocznij od pierwszego stanu

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

;dane do zapalenia świateł dla samochodów w 8 kolejnych stanach

SET_AUTO:

MOVC A,@A+PC

RET

DB 11110011B,11110101B,11110110B,11100110B

DB 11011110B,11101110B,11110110B,11110100B

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

;dane do zapalenia świateł dla pieszych w 8 kolejnych stanach

SET_PEOPLE:

MOVC A,@A+PC

RET

DB 11110110B,11110110B,11111010B,11111010B

DB 11111001B,11111001B,11111010B,11111010B

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

;dane do mrugania świateł dla pieszych w 8 kolejnych stanach

;1-mruganie odpowiedniego światła

SET_BLINK:

MOVC A,@A+PC

RET

DB 00000000B,00001000B,00000000B,00000000B

DB 00000000B,00000010B,00000000B,00000000B

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

;czas kolejnych stanów wyrażony w 0.5 sek.

SET_TIME:

MOVC A,@A+PC

RET

DB 30,8,4,4,15,8,4,4

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

;pobranie adresu tekstu dla kolejnego stanu

SET_TEXT:

RL A

PUSH ACC

ACALL SET_TXT

MOV DPL,A

POP ACC

DEC A

ACALL SET_TXT

MOV DPH,A

RET

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

SET_TXT:

MOVC A,@A+PC

RET

;DW TEXT1,TEXT2,TEXT3,TEXT4

;DW TEXT5,TEXT2,TEXT3,TEXT4

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

;teksty opisujące stan na skrzyżowaniu w kolejnych stanach

TEXT1:

DB 'PRZEJAZD POZIOMO',0

TEXT2:

DB 'ZMIANA ŚWIATEŁ '

DB 'ŻÓŁTE ',0

TEXT3:

DB 'ZMIANA ŚWIATEŁ '

DB 'CZERWONE',0

TEXT4:

DB 'ZMIANA ŚWIATEŁ '

DB 'CZERWONE ŻÓŁTE',0

TEXT5:

DB 'PRZEJAZD PIONOWO',0

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

;END




Wyszukiwarka

Podobne podstrony:
M1949050000001 705
705
705 full
grupa H klinimetria w sm id 705 Nieznany
705
704 705
705
705
705
705
705
PN IEC 60364 7 705 1999
M1949050000001 705
705
ensemble 705 tiko tiko samba

więcej podobnych podstron