Laboratorium Techniki Mikroprocesorowej, Układy transmisji równoległej sterowanie światłami na skrzy, Politechnika Lubelska


POLITECHNIKA LUBELSKA

LABORATORIUM TECHNIKI MIKROPROCESOROWEJ

W LUBLINIE .

UKŁADY TRANSMISJI RÓWNOLEGŁEJ STEROWANIE ŚWIATŁAMI NA SKRZYŻOWANIU

Ćwicz. Wyk. Marcin Blachani

GRZEGORZ JĘDRUCHNIEWICZ

GRUPA

E.D.5.3

Data wyk.

98-01-09

Ocena:

I CEL ĆWICZENIA.

Celem ćwiczenia jest zapoznanie się z zasadą działania transmisji równoległej . Do prezentacji wykorzystywania transmisji równoległej zastosowany został model M-01 dotyczący sterowania światłami na prostym skrzyżowaniu . Model ten podłączony jest do portów A i B układu 8255 poprzez złącze systemu opisane DIGITAL I / O .

II PRZEBIEG ĆWICZENIA .

ZADANIE 1

Zapoznanie się z trybami pracy układu 8255 oraz ze strukturą modelu M-01 oraz prześledzić pracę programu z przykładu Nr16. W trybie pracy krokowej odczytane zostały zawartości rejestru R7 , ACC , R6 ,oraz zapalane i gaszone diody .

diody

P

P

P

Z

Z

Z

Z

Z

P

P

P

M

P

P

P

Z

Z

M

ACC

00

80

FF

FF

FF

05

00

FF

FE

FE

00

00

05

00

00

81

81

3F

R6

00

00

00

FF

FF

FF

FF

FF

FF

FE

00

00

00

00

00

00

81

3F

R7

00

00

00

00

06

06

06

06

06

06

00

06

06

06

06

06

06

00

Legenda:

P - diody zapalone

Z - diody zgaszone

M - diody migają

ZADANIE 2 .

Modyfikuję przykład z zadania 1 , tak aby zapalane były kolejno światła dla pieszych . W trybie pracy krokowej odczytuję zawartość rejestru R7 , ACC , R6 , i obserwuję zapalane i gaszone .

Listing programu

;PORT A - światła dla pieszych

;PA0 - przejście pionowo czerwone

;PA1 - zielone

;PA2 - przejście poziomo czerwone

;PA3 - zielone

;PORT B- światła dla samochodów

;PB3 - przejazd pionowo czerwone

;PB4 - żółte

;PB5 - zielone

;PB0 - przejazd poziomo czerwone

;PB1 - żółte

;PB2 - zielone

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

DEC R0

MOVX @R0,A

MOV R6,A ; stan LEDów

LOOP:

MOV R7,#4 ; licznik - liczba diod

LOOP_ON: ; pę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: ; pę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

Zawartość rejestrów R7 , ACC , R6

ACC

R6

R7

ZAPALANIE DIOD

00

00

00

ZAPALONE WSZYSTKIE

FF

00

00

ZGASZONE DLA SAMOCHODÓW

FF

00

00

ZGASZONE WSZYSTKIE

FF

FF

00

ZGASZONE

FF

FE

04

ZAPALONE CZERWONE

F0

F0

00

ZAPALONE WSZYSTKIE PIESZE

E1

EA

04

ZGASZONE CZERWONE

0F

0E

00

ZGASZONE WSZYSTKIE

0F

0E

00

KOLEJNO PRZEGLĄDANE

ZADANIE 3

Zadanie to ma na celu zanalizować pracę programu , który ma za zadanie sterować sygnalizacją świetlną prostej krzyżówki. Program ustawia osiem kolejnych stanów świateł na skrzyżowaniu .

1 - przejazd samochodów poziomo (i przejście poziomo pieszych )

2 - zmiana świateł - żółte dla samochodów jadących poziomo - zielone mrugające dla

pieszych

3 - zmiana świateł - czerwone dla samochodów jadących poziomo - czerwone dla pieszych

4 - zmiana świateł - czerwone z żółtym dla samochodów w pionie

5 - przejazd samochodów w pionie (i przejście pionowo pieszych )

6 - zmiana świateł - żółte dla samochodów jadących pionowo - zielone mrugające dla pieszych

7 - zmiana świateł - czerwone dla samochodów jadących pionowo - czerwone dla pieszych

8 - zmiana świateł - czerwone z żółtym dla samochodów w poziomie

ZADANIE 4

Zadanie to polega na modyfikacji programu z zadania poprzedniego tak aby czas pomiędzy kolejnymi zmianami świateł odmierzany był za pomocą TIMERA .Wykorzystujemy do tego TIMER 0 , koniec odcinka czasu rozpoznajemy za pomocą flagi TF0.Czas przejazdu w kierunku pionowym jest wyróżniony- trwa dwukrotnie dłużej niż w kierunku poziomym . Zmiany te uzyskamy modyfikując procedury , BLINK , SET_TIME .Według nas procedury te mają następującą postać , poprawność ich działania nie została sprawdzona z powodu braku czasu

BLINK:

SETB TR0

MOV A,#5

LOPP:

CLR TF0

JNB TF0,$

DJNZ ACC,LOPP

CLR TR0

MOV A,R3 ; mruganie świateł dla pieszych

XRL A,R4 ; zmiana stanu na przeciwny

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

****************************************

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

SET_TIME:

MOVC A,@A+PC

RET

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

************************************************

Timery powinny być ustawione w następujący sposób ;

SET_8255 EQU 10000000B

SET­_TMO EQU 256-180



Wyszukiwarka