2535


LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH

TEMAT.

REGULATOR TYRYSTOROWY.

PRACA W CZASIE RZECZYWISTYM

CWICZENIE

NR5.

GRUPA

ED.5.3

OCENA

IMIĘ I NAZWISKO Grzegorz Piejak

Mariusz Szymanek

DATA

18-12-99

ZADANIE nr1.

Sterowanie tyrystorem.

Tabela stanów występujących w kolejnych krokach wykonywania programu żarówka.hex po wykonaniu danej instrukcji w akumulatorze, porcie P1 i na wyświetlaczu LCD:

Tabela nr 1

Krok

Program źródłowy

A

P1

Ż

W

Komentarz

1

LJMP

00

FF

0

-

2

LCALL INICJALIZACJA

05

FF

0

0

;ustawienia wstępne

3

LCALL WYŚWIETL

05

FF

0

5

;wyświetl wstępną wartość opóźnienia

4

LOOP:

JNB SIEĆ,$

05

FF

0

5

;oczekiwanie na „0” sieci

5

LCALL DELAY_MS

00

FB

0

5

;opóźnienie A*1ms

6

CLR BRAMKA

00

FB

1

5

;załączenie żarówki

7

MOV A,#10

0A

FB

1

5

;załadowanie #10 do akumulatora

8

DJNZ ACC,$

00

FB

1

5

;opóźnienie ≈ 10 μs

9

SETB BRAMKA

00

FF

0

5

;wyłączenie żarówki

10

LCALL KLAWIATURA

05

FF

0

5

;pobranie nowej wartości opóźnienie

11

SJMP LOOP

05

FF

0

5

;zamknięcie pętli programu

Naciskając kolejne klawisze klawiatury matrycowej zmieniamy opóźnienie załączenia żarówki względem momentu przejścia przez zero sieci i przez to sterujemy jasnością świecenia żarówki( im większy numer klawisza tym żarówka świeci ciemniej).

ZADANIE nr2.

Adresowanie indeksowe.

Tabela stanów występujących w kolejnych krokach wykonywania programu tabela.hex po wykonaniu danej instrukcji w akumulatorze, rejestrze DPTR, R7, R6 i na wyświetlaczu LCD:

Program źródłowy

D

A

R7

R6

KL

LCD

Komentarz

SJMP

0000

00

FB

6C

0

0

LCALL INICJACJA

0180

01

FB

6C

0

1

;ustawienia wstępne

LOOP:

LCALL KLAWIATURA

0180

01

FB

01

0

1

;czyta klawiaturę

MOV DPTR,#TABELA

0180

01

09

01

0

1

;tabela funkcyjna

PUSH ACC

0180

01

09

6C

0

1

;przechowanie nr klawisza

RL A

0180

02

FB

6C

0

1

;mnóż przez 2

PUSH ACC

0180

02

FB

6C

0

1

;przechowanie przesunięcia

MOVC A,@A+DPTR

0180

BC

FB

6C

0

1

;starszy bajt z tabeli

MOV R7,A

0180

BC

FB

6C

0

1

;wynik do R7

POP ACC

0180

02

FC

6C

0

1

odtwórz przesunięcie

INC ACC

0180

03

FB

6C

0

1

;wskaż młodszy bajt

MOVC A,@A+DPTR

0180

FB

FB

6C

0

1

;pobierz młodszy bajt

MOV R6,A

0180

FB

FB

6C

0

1

;wynik do R6

POP ACC

0180

01

FB

6C

0

1

;odtwórz numer klawisza

SJMP LOOP

0180

01

FB

6C

0

1

;pętla programu

Tabela funkcyjna:

0

1

2

3

4

5

6

7

0180

-

FB

F6

F2

ED

E6

99

E0

0188

-

6C

DA

48

B6

24

99

E0

Program tabela.hex przyporządkowuje numerowi klawisza naciśniętego z klawiatury matrycowej wartość zapisaną w tabeli funkcyjnej zamieszczonej w programie. Numer naciśniętego klawisza i wartość z tabeli funkcyjnej wyświetlane są na wyświetlaczu LCD.

ZADANIE nr3.

Sterowanie fazowe, odliczanie czasu w timerze mikrokontrolera.

Uzupełnienie programu timer.asm :

;********* 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

START:

LCALL INICJALIZACJA

MOV TMOD,#TMOD_SET

LOOP:

MOV TL0 ,R6

MOV TH0,R7

JNB SIEC, $

SETB TR0

SETB TR1

JNB TF0,$

CLR TR1

CLR TR0

Tabela stanów początkowych dla timera0 dla poszczególnych opóźnień podawanych z klawiatury.

Tabela funkcyjna:

Opóźnienie w ms.

1

2

3

4

5

6

7

TL0

66

CC

33

99

ED

66

CC

TH0

FC

F8

F5

F1

FF

EA

E6

Program timer.hex steruje jasnością świecenia żarówki w zależności od numeru naciśniętego klawisza wybierany jest inny stan początkowy timera0 ( przy wykorzystaniu adresowania indeksowego), który decyduje o czasie opóźnienia z jakim ma być zapalona żarówka względem momentu przejścia przez zero sieci.

jest wyświetlana na wyświetlaczu LCD.



Wyszukiwarka